當Linux執行個體無法啟動時,執行個體健康診斷工具診斷出執行個體雲端硬碟的inode使用率或者空間使用率過高。此時,您可以通過執行個體健康診斷工具進行問題修複。
前提條件
ECS執行個體已通過執行個體健康診斷工具診斷出雲端硬碟的inode使用率或空間使用率過高的問題。
ECS執行個體資源需要符合以下條件。
資源
限制條件
執行個體
執行個體為I/O最佳化執行個體。
不支援以下執行個體規格:ecs.ebmc4.8xlarge、ecs.ebmhfg5.2xlarge、ecs.ebmg5.24xlarge。
雲端硬碟
雲端硬碟狀態為使用中(In Use)。
雲端硬碟類型為ESSD雲端硬碟、SSD雲端硬碟或高效雲端硬碟。
訂用帳戶ECS執行個體續約降配後,當前計費周期的剩餘時間內,不支援擴容執行個體的訂用帳戶雲端硬碟。
雲端硬碟擴容後的容量不能超過雲端硬碟最高容量,具體請參見Block Storage使用限制。
重要一個已有分區採用了MBR分區格式,則不支援擴容到2 TiB及以上。如果您的MBR分區容量需要擴容到2 TiB以上,建議您先建立一塊大於2 TiB的雲端硬碟並格式化為GPT分區,再將MBR分區中的資料拷貝到GPT分區中。格式化GPT分區操作,請參見分區格式化大於2 TiB資料盤。
背景資訊
問題描述:Linux執行個體中雲端硬碟的inode使用率或者空間使用率過高,導致執行個體無法啟動。
問題原因:Linux執行個體的雲端硬碟容量不足,您需要對雲端硬碟進行擴容。
您可以通過df -Th命令查看雲端硬碟的空間使用率,通過df -i命令查看雲端硬碟的inode使用率。
您可以通過執行個體健康診斷工具的修複盤進行擴容雲端硬碟,或者通過中轉執行個體進行擴容雲端硬碟。具體操作,請參見通過修複盤擴容雲端硬碟或通過中轉執行個體擴容雲端硬碟。
通過修複盤擴容雲端硬碟
您可以在執行個體健康診斷工具中通過修複盤擴容雲端硬碟。
在控制台為目標雲端硬碟建立快照。具體操作,請參見手動建立單個快照。
在控制台擴容目標雲端硬碟。具體操作,請參見擴充雲端硬碟容量。
- 遠端連線問題執行個體。
當ECS執行個體處於正在掛載修複盤的模式下時,只能通過VNC遠端連線。具體操作,請參見通過VNC串連執行個體。
運行以下命令查看執行個體的雲端硬碟情況。
fdisk -lu在查詢結果中找到/dev/vd*(例如/dev/vda、/vdb和/vdc),這些Block Storage裝置為故障執行個體的雲端硬碟。
樣本以系統硬碟(/dev/vda1)和資料盤(/dev/vdb1、/dev/vdc1)的三個分區為例,執行結果如下所示。
[root@ecs ~]# fdisk -lu Disk /dev/vda: 64.4 GB, 64424509440 bytes, 125829120 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 Disk label type: dos Disk identifier: 0x000b83c7 Device Boot Start End Blocks Id System /dev/vda1 * 2048 83886046 41941999+ 83 Linux Disk /dev/vdb: 64.4 GB, 64424509440 bytes, 125829120 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 Disk label type: dos Disk identifier: 0xae44111b Device Boot Start End Blocks Id System /dev/vdb1 2048 83886079 41942016 83 Linux Disk /dev/vdc: 64.4 GB, 64424509440 bytes, 125829120 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 Disk label type: dos Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/vdc1 1 83886079 41943039+ ee GPT [root@ecs ~]#序號
分區
說明
①
/dev/vda1系統硬碟,System取值Linux表示為MBR分區。
②
/dev/vdb1資料盤,System取值Linux表示為MBR分區。
③
/dev/vdc1資料盤,System取值GPT表示為GPT分區。
說明如果您的查詢結果中雲端硬碟容量還是40 GiB(
Disk /dev/vda: 42.9 GB),表示擴容不成功,建議您在控制台重啟下本執行個體。運行以下命令確認已有分區的檔案系統類型。
df -Th[root@ecs ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs tmpfs 1.8G 612K 1.8G 1% /run tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/vda1 ext4 40G 1.8G 36G 5% / tmpfs tmpfs 361M 0 361M 0% /run/user/0 /dev/vdb1 ext4 40G 49M 38G 1% /media/vdb /dev/vdc1 xfs 40G 74M 40G 1% /media/vdc [root@ecs ~]#運行以下命令擴容分區。
growpart /dev/vda 1此樣本以擴容系統硬碟為例,
/dev/vda和1之間需要空格分隔。如果需要擴容其他分區,請根據實際情況修改命令。[root@ecs ~]# growpart /dev/vda 1 CHANGED: partition=1 start=2048 old: size=83883999 end=83886047 new: size=125827039 end=125829087在ECS執行個體內部,根據查詢的檔案系統類型,擴容檔案系統。
擴容ext*(例如ext4)檔案系統:運行以下命令擴容檔案系統。
擴容系統硬碟/dev/vda1的檔案系統。
resize2fs /dev/vda1擴容資料盤/dev/vdb1的檔案系統。
resize2fs /dev/vdb1說明/dev/vda1和/dev/vdb1都是分區名稱,您需要根據實際情況修改。擴容xfs檔案系統:運行以下命令擴容資料盤/dev/vdc1的檔案系統。
xfs_growfs /media/vdc說明/media/vdc為/dev/vdc1的掛載點,您需要根據實際情況修改。擴容btrfs檔案系統:如果您的資料盤檔案系統為btrfs,則需要運行以下命令擴容檔案系統。
btrfs filesystem resize max /mountpoint說明/mountpoint為資料盤對應的掛載點,您需要根據實際情況修改。
運行以下命令檢查擴容後結果。
df -Th執行結果如下。
其中 /dev/vda1(ext4, 59G, 掛載於 /)、/dev/vdb1(ext4, 59G, 掛載於 /media/vdb)和 /dev/vdc1(xfs, 60G, 掛載於 /media/vdc)顯示擴容後的分區容量。
[root@ecs ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 1.8G 0 1.8G 0% /dev tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm tmpfs tmpfs 1.8G 492K 1.8G 1% /run tmpfs tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/vda1 ext4 59G 1.9G 55G 4% / tmpfs tmpfs 361M 0 361M 0% /run/user/0 /dev/vdb1 ext4 59G 52M 56G 1% /media/vdb /dev/vdc1 xfs 60G 94M 60G 1% /media/vdc擴容完成後,您需要根據實際情況檢查資料是否正常。
如果擴容成功,ECS執行個體中的業務程式能夠正常運行,則完成操作。
如果擴容失敗,則通過備份的快照復原資料。
修複完成後,退出修複環境,然後檢查問題執行個體的目前狀態。
在ECS控制台的執行個體健康診斷頁面,卸載修複盤並恢複問題執行個體至正常模式。
遠端連線已修複的ECS執行個體,檢查雲端硬碟容量。
通過中轉執行個體擴容雲端硬碟
您也可以將問題雲端硬碟卸載,然後掛載到中轉執行個體(同地區的其他Linux執行個體),再進行擴容雲端硬碟操作。