全部產品
Search
文件中心

Elastic Compute Service:隔離損壞的本地碟

更新時間:Jun 19, 2024

隔離損壞的本地碟後,ECS執行個體不會變更所宿物理機。本文僅適用於發生了本地碟執行個體系統事件的ECS執行個體,介紹如何在控制台和使用CLI隔離損壞的本地碟。

背景資訊

隔離損壞的本地碟僅支援巨量資料型執行個體,隔離損壞的本地碟系統事件包括以下事件:

  • 本地磁碟出現損壞警示Disk:ErrorDetected

  • 因系統維護隔離壞盤SystemMaintenance.IsolateErrorDisk

  • 因系統維護重啟執行個體並隔離壞盤SystemMaintenance.RebootAndIsolateErrorDisk

  • 因系統維護重新初始化壞盤SystemMaintenance.ReInitErrorDisk

  • 因系統維護重啟執行個體並重新初始化壞盤SystemMaintenance.RebootAndReInitErrorDisk

更多本地碟事件資訊,請參見本地碟執行個體營運情境和系統事件

操作步驟

通過控制台隔離損壞的本地碟

  1. 登入ECS管理主控台

  2. 在左側導覽列,單擊事件

  3. 事件頁面左側導覽列,單擊本地碟執行個體事件

  4. 本地碟執行個體事件頁面,單擊本地碟受損事件頁簽。

  5. 找到目標執行個體,在操作列單擊修複磁碟

  6. 修改配置階段,修改ECS執行個體的設定檔,完成後單擊下一步

    修改配置

    部分Linux執行個體如果出現修改配置階段,請根據頁面提示完成以下操作。本章節壞盤的裝置名稱以/dev/vdd為例。

    1. 遠端連線ECS執行個體。

      具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

    2. (可選)對本地碟設定應用程式層讀寫隔離。

    3. 在/etc/fstab設定檔中為對應本地碟加入nofail參數。

      /dev/vdd /mnt/vdd ext4 defaults,barrier=0,nofail 0 0

      參數設定

      說明

      /dev/vdd

      本地碟裝置名稱,DescribeInstanceHistoryEvents返回的Device取值。

      /mnt/vdd

      本地碟掛載點,可通過mount | grep "/dev/vdd"命令查詢。

      ext4

      檔案系統類型,可通過blkid /dev/vdd命令查詢。

      barrier=0

      掛載選項,在檔案系統中禁用barrier。

      nofail

      本地碟出現在檔案系統中但實際缺失時,不會中斷ECS執行個體的啟動流程。

    4. 取消掛載本地碟。

      umount /dev/vdd
      重要

      如果不進行取消掛載操作,在壞盤維修完成並恢複隔離後,該本地碟的對應裝置名稱會發生變化,可能導致應用讀寫錯誤的磁碟。

  7. 隔離壞盤階段,單擊隔離

    如果幾分鐘後沒有進入下一階段,請嘗試重新整理頁面。

  8. (可選)重啟階段,單擊重啟

    如果您的引導頁面出現重啟階段,則需要進行重啟。

    說明 重啟執行個體後,為方便後續操作,被隔離的受損本地碟暫時變為1 MiB的Dummy硬碟。您需要在應用程式層持續隔離受損本地碟的讀寫操作和/etc/fstab檔案中的nofail設定。
  9. 重啟完成後,在新盤插入中階段,單擊確定

    確認後請等待阿里雲在所宿物理機上更換損壞的本地碟,維護操作通常在五個工作日內完成,之後您會收到恢複磁碟的事件通知。

  10. 收到恢複磁碟的事件通知後,在恢複磁碟階段,單擊恢複磁碟

    如果幾分鐘後沒有進入下一階段,請嘗試重新整理頁面。

  11. (可選)重啟階段,單擊重啟

    如果您的引導頁面出現重啟階段,則需要進行重啟。

  12. 重啟完成後,在完成階段,單擊完成

使用CLI隔離損壞的本地碟

請確保您已經為ECS執行個體安裝了阿里雲CLI,在不同作業系統中安裝CLI的方式請參見:

  1. 調用DescribeInstanceHistoryEvents查詢指定地區下Inquiring狀態的系統事件,並記錄返回的EventIdDiskIdDevice取值。

    在阿里雲CLI中執行以下命令。

    aliyun ecs DescribeInstanceHistoryEvents \
    --RegionId <TheRegionId> \
    --InstanceEventCycleStatus.1 Inquiring

    以下為JSON格式的返回樣本。

    {
      "InstanceSystemEventSet": {
        "InstanceSystemEventType": [
          {
            "InstanceId": "i-2ze3tphuqvc93ci****3",
            "EventId": "e-2ze9y****wtqcvai68rl",
            "EventType": {
              "Code": 3,
              "Name": "SystemMaintenance.IsolateErrorDisk"
            },
            "EventCycleStatus": {
              "Code": 28,
              "Name": "Inquiring"
            },
            "EventPublishTime": "2017-11-30T06:32:31Z",
            "ExtendedAttribute" : {
              "DiskId": "d-disk1",
              "Device": "/dev/xvda"
            }
          }
        ]
      },
      "PageSize": 10,
      "PageNumber": 1,
      "TotalCount": 1,
      "RequestId": "02EA76D3-5A2A-44EB-****-8901881D8707"
    }
  2. 登入ECS執行個體,做隔離前的準備。

    1. 遠端連線ECS執行個體。

      具體操作,請參見通過密碼或密鑰認證登入Linux執行個體

    2. (可選)對本地碟設定應用程式層讀寫隔離。

    3. 如果是Linux系統ECS執行個體,在/etc/fstab設定檔中為對應本地碟加入nofail參數。

      /dev/vdd /mnt/vdd ext4 defaults,barrier=0,nofail 0 0

      參數設定

      說明

      /dev/vdd

      本地碟裝置名稱,DescribeInstanceHistoryEvents返回的Device取值。

      /mnt/vdd

      本地碟掛載點,可通過mount | grep "/dev/vdd"命令查詢。

      ext4

      檔案系統類型,可通過blkid /dev/vdd命令查詢。

      barrier=0

      掛載選項,在檔案系統中禁用barrier。

      nofail

      本地碟出現在檔案系統中但實際缺失時,不會中斷ECS執行個體的啟動流程。

    4. 取消掛載本地碟。

      umount /dev/vdd
      重要

      如果不進行取消掛載操作,在壞盤維修完成並恢複隔離後,該本地碟的對應裝置名稱會發生變化,可能導致應用讀寫錯誤的磁碟。

  3. 調用AcceptInquiredSystemEvent響應系統事件。

    在阿里雲CLI中執行以下命令。

    aliyun ecs AcceptInquiredSystemEvent --RegionId <TheRegionId> --EventId <TheEventId>
  4. 決定是否重啟執行個體。

    • 事件代碼為SystemMaintenance.IsolateErrorDisk時:

      • 只返回了RequestId,則無需重啟執行個體。

      • 返回了code=SwitchToOffline.OnlineIsolateFail,則需要重啟執行個體。

    • 事件代碼為SystemMaintenance.RebootAndIsolateErrorDisk時:調用AcceptInquiredSystemEvent後,您需要重啟執行個體。

    如果需要重啟,在阿里雲CLI中執行以下命令。

    aliyun ecs RebootInstance --InstanceId <TheInstanceId>
    說明

    重啟執行個體後,為方便後續操作,被隔離的受損本地碟暫時變為1 MiB的Dummy硬碟。您需要在應用程式層持續隔離受損本地碟的讀寫操作和/etc/fstab檔案中的nofail設定。

  5. 等待阿里雲在所宿物理機上完成更換損壞的本地碟並發布SystemMaintenance.ReInitErrorDiskSystemMaintenance.RebootAndReInitErrorDisk事件,通常在五個工作日內完成。

  6. 再次調用AcceptInquiredSystemEvent響應系統事件,本地碟會進入重新初始化狀態。

    在阿里雲CLI中執行以下命令。

    aliyun ecs AcceptInquiredSystemEvent --RegionId <TheRegionId> --EventId <TheEventId>
  7. 決定是否重啟執行個體。

    • 事件代碼為SystemMaintenance.ReinitErrorDisk時:

      • 只返回了RequestId,則無需重啟執行個體。

      • 返回了code=SwitchToOffline.OnlineReInitFail,則需要重啟執行個體。

    • 事件代碼為SystemMaintenance.RebootAndReinitErrorDisk時:調用AcceptInquiredSystemEvent後,您需要重啟執行個體。

    如果需要重啟,在阿里雲CLI中執行以下命令。
    aliyun ecs RebootInstance --InstanceId <TheInstanceId>

執行結果

壞盤更換完成後,本地碟受損事件將在幾分鐘後消失。

後續步驟

隔離壞盤後,請您檢查ECS執行個體和本地碟狀態。此時被更換的本地碟容量恢複為原始容量,您可以格式化資料盤。具體操作,請參見初始化小於等於2 TiB資料盤(Windows)初始化小於等於2 TiB資料盤(Linux)