阿里云云盘扩容

随着业务发展和应用数据增长,您可以选择多种方式来扩展云盘容量。扩容云盘系列文档主要介绍扩容已有云盘的操作步骤和注意事项。

云盘(系统盘或数据盘)使用空间不足时,您可以扩容云盘的存储容量。

前提条件

在扩容云盘分区和文件系统前,请提前完成以下工作。

  • 创建快照以备份数据,防止操作失误导致数据丢失。
  • 通过ECS控制台或者API扩容云盘容量。

检查实例的内核版本,例如运行uname -a

  • 内核版本大于3.6.0,该情况请参见高内核版本的操作步骤。
  • 内核版本小于3.6.0,该情况请参见低内核版本的操作步骤。如CentOS 6、Debian 7和SUSE Linux Enterprise Server 11 SP4等发行版,需要经过一次控制台重启或者API重启才能完成分区扩容。

查看云盘分区情况

进入ECS实例内部,查看系统盘和数据盘的分区类型(MBR和GPT)和文件系统类型(ext4、xfs等)。不同的分区和文件系统,后续扩容分区和文件系统操作中存在差异。

运行以下命令查看实例的云盘情况

1
fdisk -lu

image-20211220141500326

系统盘,System取值Linux表示为MBR分区。

数据盘,System取值Linux表示为MBR分区。

System取值Linux表示为MBR分区。

运行以下命令确认已有分区的文件系统类型。

1
df -Th

image-20211220141527203

扩容分区

在ECS实例内部,安装gdisk工具。

如果您的分区为GPT格式,必须执行此步骤;如果您的分区为MBR格式,请跳过此步骤。

1
yum install gdisk -y

安装growpart工具。

  • CentOS 7及以上版本运行以下命令。

    1
    yum install -y cloud-utils-growpart
  • Debian 8及以上版本、Ubuntu14及以上版本运行以下命令。

    更新软件源。

    1
    apt-get update
  • 安装cloud-guest-utils。

    1
    apt-get install -y cloud-guest-utils

    运行以下命令扩容分区。

1
growpart /dev/vda 1

以扩容系统盘为例,/dev/vda和1之间需要空格分隔。如果需要扩容其他分区,请根据实际情况修改命令。执行结果如下所示。

执行此步骤时,可能出现报错信息unexpected output in sfdisk –version [sfdisk,来自 util-linux 2.23.2]。

切换ECS实例的字符编码类型。

1
# LANG=en_US.UTF-8

扩容文件系统

在ECS实例内部,根据查询的文件系统类型,扩容文件系统。

扩容ext*(例如ext4)文件系统:运行以下命令扩容文件系统。

扩容系统盘/dev/vda1的文件系统。

1
resize2fs /dev/vda1    

扩容数据盘/dev/vdb1的文件系统。

1
resize2fs /dev/vdb1       

扩容xfs文件系统:运行以下命令扩容数据盘/dev/vdc1的文件系统。

1
xfs_growfs /media/vdc

/media/vdc/dev/vdc1的挂载点,您需要根据实际情况修改。

扩容btrfs文件系统:如果您的数据盘文件系统为btrfs,则需要运行以下命令扩容文件系统。

1
btrfs filesystem resize max /mountpoint

/mountpoint为数据盘对应的挂载点,您需要根据实际情况修改。

运行以下命令检查扩容后结果。

1
df -Th

扩容完成后,您需要根据实际情况检查数据是否正常。

  • 如果扩容成功,ECS实例中的业务程序能够正常运行,则完成操作。
  • 如果扩容失败,则通过备份的快照回滚数据。

参考链接:在线扩容云盘(Linux系统)