為了適應不斷增長的儲存需求,避免磁碟空間不足造成的系統故障,並確保應用安裝與資料存放區有足夠的空間,您需要在系統硬碟容量告急時及時擴容系統硬碟容量。本文介紹如何在不停機的前提下,對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