云硬盘控制台从 20G 扩到 100G,lsblk 中整盘已经变大,分区、LVM 逻辑卷或文件系统却仍停在旧容量;最典型的后果是 df -h 显示可用空间几乎没增加。这通常不是云硬盘扩容失败,而是新增空间没有沿着“整盘分区LVM文件系统”逐层传递。
如果你正在选机器,或者想先把线路和配置跑通再谈长期方案,可以先看看这几家的线路说明和技术参数:raksmart(全球云服务器),先看清带宽线路、流量策略和退款条款,再决定要不要迁。
云硬盘对应操作系统里的块设备,如 /dev/vda;分区受分区表约束,整盘变大会改变设备上限,却不会自动移动分区尾端;LVM把物理卷空间汇入卷组,再切给逻辑卷;文件系统只使用分区或逻辑卷提供的块。任意一层仍是旧尺寸,上层容量就不会增加。

假设整盘为 100G,而 /dev/vda1 仍为 20G,先查分区表扩展;分区已是 100G,但 pvs 仍为 20G,说明 LVM 物理卷没有纳入新增扇区;逻辑卷未变,则空间可能仍留在卷组;逻辑卷已变而 df 不变,才轮到检查文件系统扩容。实际环境也可能没有分区,或 LVM 直接建在整盘上,必须先看拓扑,不能套固定步骤,LVM在线扩容也不能跳过前后环节。
先做只读核验:lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS 查看整盘、分区、逻辑卷与挂载点;pvs、vgs、lvs 确认物理卷、卷组空闲区和逻辑卷尺寸;用 findmnt 核对挂载来源,以 df -hT 确认文件系统实际容量。结果要按父子关系对照,不能只看某一行 SIZE。

先排除“看错设备”:云盘可能映射为 /dev/vda、/dev/sda 或 NVMe 设备,应结合 lsblk -d -o NAME,SIZE,MODEL,SERIAL 与控制台核对,勿扩错盘。再检查文件系统类型,ext4 与 XFS 的在线扩展方式不同,也不能用格式化代替扩容。生产盘写入前要记录原分区边界、卷组和逻辑卷信息,并优先创建云盘快照;若使用 LVM 快照回退,先确认它覆盖目标逻辑卷。若需持续观察容量水位,随身服务器可汇总主机磁盘告警,但扩容结果仍须逐层验证。
云控制台的“云硬盘扩容”通常只改变虚拟块设备的底层容量,不会自动更新分区表、分区、LVM 或文件系统。完整链路是:磁盘→分区表→分区→PV→VG→LV→文件系统→挂载点。先用 lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT 定位容量停在哪一层;只查看 df -h,无法判断问题发生于磁盘、分区还是文件系统。
分区表后接 LVM 时,先用 parted /dev/vda unit s print 核对分区边界,再执行 growpart /dev/vda 1,或使用 parted 的 resizepart 完成分区表扩展;修改前可用 sfdisk -d /dev/vda > /root/vda-table.bak 备份。随后执行 pvresize /dev/vda2,接着进行LVM在线扩容:运行 lvextend -L +20G /dev/mapper/vg0-rootlv,ext4 使用 resize2fs,XFS 使用 xfs_growfs / 完成文件系统扩容。没有 LVM 时,直接扩展对应分区即可。

最容易踩的坑包括:设备名或分区号写错;分区扩大后忘记执行 pvresize;LV 扩大后忘记扩展文件系统;对 XFS 使用 resize2fs;只处理根 LV,却忽略其他挂载点;在多设备、LVM 快照、RAID 或加密环境中直接操作底层设备。根分区无法卸载时,应优先采用工具支持的在线流程,必要时安排重启。
lsblk、df -hT、pvs、vgs、lvs,并备份分区表及 LVM 元数据。echo 1 > /sys/class/block/vda/device/rescan。parted print 核对分区表,扩展目标分区,并用 lsblk 验证分区已经变大。pvresize 后检查 PV、VG、LV,确认空间来源正确后再运行 lvextend。resize2fs 或 xfs_growfs,注意 XFS 必须指定实际挂载点。lsblk、df -hT、lvs,并验证业务读写、挂载及重启后的容量。因此,容量层级核验应贯穿整个过程:底层变大只是起点,分区、LVM、文件系统和挂载点逐层对齐,才算真正完成扩容。任何一层仍显示旧值,都应回到该层处理,避免用格式化或重建文件系统掩盖问题。