ECS 云硬盘在线扩容实战:从控制台扩容到文件系统生效的完整闭环

举报
yd_239575663 发表于 2026/11/07 04:07:07 2026/11/07
【摘要】 一块 40 GB 数据盘用到 88%,本文记录 ECS 云硬盘从控制台扩容、growpart 扩分区到 resize2fs/xfs_growfs 扩文件系统的完整在线扩容流程,以及五个常见坑。

背景

一台跑了半年多的 ECS,挂了一块 40 GB 的数据盘 /dev/vdb,挂载在 /data,上面放着应用日志和上传文件。最近磁盘使用率一路涨到 88%,应用已经开始报“磁盘空间不足”。加盘、迁移数据都要停服务,成本太高;最直接的办法是给这块云硬盘在线扩容到 100 GB,全程不用关机、不用卸载。

扩容前的三件事

1. 先做备份。 任何涉及分区的操作,先给云硬盘打一个快照或做一次云硬盘备份,出问题能回滚。这是唯一不可省略的步骤。

2. 确认分区表和文件系统。

lsblk -f
fdisk -l /dev/vdb
df -hT /data

重点看两点:分区表是 MBR 还是 GPT;文件系统是 ext4 还是 XFS。MBR 单盘上限 2 TB,超过要转 GPT;ext4 和 XFS 扩容用的命令不一样。

3. 确认云硬盘状态。 控制台里磁盘状态要在“正在使用”,且没有正在进行的扩容、备份任务。

第一步:控制台扩容云硬盘

进入控制台 → 弹性云服务器 ECS → 云硬盘,找到目标磁盘,点“扩容”,把容量从 40 GB 改到 100 GB,确认后等待状态回到“正在使用”。

这一步只改了云侧的磁盘容量,操作系统里看到的磁盘变大了,但分区和文件系统还没变。

第二步:确认操作系统已识别新容量

lsblk

此时 /dev/vdb 应显示 100G,而 /dev/vdb1 仍是 40G。说明磁盘已扩,分区未扩。

第三步:扩容分区

用 growpart 扩分区(cloud-utils-guest-utils 包提供,未安装先装):

yum install -y cloud-utils-growpart   # CentOS / EulerOS
apt install -y cloud-guest-utils       # Ubuntu / Debian

growpart /dev/vdb 1
lsblk

执行后 /dev/vdb1 应变为 100G。注意 growpart 的参数是磁盘名加分区号,中间有空格;GPT 分区表执行时会提示修复,确认即可。

没有 growpart 时也可以用 parted 的 resizepart,但 growpart 对在线分区更友好,不用卸载文件系统。

第四步:扩容文件系统

ext4 和 XFS 的命令不同,别用错:

# ext4
resize2fs /dev/vdb1

# XFS
xfs_growfs /data

两条命令都不需要卸载,执行完立即生效。XFS 只能扩不能缩,扩之前想清楚容量。

第五步:验证

df -h /data
lsblk

/data 应显示 100G,可用空间同步增长。再写一个测试文件确认可写,顺手把磁盘使用率告警阈值同步调整,避免下次在 88% 才发现。

常见坑

  1. 扩完控制台,忘了扩分区和文件系统。 只做第一步,df 看到的容量不会变,三步缺一不可。
  2. MBR 分区想扩到 2 TB 以上。 MBR 有 2 TB 上限,超了要先转 GPT 再扩,别等扩到一半才发现。
  3. resize2fs 用在 XFS 上。 ext4 的命令对 XFS 无效,XFS 必须用 xfs_growfs,反过来也一样。
  4. 扩容前不做快照。 分区操作一旦失误,数据恢复的成本远高于一次快照。
  5. 以为必须重启。 在线扩容全程不需要重启实例,业务可以一直跑着。

小结

云硬盘在线扩容就四步:控制台扩容量 → growpart 扩分区 → resize2fs/xfs_growfs 扩文件系统 → df 验证。核心经验是:操作前先备份,操作中分清 MBR/GPT 和 ext4/XFS,操作后用 df 和实际写文件双重验证。按这个流程走,一块盘的扩容十分钟内可以完成,业务零中断。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。