阿里云云盘动态扩容

阿里云 文章 2023-01-03 13:21 1633 0 全屏看文

AI助手支持GPT4.0

扩容分区和文件系统(Linux)

更新时间:2022年12月19日 23:47:00


本文为您介绍如何扩容Linux实例云盘(系统盘或数据盘)的分区和文件系统。

操作场景

在ECS控制台上扩容云盘容量后,对应分区和文件系统并未扩容,您还需要进入ECS实例内部继续扩容云盘的分区和文件系统,将扩容部分的容量划分至已有分区或者新增分区,使云盘扩容生效。

本文操作适用于以下云盘扩容场景:

前提条件

  • 确保Linux实例的操作系统是Alibaba Cloud Linux 2/3、CentOS 6及以上、Debian 8及以上或者Ubuntu14及以上版本。说明 如果为其他操作系统,扩容操作请参见扩展分区和文件系统_Linux数据盘

  • 已参考步骤一:扩容云盘容量,在ECS控制台扩容云盘容量。

  • (强烈建议)已创建云盘快照,做好数据备份。具体操作,请参见创建快照

    如果您在执行步骤一:扩容云盘容量时未创建快照,强烈建议您在扩容分区和文件系统前,为云盘创建快照,做好数据备份。

准备工作:确认待扩容云盘及其分区信息

执行扩容分区和文件操作系统前,请先确认待扩容云盘和云盘分区信息,来确定要执行的操作。

  1. 远程连接ECS实例。具体操作,请参见通过密码或密钥认证登录Linux实例

  2. 运行以下命令,确认待扩容云盘及其分区信息。放大查看复制代码

    fdisk -lu

    确认分区情况如图所示,表示该实例有2块云盘,系统盘/dev/vda和数据盘/dev/vdb,我们以数据盘/dev/vdb为例。其中:

    • 已分区:有②处的分区信息表示已分区,Device取值为分区名称(示例中为/dev/vdb1),数字1是分区编号,则需扩容分区和文件系统。

    • 未分区(裸设备):没有②处的分区信息表示未分区,为裸设备。则无需扩容分区,直接执行步骤二:扩容文件系统

    • ①:云盘的设备名称。

    • ②:云盘是否分区及分区名称。

    • ③:云盘的分区类型。

      Disk label type值为dos表示MBR分区,值为gpt表示GPT分区。

      说明 不同操作系统的显示略有不同。如果没有Disk label type字段,可通过System字段判断。System值为Linux表示MBR分区,值为GPT表示GPT分区。

    • ④:该云盘的总扇区大小(图示例125829120)。如果云盘的最后一块分区(示例中为/dev/vdb1)的End值(图示例83886079)和总扇区大小差距过大,表示该分区未利用所有云盘空间,待扩容分区。或者您可以通过lsblk命令查看哪个分区待扩容。

步骤一:扩容分区

本操作以公共镜像Alibaba Cloud Linux 2.1903 LTS 64位操作系统、在ECS实例内部将云盘分区/dev/vdb1由40 GB扩容至60 GB(已在控制台扩大容量为60 GB)为例,请您根据实际环境进行操作。

  1. 可选:根据准备工作确认的信息,如果您的云盘分区类型为MBR且在控制台扩容后容量大于2 TiB,需先转换分区为GPT分区。否则跳过该步骤。具体操作,请参见转换Linux数据盘的分区类型

  2. 运行以下命令,安装工具。

    • Alibaba Cloud Linux 2/3版本、CentOS 6及以上版本运行以下命令。说明 由于CentOS 6和CentOS 8结束生命周期(EOL),如果您使用的是CentOS 6或者CentOS 8系统的ECS实例,请先切换源地址。具体操作,请参见CentOS 6 EOL如何切换源?CentOS 8 EOL如何切换源?

    • Debian 8及以上版本、Ubuntu14及以上版本运行以下命令。

    1. 更新软件源。放大查看复制代码

      apt-get update
    2. 安装cloud-guest-utils。放大查看复制代码

      type growpart || apt-get install -y cloud-guest-utils
    3. (可选)根据准备工作确认的信息,如果您的云盘分区类型为GPT,还需运行以下命令安装gdisk工具。放大查看复制代码

      type sgdisk || apt-get install -y gdisk
    4. 安装growpart工具。放大查看复制代码

      type growpart || yum install -y cloud-utils-growpart
    5. (可选)根据准备工作确认的信息,如果您的云盘分区类型为GPT,还需运行以下命令安装gdisk工具。放大查看复制代码

      type sgdisk || yum install -y gdisk
  3. 扩容分区。以云盘分区名称/dev/vdb1为例,则运行如下命令。放大查看复制代码

    LC_ALL=en_US.UTF-8 growpart /dev/vdb 1

    重要如下图所示,输出CHANGED字样时,表示分区扩容成功。扩容分区

    • 如果单盘有多个连续分区的情况,例如数据盘/dev/vdb有三个分区/dev/vdb1、/dev/vdb2和/dev/vdb3。扩容时,只需要扩容最后一个分区即可,即执行growpart /dev/vdb 3一个命令即可完成数据盘的分区扩容。

    • 使用growpart工具时,如果出现报错信息,请参见常见问题进行排查。

    • 1是分区编号,/dev/vdb和1之间需要空格分隔。

    • LC_ALL=en_US.UTF-8是为了解决中文操作系统的编码问题。

  4. 可选:执行reboot命令重启实例。如果您扩容的是CentOS 6的系统盘或者发现扩容后操作系统实际识别的分区没有扩展,这是操作系统版本较低的原因,需要重启实例使分区扩容生效。

步骤二:扩容文件系统

说明 云盘和文件系统正在被使用的状态下,采用resize2fs等工具在线扩容文件系统,有可能会触发文件系统数据问题,该问题与镜像内核版本、resize2fs工具版本相关,与云盘扩容本身无关。建议您为云盘创建快照,做好数据备份。具体操作,请参见创建快照
  1. 运行以下命令,查看文件系统类型。放大查看复制代码

    df -Th

    Type值为文件系统类型,Mounted on值为分区的挂载目录。如下图,表示/dev/vdb1分区的文件系统类型为ext4,挂载目录为/mnt。

    文件系统类型

    如果Filesystem取值后缀不带数字(例如/dev/vdc),则为裸设备。

  2. 运行以下命令,扩容文件系统。

    扩容命令因文件系统类型而异,请您根据上一步中查询到的文件系统类型选择以下命令。

    • 以扩容云盘分区/dev/vdb1的ext4文件系统为例,则运行如下命令:放大查看复制代码

      resize2fs /dev/vdb1
    • 以扩容裸设备/dev/vdc的ext4文件系统为例,则运行如下命令:放大查看复制代码

      resize2fs /dev/vdc
    • ext4文件系统

    • xfs文件系统以扩容挂载目录为/mnt的xfs文件系统为例,则运行如下命令:放大查看复制代码

      type xfs_growfs || yum install -y xfsprogs xfs_growfs /mnt
    • btrfs文件系统以扩容挂载目录为/mnt的btrfs文件系统为例,则运行如下命令:放大查看复制代码

      btrfs filesystem resize max /mnt
  3. 运行以下命令,确认是否扩容成功。放大查看复制代码

    df -Th

    当查询结果中的文件系统容量和控制台容量一致时,表示扩容成功。

    如下图所示,分区/dev/vdb1文件系统容量和控制台扩容容量(60 GB)基本一致,表示扩容完成。扩容效果扩容完成后,您需要根据实际情况检查云盘数据是否正常。

    • 如果扩容成功,ECS实例中的业务程序能够正常运行,则完成操作。

    • 如果扩容失败,您可以通过备份的快照回滚数据。具体操作,请参见使用快照回滚云盘

常见问题

说明 如果您遇到难以解决的问题,您可以加入云盘扩容问题客户钉钉群(钉钉群号:25920014655)与我们的工程师即时沟通。

growpart相关问题

  1. 运行扩容分区growpart命令时,提示unexpected output in sfdisk --version [sfdisk,来自 util-linux 2.23.2]。

    原因:中文版操作系统使用了非en_US.UTF-8的字符编码类型。

    解决方案:重要 当您通过切换字符编码,成功完成扩容分区后,建议您按需切回原有字符编码。

    1. 运行以下命令,切换字符编码类型。放大查看复制代码

      export.UTF-8
    2. 如果问题仍未解决,运行以下命令,切换字符编码类型。放大查看复制代码

      export LC_ALL=en_US.UTF-8
    3. 运行locale命令查看ECS实例的字符编码类型,将非en_US.UTF-8的字符编码类型切换成en_US.UTF-8。

    4. 如果问题仍未解决,请您尝试运行reboot命令重启ECS实例。

  2. 运行扩容分区growpart命令时,提示unexpected output in sfdisk --version [sfdisk (util-linux-ng 2.17.2)]。

    原因:您的fdisk版本与growpart版本不兼容。

    解决方案:尝试将growpart版本降低到0.27。

  3. 运行扩容分区growpart命令时,提示FAILED: unable to determine partition type。

    原因:您的云盘是裸设备,未分区。裸设备无需执行扩容分区操作,直接扩容文件系统即可。

    解决方案:直接扩容文件系统

  4. 运行扩容分区growpart命令时,提示WARNING: MBR/dos partitioned disk is larger than 2TB. Additional space will go unused.。

    原因:MBR分区类型不支持2 TiB以上的云盘。

    解决方案:先将分区类型从MBR转换为GPT,然后再扩容分区。具体操作,请参见转换MBR分区为GPT分区

  5. 为什么在CentOS 6中安装growpart工具时提示Error: Cannot retrieve repository metadata。

    原因:CentOS 6操作系统版本已结束生命周期(EOL),继续使用默认源会导致无法安装包。

    解决方案:

    1. 在CentOS 6中切换yum源。具体操作,请参见CentOS 6 EOL如何切换源?。说明 CentOS 6操作系统版本已结束生命周期(EOL),如果您需要使用yum安装软件包,需要先切换yum源。

    2. 重新运行以下命令,安装growpart工具。放大查看复制代码

      type growpart || yum install -y cloud-utils-growpart
    3. 如果问题仍未解决,请参考扩展分区和文件系统_Linux数据盘扩容分区。

resize2fs相关问题

  1. 问题:运行扩容文件系统resize2fs命令时,提示如下信息。放大查看复制代码

    resize2fs: Device or resource busy while trying to open /dev/vda Couldn't find valid filesystem superblock.

    或者放大查看复制代码

    open: Is a directory while opening /mnt

    原因:扩容文件系统时,resize2fs指定的是云盘分区名称,不是云盘设备名称或者分区的挂载目录。

    解决方案:扩容文件系统时,请您指定正确的分区名称。

  2. 问题:运行扩容文件系统resize2fs命令时,提示The filesystem is already ... blocks long. Nothing to do!。

    原因:文件系统没有可扩容的空间,可能是分区扩容未生效导致。

    解决方案:如果您发现扩容后操作系统实际识别的分区没有扩展,可能是操作系统版本较低的原因,请尝试执行<code style="box-sizing: border-box;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);font-family: var(--cb-typo-font-family-monospace,Operator Mono,Menlo,Monaco,Liberation Mono,DejaVu Sans Mono,Courier New,monospace);font-size: 1em;padding: 2px 4px;border-ra


-EOF-

AI助手支持GPT4.0


国内超级便宜服务器

摸鱼人热门新闻聚合

钻级赞助商 我要加入

开发者在线工具

第三方支付技术请加QQ群

相关文章
阿里云com、cn域名续费优惠码(2020年1月可用)
三叔的系统盘扩容命令
阿里云com、cn域名续费优惠码(2020年2月可用)
阿里云删除共享镜像
阿里云com、cn域名续费优惠码(2021年1月可用)
随便看看
阿里云com、cn域名续费优惠码(2020年3月可用) 2863
线上防疫题库正确答案 2932
线上防疫题库正确答案(多选题) 4825
微信设置不可以使用小程序(游戏小程序) 5634
adsense申请已经支付的订单回退的网址 3212
BT面板查看网站入口、账号密码的命令 6008
ucloud海外服务器超级优惠券 3274
根据您的消费情况,您的延停权益已发生变化,变更后的延停权益为延停额度20.00元 5831
为什么我们喜欢迈克尔杰克逊。 4163
阿里云com、cn域名续费优惠码(2020年5月可用) 3586