离线扩容云盘(Linux系统)
发布时间:2021-02-01 点击数:865
云盘(系统盘或数据盘)使用空间不足时,您可以扩容云盘的存储容量。如果您的ECS实例不支持在线扩容云盘,可以通过离线扩容的方式为Linux实例进行扩容云盘。离线扩容云盘需要重启实例,您的业务会短暂中断,建议在业务不繁忙时操作。
背景信息
本文示例中使用的配置如下所示。
资源 | 描述 |
---|---|
ECS实例的镜像 | 公共镜像Alibaba Cloud Linux 2.1903 LTS 64位 |
系统盘 | /dev/vda:使用MBR分区和ext4文件系统,由40 GiB扩容到60 GiB。 |
数据盘 |
|
步骤一:创建快照
在扩容云盘前,为云盘创建快照,做好数据备份。
步骤二:在控制台扩容云盘容量并重启(或启动)ECS实例
步骤三:查看云盘分区情况
进入ECS实例内部,查看系统盘和数据盘的分区类型(MBR和GPT)和文件系统类型(ext4、xfs等)。不同的分区和文件系统,后续扩容分区和文件系统操作中存在差异。
步骤四:扩容分区
通过查看云盘分区情况,在ECS实例内分区和文件系统并未扩容。此步骤介绍如何在ECS实例内部扩容云盘分区。
步骤五:扩容文件系统
此步骤介绍如何ECS实例内部扩容分区的文件系统。
常见问题
-
问题:运行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
-
如果您使用CentOS
8镜像,采用以上方案无法解决问题时,运行以下命令,切换字符编码类型。
export LANGUAGE=en_US.UTF-8
-
运行以下命令,切换字符编码类型。
- 如果问题仍未解决,请您尝试运行reboot命令重启ECS实例。
注意当您通过切换字符编码,成功完成扩容分区后,建议您按需切回原有字符编码。
-
运行locale命令查看ECS实例的字符编码类型,将非en_US.UTF-8的字符编码类型切换成en_US.UTF-8。
-
问题:运行growpart
/dev/vda 1时,提示-bash:
growpart: command not found。
解决方案:
-
运行uname
-a检查Linux内核的版本。本文操作适用于Linux内核版本3.6.0及以上的系统。
如果Linux内核低于3.6.0版本,扩容分区操作请参见扩展低内核版本实例的系统盘分区和文件系统和扩展分区和文件系统_Linux数据盘。
-
安装growpart工具。
-
CentOS
7及以上版本运行以下命令。
yum install -y cloud-utils-growpart
-
Debian
9及以上版本、Ubuntu14及以上版本运行以下命令。
apt install -y cloud-guest-utils
-
CentOS
7及以上版本运行以下命令。
-
运行uname
-a检查Linux内核的版本。本文操作适用于Linux内核版本3.6.0及以上的系统。
如果您有其他问题,可以联系北京志远天成阿里云代理商,为您提供一对一专业全面的技术服务,同时新老阿里云会员,均可享受我公司代理商价格,欢迎咨询!