为了适应不断增长的存储需求,避免磁盘空间不足造成的系统故障,并确保应用安装与数据存储有足够的空间,您需要在系统盘容量告急时及时扩容系统盘容量。本文介绍如何在不停机的前提下,对ContainerOS的系统盘进行在线扩容。
阅读前提示
扩容系统盘前,建议您参见云盘扩容指引了解云盘(包括系统盘和数据盘,本文涉及系统盘)的以下信息:
系统盘的扩容流程:包括扩容系统盘容量以及扩容分区和文件系统。
系统盘的扩容上限。
系统盘扩容过程中产生的费用。
步骤一:扩容云盘容量
您可以参见步骤一:扩容云盘容量,了解扩容注意事项并登录ECS管理控制台配置扩容后的系统盘容量(例如200 GiB)。推荐您在选择在线扩容的扩容方式,扩容后无需重启实例即可生效。
步骤二:扩容分区
通过云助手下发如下命令,查看节点当前的分区。
fdisk -l
输出如下所示。
NVMe云盘
Disk /dev/nvme0n1: 150 GiB, 161061273600 bytes, 314572800 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 00000000-0000-4000-A000-000000000001 Device Start End Sectors Size Type /dev/nvme0n1p1 2048 4095 2048 1M BIOS boot /dev/nvme0n1p2 4096 264191 260096 127M EFI System /dev/nvme0n1p3 264192 1050623 786432 384M Linux filesystem /dev/nvme0n1p4 1050624 19924991 18874368 9G Linux filesystem
非NVMe云盘
Disk /dev/vda: 120 GiB, 161061273600 bytes, 314572800 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 00000000-0000-4000-A000-000000000001 Device Start End Sectors Size Type /dev/vda1 2048 4095 2048 1M BIOS boot /dev/vda2 4096 264191 260096 127M EFI System /dev/vda3 264192 1050623 786432 384M Linux filesystem /dev/vda4 1050624 19924991 18874368 9G Linux filesystem
说明请您根据自身环境中云盘格式判断后续扩容命令。本示例将以NVMe格式的系统盘nvme0n1p4举例。
通过云助手下发如下命令,扩容指定分区。
NVMe云盘
growpart /dev/nvme0n1 4
非NVMe云盘
growpart /dev/vda 4
命令执行后会输出如下类似信息,表明磁盘分区已经扩容成功。
CHANGED: partition=4 start=1050624 old: size=18874368 end=19924991 new: size=313522143 end=314572766
步骤三:扩容文件系统
通过云助手下发如下命令,调整分区挂载模式。
由于ContainerOS中的
/sysroot
默认是以只读方式挂载的,无法直接扩容文件系统,因此您需要创建一个新的挂载命名空间,并在挂载命名空间前先将/sysroot
以可写方式挂载,再扩容文件系统,从而避免对默认空间的挂载方式产生影响。NVMe云盘
unshare --mount -- mount -o remount,rw /dev/nvme0n1p4 /sysroot
非NVMe云盘
unshare --mount -- mount -o remount,rw /dev/vda4 /sysroot
通过云助手下发如下命令,即可在新的挂载命名空间中对文件系统进行扩容。
NVMe云盘
unshare --mount -- resize2fs /dev/nvme0n1p4
非NVMe云盘
unshare --mount -- resize2fs /dev/vda4
输出如下类似信息,表明文件系统扩容成功。
resize2fs 1.46.0 (29-Jan-2020) Filesystem at /dev/nvme0n1p4 is mounted on /; on-line resizing required old_desc_blocks = 19, new_desc_blocks = 19 The filesystem on /dev/nvme0n1p4 is now 39452411 (4k) blocks long.
验证节点系统盘是否扩容成功。
通过云助手下发如下命令,查看根分区大小。
df -h
输出如下所示,表明根分区已扩容到指定大小,节点扩容成功。
Filesystem Size Used Avail Use% Mounted on /dev/root 199G 9.1G 163G 5% /sysroot devtmpfs 3.8G 0 3.8G 0% /dev tmpfs 3.8G 0 3.8G 0% /dev/shm tmpfs 3.8G 2.0M 3.8G 1% /run tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup tmpfs 3.8G 16K 3.8G 1% /tmp overlay 149G 9.1G 133G 7% /var/opt /dev/nvme0n1p3 362M 16M 324M 5% /boot
文档内容是否对您有帮助?