復原 TPU 執行個體故障
為確保工作負載持續運作,Compute Engine 會從硬體和應用程式故障中復原 TPU 執行個體和切片。
故障復原行為取決於容量模式:
- 受管理容量模式 (隨選、彈性啟動和標準預留):Compute Engine 會在正常運作的硬體上重新啟動 TPU 執行個體和切片,自動復原這些資源。
- 所有容量模式 (所有容量模式的預留項目):您負責管理 TPU 節點復原作業。系統會在現有主機上修復硬體故障,不會自動將執行個體遷移至新硬體。
多主機切片復原需求
多主機 TPU 配量需要一併復原或重新排定配量中的所有執行個體。無論 Compute Engine 是在「代管容量」模式中自動處理復原作業,還是您在「所有容量」模式中手動復原分片,都無法重新排定分片中個別執行個體的排程。
多主機切片中的執行個體會透過晶片間互連 (ICI) 連線,有時也會透過光學電路交換器 (OCS) 連線。當您佈建多主機配量時,Compute Engine 會建立 TPU 執行個體並啟動 ICI 網路。您可以在工作負載政策中設定加速器拓撲,指定配量的網路拓撲。工作負載啟動時,基礎 TPU 軟體層 LibTPU 會初始化網路拓撲。根據預設,XLA 編譯器會將模型的作業靜態對應至這個拓撲。
如果執行個體或網路連結失敗,實體硬體就不再符合對應的拓撲。因此,在系統重新設定網路拓撲 (重新建立或重新排定切片中的所有執行個體) 之前,XLA 編譯器無法執行工作負載。
在代管容量模式中進行故障復原
在代管容量模式 (包括隨選、彈性啟動和標準預留),Compute Engine 會在硬體正常運作時重新啟動 TPU 執行個體和節點,自動從硬體和主機故障中復原。
自動復原單主機 TPU 配量
單主機配量是獨立的 TPU 執行個體。根據預設,Compute Engine 會在正常的硬體上重新啟動執行個體,自動復原故障的執行個體。這項行為是由自動重新啟動設定控管,建立執行個體時預設會啟用這項設定,但 Spot VM 除外。如果停用自動重新啟動功能,執行個體發生故障時,就會進入 TERMINATED 狀態。詳情請參閱「自動重新啟動」。
在下列情況下,Compute Engine 會自動復原故障的執行個體:
- 實體電腦沒有回應、主機關機、主機重新啟動或主機斷電,導致主機逾時或發生錯誤
- 實體主機維護事件 由您或 Google 啟動
- 主機內的晶片間互連 (ICI) 故障
- VM 當機
在計畫性終止的情況下,Compute Engine 不會自動復原執行個體,包括:
- 刪除執行個體
- 刪除或停用預訂
- Spot VM 先占
單一主機切片中由 MIG 啟動的修復作業
在具有單一主機切片的 MIG 中,如果單一主機切片中的 TPU 執行個體因硬體故障或外部事件 (例如 Spot VM 先占) 而進入 TERMINATED 狀態,MIG 預設會修復該執行個體。在修復期間,MIG 會重新建立名稱相同的執行個體。如要停用這項修復機制,請關閉修復功能。
您也可以在具有單一主機切片的 MIG 中,設定以應用程式為準的健康狀態檢查。如果健康狀態檢查偵測到應用程式沒有回應,MIG 就會將執行個體標示為健康狀態不良,並重新建立執行個體,自動修復執行個體。
詳情請參閱「關於高可用性 VM 修復」和「設定應用程式健康狀態檢查和自動修復」。
自動復原多主機切片
如果 TPU 採用受管理模式,並使用隨選、彈性啟動或預訂消耗量模型,Compute Engine 會自動復原多主機分片中失敗的執行個體。
在復原期間,Compute Engine 會找出可形成網路拓樸的一組 TPU 機器,在這些機器上一起重新啟動所有執行個體,並重新設定網路。這個程序會在可用的正常硬體上重建拓撲,而非等待硬體修復,因此可將停機時間縮到最短。
復原程序和切片狀態
自動復原期間,切片會經歷下列狀態:
- 該 Slice 會轉換為
REACTIVATING狀態。 - 所有執行個體都會轉換至
REPAIRING狀態,但不必同時轉換。 - Compute Engine 會在正常的硬體上,一併重新啟動該區塊中的所有執行個體。
如要進一步瞭解 TPU 節點狀態,請參閱「加速器拓撲狀態」。
在受管理容量模式下需要手動復原切片的案例
在下列情況下,Compute Engine 無法自動復原多主機分割區:
- 先占 VM 先占:如果切片中的任何執行個體遭到先占,Compute Engine 會終止切片中的所有執行個體,且切片會進入
FAILED狀態。 - 使用者啟動的中斷:如果您停止或刪除 TPU 執行個體,或從作業系統內停止執行個體,則該節點會進入
FAILED狀態。在您重新建立切片前,切片會維持FAILED狀態。
在這些情況下,您必須手動復原切片。
在「所有容量」模式下復原失敗
在「所有容量」模式中,您必須負責管理 TPU 節點復原程序。與代管容量模式不同,Compute Engine 不會自動將故障的 TPU 執行個體或多主機切片重新配置到新的實體硬體。Google 會維修現有主機上故障的基礎硬體,您則負責將健康狀態不良的虛擬機器重新排程至預留的健康備用硬體。
主機故障和主機維修錯誤
如果主機發生故障,或是您將 VM 主機回報為有錯誤,主機修復程序會依下列方式運作:
- 受影響的 VM 會在實體硬體修復期間轉換為
REPAIRING狀態。 - 底層硬體修復後,VM 會在同一部主機上轉換回
RUNNING狀態。不過,如果 VM 屬於多主機區塊,該區塊仍會處於「FAILED」狀態。您必須手動復原切片。
詳情請參閱「在 All Capacity 模式下回報及修復有問題的 TPU 主機」。
緊急維護
在緊急維護事件期間,或手動啟動維護事件時:
- 虛擬機會從
RUNNING狀態轉換為REPAIRING狀態。 - 維護作業完成後,VM 會返回同一主機上的
RUNNING狀態。
詳情請參閱「在 All Capacity 模式下管理維護事件」。
多主機配量故障情況
在「所有容量」模式下,Compute Engine 不會自動復原多主機切片。在下列情況下,切片會轉換為 FAILED 狀態:
- ICI 失敗:VM 會維持在
RUNNING狀態,但切片狀態會轉換為FAILED狀態。 - 先占 VM 先占:如果切片中的任何執行個體遭到先占,Compute Engine 會終止切片中的所有執行個體,且切片會進入
FAILED狀態。 - 使用者啟動的中斷:如果您停止或刪除 TPU 執行個體,或從作業系統內停止執行個體,則切片會進入
FAILED狀態。
當切片進入 FAILED 狀態時,您必須重新排定切片中所有例項的排程,手動復原切片。
手動復原 TPU 配量
當處於受管理容量模式或所有容量模式的 TPU 節點處於 FAILED 狀態時,您必須使用下列其中一種方法,重新排定節點中所有執行個體的排程,手動復原節點:
- 將 MIG 調整為目標大小
0,然後放大至所需大小。 - 刪除 MIG,然後重新建立切片。
後續步驟
如要確認 TPU 故障復原,請檢查下列狀態: