华为云云硬盘 EVS 扩容实战:先快照兜底,再扩分区与文件系统的完整流程

举报
欣然过了 发表于 2026/10/29 08:47:24 2026/10/29
【摘要】 结合日常运维经验,梳理华为云 EVS 云硬盘扩容前的检查、快照兜底、控制台扩容,以及在 Linux 上用 growpart、resize2fs、xfs_growfs 扩展分区和文件系统的完整步骤,并总结常见坑。

业务跑了一段时间后,云服务器的数据盘用满几乎是必然会遇到的问题:日志越积越多,数据库文件越来越大,某天监控一报警,磁盘使用率已经逼近上限。华为云的云硬盘 EVS 支持扩容,但很多同学以为在控制台点一下“扩容”就结束了,结果登录系统一看,容量还是老样子。本文把整个流程拆成“扩容前检查、快照兜底、控制台扩容、系统内扩展、验证与收尾”五步,并附上常见坑。文中涉及的支持范围、限制条件和计费规则,请以你所在区域控制台和官方文档的最新说明为准。

一、先搞清楚扩容到底分几层

云硬盘扩容其实是三层容量依次变大的过程,缺一层,应用都看不到新增空间:

  • 云硬盘本身:在控制台把磁盘从当前容量扩到更大的容量,这一步由云平台完成。需要注意,云硬盘只能扩大,不能缩小,所以目标容量要想清楚,不要为了图省事一次扩得过大。
  • 分区:如果磁盘上有分区表和分区,分区的大小不会自动跟着变,需要手动扩展分区。如果直接把整块盘格式化成文件系统而没有分区,则这一步可以跳过。
  • 文件系统:分区变大后,ext4、xfs 等文件系统还要执行对应的扩展命令,df 看到的容量才会增加。

所以“控制台显示扩容成功,系统里容量没变”大多不是故障,而是后两层还没做。

二、扩容前的检查清单

  • 确认要扩的是系统盘还是数据盘,以及云服务器当前是运行中还是已关机。是否支持在线扩容(不停机),与云服务器和磁盘的类型、操作系统版本有关,具体以控制台提示和官方文档为准;条件不确定时,选择业务低峰期并提前通知相关方。
  • 在系统里用 lsblk 和 df -hT 记录当前状态:设备名、分区、挂载点和文件系统类型。设备名以 lsblk 的实际输出为准,不要照抄别人的 /dev/vdb。
  • 确认文件系统类型。ext4 和 xfs 的扩展命令不同,用错命令会直接报错。
  • 确认云硬盘没有处于其他变更操作中,例如正在做快照回滚、正在挂载或卸载。
  • 了解计费变化。扩容后磁盘按新容量计费,包年包月磁盘扩容可能涉及补差价,具体规则以价格详情和订单页面为准。
lsblk
df -hT
mount | grep -E '^/dev/'

三、动手之前先打一个快照

扩容本身通常是安全的,但分区表和文件系统的操作属于变更类动作,一旦手滑(比如对错了设备、分区起始位置被改动),后果可能很严重。成本最低的保险就是在操作前给这块云硬盘创建一个快照。

  • 在控制台云硬盘列表里找到目标磁盘,创建快照,名称里写清楚日期和用途,例如“扩容前-数据盘-日期”。
  • 等快照状态变为可用后再继续。快照是否能覆盖你的一致性要求,取决于业务:数据库类应用最好先做一次应用层的刷盘或短暂停写,避免快照里留下不一致的数据。
  • 快照可以用来把数据盘回滚到创建快照时的状态。回滚会覆盖当前数据,使用前务必确认,并且要清楚回滚是针对源云硬盘进行的。
  • 确认扩容一切正常、业务验证通过后,再根据保留策略决定快照保留多久,不要无限期堆积,快照同样会产生费用,具体以官方计费说明为准。

四、在控制台执行扩容

  • 进入云硬盘列表,找到目标磁盘,选择“扩容”。
  • 填写扩容后的目标容量,注意它必须大于当前容量,并且不能超过该类型磁盘的容量上限,上限请以控制台提示为准。
  • 确认订单并提交,等待磁盘状态恢复为正常。此时在控制台能看到新容量,但系统里还看不到。

五、在 Linux 系统内扩展分区和文件系统

下面以一块有单个分区的数据盘为例,假设 lsblk 显示磁盘是 /dev/vdb,分区是 /dev/vdb1。示例中的设备名仅作演示,请务必替换成你自己的。

第一步,刷新并确认磁盘容量已经被系统识别:

lsblk
# 看 /dev/vdb 的 SIZE 是否已经变大,而 /dev/vdb1 还是旧大小

第二步,扩展分区。cloud-utils-growpart 提供的 growpart 命令可以在不改变分区起始位置的情况下扩大分区,注意磁盘名和分区号之间有一个空格:

# 如果提示命令不存在,先安装 growpart(包名因发行版而异)
sudo growpart /dev/vdb 1
lsblk

第三步,按文件系统类型扩展文件系统:

# ext4:对分区设备执行
sudo resize2fs /dev/vdb1

# xfs:对挂载点执行,而不是设备
sudo xfs_growfs /data

第四步,验证:

df -hT /data
lsblk

如果磁盘使用的是 LVM,则流程多一层:先 pvresize 让物理卷变大,再 lvextend 扩展逻辑卷,最后扩展文件系统。可以用 lvextend 的 -r 参数一并处理文件系统。LVM 场景更要提前确认卷组和逻辑卷的名称,避免对错对象。

Windows 云服务器则是在“磁盘管理”里对目标磁盘选择“扩展卷”,把新增的未分配空间并入原有卷,不需要命令行。

六、常见的坑

  • 容量没变化:绝大多数是忘了扩分区或文件系统,按上面的第二步和第三步补上即可。
  • growpart 报错:常见原因是磁盘上没有空闲空间、设备名或分区号写错、磁盘还没被系统识别到新容量。先用 lsblk 对照确认。
  • xfs_growfs 对设备执行:xfs 要对挂载点执行,设备名会提示错误。resize2fs 则相反,对设备执行。
  • 系统盘和数据盘混淆:系统盘的根分区扩展流程和数据盘类似,但风险更高,务必先做快照,并避开业务高峰。
  • 想缩容:云硬盘不支持缩小。如果确实要换小盘,只能新建小容量磁盘,迁移数据后再卸载旧盘。
  • /etc/fstab 与设备名漂移:长期使用的数据盘建议在 fstab 里用 UUID 挂载,而不是设备名,避免重启后顺序变化导致挂错盘。可以用 blkid 查看 UUID。

七、小结

云硬盘扩容的完整流程可以记成一句话:先检查、再快照、后扩容,最后在系统里把分区和文件系统扩上去。控制台的“扩容成功”只代表第一层完成,用 lsblk 和 df 对照验证才算真正结束。再配合云监控里对磁盘使用率的告警,提前在使用率偏高时扩容,而不是等写满了才抢救,能让整个过程从“紧急故障”变成一次从容的例行变更。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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