云盘扩容是什么
云盘支持在线扩容容量,但扩容发生在两层:控制台或 CLI 只是把块设备的容量变大,操作系统内的分区与文件系统不会自动跟上。所以完整流程是三步——扩云盘、扩分区、扩文件系统,最后用 df 验证。只做第一步就以为扩容失败,是最常见的误判。
基本信息
| 步骤 | 1) 控制台/CLI 扩容云盘 → 2) 实例内扩分区 → 3) 扩文件系统 |
|---|---|
| 命令 | growpart 扩分区;ext4 用 resize2fs;xfs 用 xfs_growfs |
| 限制 | 云盘只能扩容不能缩容;MBR 分区上限 2 TiB,超过需 GPT |
| 验证 | df -hT 看到容量已增加,同时确认挂载点未变 |
| 前提 | 云盘已挂载且文件系统无损坏;扩容前建议先做快照 |
典型使用场景
- 磁盘告警:根分区使用率超过警戒线,在线扩容避免停机
- 日志暴涨:/var/log 单独分区撑满,扩容后配合日志轮转
- 数据库数据量增长:原地扩数据盘,比重建实例再迁数据安全
- 容器节点:镜像与容器层占满空间,扩容或清理双管齐下
- 规划期预留:创建时按一年后容量估算,减少临时扩容次数
扩容完整流程
扩容完整流程
df -hT # 记录扩容前的容量与文件系统类型
# 1) CLI 把云盘扩到 200GiB
# 2) 实例内扩分区(把设备实际尺寸写进分区表)
growpart /dev/vdb 1
# 3) 扩文件系统:ext4 与 xfs 二选一
resize2fs /dev/vdb1 # ext4 用设备名
xfs_growfs /data # xfs 用挂载点
df -hT # 验证容量已生效文件系统扩容对照
| 文件系统 | 扩容命令 | 是否需卸载 | 备注 |
|---|---|---|---|
| ext4 | resize2fs | 不需要 | 在线扩容成熟,参数用设备名 |
| xfs | xfs_growfs | 不需要 | 只能扩不能缩,参数用挂载点 |
| btrfs | btrfs filesystem resize | 不需要 | 需指定 max 或具体尺寸 |
| NTFS/Windows | 磁盘管理扩展卷 | 不需要 | 需分区右侧有未分配空间 |
扩分区前务必确认设备名:/dev/vda 是系统盘、/dev/vdb 通常是数据盘,写错设备无法回退。稳妥做法是先给云盘打快照再操作。
如果分区用的是整块盘(无分区表,文件系统直接建在 /dev/vdb 上),则不需要 growpart,直接执行 resize2fs 或 xfs_growfs 即可。