云盘从100GB扩到200GB后,控制台显示成功,df -h /里的根分区却仍是48GB。容量可能卡在块设备、分区、LVM卷或ext4文件系统,盲目重启或卸载根盘,反而会扩大停机。
如果你正在选机器,或者想先把线路和配置跑通再谈长期方案,可以先看看这几家的线路说明和技术参数:serverfield(AI云基础设施),先看清带宽线路、流量策略和退款条款,再决定要不要迁。
排障应沿云盘、块设备、分区、LVM卷、文件系统逐层确认。下面拆开扩容链路,并给出低中断检查与回退边界。
一、从云盘到ext4:四层扩容链路并不等价
第一层是云盘与块设备。控制台扩的是虚拟磁盘;已挂载盘要重扫总线或NVMe命名空间,新增盘则需云盘热挂载并确认设备名、挂载目录。lsblk仍显示旧容量,先修重扫;别把“已挂载”当成“容量已进内核”。

第二层是分区调整。根分区在磁盘分区上时,先扩大分区,再用partprobe或partx -u完成分区表重读;若LVM物理卷直接建在整盘上,则跳过。普通ext4分区无需LVM。若重读提示busy,不要强卸根分区。
第三层是LVM逻辑卷扩容。底层容量增加后,先用pvresize让PV感知新空间,再用lvextend扩LV。最后一层是文件系统在线扩容:ext4根卷可在线执行resize2fs,再用df -hT /核验。XFS也能在线增长但不能在线缩小,不能照搬流程。
二、从48GB停住反查:按层判断,不做盲目重启
判断先用lsblk -f对照整盘、分区、PV、LV与挂载点,再看pvs、vgs、lvs和df -hT /。整盘未变查重扫;整盘变而分区未变查分区与分区表;分区变而PV未变先扩PV;LV变而df未变,再查ext4块设备和resize2fs结果。

业务低中断检查清单:先记录旧容量、设备映射和挂载关系,分区表写入前创建同可用区快照。每次只推进一层,监控阈值留有余量,禁用强制参数掩盖报错。完成后检查根目录读写、业务I/O延迟、磁盘队列和文件系统日志。
故障回滚:重扫失败不写盘,修复识别即可;分区异常用快照恢复并重验分区表;PV或LV扩展异常应停止后续步骤,不可直接反向缩容。ext4增长后也不能直接缩回。回退快照前须停写并确认应用一致性。ServLlama可辅助查看资源状态,扩容证据仍要留档。
分区表重读与 LVM 扩容衔接
分区边界调整完成后,内核仍可能保留旧的分区大小,这正是块设备已变、挂载分区却未变的原因。此时要触发分区表重读:用 partprobe /dev/vda 刷新分区,根分区繁忙时可尝试 partx -u /dev/vda 1,之后用 udevadm settle 等待设备节点稳定。“busy”提示不一定代表失败,应结合 lsblk 与后续 PV 容量判断;确认磁盘已同步后再决定是否重启。
分区更新后,还要让新增空间逐层进入 LVM 逻辑卷扩容链路:先对 PV 所在分区执行 pvresize /dev/vda1,再运行 lvextend -l +100%FREE $LV 扩大逻辑卷,最后扩展其上的文件系统。设 LV=/dev/vg/root 时,ext4 应执行 resize2fs $LV。此时该路径才是真正的 ext4 块设备,resize2fs 支持挂载状态下的文件系统在线扩容,通常无需卸载根目录。

在线扩容中的易错点
常见误区包括:只扩大云盘而未更新分区;只扩逻辑卷、不扩文件系统;把 df 的旧结果误判为失败;把云盘热挂载当成原根盘扩容。热挂载一块空盘只会新增块设备,不会扩大既有 PV。新盘首次接入时,SCSI 环境可运行 rescan-scsi-bus.sh 触发扫描,而扩展原盘仍需走“分区LVM文件系统”链路。
文件系统类型也必须匹配:根目录直接位于分区时,对 /dev/vda1 执行 resize2fs;XFS 使用 xfs_growfs /,且不能在原地缩小。精简池、快照和配额环境还要检查数据池余量,+100%FREE 不等于物理盘全部剩余空间都可立即分配;也不要对 LV 和底层分区重复执行 resize2fs。
可执行检查清单:①创建快照并确认回滚路径;②用 lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS 核对块设备、分区、LV 三层容量;③确认分区表重读成功;④依次运行 pvresize、lvextend,再按类型执行 resize2fs 或 xfs_growfs;⑤用 pvs、vgs、lvs、df -hT / 逐层核验;⑥检查 dmesg -T 中是否有 I/O、ext4 或 XFS 错误,并保存扩容配置。


喜欢
顶
难过
囧
围观
无聊





