试想一种情况,当初我们在规划磁盘的时候,只给某一个磁盘或分区之划分了30G的容量,但是后来,随着业务的需求,该磁盘或者分区的使用量会越来越大,等到以后再有数据存放时,发现该磁盘或者分区的容量不够用,此时该怎么办了?可以新增一个磁盘,经过格式化,挂载等过程就可以使用这个磁盘了,再将原来磁盘的数据完全的复制过来。等到后来又发现,规划的磁盘又太大了,然后又使用上述方法来减少磁盘的大小。虽然这种方法可行,但是效率低,比较复杂。不应该是我们首选的方法。
当然,我们可以这样做,将多个磁盘或者分区(PV)组合成一个大的磁盘或者分区(VG),然后再将这个大的磁盘分成许多的区块(PE),在将这磁盘分割成分区(LV),经过格式化,然后挂载在某个目录下就可以使用了。而挂载在某个目录下的文件系统下的容量大小,就是当初由磁盘分给的块的数量。区块的数量决定了文件系统的大小,所以想增加某个文件系统大小,可以增加区块的数量;要想减少文件系统的大小,减少区块的数量即可。而这就是所谓的LVM。
LVM可以弹性的调整文件系统的大小,通过调整区块的数量就可以调整文件系统的大小。而这个区块就叫做PE。
接下来就介绍LVM的中的相关概念,什么是PE,PV,VG,LV?
PE:Physical Extend,实体延伸区块,每一个PE的大小默认为4M,PE是LVM中最小的存储单元。LVM中的
PE类似于文件系统的Block。而之所以能够调整文件系统的大小就是通过添加或减少PE的数量来实现
的。
LE:Logical Extend,逻辑延伸区块,就是将PE分给了LV之后,PE在LV里就叫做LE
PV:Physical Volume,实体卷,使用fdisk来修改分区类型为8e后,然后在使用pvcreate指令就可以创
建一个PV
VG:Volume Group,卷组,就是将多个PV组合起来,使用vgcreate指令就形成了一个卷组。上述所述的
PE就是在VG里产生的。默认VG里的PE数量为65534个。
LV:Logical Volume,逻辑卷,将VG经过格式化以后,在使用lvcreate指令就可以形成一个LV。而LV的
大小就是VG分配的PE的数量决定的。LV在经过格式化、挂载后就可以使用了。
创建整个LVM的过程如图所示:
创建LVM的步骤如下:
一、创建PV使用的指令:
pvcreate 设备名:将实体分区创建成PV
pvscan:搜寻系统上有PV的磁盘或分区
pvdisplay:显示PV的详细信息
pvremove:删除PV,该分区不再具有PV属性
pvs:显示PV的信息
二、创建VG使用的指令:
vgcreate VG名称 PV名称:将多个PV创建成一个VG
-s #:指定PE的大小,默认是4M
vgscan:搜寻系统上是否有VG
vgdisplay:显示VG的详细信息
vgextend PV名称:将某个PV增加到VG中去
vgreduce VG名称 PV名称:在VG内移除PV
vgremove VG名称:删除VG
vgchange:设定VG是否启动
vgs:显示VG的信息
三、创建lv使用的命令
lvcreate [option] LV名称 VG名称:创建lv
-L #:指定LV的空间大小
-l #:接PE的个数
-n :后面必须接LV的名称
lvscan:显示lv是否存在
lvdisplay:显示lv的详细信息
lvs:显示lv的信息
lvremove /PATH/TO/LV:删除LV
lvextend:用来扩展或缩减LV的容量
-L [+]#:增加lv的容量到#,+表示lv增加的容量为#
lvreduce:缩减lv的容量
-L [-]#:减少lv的容量到#,-表示lv减少的容量为#
经过上面的步骤,将创建的lv经过格式化、挂载以后就是一个可以使用的文件系统了。
试想一下,文件系统是经过分区格式化以后形成的,所以文件系统的大小取决分区的大小。分区的大小决定了磁盘的物理边界,而文件系统的大小决定了磁盘的逻辑边界。一般情况下,逻辑边界和物理边界基本重合。所以想要增加一个文件系统的大小,首先的增加磁盘的物理编辑,再增加磁盘的逻辑边界即可。相反减少文件系统的大小,是先减少磁盘的逻辑编辑,再减少磁盘的物理编辑的。
一、扩展逻辑卷
1、使用lvextend来扩展逻辑卷(lv)的物理边界大小。
语法格式:lvextend [option] /PATH/TO/LV
-L [+]#:增加lv的容量到#,+表示lv增加的容量为#
为什么使用df命令和lvs命令显示的效果不一样,这是因为虽然增大了lv的物理边界,但是没有增加它的逻辑边界。只要再改变lv的逻辑边界,显示效果就一样。
2、使用resize2fs来改变lv的逻辑边界
语法格式:resize2fs [-p] /path/to/lv [size]
-p:表示能增加多大就增加多大 ,也可以用来减少。
size:表示LV的大小
说明:增大某个lv的容量可以在线增加,就是说不需要卸载就可以增加,而且增大lv的容量风险较小,基本上无影响。
二、缩减逻辑卷的容量
在缩减逻辑卷之前要注意一下三点:
(1)、确保缩小后的容量依然可以存储原来的数据,可以使用df -hP来查看
(2)、缩小逻辑卷不能在线缩小,必须先卸载
(3)、在缩减之前必须先强行检查文件系统,以确保文件系统处于一致性状态,可以使用e2fsck -f来
强行检查
当然缩减lv的容量过程与增大lv的容量过程正好相反,先减少文件系统的逻辑边界,在减少分区的物理边界即可。
1、减少lv的逻辑边界,使用lvreduce指令
语法格式:lvreduce [option] /PATH/TO/LV
-L [-]#:表示减少的lv容量到#,-表示减少的lv容量为#
2、使用resize2fs来减少物理边界
语法格式:resize2fs [-p] /PATH/TO/LV [size]
-p:能减少多少就减少多少,也可以用来增加
size:指定lv的容量
然后再使用mount命令重新挂载就可以使用逻辑卷了。
本文出自 “linux学习之路” 博客,谢绝转载!
原文地址:http://xslwahaha.blog.51cto.com/4738972/1436419