如果分区没有使用lvm,那么这个分区在不重新分区的情况下,是无法在线动态的调整大小的。lvm的优势也就在这里,在不卸载分区的情况下,动态调整大小
劣势:会部分影响速度
通过LVM,可以将多个磁盘,或多个分区,组成一个逻辑的大磁盘
1、LVM概念
-
PV,物理卷,组成逻辑大磁盘的分区或磁盘,
-
VG,卷组,逻辑大磁盘
-
LV,逻辑卷,在VG中划分
-
PE,基本单位,相当于磁盘的block,把VG划分成很多个小的块;创建LV,就是把VG中的多少个PE分配给LV;实际这些PE都会散落到PV,一个VG里面的PE数量,是所属PV的PE数量之和
2、创建LVM
2.1、创建PV
-
创建一个分区,需要改下标识,8e
-
千万不要格式化该分区
#创建PV
pvcreate /dev/vdb{1,2}
2.2、查看PV
pvs
pvscan
#查看所有pv的详细信息
pvdisplay
#查看具体某个pv的详细信息
#注意:这里面有一个Allocatable,表示这个PV还能否被划分
pvdisplay /dev/sdb2
2.3、创建VG
#创建一个叫 vg1的VG,PE大小为4M,并且将vdb1,vdb2加入到该VG
vgcreate -s 4M vg1 /dev/vdb{1,2}
2.4、查看VG
vgs
vgscan
vgdisplay
2.5、创建LV
#从vg1中划分500M,创建一个叫lv1的LV
lvcreate -L 500M vg1 -n lv1
#从VG中划分100个PE,创建一个叫lv2的LV
lvcreate -l 100 vg1 -n lv2
2.6、查看LV
lvs
lvscan
lvdisplay
LV的路径有两个:
/dev/vg1/lv1
/dev/mapper/vg1-lv1
#这两个文件只是一个链接而已,用ll /dev/mapper/vg1-lv1查看
2.7、格式化,挂载
mkfs -t xfs /dev/vg1/lv1
mount /dev/vg1/lv1 /mnt/tt
vim /etc/fstab
注意:
当一个分区带有LVM属性的时候,这个属性是不能被新机所识别
当用UUID去挂载的时候,是用文件系统的UUID,不是LV的
3、在线扩充LV
如果VG还有剩余空间,就直接扩充LV,否则,需要先扩充VG
3.1、增加PV
pvcreate /dev/vdb3
3.2、扩充VG
#把vdb3扩充到vg1
vgextend vg1 /dev/vdb3
3.3、扩充LV
#为lv1增加2G空间
#如果不加+号,表示扩充后的大小
lvextend -L +2G /dev/vg1/lv1
3.4、扩充文件系统
xfs文件系统:
xfs_growfs /dev/vg1/lv1
ext*文件系统:
resize2fs /dev/vg1/lv1
4、缩小LV
xfs文件系统不支持缩小
ext*文件系统支持,但建议不要轻易使用缩小,丢数据风险很高
4.1、卸载文件系统
umount /mnt/tt
4.2、文件系统检查
让系统知道文件系统是否完整
e2fsck -f /dev/vg1/lv1
4.3、缩小文件系统
resize2fs /dev/vg1/lv1 2G
4.4、缩小lv
lvreduce -L 2G /dev/vg1/lv1
注意:
如果已经有文件 ,必须先缩小文件系统,再缩小lv,否则先缩小lv,会破坏文件系统。
缩小lv时,指定的缩小容量,不能低于一个PE的大小
缩小LV时,注意PE的概念,计算一下缩小后的实际大小,不能低于文件系统大小
5、缩小VG
缩小VG就是把一个空闲的PV移除
前提:VG剩余容量大于一个PV的容量
5.1、迁移数据
在要移除的PV上,把已经被分配的PE移到其它有空余空间的PV
#把vdb2这个PV里面已经分配的PE移到其它有空余空间的PV,不用指定具体哪个PV,系统会自动处理
pvmove /dev/vdb4
5.2、缩小VG
vgreduce vg1 /dev/sdb4
5.3、删除除PV
pvremove /dev/vdb4
6、快照
LVM支持快照功能,通过COW(copy on write)机制,实现快照功能。
当创建一个快照的时候,仅拷贝原始卷里数据的元数据到快照卷中,只有当原始卷上有写操作执行时,快照卷会跟踪原始卷块的改变,这个时候原始卷上将要改变的数据,在改变之前会被拷贝到快照卷里。
注意
在原始卷新创建的文件,在快照卷是看不见的。
6.1、创建快照
#对lv1创建快照,也就是创建一个新的卷,来作为快照卷
#注意,VG必须要有足够的空间
lvcreate -L 1G -s -p r -n snap01 /dev/vg1/lv1
-L,指定快照卷的大小
-s,表示创建快照
-p,指定快照卷的权限,r表示只读
-n,指定快照的名字
6.2、恢复快照
#卸载裁原卷
umount /dev/vg1/lv1
#恢复快照
lvconvert --merge /dev/vg1/snap01
注意:
合并快照后,快照卷会自动删除