LVM(Logical Volume Manager),逻辑卷管理器,能够非常方便的管理文件系统的容量。它能够将多个硬盘整合起来,使其成为一个逻辑上的物理磁盘。我们也可以在往后往其中添加和删除磁盘分区。
1. PV (Physical Volume),物理卷
在逻辑管理器中,每一个物理卷都会映射到硬盘上特定的物理分区。也就是说,整块硬盘可以成为物理卷,硬盘的一部分分区也可以成为物理卷,而且整个RAID也可以成为物理卷。
2. VG (Volume Group),卷组
所谓的卷组,就是我们将多个物理卷组合起来,形成的逻辑的大磁盘。在逻辑卷管理器中,会将卷组视为一个硬盘。
3. LV (Logical Volume),逻辑卷
Linux中,会将逻辑卷视为一个物理分区,这样我们就可以在上面建立我们自己的文件系统了。
现在我们有四块硬盘sdb,sdc,sdd,sde,sdb和sdc组成了raid盘md0。现在我们要将md0,sdd的分区sdd1,sde整合起来,组成逻辑卷。
首先创建物理卷
pvcreate /dev/md0 /dev/sdd1 /dev/sde
使用pvs命令可以查看创建的物理卷的信息,pvdisplay可以查看更详细的信息。
此时的VG还没创建,所以VG那一列显示为空。
接着创建卷组
vgcreate vg_test /dev/md0 /dev/sdd1 /dev/sde
vgs显示卷组的简略信息,vgdisplay查看卷组的详细信息。
我们在这里创建了卷组vg_test,并将/md0 sdd1 sde的空间都给了他。
由于md0是raid1,所以其空间大小为10G,最后的vg_test的空间大小为25G
这时使用pvs查看
可以看到,我们将所有的物理卷都给了vg_test
然后开始创建lv逻辑卷
lvcreate -L 2G -n lv_test vg_test
lvcreate -L 15G -n lv_add vg_test
使用lsblk查看分区情况
在这里我们在卷组 vg_test 上先后创建了逻辑卷 lv_test 2G空间大小和 lv_add 15G空间大小
格式化分区,并挂载
mkfs.ext4 /dev/vg_test/lv_test
mkfs.xfs /dev/vg_test/lv_add
mount /dev/vg_test/lv_test /mnt/lvm1/
mount /dev/vg_test/lv_add /mnt/lvm2/
在这里我们分别将lv_test和lv_add格式化为ext4 xfs文件系统
并分别挂载在/mnt下的lvm1和lvm2下
在线扩展逻辑卷
如果卷组空间不够用,我们可以先将新硬盘加入卷组。
pvcreate /dev/sdf
将新硬盘sdf映射为物理卷
扩展卷组vg_test
vgextend vg_test /dev/sdf
扩展逻辑卷
分别为 lv_test lv_add增加10G空间 (lv_test的文件系统为ext4 lv_add的文件系统为xfs)
方法一:lvextend -L +10G /dev/vg_test/lv_test
此时逻辑卷lv_test新增加的10G空间还未生效
resize2fs /dev/vg_test/lv_test 来使其生效 (用于ext4文件系统)
lvextend -L +10G /dev/vg_test/lv_add
xfs_growfs /dev/vg_test/lv_add (用于xfs文件系统)
方法二:lvextend -L +10G -r /dev/vg_test/lv_test
lvextend -L +10G -r /dev/vg_test/lv_add
通过添加 -r 参数,使其立刻生效
可以看到,lv_test的大小由原来的2G变为12G,lv_add的大小由原来的15G变为20G
逻辑卷减小空间
将lv_test的空间大小减小到2G
首先卸载 lv_test
umount /mnt/lvm1/
扫描逻辑卷 lv_test
e2fsck -f /dev/vg_test/lv_test
减小文件系统的大小
resize2fs /dev/vg_test/lv_test 2G
减小逻辑卷的大小
lvreduce -L 2G /dev/vg_test/lv_test
注意上面的减小的空间是减小到多少,而不是减少了多少
重新挂载后,可以看到 lv_test的大小变为2G
lvm命令:
PV阶段 | |
pvcreate 将物理分区新建成PV | |
pvscan 参看系统中任何具有PV的磁盘 | |
pvs 显示系统中的PV的简略信息 | |
pvdisplay 显示系统中PV的详细信息。 | |
pvremove 将PV属性删除,使该磁盘不再具有PV属性 | |
VG阶段 | |
vgcreate 新建卷组 | |
-s 指定PE的大小,单位可以是mMgGtT,PE默认大小为4M | |
cgscan | |
vgs 显示卷组的简略信息 | |
vgdisplay 显示卷组的详细信息 | |
vgextend 在卷组中增加新的PV | |
vgreduce 减少卷组中的PV | |
vgchange 设置卷组是否启用 | |
vgremove 删除一个VG | |
LV阶段 | |
lvcreate 新建LV | |
-c 指定快照逻辑卷的单位的大小 | |
-C 设置或重置连续分配策略 | |
-i 指定条带数 | |
-I 指定每个条带的大小 | |
-l 指定分配给新逻辑卷的逻辑区段数,或者要用的逻辑区段的百分比 | |
-L 指定分配给新逻辑卷的硬盘大小 | |
-m 创建逻辑卷镜像 | |
-M 让次设备号一直有效 | |
-n 指定新逻辑卷的名称 | |
-p 为逻辑卷设置读写权限 | |
-r 设置预读扇区数 | |
-R 指定将镜像分成多大的区 | |
-s 创建快照逻辑卷 | |
-Z 将新逻辑卷的前1KB数据设置为0 | |
lvscan 查询系统上的LV | |
lvs 查看LV的简略信息 | |
lvdisplay 查看LV的详细信息 | |
lvextend 增加LV的容量 | |
lvreduce 减小LV的容量 | |
lvrenove 删除一个LV | |
lvresize 对LV进行容量大小的调整 |