Linux LVM 逻辑卷管理:如何动态扩展存储空间实战

作者:袖梨 2026-07-02
Linux LVM动态扩容需严格按PV→VG→LV→文件系统顺序执行:先用pvs/vgs确认空闲PE,VG不足则fdisk+pvcreate+vgextend添加新PV;再lvextend扩展LV;最后根据ext4(resize2fs)或xfs(xfs_growfs挂载点)同步文件系统,缺一不可。

Linux LVM 实现动态扩展存储空间,核心在于三层结构的协同操作:先确保底层有资源(PV→VG),再分配给上层逻辑卷(LV),最后让文件系统“感知”到新空间。整个过程支持在线执行,业务不中断,但每一步都必须按逻辑顺序进行,跳步或遗漏会导致扩容无效。

确认当前LVM状态和空闲资源

动手前必须清楚“仓库里还有没有砖”,否则 lvextend 会直接报错。重点看三处:

  • pvdisplaypvs:确认物理卷是否就绪,PE 总数和空闲数是否足够
  • vgdisplayvgs -o +vg_free:查看目标卷组的 Free PE / Size,为0就得加新硬盘
  • df -hT /mount/point:明确挂载点的文件系统类型(ext4 还是 xfs),这决定后续用哪个命令同步

扩展卷组(VG)——往“仓库”里加新砖

如果 vgdisplay 显示 Free PE 为 0,说明现有 VG 已满,必须引入新物理设备。常见做法是添加一块未使用的硬盘(如 /dev/sdb):

  • fdisk /dev/sdb 创建一个主分区(如 /dev/sdb1),并将类型设为 8e(Linux LVM)
  • 运行 partprobe 让内核立即识别新分区
  • pvcreate /dev/sdb1 将其标记为物理卷
  • vgextend vg_name /dev/sdb1 把新 PV 加入目标卷组

执行完再跑一次 vgs,Free PE 数值应明显增加。

扩展逻辑卷(LV)——从仓库里多划一块地

LV 扩容本身不涉及文件系统,只是调整设备容量。支持两种常用方式:

  • 按增量扩:lvextend -L +5G /dev/vg_name/lv_name(加5GB)
  • 按剩余全扩:lvextend -l +100%FREE /dev/vg_name/lv_name(用光VG所有空闲PE)

注意:lvextend 不报错 ≠ 扩容成功,此时 df -h 仍显示原大小,因为文件系统还没更新。

同步文件系统——让系统真正用上新空间

这一步最容易被跳过,却是扩容生效的关键。处理方式严格按文件系统区分:

  • ext4/ext3:运行 resize2fs /dev/vg_name/lv_name(直接传 LV 设备路径,支持在线)
  • xfs:运行 xfs_growfs /mount/point(必须传挂载点,比如 xfs_growfs /data,不能传 /dev/...)

执行后再次 df -h,就能看到可用空间已更新。

相关文章

精彩推荐