首页/系统/Linux 运维命令速查/场景:LVM 在线扩容数据盘
磁盘与文件系统51 条

场景:LVM 在线扩容数据盘

数据盘快满,底层还有空间或已加新盘:按 PV → VG → LV → FS 四层顺序扩上去,全程在线不中断。

Linux 运维命令速查系统更新于 2026-10-13

这个场景要解决什么

数据卷快满,底层还有余量或刚加了新盘时,按物理卷、卷组、逻辑卷、文件系统四层顺序往上扩,全程在线不用停机。顺序不能乱:分区没变大,物理卷就扩不动;卷组没空间,逻辑卷就扩不了;文件系统没扩,df 看到的容量还是老样子。

基本信息

适用场景XFS 或 ext4 数据卷容量不足
目标在线扩容文件系统,业务不中断
工具链df、vgs、lvs、growpart、pvresize、vgextend、lvextend
前提先确认文件系统类型,XFS 只能增不能减

三条扩容路径

  • 卷组还有剩余空间:直接扩逻辑卷即可
  • 新加了物理盘:先分区做成物理卷,加入卷组再扩
  • 云盘已经在线扩容:先扩分区,再扩物理卷,然后扩逻辑卷与文件系统

先看现状

先看现状
df -h /data
vgs
lvs
lsblk -f

路径 A 卷组有余量

路径 A 卷组有余量
lvextend -r -L +100G /dev/vg0/data
df -h /data

路径 B 加了新盘

路径 B 加了新盘
parted -s /dev/sdc mklabel gpt
parted -s /dev/sdc mkpart primary 1MiB 100%
pvcreate /dev/sdc1
vgextend vg0 /dev/sdc1
lvextend -r -l +100%FREE /dev/vg0/data

路径 C 云盘已在线扩

路径 C 云盘已在线扩
growpart /dev/vdb 1
pvresize /dev/vdb1
lvextend -r -l +100%FREE /dev/vg0/data

四层扩的顺序

层要做的事命令
分区让分区覆盖新增容量growpart、parted
物理卷让物理卷认识新容量pvresize
卷组把新物理卷加入卷组vgextend
逻辑卷从卷组里多切出空间lvextend
文件系统让文件系统用满新容量lvextend 加 -r 自动完成
加 -r 让 lvextend 一次性把文件系统也扩了,XFS 与 ext4 都支持在线扩大,不需要停机。
缩容是反方向且必须离线进行,XFS 根本不支持缩小。容量规划要按只增不减来做,提前留出余量。
扩容前先确认底层确实还有容量:云盘要在控制台先把盘扩掉,物理盘要确认分区表允许扩展。底层没有空间时,任何扩卷动作都会以空间不足告终。
扩完用 df -h 与 lsblk 双向核对:df 看文件系统可用空间,lsblk 看块设备大小,两者都变大才算真正完成。

扩容中的异常对照

现象含义下一步
报空间不足卷组剩余容量不够先加物理卷扩展卷组
容量命令显示已扩但使用率不变漏了文件系统这一层按文件系统类型执行扩容
对 XFS 缩容报错该文件系统不支持缩小改为新建卷迁移数据
物理卷扩展无效分区表未先扩大或内核未刷新先改分区再刷新内核视图
扩容中途中断某一层已改另一层未跟上按物理卷到文件系统的顺序逐层核对
云主机上磁盘扩容后,容量要依次被虚拟平台、内核分区视图、物理卷三层认到才算真正变大:先确认内核看到新容量,再调整分区,再扩展物理卷与卷组,最后才是逻辑卷与文件系统。顺序颠倒会在中间某层卡住,看起来像扩容命令不生效。

易错点

  • 漏了扩分区就直接 pvresize:分区没变大,物理卷也扩不动,最终会报空间不足
  • 卷组容量不足时直接扩逻辑卷,会失败或只扩到很小,先看 vgs 的剩余
  • 只扩了逻辑卷没扩文件系统,df 显示不变,容易被误认为没生效
  • 对 XFS 尝试缩小会直接报错,缩容需求要在规划阶段避免
  • 扩容前没确认文件系统健康,带着错误状态扩容易把小问题放大
  • 扩容过程中不做记录:中间层已改而外层未跟上的状态最难排查,动手前把每层容量记下来,出问题能立刻定位停在哪一层

数据来源与参考

  • man 8 lvextend
  • man 8 pvresize
  • man 1 growpart(cloud-utils)
  • Red Hat LVM 指南

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌