LVM提供在线扩容、新增PV扩容、ext4离线缩容、XFS不可缩容及PV迁移移除五种容量调整方案。具体包括:一、用lvextend和resize2fs/xfs_growfs在线扩容;二、添加新PV后扩展VG再扩容LV;三、ext4需umount、e2fsck、resize2fs、lvreduce四步离线缩容;四、XFS不支持缩容,须备份、删除、重建、恢复;五、通过pvmove、vgreduce、pvremove迁移并移除PV。

当Linux系统中逻辑卷空间不足或需要调整大小时,LVM提供了在线扩容与缩容能力。以下是针对不同场景的多种LVM容量调整方案:
一、逻辑卷在线扩容(基于已有空闲PE)
该方法适用于卷组中尚有未分配物理扩展(PE)的情况,可直接扩展逻辑卷并同步增大文件系统,无需卸载分区。
1、使用lvdisplay确认目标逻辑卷路径及所在卷组剩余PE数量。
2、执行lvextend -l +100%FREE /dev/vg_name/lv_name将卷组全部空闲PE分配给指定逻辑卷。
3、运行resize2fs /dev/vg_name/lv_name(ext4)或xfs_growfs /mount/point(XFS)扩展文件系统至新尺寸。
二、逻辑卷扩容(需新增物理卷)
当卷组空间已耗尽时,需先添加新物理设备并扩展卷组,再进行逻辑卷扩容。
1、使用fdisk /dev/sdX创建类型为8e(Linux LVM)的分区,并执行partprobe刷新分区表。
2、执行pvcreate /dev/sdX1将新分区初始化为物理卷。
3、运行vgextend vg_name /dev/sdX1将该物理卷加入目标卷组。
4、调用lvextend -L +5G /dev/vg_name/lv_name增加5GB逻辑卷空间。
5、根据文件系统类型执行resize2fs或xfs_growfs完成文件系统伸展。
三、逻辑卷离线缩容(ext4文件系统)
ext4支持安全缩容,但必须先卸载逻辑卷并强制检查文件系统,确保数据一致性后再缩减底层块设备。
1、执行umount /mount/point卸载目标逻辑卷挂载点。
2、运行e2fsck -f /dev/vg_name/lv_name强制执行文件系统完整性校验。
3、使用resize2fs /dev/vg_name/lv_name 10G将文件系统收缩至10GB(须小于目标LV最终大小)。
4、执行lvreduce -L 10G /dev/vg_name/lv_name同步缩小逻辑卷容量。
5、再次运行e2fsck -f /dev/vg_name/lv_name验证收缩后文件系统状态。
6、重新挂载逻辑卷:mount /dev/vg_name/lv_name /mount/point。
四、逻辑卷缩容(XFS文件系统)
XFS不支持缩容操作,任何尝试缩小XFS文件系统的命令均会失败。若需减少XFS逻辑卷占用空间,必须备份数据、删除逻辑卷、重建更小尺寸的LV,并恢复数据。
1、将XFS逻辑卷上的所有数据完整备份至外部存储设备。
2、卸载逻辑卷:umount /mount/point。
3、执行lvremove /dev/vg_name/lv_name彻底删除原逻辑卷。
4、使用lvcreate -L 8G -n lv_name vg_name创建新尺寸逻辑卷。
5、以mkfs.xfs /dev/vg_name/lv_name格式化新逻辑卷。
6、挂载新LV并恢复备份数据。
五、卷组内物理卷迁移与移除
当需下线某块磁盘(如/dev/sdb)时,须先将其中所有PE迁移至其他物理卷,再从卷组中剥离该设备。
1、确认目标物理卷是否被逻辑卷直接使用:pvs -o+pv_used。
2、若存在已分配PE,执行pvmove /dev/sdb1自动将所有数据迁移至同卷组内其他空闲物理卷。
3、运行vgreduce vg_name /dev/sdb1从卷组中移除该物理卷。
4、最后执行pvremove /dev/sdb1清除LVM元数据标记。










