如果發現預留 H4D VM 發生問題,且無法以其他方式解決 (例如 RDMA 裝置持續發生錯誤),建議您回報主機故障。當您回報主機故障時,Compute Engine 會將主機回報為故障,然後執行主機維護作業,自動修復 VM。對於 H4D VM,Compute Engine 會在維護作業開始時,嘗試將 VM 遷移至其他主機,盡量縮短工作負載的停機時間。
本文說明如何回報及修復虛擬機器 (VM) 叢集中 VM 執行個體的故障主機。如果是 Google Kubernetes Engine (GKE) 叢集,請參閱「透過 GKE 檢舉故障主機」。
限制
回報出錯的主機時,請注意以下限制:
只有在主機上執行的 VM 符合下列所有條件時,您才能回報主機有錯誤:
VM 正在執行中。
VM 使用 H4D 機型。
VM 使用取決於預留項目的佈建模式。
Cloud de Confiance by S3NS 會盡力滿足所有回報主機故障的要求。不過,由於容量限制或頻率限制,要求不一定能完成。
事前準備
-
選取這個頁面上範例的預計用途分頁:
控制台
使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,您不需要設定驗證機制。
gcloud
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:
gcloud initREST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。
必要的角色
如要取得回報主機故障所需的權限,請要求管理員授予您下列 IAM 角色:
- VM 或專案的 Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1) -
如要使用 Cloud Logging 查看故障主機報告作業的狀態,請在專案中執行下列操作:
記錄檢視者 (
roles/logging.viewer)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這些預先定義的角色具備回報主機故障所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要回報主機故障,必須具備下列權限:
-
如要建立出錯的主機報告,請在 VM 上執行
compute.instances.update。 -
如要使用 Logging 查看作業清單,請按照以下步驟操作:
logging.operations.list在專案中 -
如要使用 Logging 查看作業詳細資料:
logging.operations.get在專案中 -
如要查看 Compute Engine 中的作業清單:
compute.zoneOperations.list在專案中 -
如要查看 Compute Engine 作業的詳細資料:
compute.zoneOperations.describe在專案中
瞭解出錯主機回報程序
回報 H4D VM 的主機故障後,H4D VM 重新啟動的時間會因您建立 VM 時使用的預留項目預留項目作業模式而異。如要驗證預訂的預留作業模式,請查看預訂中的 reservationOperationalMode 欄位。
受管理模式 (HIGHLY_AVAILABLE_CAPACITY) |
|
|---|---|
| 支援的機型 | H4D |
| Faulty host report API 頻率限制 | 對 API 的呼叫可能會受到速率限制。 |
| 主機故障回報程序 |
如果為以管理模式執行的 H4D VM 回報錯誤主機,會發生下列情況:
|
回報出錯的主機
如要回報主機故障,請完成下列步驟:
查看 VM 執行的主機。
如需操作說明,請參閱「查看 H4D 叢集拓撲」。
選用:備份本機 SSD 資料。VM 停止時,Compute Engine 會自動捨棄附加至 VM 的所有本機 SSD 磁碟資料。Compute Engine 捨棄本機 SSD 資料後,您就無法復原。
如要瞭解如何保留本機 SSD 資料,請參閱「本機 SSD 資料備份」。
回報出錯的主機。如要回報出錯的主機,請選取下列其中一個選項。主機修復作業會立即啟動,在回報故障主機作業完成後的一分鐘內啟動。如果啟動錯誤主機報表作業後,VM 停止回應,建議您等待至少 15 分鐘後再重新啟動 VM。
gcloud
如要回報出錯的主機,請使用下列
gcloud compute instances report-host-as-faulty指令:gcloud compute instances report-host-as-faulty VM_NAME \ --async \ --disruption-schedule=IMMEDIATE \ --fault-reasons=behavior=FAULT_REASON,description=DESCRIPTION \ --zone=ZONE更改下列內容:
VM_NAME:VM 名稱。FAULT_REASON:VM 遇到的主機問題清單,以半形逗號分隔,例如ISSUE_1,ISSUE_2。可指定的值如下:PERFORMANCE:CPU 或 Cloud RDMA 網路作業效能下降、IRDMA 網路介面故障,或 IRDMA 網路裝置不存在。SILENT_DATA_CORRUPTION:VM 中出現資料損毀情形,但 VM 仍持續執行。無聲資料損毀可能是因為 vCPU 缺陷、軟體錯誤或核心問題等。BEHAVIOR_UNSPECIFIED:不確定 VM 受到什麼問題影響,或問題不屬於其他選項涵蓋的範圍。
DESCRIPTION:影響 VM 的問題說明,例如 XID 資訊或疑似效能問題。ZONE:VM 所在的可用區。
REST
如要回報出錯的主機,請對
instances.reportHostAsFaulty方法發出下列POST要求。回報故障主機時,您可以一次指定多個故障原因。舉例來說,如要指定兩個錯誤原因,請按照下列方式提出要求:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/reportHostAsFaulty { "disruptionSchedule": "IMMEDIATE", "faultReasons": [ { "behavior": "FAULT_REASON_1", "description": "DESCRIPTION_1" }, { "behavior": "FAULT_REASON_2", "description": "DESCRIPTION_2" } ] }更改下列內容:
PROJECT_ID:VM 所在的專案 ID。ZONE:VM 所在的可用區。VM_NAME:VM 的名稱。FAULT_REASON_1和FAULT_REASON_2:VM 遇到的各項主機問題。可指定的值如下:PERFORMANCE:您發現 CPU 或 RDMA 網路作業效能降低、RDMA 裝置故障,或是 RDMA 裝置不存在。SILENT_DATA_CORRUPTION:VM 中的資料損毀,但 VM 仍持續運作。無聲資料損毀可能是 vCPU 缺陷、軟體錯誤或核心問題所致。BEHAVIOR_UNSPECIFIED:不確定 VM 的問題為何。
DESCRIPTION_1和DESCRIPTION_2:您指定的每個主機問題說明,例如 XID 資訊或疑似效能問題。
查看回報出錯主機作業
回報主機故障後,Compute Engine 會啟動一系列作業,將主機標示為故障,並準備維修主機。具體來說,在回報出錯的主機作業期間,會發生下列程序:
將主機標示為出錯。Compute Engine 會建立報告,指出主機作業發生錯誤。接著,回報出錯的主機作業會建立一系列子作業。這些子作業會將基礎主機標示為故障。
準備主機送修。所有子作業完成後,系統會開始回報主機故障作業。Compute Engine 會停止 VM,並啟動修復故障主機作業。根據 VM 使用的預留項目中指定的預留項目運作模式,以及是否有可用的健全主機,Compute Engine 會讓 VM 保持停止狀態,或是嘗試自動遷移並重新啟動 VM。
完成報告並修復主機。Compute Engine 會完成回報出錯主機作業,並執行主機修復作業。
如要追蹤專案中回報故障主機 (compute.instances.reportHostAsFaulty) 作業的狀態,請選取下列其中一個選項。如要進一步瞭解可用於追蹤修復、遷移和自動重新啟動的其他作業,請參閱 Compute Engine 說明文件中的「維護和重新啟動行為」和「監控及規劃主機維護事件」。
控制台 (VM 作業)
前往 Cloud de Confiance 控制台的「Operations」頁面。
在顯示的表格中,找出您回報的 VM。
在含有 VM 的資料列中,您可以在「狀態」欄中查看回報主機故障作業的狀態。作業完成後,值會是「Done」(完成)。
選用:如要確認 Compute Engine 是否已重新啟動 VM,請查看 VM 的詳細資料。
控制台 (VM 記錄)
前往 Cloud de Confiance 控制台的「Logs Explorer」頁面。
確認「顯示查詢」切換鈕已設為開啟。
在查詢編輯器中輸入下列查詢:
resource.type="gce_instance" AND protoPayload.methodName=~"compute\.instances\.reportHostAsFaulty"按一下「Run query」(執行查詢)。「Query results」(查詢結果) 窗格會顯示查詢結果。
gcloud
如要查看專案中回報故障主機作業的狀態,請使用
gcloud compute operations list指令,並將--filter旗標設為operationType:compute.instances.reportHostAsFaulty:gcloud compute operations list --filter="operationType:compute.instances.reportHostAsFaulty"如要查看特定錯誤主機作業的詳細資料,請使用
gcloud compute operations describe指令:gcloud compute operations describe OPERATION_NAME \ --zone="ZONE"更改下列內容:
OPERATION_NAME:作業名稱。ZONE:作業所在的可用區。
REST
如要查看專案中回報出錯主機作業的狀態,請對 zoneOperations.list 方法發出 GET 要求。在要求網址中,加入設為 items.operationType:compute.instances.reportHostAsFaulty 的 filter 查詢參數。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations&filter=items.operationType:compute.instances.reportHostAsFaulty
更改下列內容:
PROJECT_ID:作業名稱。ZONE:作業所在的可用區。
後續步驟
- 如果回報出錯的主機時發生問題,請參閱「排解出錯的主機 API 問題」。