云盘(系统盘或数据盘)使用空间不足时,您可以扩容云盘的存储容量。本文介绍如何在不需要停止实例运行的情况下为Linux系统进行扩容云盘。

前提条件

在Linux实例使用在线扩容云盘前,需要满足以下条件。
资源 限制条件
实例
说明 如果您的ECS实例不符合在线扩容条件,您可以使用离线扩容云盘功能,具体请参见离线扩容云盘(Linux系统)
云盘
  • 云盘状态为使用中(In Use)。
  • 云盘类型为ESSD云盘、SSD云盘或高效云盘。
  • 包年包月ECS实例续费降配后,当前计费周期的剩余时间内,不支持扩容实例的包年包月云盘。
  • 云盘扩容后的容量不能超过云盘最高容量,具体请参见块存储使用限制

一个已有分区采用了MBR分区格式,则不支持扩容到2 TiB及以上。如果您的MBR分区容量需要扩容到2 TiB以上,建议您先创建一块大于2 TiB的云盘,格式化一个GPT分区,再将MBR分区中的数据拷贝到GPT分区中。格式化GPT分区操作,请参见分区格式化大于2 TiB数据盘

步骤一:创建快照

在扩容云盘前,为云盘创建快照,做好数据备份。

  1. 登录ECS管理控制台
  2. 在左侧导航栏,单击存储与快照 > 云盘
  3. 在顶部菜单栏左上角处,选择地域。
  4. 找到需要扩容的云盘,在操作列单击创建快照
  5. 在弹出的对话框中,输入快照名称,并按需绑定标签后,单击确定
  6. 在左侧导航栏,单击存储与快照 > 快照。查看已创建的快照。
    当快照的进度100%时,表示快照创建完成,您可以执行后续操作。

步骤二:在控制台扩容云盘容量

本文示例中使用的配置如下所示。
资源 描述
ECS实例的镜像 公共镜像Aliyun Linux 2.1903 LTS 64位
系统盘 /dev/vda:使用MBR分区和ext4文件系统,由40 GiB扩容到60 GiB。
数据盘
  • /dev/vdb:使用MBR分区和ext4文件系统,由40 GiB扩容到60 GiB。
  • /dev/vdc:使用GPT分区和xfs文件系统,由40 GiB扩容到60 GiB。
  1. 登录ECS管理控制台
  2. 在左侧导航栏,单击存储与快照 > 云盘
  3. 在顶部菜单栏左上角处,选择地域。
  4. 选择需要扩容的云盘,在操作列单击更多 > 磁盘扩容
    说明 如果需要批量扩容多个云盘,请使用阿里云主账号选择多个云盘后,单击底部的磁盘扩容
  5. 磁盘扩容页面,选中在线扩容,并设置扩容后容量
    设置的扩容后容量不允许小于当前容量。
  6. 确认费用,阅读并选中云服务器ECS服务条款后,单击确认扩容
  7. 阅读磁盘扩容须知后,单击已阅读,继续扩容,完成支付。
说明 控制台上扩容云盘容量后,您还不能直接使用已扩容的容量,需要在ECS实例内部扩容分区和文件系统。

步骤三:查看云盘分区情况

进入ECS实例内部,查看系统盘和数据盘的分区类型和文件系统类型。

  1. 远程登录ECS实例,具体请参见通过Workbench远程连接Linux实例
  2. 运行命令fdisk -lu查看实例的云盘情况。
    示例以系统盘(/dev/vda1)和数据盘(/dev/vdb1、/vde/vdc1)的三个分区为例,如下图所示。查看云盘分区情况
    序号 分区 说明
    /dev/vda1 系统盘,System取值Linux表示为MBR分区。
    /dev/vdb1 数据盘,System取值Linux表示为MBR分区。
    /dev/vdc1 数据盘,System取值GPT表示为GPT分区。
  3. 运行命令blkid确认已有分区的文件系统类型。
    查看文件系统

    如果需要查询具体分区(例如/dev/vdb1),运行命令blkid /dev/vdb1

步骤四:扩容分区

在ECS控制台上扩容云盘后,ECS实例的分区和文件系统并未扩容。此步骤介绍如何扩容云盘分区。

  1. 远程登录ECS实例。
  2. 安装gdisk工具。
    如果您的分区为GPT格式,必须执行此步骤;如果您的分区为MBR格式,请跳过此步骤。
    yum install gdisk -y
  3. 运行命令growpart /dev/vda 1扩容分区。
    此示例以扩容系统盘为例,/dev/vda1之间需要空格分隔。如果需要扩容其他分区,请根据实际情况修改命令。growpart

步骤五:扩容文件系统

在ECS控制台上扩容云盘后,ECS实例的分区和文件系统并未扩容。此步骤介绍如何扩容分区的文件系统。

  1. 远程登录ECS实例。
  2. 根据查询的文件系统类型,扩容文件系统。
    • 扩容ext*(例如ext4)文件系统:运行命令resize2fs /dev/vda1扩容文件系统。
      #扩容系统盘/dev/vda1的文件系统
      resize2fs /dev/vda1
      
      #扩容数据盘/dev/vdb1的文件系统
      e2fsck -f /dev/vdb1     //强制检查文件系统
      resize2fs /dev/vdb1
      说明 /dev/vda1/dev/vdb1都是分区名称,您需要根据实际情况修改。
    • 扩容xfs文件系统:运行命令xfs_growfs /media/vdc扩容文件系统。
      说明 /media/vdc/dev/vdc1的挂载点,您需要根据实际情况修改。
  3. 运行命令df -Th检查扩容后结果。
    查看扩容结果

步骤六:校对数据

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

  1. 远程登录ECS实例。
  2. 校对ECS实例中数据,保证原数据的完整性。
    • 如果数据正常,完成扩容操作。
    • 如果数据异常,可以通过备份的快照回滚数据。

支持在线扩容的操作系统

支持在线扩容的Linux公共镜像(或基于公共镜像制作的自定义镜像)包括:
  • CentOS:CentOS 6.8+、CentOS 7.2+、CentOS 8及以上版本
  • Red Hat Enterprise Linux:RHEL 6.9+、RHEL 7.4+、RHEL 8及以上版本
  • Ubuntu:Ubuntu 16及以上版本
  • Debian:Debian 8及以上版本
  • SUSE:SUSE 12 SP2及以上版本
  • OpenSUSE:OpenSUSE42.3及以上版本

相关文档