lvdisplay和lvs显示的LV Size已变大是最直接判断依据,若未更新说明lvextend未成功;df -h验证文件系统是否同步扩容,二者差异5–10%属正常(因文件系统保留空间及元数据占用)。

lvdisplay 和 lvs 显示的 LV Size 是否已变大
这是最直接的判断依据:LV 本身没扩,后面所有操作都白搭。执行 lvdisplay /dev/vgname/lvname 或 lvs -o +seg_pe_ranges vgname,重点看 LSize 字段是否已更新为你期望的值(比如从 20G 变成 30G)。如果没变,说明 lvextend 没成功或根本没执行——常见原因是卷组(VG)没空闲空间,vgs 显示 VFree 为 0,此时必须先 pvresize 或 vgextend。
df -h 显示挂载点容量是否同步增长
df -h /mount/point 是最终验证标准。注意:df 显示的是文件系统大小,不是 LV 大小。两者不一致,就说明文件系统扩容这步漏了或失败了:
- ext4 等:检查是否执行了
resize2fs /dev/vgname/lvname;若报错The filesystem is already mounted,别慌——这是正常提示,它本就支持在线调整,继续执行即可 - xfs:必须用
xfs_growfs /mount/point(填挂载点,比如/),填设备路径如/dev/vgname/lvname会直接报Invalid argument - 如果
df -h容量没变,但lvdisplay已变大,基本锁定是这一步出问题
blockdev --getsize64 和 pvdisplay 确认底层设备是否真正扩容
云平台或虚拟机扩容磁盘后,内核可能还没感知到新尺寸,导致 PV、VG 都卡在旧容量。这时要逐层排查:
- 运行
blockdev --getsize64 /dev/sdX(比如/dev/sda),输出值应等于你设置的新容量(单位字节)。若仍是旧值,需重扫 SCSI 总线:echo 1 > /sys/class/scsi_device/0:0:0:0/device/rescan(主机编号按ls /sys/class/scsi_device/实际查) - 再跑
pvs,确认PE Total是否增加;若没变,必须补pvresize /dev/sdX - 最后
vgs看VFree是否随之上涨——这三步是 LV 扩容的前提链,断一环,后续全失效
为什么 df -h 和 lvdisplay 数值有时差 5–10%?
这不是错误,是正常现象。xfs/ext4 文件系统本身保留一部分空间(默认 5%)给 root 用户防止写满,且元数据结构(如 inode 表、日志区)也会占用少量块。所以 df -h 显示的“可用”空间永远略小于 lvdisplay 的 LV 大小。只要两者趋势一致(都变大了)、差值在合理范围(通常 ≤8%),就说明扩容已生效。硬要对齐数值反而可能误判。


















