linux动态扩容lvm逻辑卷需三步:先确保卷组有空闲空间(vgs检查,不足则vgextend或pvresize),再lvextend扩展lv容量,最后用resize2fs(ext4)或xfs_growfs(xfs)同步文件系统,全程可在线执行。

Linux 中动态扩容 LVM 逻辑卷,核心是三步连贯操作:先让卷组有可用空间,再扩大逻辑卷设备容量,最后让文件系统识别并使用新增空间。全程支持在线执行,无需卸载或重启服务。
确认卷组(VG)有空闲空间
这是扩容的前提。运行 vgs 查看各卷组的 Free PE / Size 是否大于 0:
- 若显示 Free 为 0,说明 VG 没有剩余空间,需先扩展 VG:用 vgextend 加入新物理卷(如
vgextend vg-data /dev/sdc1); - 若刚扩容了底层磁盘(如云盘从 100G 调到 200G),但
lsblk仍显示旧大小,需先触发内核重读:echo 1 > /sys/class/block/vdb/device/rescan(把 vdb 换成实际设备名),再执行 pvresize /dev/vdb; - 执行后用 pvs 确认 PV 的 PSize 和 Free PE 已更新。
扩展逻辑卷(LV)设备大小
这一步只改变 LV 的“容器容量”,不涉及文件系统:
- 把 VG 中所有空闲空间全加给 LV:
lvextend -l +100%FREE /dev/vg-name/lv-name; - 指定增加固定大小(如 10G):
lvextend -L +10G /dev/vg-name/lv-name; - 注意:-L 按字节单位(支持 K/M/G/T),-l 按 PE 数量,二者不可混用;
- 执行后用 lvs 或 lvdisplay /dev/vg-name/lv-name 验证 LV Size 是否已增大。
同步扩展对应文件系统
LV 变大了,挂载点空间不会自动变——必须刷新文件系统,且命令因类型而异:
- 对于 ext4:运行
resize2fs /dev/vg-name/lv-name(传设备路径,支持在线); - 对于 XFS:运行
xfs_growfs /mount/point(传挂载点路径,不是设备名,也支持在线); - 切勿交叉使用:xfs 不能用 resize2fs,ext4 不能用 xfs_growfs,否则报错甚至损坏数据;
- 完成后用 df -hT 查看挂载点容量是否更新。
不复杂但容易忽略











