本文介绍如何扩容Linux实例云盘的分区和文件系统。您在控制台扩容云盘后,云盘的分区和文件系统不会自动扩容。这意味着增加的云盘容量还无法使用。您必须在边缘实例的操作系统中扩容分区和文件系统后才能使用增加的云盘容量。
本文所述操作适用于以下场景:
下表列出了本文示例中所使用到的资源的信息。
资源 | 描述 |
---|---|
边缘实例的镜像 | 边缘实例使用公共镜像,镜像名称为“CentOS 7.6 64位”。 |
系统盘 | 系统盘的设备名称为/dev/vda。系统盘由40GB扩容到70GB。系统盘上仅有一个MBR分区(/dev/vda1),该分区采用ext4文件系统。 |
数据盘 | 第一块数据盘的设备名称为/dev/vdb。该数据盘由40GB扩容到70GB。该数据盘上仅有一个MBR分区(/dev/vdb1),该分区采用ext4文件系统。 |
第二块数据盘的设备名称为/dev/vdc。该数据盘由40GB扩容到70GB。该数据盘上仅有一个GPT分区(/dev/vdc1),该分区采用XFS文件系统。 |
控制台显示的磁盘容量使用十进制单位表示。Linux操作系统中显示的磁盘容量可能以二进制或十进制单位表示,这取决于您所使用的具体命令或工具。因此,控制台显示的磁盘容量的数值与操作系统中显示的数值可能会有差异。例如,您在控制台将云盘扩容到70GB,但是操作系统中显示的扩容后总容量可能为“66G”(指的是66GiB)。这是因为1GB = 1,000,000,000字节,而1GiB = 1,073,741,824字节。
您已在控制台扩容云盘。具体操作,请参见扩容云盘。
为防止误操作导致数据丢失,强烈建议您在扩容分区和文件系统前备份数据。
对于不同的操作系统,配置方法可能存在差异。以下内容以CentOS 7.6 64位操作系统为例进行说明。
扩容操作根据分区表格式和文件系统类型的不同而有所差异。因此,在开始扩容分区和文件系统前,需要先查看分区和文件系统的类型。
登录边缘实例。具体操作,请参见通过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。 |
运行以下命令,查看已有分区的文件系统类型。
df -Th
返回结果如下图所示。Type字段表示文件系统的类型。Mounted on字段表示文件系统的挂载点。
说明
如果Filesystem的取值中不含数字后缀(例如取值为/dev/vdd),则说明该云盘未分区。这种情况下,无需扩容分区,请直接执行步骤三:扩容文件系统。
以下内容介绍如何扩容分区。
说明
以下内容中的分区设备名称为示例值。实际场景中,请将示例值修改为实际值。
运行以下命令安装growpart工具:
yum install -y cloud-utils-growpart
(可选)安装gdisk工具。根据步骤一的命令返回结果,如果您的分区形式为GPT,还需运行以下命令安装gdisk工具。
yum install -y gdisk
扩容云盘分区。
运行以下命令扩容系统盘分区:
LC_ALL=en_US.UTF-8 growpart /dev/vda 1
运行以下命令扩容数据盘分区/dev/vdb1:
LC_ALL=en_US.UTF-8 growpart /dev/vdb 1
运行以下命令扩容数据盘分区/dev/vdc1:
LC_ALL=en_US.UTF-8 growpart /dev/vdc 1
在以上命令中, LC_ALL=en_US.UTF-8代表环境变量设置。该设置是为了确保字符编码的一致性以及命令输出格式正确。
注意
growpart /dev/vda 1
扩容分区/dev/vda1。growpart /dev/vdb 3
命令,将增加的容量分配给最后一个分区/dev/vdb3。返回结果如下。当输出CHANGED字样时,表示分区扩容成功。
注意
在文件系统正在被使用的情况下,使用resize2fs等工具进行在线文件系统扩容可能存在风险。这种操作可能导致文件系统数据损坏或数据一致性问题。这些问题主要由操作系统内核和resize2fs工具的兼容性问题导致,而非扩容操作本身导致。建议您在扩容前先备份数据,并在系统负载较低的时间窗口中进行扩容操作。
以下内容介绍如何扩容分区的文件系统。
根据步骤一中查询到的文件系统类型,运行相应命令扩容文件系统。
运行resize2fs
命令扩容ext4文件系统。
扩容系统盘上/dev/vda1分区的文件系统:
resize2fs /dev/vda1
扩容数据盘上/dev/vdb1分区的文件系统:
resize2fs /dev/vdb1
说明
resize2fs <disk_device_name>
。例如,云盘的设备名称为/dev/vdd时,运行resize2fs /dev/vdd
。运行以下命令,查看扩容结果。
df -Th
说明
df -Th
命令输出结果中显示的云盘容量使用二进制单位表示。因此,控制台显示的云盘容量的数值与操作系统中显示的数值会有差异。