在线扩容云盘(Linux系统)
云盘(系统盘或数据盘)使用空间不足时,您可以扩容云盘的存储容量。本文介绍如何在不需要停止实例运行的情况下为Linux系统进行扩容云盘。
限制条件:实例的Linux内核不低于3.6.0版本。您可以使用uname -a命令查看内核版本
步骤一:创建快照
- 登录ECS管理控制台。
- 在左侧导航栏,选择实例与镜像 > 实例。
- 在顶部菜单栏左上角处,选择地域。
- 找到需要扩容云盘的实例,单击实例ID。
- 在实例详情页,单击云盘页签。
- 找到需要扩容的云盘,在操作列单击创建快照。
- 在弹出的对话框中,输入快照名称,并按需绑定标签后,单击创建。
- 单击快照页签,查看已创建的快照。
- 当快照的进度为100%时,表示快照创建完成,您可以执行后续操作。
步骤二:在控制台扩容云盘容量
- 在实例详情页,单击云盘页签。
- 选择需要扩容的云盘,在操作列单击更多 > 云盘扩容。
- 如果需要批量扩容多个云盘,请使用阿里云账号在存储与快照 > 云盘页面选择多个云盘后,单击底部的云盘扩容。挂载在同一ECS实例下的云盘不支持批量扩容功能。
- 说明 只有阿里云账号可以执行批量扩容,RAM用户无权限操作,请使用阿里云账号登录ECS管理控制台。
- 在磁盘扩容页面,选中在线扩容,并设置扩容后容量。
- 设置的扩容后容量不允许小于当前容量。
- 确认费用,阅读并选中《云服务器ECS服务条款》后,单击确认扩容。
- 阅读磁盘扩容须知后,单击已阅读,继续扩容,完成支付。
步骤三:查看云盘分区情况
fdisk -lu
序号 | 分区 | 说明 |
---|---|---|
① | /dev/vda1 | 系统盘,System取值Linux表示为MBR分区。 |
② | /dev/vdb1 | 数据盘,System取值Linux表示为MBR分区。 |
③ | /dev/vdc1 | 数据盘,System取值GPT表示为GPT分区。 |
步骤四:扩容分区
安装growpart工具。
yum install -y cloud-utils-growpart
运行以下命令扩容分区
growpart /dev/vda 1
步骤五:扩容文件系统
扩容ext*(例如ext4)文件系统:运行以下命令扩容文件系统
resize2fs /dev/vda1
/dev/vda1和/dev/vdb1都是分区名称,您需要根据实际情况修改。
扩容xfs文件系统:运行以下命令扩容数据盘/dev/vdc1的文件系统。
xfs_growfs /media/vdc
/media/vdc为/dev/vdc1的挂载点,您需要根据实际情况修改。
扩容btrfs文件系统:如果您的数据盘文件系统为btrfs,则需要运行以下命令扩容文件系统
btrfs filesystem resize max /mountpoint
/mountpoint为数据盘对应的挂载点,您需要根据实际情况修改。
运行以下命令检查扩容后结果。
df -Th
扩容完成后,您需要根据实际情况检查数据是否正常。
如果扩容成功,ECS实例中的业务程序能够正常运行,则完成操作。
如果扩容失败,则通过备份的快照回滚数据。
支持在线扩容的操作系统
支持在线扩容的Linux公共镜像(或基于公共镜像制作的自定义镜像)包括:
Alibaba Cloud Linux:Alibaba Cloud Linux 2版本和Alibaba Cloud Linux 3版本
CentOS:
CentOS 6:CentOS 6.8及以上版本
CentOS 7:CentOS 7.2及以上版本
CentOS 8及以上版本
Red Hat Enterprise Linux:
RHEL 6:RHEL 6.9及以上版本
RHEL 7:RHEL 7.4及以上版本
RHEL 8及以上版本
Ubuntu:Ubuntu 16及以上版本
Debian:Debian 8及以上版本
SUSE:SUSE 12 SP2及以上版本
OpenSUSE:OpenSUSE 42.3及以上版本
常见问题
- 问题:运行growpart /dev/vda 1时,提示unexpected output in sfdisk --version [sfdisk,来自 util-linux 2.23.2]。
- 解决方案:
- 运行locale命令查看ECS实例的字符编码类型,将非en_US.UTF-8的字符编码类型切换成en_US.UTF-8。
- 运行以下命令,切换字符编码类型。
- LANG=en_US.UTF-8
- 如果问题仍未解决,运行以下命令,切换字符编码类型。
- export LC_ALL=en_US.UTF-8
- 如果问题仍未解决,运行以下命令,切换字符编码类型。
- localectl set-locale LANG=en_US.UTF-8
- 如果采用以上方案无法解决问题时,运行以下命令,切换字符编码类型。
- export LANGUAGE=en_US.UTF-8
- 如果问题仍未解决,请您尝试运行reboot命令重启ECS实例。
当您通过切换字符编码,成功完成扩容分区后,建议您按需切回原有字符编码。