VPS磁盘扩容后空间没增加?从云盘、分区到文件系统逐层确认

云盘、分区/LVM、文件系统是三层容量,少做一层 df -h 就不会变化。
发布于
3

VPS磁盘扩容通常要经过三层:云平台块设备容量变大、操作系统分区或LVM卷变大、文件系统扩展到新的边界。只完成第一层时,lsblk可能看到设备变大,但 df -h仍显示旧容量;如果分区变大而文件系统没扩展,应用同样看不到新增空间。

扩容前先确认设备与备份

lsblk -o NAME,TYPE,SIZE,FSTYPE,MOUNTPOINTS
findmnt -no TARGET,SOURCE,FSTYPE,OPTIONS /
df -hT

记录根盘、数据盘、分区号、文件系统类型和是否使用LVM。对包含系统或数据库的数据盘,先完成可恢复备份或云平台快照,并确认服务商的扩容操作不可逆边界。不要根据设备名猜测目标盘,尤其是在多盘、NVMe或云主机热插拔环境中。

第一层:确认云平台与内核看到的新容量

完成云平台扩容后,重新运行 lsblk,必要时查看内核块设备信息:

lsblk
cat /sys/class/block/<device>/size
dmesg -T | tail -n 100

如果设备本身仍是旧大小,先处理云平台任务、磁盘挂载关系或实例重扫问题;此时不要继续对分区执行扩展命令。

第二层:非LVM分区扩展

对普通分区,先确认分区位于目标设备末尾且没有未分配空间被其他分区占用。常见流程是使用发行版提供的 growpart 或等效分区工具扩展指定分区,然后重新读取分区表。命令中的设备和分区号必须替换为现场确认的值:

sudo growpart /dev/<device> <partition-number>
lsblk

分区调整完成后,df -hT仍可能不变,因为文件系统还没有扩展。不要把分区设备和整块磁盘混用,也不要在存在相邻分区时盲目扩大。

第三层:按文件系统扩展

文件系统工具取决于类型:

  • ext4:确认分区已变大后使用对应的 resize2fs
  • XFS:在已挂载目标上使用 xfs_growfs 指定挂载点。
  • Btrfs:按其子卷和设备布局执行 btrfs filesystem resize 等操作。

不要把ext4工具用于XFS,也不要复制网上命令而跳过文件系统类型确认。根分区是否支持在线扩展、工具是否需要卸载,应以发行版和文件系统文档为准。

LVM场景要多一层

pvs
vgs
lvs -o lv_name,vg_name,lv_size,devices

LVM通常需要依次确认物理卷、卷组和逻辑卷边界,再扩展逻辑卷和文件系统。可以选择一次性扩展逻辑卷与文件系统,也可以分两步完成,但每一步都要记录前后容量。不要对错误的卷组或逻辑卷执行 lvextend,也不要把快照空间与数据卷空间混为一谈。

扩容后的验收

  1. lsblk确认设备与分区大小。
  2. LVM环境用 pvs/vgs/lvs确认各层边界一致。
  3. df -hT确认文件系统可用容量增加,df -i确认inode情况没有误判。
  4. 用业务服务账号在真实数据目录创建并删除一个小测试文件。
  5. 检查数据库、容器卷、备份任务和监控是否恢复正常,并保留扩容前后记录。

为什么“重启一下”不是万能答案

重启可能让内核重新读取设备容量,但不会自动替你扩展分区、LVM或文件系统;如果底层操作未完成,重启还会增加服务中断。正确顺序是先确认云盘、再确认分区/LVM、最后扩展文件系统,完成每层验收后才恢复业务负载。

常见问题(FAQ)

为什么lsblk变大了,df -h却没有变化?
lsblk主要反映块设备或分区边界,文件系统可能仍是旧大小。需要在确认分区或LVM扩展后,再使用匹配的文件系统工具扩展。
扩容前一定要做快照吗?
对根盘、数据库或重要数据,建议先完成可恢复备份或快照,并确认服务商的快照可用性;扩容操作本身不替代备份。
ext4和XFS的扩容命令可以通用吗?
不能。ext4通常使用resize2fs,XFS使用xfs_growfs,Btrfs又有自己的流程;必须先确认实际文件系统类型和挂载状态。
LVM扩容最容易出错的地方是什么?
把错误的物理卷、卷组或逻辑卷当成目标,或跳过容量核对直接执行lvextend。应先用pvs、vgs、lvs建立层级关系,再逐步记录变化。

本文由作者原创/授权发布于极跃圈(jiyueip.com)未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 讨论
热门最新
总结
暂无总结
0 / 600