ECS容災故障演練

更新時間:
Copy as MD

本文詳細介紹了ECS在雲端硬碟資料、鏡像備份以及跨可用性區域的故障演練與恢複操作。

應用情境

情境

說明

雲端硬碟資料異常演練和恢複

當雲端硬碟資料出現異常或丟失時,可利用快照將雲端硬碟資料恢複至建立快照時的狀態。通過故障注入和演練恢複,能夠加深對相關操作的理解。

鏡像備份的故障演練和恢複

鏡像為ECS執行個體提供作業系統初始化的應用資料、預裝軟體和預配置資料,如果環境異常可以通過備份的鏡像建立新的ECS執行個體,快速部署相同的作業系統和資料環境的ECS執行個體,以達到恢複的效果。通過故障注入和演練恢複,能夠加深對操作的理解。

SMC跨可用性區域演練和恢複

當單可用性區域存在風險或已有風險需要將執行個體遷移至其他可用性區域時,可通過SMC實現跨可用性區域遷移。同時在遷移過程中,如果目標可用性區域規格售空,也可以選擇變更執行個體類型選取新的執行個體規格。通過單機故障和網路不通類比出現宕機一次的風險,通過SMC遷移執行個體至新可用性區域,以避免受到風險影響。

準備工作

  • 雲端硬碟資料與鏡像備份演練:Linux作業系統執行個體,雲助手為可用狀態。具體操作,請參見建立ECS執行個體

  • SMC跨可用性區域演練:Linux作業系統執行個體,並且有如下限制。

    • 搶佔式執行個體不支援跨可用性區域遷移。

    • 更換執行個體規格時,僅限同規格類型系列內變更配置(vCPU和記憶體),不支援跨規格類型系列更改執行個體規格。關於執行個體規格類型系列的詳細資料,請參見執行個體規格類型系列

      說明

      如果您想跨可用性區域更改到其他規格類型系列,建議您執行跨可用性區域遷移操作後,再更改執行個體規格。具體操作,請參見訂用帳戶執行個體升配規格更改隨用隨付執行個體規格

    • ECS 控制台支援單次最多跨可用性區域批量遷移 5 台執行個體,如需提升遷移數量,請連絡人工支援。

    • 以下執行個體規格類型系列不支援跨可用性區域遷移。

      • 異構計算

      • ECS Bare Metal Instance

      • Super Computing Cluster

      • 通用算力型執行個體規格類型系列u2a

      • 部分經濟型執行個體規格類型系列e(僅支援 e-c1m1、e-c1m2e-c1m4)

      • x86計算

        • 巨量資料型

        • 本地SSD

        • 安全增強型

      • 部分8代執行個體規格類型系列(僅支援 hfr8i、hfc8i、hfg8i、r8ae、g8ae、c8ae、r8y、c8y、g8y、r8a、g8a、c8a、g8i、r8ic8i)

      • 部分9代執行個體規格類型系列(僅支援r9i、 g9ic9i)

雲端硬碟資料異常演練和恢複

  1. 串連執行個體並輸入以下命令建立類比資料。

    遠端連線執行個體具體操作,請參見使用Workbench登入Linux執行個體

    touch hello.txt
    echo "Hello, World!" > hello.txt
  2. ECS執行個體雲端硬碟進行快照備份,具體操作,請參見手動建立單個快照

  3. 故障注入。

    1. 輸入以下命令,類比資料誤刪除。

      rm hello.txt 
    2. 通過雲助外掛程式ecs-fault-oscrash類比被攻擊導致雲端服務器異常宕機。

      sudo acs-plugin-manager --exec --plugin ecs-fault-oscrash --params inject
      [ecs-user@iZuf69aocxxx ~]$ sudo acs-plugin-manager --exec --plugin ecs-fault-oscrash --params inject
      Done
  4. 驗證故障注入。

    • ECS非預期營運事件中,出現因執行個體錯誤執行個體重啟類型的事件,說明故障注入成功。

      該事件的事件等級為嚴重,事件狀態為執行完畢,執行個體維護屬性為自動重啟恢複

    • ECS執行個體中,執行uptime,查看系統已耗用時間來確定ECS執行個體是否重啟。

      命令輸出中 up 0 min 表示系統剛啟動 0 分鐘,確認 ECS 執行個體已重啟。

      [ecs-user@iZuf69aoc8c8u2 ~]$ uptime
      18:21:46 up 0 min,  1 user,  load average: 0.44, 0.10, 0.03
  5. 通過雲端硬碟快照恢複資料。具體操作,請參見使用快照復原雲端硬碟

  6. 驗證資料正常且刪除的資料是否已經成功恢複。

    [ecs-user@iZ0jlxxx ~]$ ls
    hello.txt
    [ecs-user@iZ0jlxxx ~]$ cat hello.txt
    Hello, World!
    [ecs-user@iZ0xxx ~]$ pwd
    /home/ecs-user

鏡像備份的故障演練和恢複

  1. 串連執行個體並建立類比資料。

    遠端連線執行個體具體操作,請參見使用Workbench登入Linux執行個體

    1. 輸入以下命令,類比建立資料。

      touch hello.txt
      echo "Hello, World!" > hello.txt
    2. 輸入以下命令,查看系統內容。當前$MY_VAR環境變數資料為空白。

      echo $MY_VAR
  2. 對整個ECS執行個體的配置、作業系統、已安裝的軟體和資料進行全量備份。具體操作,請參見使用執行個體建立自訂鏡像

    自訂鏡像建立完成後,在 自訂鏡像 列表中確認該鏡像的 狀態 列顯示為 可用

  3. 故障注入。

    1. 輸入以下命令,類比資料誤刪除。

      rm hello.txt 
    2. 輸入以下命令,類比永久修改系統MY_VAR環境變數修改系統的運行環境。

      echo 'export MY_VAR="value"' >> ~/.bashrc && source ~/.bashrc
      [ecs-user@iZxxx ~]$ echo $MY_VAR
      [ecs-user@iZxxx ~]$ echo 'export MY_VAR="value"'  >> ~/.bashrc && source ~/.bashrc
      [ecs-user@iZxxx ~]$ echo $MY_VAR
      value
      [ecs-user@iZxxx ~]$
    3. 通過雲助外掛程式ecs-fault-oscrash類比被攻擊導致雲端服務器異常宕機。

      sudo acs-plugin-manager --exec --plugin ecs-fault-oscrash --params inject
  4. 驗證故障注入。

    • ECS非預期營運事件中,出現因執行個體錯誤執行個體重啟類型的事件,說明故障注入成功。

    • ECS執行個體中,執行uptime,查看系統已耗用時間來確定ECS執行個體是否重啟。

    • 宕機啟動後查看hello.txt被刪除且環境變數$MY_VAR是有效狀態。

      [ecs-user@iZxxx ~]$ pwd
      /home/ecs-user
      [ecs-user@iZxxx ~]$ ls
      [ecs-user@iZxxx ~]$ echo $MY_VAR
      value
      [ecs-user@iZxxx ~]$
  5. 使用預先備份的自訂鏡像,建立具有相同作業系統、應用程式和資料的ECS執行個體,從而實現資料恢複。在同一地區的不同可用性區域中建立執行個體。具體操作,請參見使用自訂鏡像或共用鏡像建立執行個體

  6. 登入使用自訂鏡像建立ECS執行個體查看檔案恢複,且環境變數也恢複到建立鏡像時的狀態。

    [ecs-user@iZxxxZ ~]$ ls
    hello.txt
    [ecs-user@iZxxxZ ~]$ pwd
    /home/ecs-user
    [ecs-user@iZxxxZ ~]$ echo $MY_VAR
    [ecs-user@iZxxxZ ~]$

SMC跨可用性區域演練和恢複

  1. 串連執行個體並輸入以下命令建立類比資料。

    遠端連線執行個體具體操作,請參見使用Workbench登入Linux執行個體

    touch hello.txt
    echo "Hello, World!" > hello.txt
  2. 通過SMCECS雲端服務器遷移到同地區的不同可用性區域。具體操作,請參見跨可用性區域遷移ECS

    遷移任務建立後,ECS 執行個體狀態變為已停止並顯示正在遷移標籤,頁面右上方彈出遷移進度提示(初始為 0%)。遷移期間請勿對執行個體執行停止、重啟、釋放等操作,且暫不支援快照和磁碟相關操作。

  3. 待遷移成功後登入驗證,驗證執行個體遷移到其他可用性區域且遷移前資料未發現丟失。

    [ecs-user@xxx ~]$ ls
    hello.txt
    [ecs-user@xxx ~]$ cat hello.txt
    Hello, World!
    [ecs-user@xxx ~]$ pwd
    /home/ecs-user