當Linux實例無法啟動時,實例健康診斷工具診斷出實例云盤的inode使用率或者空間使用率過高。此時,您可以通過實例健康診斷工具進行問題修復。

前提條件

  • ECS實例已通過實例健康診斷工具診斷出云盤的inode使用率或空間使用率過高的問題。
  • ECS實例資源需要符合以下條件。
    資源 限制條件
    實例
    • 實例為I/O優化實例。
    • 不支持以下實例規格:ecs.ebmc4.8xlarge、ecs.ebmhfg5.2xlarge、ecs.ebmg5.24xlarge。
    云盤
    • 云盤狀態為使用中(In Use)。
    • 云盤類型為ESSD云盤、SSD云盤或高效云盤。
    • 包年包月ECS實例續費降配后,當前計費周期的剩余時間內,不支持擴容實例的包年包月云盤。
    • 云盤擴容后的容量不能超過云盤最高容量,具體請參見塊存儲使用限制
    注意 一個已有分區采用了MBR分區格式,則不支持擴容到2 TiB及以上。如果您的MBR分區容量需要擴容到2 TiB以上,建議您先創建一塊大于2 TiB的云盤并格式化為GPT分區,再將MBR分區中的數據拷貝到GPT分區中。格式化GPT分區操作,請參見分區格式化大于2 TiB數據盤

背景信息

問題描述:Linux實例中云盤的inode使用率或者空間使用率過高,導致實例無法啟動。

問題原因:Linux實例的云盤容量不足,您需要對云盤進行擴容。

說明 您可以通過df -Th命令查看云盤的空間使用率,通過df -i命令查看云盤的inode使用率。

您可以通過實例健康診斷工具的修復盤進行擴容云盤,或者通過中轉實例進行擴容云盤。具體操作,請參見通過修復盤擴容云盤通過中轉實例擴容云盤

通過修復盤擴容云盤

您可以在實例健康診斷工具中通過修復盤擴容云盤。

  1. 在控制臺為目標云盤創建快照。具體操作,請參見步驟一:創建快照
  2. 在控制臺擴容目標云盤。具體操作,請參見步驟二:在控制臺擴容云盤容量
  3. 遠程連接問題實例。
    當ECS實例處于正在掛載修復盤的模式下時,只能通過VNC遠程連接。具體操作,請參見通過密碼認證登錄Linux實例
  4. 運行以下命令查看實例的云盤情況。
    fdisk -lu

    在查詢結果中找到/dev/vd*(例如/dev/vda、/vdb和/vdc),這些塊存儲設備為故障實例的云盤。

    示例以系統盤(/dev/vda1)和數據盤(/dev/vdb1、/dev/vdc1)的三個分區為例,執行結果如下所示。查看云盤分區情況
    序號 分區 說明
    /dev/vda1 系統盤,System取值Linux表示為MBR分區。
    /dev/vdb1 數據盤,System取值Linux表示為MBR分區。
    /dev/vdc1 數據盤,System取值GPT表示為GPT分區。
    說明 如果您的查詢結果中云盤容量還是40 GiB(Disk /dev/vda: 42.9 GB),表示擴容不成功,建議您在控制臺重啟下本實例。
  5. 運行以下命令確認已有分區的文件系統類型。
    df -Th

    執行結果如下所示。其中,Mounted on列為文件系統對應的掛載點。

    查看文件系統
  6. 運行以下命令擴容分區。
    growpart /dev/vda 1
    此示例以擴容系統盤為例,/dev/vda1之間需要空格分隔。如果需要擴容其他分區,請根據實際情況修改命令。執行結果如下所示。growpart
  7. 在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為數據盤對應的掛載點,您需要根據實際情況修改。
  8. 運行以下命令檢查擴容后結果。
    df -Th

    執行結果如下所示。

    查看擴容結果
    擴容完成后,您需要根據實際情況檢查數據是否正常。
    • 如果擴容成功,ECS實例中的業務程序能夠正常運行,則完成操作。
    • 如果擴容失敗,則通過備份的快照回滾數據。
  9. 修復完成后,退出修復環境,然后檢查問題實例的當前狀態。
    1. 在ECS控制臺的實例健康診斷頁面,卸載修復盤并恢復問題實例至正常模式。
    2. 遠程連接已修復的ECS實例,檢查云盤容量。

通過中轉實例擴容云盤

您也可以將問題云盤卸載,然后掛載到中轉實例(同地域的其他Linux實例),再進行擴容云盤操作。

  1. 從問題實例上卸載云盤。具體操作,請參見卸載系統盤卸載數據盤
  2. 將此云盤掛載到其他Linux實例。具體操作,請參見掛載數據盤
  3. 在Linux實例中擴容此云盤。具體操作,請參見在線擴容云盤(Linux系統)離線擴容云盤(Linux系統)
  4. 擴容完成后,在Linux實例上卸載此云盤。具體操作,請參見卸載數據盤
  5. 將此云盤掛載回原ECS實例。具體操作,請參見作為系統盤掛載掛載數據盤
  6. 遠程連接已修復的ECS實例,檢查云盤容量。