df -th 显示容量与lvextend不一致是因为lvm仅更新逻辑卷大小,而xfs需用xfs_growfs /挂载点、ext4需用resize2fs /设备路径显式扩展文件系统,否则文件系统无法识别新增空间。

df -Th 显示的容量为什么和 lvextend 不一致
执行 lvextend 后,df -Th 仍显示旧容量,不是扩容失败,而是文件系统没同步扩展。LVM 只改了逻辑卷大小,XFS 或 ext4 还不知道“多出来的空间归我管”。必须显式调用扩容命令,否则磁盘空间就卡在那儿不动。
- XFS 文件系统必须用
xfs_growfs /(挂载点路径),不能对设备文件如/dev/mapper/centos-root操作 - ext4 必须用
resize2fs /dev/mapper/centos-root,且该设备必须已挂载(online resize 支持) - 如果
xfs_growfs报错 “cannot grow filesystem with proto version 5”,说明内核或 xfsprogs 版本太低,需升级
lsblk 和 lvs 输出怎么看哪个是“真实容量”
lsblk 显示的是块设备层级结构:物理卷 → 卷组 → 逻辑卷 → 挂载点,它反映 LVM 的当前分配状态;lvs 则只聚焦逻辑卷的 LV Size 字段,这个值才是 lvextend 真正生效后的逻辑卷大小——也就是“磁盘层容量”。但注意:它不等于可用空间,因为文件系统还没认领。
-
lsblk中centos-root行的 SIZE 列 =lvs输出的 LV Size = 逻辑卷实际大小(LVM 层) -
df -Th中 / 行的 Avail 列 = 文件系统真正能写入的空间(用户可见层) - 三者数值不同很正常,关键看
df -Th是否已更新 —— 这才是最终“真实容量详情”
扩容后验证是否彻底生效的三个必查项
别只信 df,要交叉确认三层状态是否全部对齐,否则可能漏掉某步导致空间“存在但不可用”。
- 运行
pvs && vgs && lvs:确认新 PV 已加入 VG,LV Size 已增大,且没有 “Alloc PE” 异常残留 - 运行
df -Th /:挂载点容量必须与lvs的 LV Size 一致(XFS 下允许误差 ≤1MB;ext4 通常完全相等) - 运行
xfs_info /(XFS)或tune2fs -l /dev/mapper/centos-root | grep "Block count"(ext4):直接读取文件系统元数据中的块总数,这是最底层的真实容量证据
为什么 df 显示容量变大了但 du 统计总和没增加
du -sh /* 总和远小于 df 可用空间,不是扩容出错,而是正常现象。原因包括:已删除但未释放的文件(进程仍打开)、.snapshots、journal 日志、reserved blocks(ext4 默认保留 5%)、以及 XFS 的实时配额或 reflink 共享块未被 du 计入。
- 检查大文件残留:
lsof +L1查看被删除但仍被进程占用的文件 - 清理 journal:
journalctl --disk-usage→journalctl --vacuum-size=500M - XFS 用户注意:
xfs_db -r -c "freesp -s" /dev/mapper/centos-root才能查真正空闲块数,比df更准
xfs_growfs 或 resize2fs —— 这步不做,扩容就只完成了一半。











