本文介绍如何扩容Linux实例云盘的分区和文件系统。当您通过控制台完成云盘扩容后,分区和文件系统不会自动扩容。因此,您需要登录边缘实例扩容分区和文件系统。
下表列出了本文示例中使用到的资源及其配置。
资源 | 描述 |
---|---|
边缘实例的镜像 | CentOS 7.3 64位。 |
系统盘 | 系统盘为/dev/vda,使用MBR分区和ext4文件系统。系统盘由40GB扩容到70GB。 |
数据盘 | 第一块数据盘为/dev/vdb,使用MBR分区和ext4文件系统。该数据盘由40GB扩容到70GB。 |
第二块数据盘为/dev/vdc,使用GPT分区和xfs文件系统。该数据盘由40GB扩容到70GB。 |
本文所述操作适用于以下场景:
云盘容量说明
通过控制台扩容的云盘容量采用的是1000进位。操作系统中显示的云盘容量采用的是1024进位。因此,数字显示上会存在差异。例如,如果您在控制台上为云盘扩容了30GB的容量,操作系统中显示的扩容容量约为28GiB。
已通过控制台扩容了云盘容量。具体操作,请参见扩容云盘容量。
如果您在扩容云盘容量时未备份数据,强烈建议您在扩容分区和文件系统前备份数据。您可以通过创建镜像方式或其他方式备份数据。创建镜像的具体操作,请参考使用边缘实例创建镜像。
基于不同的分区和文件系统类型,扩容操作有所不同。因此,在您开始扩容分区和文件系统前,需要先登录边缘实例查看分区和文件系统的类型。
登录边缘实例。通过VNC登录实例的操作请参见通过VNC登录实例。
以root
用户运行以下命令,查看系统盘和数据盘情况。
fdisk -l
命令返回结果如下图所示。
该示例使用系统盘/dev/vda和数据盘/dev/vdb、/dev/vdc进行说明。
云盘 | 分区 | 分区形式 |
---|---|---|
系统盘/dev/vda | /dev/vda1 | Disk label type字段的值为dos,表示系统盘/dev/vda的分区形式为MBR。 |
数据盘/dev/vdb | /dev/vdb1 | Disk label type字段的值为dos,表示数据盘/dev/vdb的分区形式为MBR。 |
数据盘/dev/vdc | /dev/vdc1 | Disk label type字段的值为gpt,表示数据盘/dev/vdc的分区形式为GPT。 |
说明
不同操作系统的分区形式显示略有不同。如果没有Disk label type字段,可通过System字段判断分区形式。System值为Linux时,表示MBR分区。System值为GPT时,表示GPT分区。
运行以下命令,查看已有分区的文件系统类型。
df -Th
命令返回结果如下图所示。 Type 表示文件系统的类型。 Mounted on 表示文件系统的挂载点。
从命令返回结果可以看出,分区和文件系统的容量并未扩容。
说明
如果Filesystem的取值中不带数字后缀(例如/dev/vdd),则说明该磁盘未分区(裸设备)。这种情况下,无需扩容分区,请直接执行步骤三:扩容文件系统。
以下内容介绍如何扩容分区。
说明
该部分的分区名称为示例名称。请按照您的实际情况进行修改。
运行以下命令安装工具。
CentOS 6及以上版本
安装growpart工具。
yum install -y cloud-utils-growpart
(可选)安装gdisk工具。根据步骤一的命令返回结果,如果您的分区形式为GPT,还需运行以下命令安装gdisk工具。
yum install -y gdisk
Debian 8及以上版本、Ubuntu14及以上版本
更新apt软件源。
apt-get update
安装cloud-guest-utils工具。
apt-get install -y cloud-guest-utils
(可选)安装gdisk工具。根据步骤一的命令返回结果,如果您的分区形式为GPT,还需运行以下命令安装gdisk工具。
apt-get install -y gdisk
运行以下命令扩容云盘分区。
扩容系统盘分区。
LC_ALL=en_US.UTF-8 growpart /dev/vda 1
扩容数据盘分区/dev/vdb 1。
LC_ALL=en_US.UTF-8 growpart /dev/vdb 1
扩容数据盘分区/dev/vdc 1。
LC_ALL=en_US.UTF-8 growpart /dev/vdc 1
其中, LC_ALL=en_US.UTF-8是环境变量设置。该设置是为了兼容中文操作系统的字符编码。
注意
growpart /dev/vda 1
。growpart /dev/vdb 3
,即可完成数据盘 /dev/vdb的分区扩容。命令返回结果如下。当输出 CHANGED 字样时,表示分区扩容成功。
如果云盘和文件系统正在被使用,当您采用resize2fs等工具在线扩容文件系统时,可能会触发文件系统数据问题。该问题与镜像内核版本、resize2fs工具版本相关,与云盘扩容本身无关。建议您在扩容前先备份数据。
以下内容介绍如何扩容分区的文件系统。
根据步骤一中查询到的文件系统类型,运行相应命令扩容文件系统。
扩容系统盘/dev/vda1分区的文件系统:
resize2fs /dev/vda1
扩容数据盘/dev/vdb1分区的文件系统:
resize2fs /dev/vdb1
说明
resize2fs <device_name>
。例如,磁盘为/dev/vdd时,执行resize2fs /dev/vdd
。扩容数据盘/dev/vdc1分区的文件系统:
yum install -y xfsprogs xfs_growfs /mnt/datadisk2
说明
/mnt/datadisk2
为/dev/vdc1
的挂载点。您需要根据实际情况修改挂载点。
运行以下命令,查看扩容结果。
df -Th
命令返回结果如下。扩容后的文件系统容量和通过控制台扩容后的云盘容量基本一致,表示扩容成功。
说明
通过控制台扩容的云盘容量采用的是1000进位。操作系统中显示的云盘容量采用的是1024进位。因此,数字显示上会存在差异。例如,如果您在控制台上将云盘扩容到70GB,操作系统中显示的扩容容量约为65GiB。