全部產品
Search
文件中心

:如何線上擴容ContainerOS系統硬碟

更新時間:Jun 15, 2024

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

閱讀前提示

擴容系統硬碟前,建議您參見雲端硬碟擴容指引瞭解雲端硬碟(包括系統硬碟和資料盤,本文涉及系統硬碟)的以下資訊:

  • 系統硬碟的擴容流程:包括擴容系統硬碟容量以及擴容分區和檔案系統。

  • 系統硬碟的擴容上限。

  • 系統硬碟擴容過程中產生的費用。

步驟一:擴容雲端硬碟容量

您可以參見步驟一:擴容雲端硬碟容量,瞭解擴容注意事項並登入ECS管理主控台配置擴容後的系統硬碟容量(例如200 GiB)。推薦您在選擇線上擴容的擴容方式,擴容後無需重啟執行個體即可生效。

步驟二:擴容分區

  1. 通過雲助手下發如下命令,查看節點當前的分區。

    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舉例。

  2. 通過雲助手下發如下命令,擴容指定分區。

    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

步驟三:擴容檔案系統

  1. 通過雲助手下發如下命令,調整分區掛載模式。

    由於ContainerOS中的/sysroot預設是以唯讀方式掛載的,無法直接擴容檔案系統,因此您需要建立一個新的掛載命名空間,並在掛載命名空間前先將/sysroot以可寫方式掛載,再擴容檔案系統,從而避免對預設空間的掛載方式產生影響。

    NVMe雲端硬碟

    unshare --mount -- mount -o remount,rw /dev/nvme0n1p4 /sysroot

    非NVMe雲端硬碟

    unshare --mount -- mount -o remount,rw /dev/vda4 /sysroot
  2. 通過雲助手下發如下命令,即可在新的掛載命名空間中對檔案系統進行擴容。

    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.
  3. 驗證節點系統硬碟是否擴容成功。

    通過雲助手下發如下命令,查看根分區大小。

    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