逻辑卷:
一、基础知识:
lvm:(Logical Volume Manager) ,逻辑卷管理器。
逻辑卷管理器解决的主要问题如下:
解决分区空间不够用或者分区空间绰绰有余的情况。
基本磁盘分区的边界是不能随意扩展的。分区大小是在刚刚划分分区的时候就决定了。
逻辑卷的工作原理:逻辑卷(lv)是将几个磁盘分区或者块设备(pv,pv的id必须是8e的,pv可以位于不同的磁盘分区里,pv大小可以不一)组织起来形成一个大的扩展分区(vg,卷组,一个vg至少要包含一个pv。),该扩展分区不能直接用,需要将其划分成逻辑卷(lv)才能使用,lv可以格式化成不同的文件系统,挂载后直接使用。 lv的扩展和缩减是不会影响原有数据的,但逻辑卷缩减的风险大于逻辑卷扩展的风险。逻辑卷可以支持快照功能。
快照的工作原理:保存数据某一时刻的状态。快照刚刚建立的时候,它的大小是空的。快照是访问原文件的另一条路径。快照是在数据改变之前将数据原封不动的保存到快照空间里面。注意数据变化的幅度不能超过给定快照空间的大小,否则快照将崩溃。
快照的作用:对某一时刻数据状态的备份提供另一条访问路径,通过快照来备份数据到其它位置,备份完成后,快照就没用了,卸载和移除该快照卷。快照空间的大小取决于数据改变的频度和所需要使用的时间长度,即有限的时间内原文件数据改变的空间大小。
通过下面这些命令创建、查看和缩减 、移除LV的各层。
PV: pvcreate pvremove pvmove pvscan pvdisplay pvs
VG: vgcreate vgdisplay vgextend vgreduce vgs vgscan vgremove
LV: lvcreate lvdisplay lvremove lvreduce lvextend lvs
pv是可以针对任何物理块设备创建的。
举例说明vg的创建:
创建一个10G大小的vg。
步骤:1、先创建一个逻辑分区100G;
2、在该逻辑分区下创建2个pv,大小分别是8G和2G。
pvcreate /dev/sda{5,6}
3、通过pvs进行查看;通过pvdisplay查看详细信息。
4、创建卷组。此时要先进行卷组名查看,用vgs,卷组名不能重复。
5、通过vgcreate命令创建vg。
vgcreate VGNAME PVNAME
6、当看到Volume group "myvg" successfully created证明vg创建成功。通过vgs或vgdisplay进行查看。
7、当不想用哪个vg的时候,可以通过vgremove VGNAME删除某个vg;当然也可以通过vgremove -f VGNAME 强行删除某个vg。当看到反馈信息是 Volume group "myvg" successfully removed时,说明vg删除成功,可以通过vgs或vgdisplay进行查看。
说明: 1)额外命令:vgcreate -s #(KMGT) VGNAME PVNAME :指定PE的大小。
2)PE是lv 层次上的类似于chunk 的空间块。
3)当感觉到所用的vg大小不够的时候,可以通过命令vgextend来扩展vg。
vgextend VGNAME PVNAME(可以通过命令vgextend -t VGNAME PVNAME 来测试是否可以扩展该vg。)
4)当感觉不需要vg空间过大,也可以通过vgreduce来缩减vg的大小,此时务必要小心,否则会导致数据丢失等严重后果。所有要事先查看vg和pv的大小,通过命令pvmove PVNAME将某个即将挪走的pv但数据保存到vg的其它pv里面,然后进行缩减。
vgreduce VGNAME PVNAME(可以事先通过vgreduce -t VGNAME PVNAME 来测试是否可以移除某个pv 来缩减vg 的大小。)
lv的创建命令:lvcreate [operator] VGNAME/PVNAMES
-l :指定LE(也即PE)的个数。
-L:指定LE的大小,单位KMGT。
-n:指定LV的名字。
-p r|rw :该lv是只读的或者是可读写的,在创建快照的时候会用到。
当创建成功的时候显示: Logical volume "mylv" created。可以通过lvs或者lvdisplay进行查看。
注意:LV的路径格式为:/dev/VGNAME/LVNAME。
当LV创建成功的时候,就可以格式化文件系统,挂载使用了。其挂载路径特别:/dev/mapper/VGNAME—LVNAME 。mapper叫路径映射,用它来实现多路径。
扩展LV时,先扩展物理边界,再扩展逻辑边界。使用lvextend命令扩展物理边界,使用resize2fs扩展逻辑边界。注意:扩展大小不能超过VG的大小。
格式:lvextend -L #KMGT(+#KMGT) LVPATH(注意此时只扩展了物理边界。)
resize2fs LVPATH(自动扩展跟物理边界一样大。)
当我们感觉所创建的LV过大时,可以缩减LV的大小。缩减LV时,先缩减逻辑边界,再缩减物理边界。使用lvreduce命令缩减LV大小。
缩减LV的步骤:
1、先卸载LV:umount LV
2、再强行检测该LV:e2fsck -f
3、然后逻辑上缩减LV:resize2fs LVPATH #KMGT(此时要指定缩减到多大或缩减了多少)
4、而后物理缩减LV:lvreduce -L #KMGT LVPATH(此时会提示是否真的要进行缩减)
5、最后挂载此LV: mount LBPATH MOUNT_POINT。
LV快照的创建:使用命令lvcreate [operator] LVPATH
-L 指定快照的大小;
-s 说明创建的是一个快照;
-p r设置为只读;
-n 指定快照的名字;
移除LV:使用lvremove命令。格式:lvremove LVPATH。