LVM即逻辑卷管理,是Linux系统中用于灵活管理磁盘空间的技术,它通过将物理磁盘封装为物理卷,再组合成卷组,最后划分出逻辑卷供系统使用,支持动态调整空间大小,无需重新分区即可完成磁盘扩容或缩容操作。

LVM核心概念说明
在使用LVM命令前,需要先了解三个核心组件的作用:
- 物理卷(PV):是LVM的最底层存储单元,通常是普通的磁盘分区或者整块物理磁盘,需要先初始化为物理卷才能被LVM识别。
- 卷组(VG):由一个或多个物理卷组成,是存储资源的池化单元,所有物理卷的空间会汇总到卷组中统一管理。
- 逻辑卷(LV):从卷组中划分出的可使用的存储单元,相当于传统意义上的分区,可以格式化后挂载到系统目录使用。
物理卷相关操作命令
创建物理卷
使用pvcreate命令可以将指定的磁盘分区或整块磁盘初始化为物理卷,执行前需要确保目标磁盘没有被挂载使用。
# 将/dev/sdb1分区初始化为物理卷 pvcreate /dev/sdb1 # 将整块/dev/sdc磁盘初始化为物理卷 pvcreate /dev/sdc # 查看当前系统所有物理卷信息 pvdisplay
删除物理卷
如果物理卷不再需要,可以使用pvremove命令删除,删除前需要确保该物理卷没有属于任何卷组。
# 删除/dev/sdb1物理卷 pvremove /dev/sdb1
卷组相关操作命令
创建卷组
使用vgcreate命令可以将一个或多个物理卷组合成卷组,创建时可以指定卷组的名称。
# 创建名为vg_data的卷组,包含/dev/sdb1和/dev/sdc两个物理卷 vgcreate vg_data /dev/sdb1 /dev/sdc # 查看当前系统所有卷组信息 vgdisplay
卷组扩容
当卷组空间不足时,可以使用vgextend命令添加新的物理卷到已有卷组中。
# 将新的物理卷/dev/sdd添加到vg_data卷组 vgextend vg_data /dev/sdd
卷组缩容
如果需要从卷组中移除某个物理卷,可以使用vgreduce命令,移除前需要确保该物理卷上没有已分配的逻辑卷空间。
# 从vg_data卷组中移除/dev/sdd物理卷 vgreduce vg_data /dev/sdd
逻辑卷相关操作命令
创建逻辑卷
使用lvcreate命令从卷组中划分空间创建逻辑卷,需要指定逻辑卷的大小、名称和所属的卷组。
# 从vg_data卷组创建大小为10G,名为lv_storage的逻辑卷 lvcreate -L 10G -n lv_storage vg_data # 查看当前系统所有逻辑卷信息 lvdisplay
逻辑卷扩容
当逻辑卷空间不足时,可以使用lvextend命令扩容,扩容后还需要扩展文件系统才能生效。
# 给lv_storage逻辑卷增加5G空间 lvextend -L +5G /dev/vg_data/lv_storage # 如果是ext4文件系统,执行以下命令扩展文件系统 resize2fs /dev/vg_data/lv_storage # 如果是xfs文件系统,执行以下命令扩展文件系统 xfs_growfs /dev/vg_data/lv_storage
逻辑卷缩容
逻辑卷缩容需要先卸载逻辑卷,检查文件系统,再缩小文件系统大小,最后缩小逻辑卷大小,操作前建议备份数据。
# 卸载逻辑卷 umount /dev/vg_data/lv_storage # 检查ext4文件系统 e2fsck -f /dev/vg_data/lv_storage # 将ext4文件系统缩小到8G resize2fs /dev/vg_data/lv_storage 8G # 缩小逻辑卷到8G lvreduce -L 8G /dev/vg_data/lv_storage # 重新挂载逻辑卷 mount /dev/vg_data/lv_storage /mnt/storage
逻辑卷格式化与挂载
创建好的逻辑卷需要格式化文件系统后挂载到系统目录才能使用,操作方式和普通分区一致。
# 将逻辑卷格式化为ext4文件系统 mkfs.ext4 /dev/vg_data/lv_storage # 创建挂载目录 mkdir -p /mnt/storage # 临时挂载逻辑卷 mount /dev/vg_data/lv_storage /mnt/storage # 配置开机自动挂载,编辑/etc/fstab文件添加以下内容 # /dev/vg_data/lv_storage /mnt/storage ext4 defaults 0 0
操作注意事项
- 操作LVM命令前建议确认磁盘数据已经备份,避免误操作导致数据丢失。
- 缩容逻辑卷时,缩小后的空间不能小于当前已使用的空间,否则会导致文件系统损坏。
- xfs文件系统只支持扩容,不支持缩容,如果需要缩小xfs逻辑卷,只能先备份数据,删除逻辑卷后重新创建更小的逻辑卷再恢复数据。
- 物理卷、卷组、逻辑卷的删除操作需要按照从上层到下层的顺序执行,先删除逻辑卷,再删除卷组,最后删除物理卷。