在虛擬機器 (VM) 執行個體或裸機執行個體的生命週期內,執行個體所執行的主體機器可能會發生多個主機事件。主機事件可能包括 Compute Engine 基礎架構的定期維護,或極少數情況下的主機錯誤。您可以設定主機維護政策,選擇運算執行個體在主機事件期間或之後的反應。
根據預設,大多數執行個體在主機事件期間會即時遷移。除了 Z3 以外的所有機器系列,您都可以覆寫這項行為,並明確設定要終止執行個體,以及視需要重新啟動執行個體。使用特定機型或設定建立的執行個體不支援即時遷移,例如:
- H4D 執行個體
- Z3 執行個體,附加的 Titanium SSD 超過 18 TiB
- Z4D 執行個體 (連接的 Titanium SSD 超過 42 TiB)
- Bare Metal 執行個體
- 已連接 GPU 的執行個體
這些執行個體會在主機事件期間終止。詳情請參閱「維護和重新啟動行為」。
主機事件類型
主機事件分為三種,詳情請參閱下列各節:
如果執行個體沒有回應,系統也可能會觸發執行個體重新啟動或終止。
維護事件
維護事件是指 Compute Engine 必須執行維護或修復活動,因此需要將 VM 移出主機伺服器。如果為支援的執行個體類型啟用即時遷移 主機維護政策,Compute Engine 會將執行個體移至新主機,應用程式中斷時間極短。
Compute Engine 也會在背景套用一些輕量型管理程序和網路升級,並將執行個體保留在同一部主機上,不會造成中斷。
維護事件期間的執行個體行為,取決於執行個體的租戶和機型。
如果是單一租戶 VM,預計每 4 到 6 週會發生一次主機維護事件。是否支援即時遷移取決於單一租戶 VM 的主機維護政策。
如要瞭解各機型的維護行為,請前往對應的機器家族頁面,如下所示:
- C 系列:
- E、N 和 T 系列:一般用途機器系列
- H 系列:運算最佳化機器家族
- M 和 X 系列:記憶體最佳化機器家族
- Z 系列:儲存空間最佳化機器系列
如要瞭解加速器最佳化機器家族,請參閱下列頁面:
- GPU:處理 GPU 主機維護事件。
- TPU:請參閱 Cloud TPU 說明文件,瞭解如何為維護事件做好準備。
緊急維護
當 Compute Engine 偵測到主機即將發生故障,或有其他需要緊急維護的硬體問題時,就會發生緊急維護事件。對於這類事件,Compute Engine 會排定維護事件,並建立通知。緊急維護事件的通知時間範圍通常比標準維護事件短。
緊急維護事件通常會提前 7 到 14 天通知。 視問題嚴重程度而定,通知視窗可能會較短。查看維護通知,瞭解支援的功能,例如在您選擇的時間開始維護。如果未採取任何行動,或無法手動啟動維護作業,Compute Engine 會在通知期限結束時自動啟動維護作業。
如果 Compute Engine 發出緊急維護通知時,有待處理的預定維護事件,緊急維護事件就會取代預定維護事件。
您可以在執行個體中繼資料的 maintenanceReasons 欄位中,查看緊急維護的原因。這個欄位包含代表失敗類別的值。
主機錯誤
主機錯誤 (compute.instances.hostError) 表示託管運算執行個體的實體機器或資料中心基礎架構發生硬體或軟體錯誤,導致執行個體當機。如果主機發生硬體故障或其他硬體問題,可能導致執行個體即時遷移失敗。如果執行個體設為自動重新啟動 (預設設定),Compute Engine 通常會在偵測到錯誤後三分鐘內重新啟動執行個體。視問題而定,重新啟動程序最多可能需要 5.5 分鐘。
運算執行個體發生主機錯誤,或您回報主機有問題後,執行個體的主機需要進行緊急的臨時維護。根據預設,Compute Engine 會在排定這類維護作業時,提前幾小時發出通知。
有時,運算執行個體可能會在主機錯誤訊號發出前停止回應。您可以設定主機錯誤復原逾時,縮短 Compute Engine 等待重新啟動或終止執行個體的時間。詳情請參閱「為現有執行個體設定政策」。
實體硬體和軟體故障偶爾會發生,但非常罕見。 如要保護應用程式和服務,不受這類可能會造成干擾的系統事件影響,請參閱下列資源:
主機維護政策總覽
執行個體的主機維護政策會決定執行個體在下列主機事件期間的行為:
- 維護事件
- 緊急維護事件
- 主機錯誤事件或執行個體沒有回應
您可以設定執行個體在主機維護期間繼續執行,讓 Compute Engine 將執行個體即時遷移至其他主機,也可以選擇停止執行個體。
您可以設定下列設定,變更執行個體的主機維護政策:
- 維護行為:發生維護事件時,執行個體是即時遷移還是停止。
- 重新啟動行為:如果執行個體當機、發生主機錯誤或沒有回應,Compute Engine 會重新啟動或終止執行個體。
- 主機錯誤偵測時間:Compute Engine 偵測到執行個體沒有回應後,等待重新啟動或終止執行個體的最長時間。
您隨時可以更新執行個體的主機維護政策,控管執行個體的行為。
維護和重新啟動行為
發生主機事件時,運算執行個體可以執行即時遷移,也可以終止執行個體。如果執行個體遭到終止,您可以選擇自行重新啟動執行個體,或讓 Compute Engine 自動重新啟動。
下列機器系列可能不支援即時遷移,而是在主機事件期間終止:
即時遷移
大多數執行個體類型預設都會即時遷移,但上一節提及的執行個體類型除外。
在即時遷移期間,Compute Engine 會自動將執行個體從基礎架構維護事件中遷移出來,且執行個體在遷移期間會持續運作。您的執行個體可能會在短時間內效能降低,但一般來說,大多數執行個體的效能不會有明顯差異。如果執行個體需要持續運作,且可容忍短暫的效能降低,就非常適合採用這個選項。
Compute Engine 遷移執行個體時,會回報系統事件,並發布至可用區作業清單和系統事件記錄。您可以查看特定可用區的 Compute Engine 作業,瞭解這項事件。即時遷移事件具有下列作業類型:
compute.instances.migrateOnHostMaintenance
終止並重新啟動
如果不想讓執行個體即時遷移,或執行個體類型不支援即時遷移,您可以選擇允許Cloud de Confiance by S3NS 在發生主機事件時停止執行個體。採用這項設定時,如果發生主機事件,Compute Engine 會傳送軟體關機訊號來關閉執行個體。接著等待 60 秒,讓執行個體徹底關機,並將執行個體狀態設為 TERMINATED。如果執行個體未在 60 秒內正常關機,系統就會強制終止執行個體。
如果執行個體需要持續發揮最高效能,且整體應用程式可處理執行個體故障或重新啟動,這個選項就是理想選擇。
如果 Compute Engine 因主機事件而停止執行個體,系統會回報系統事件,並發布至區域作業清單和系統事件記錄檔。您可以查看特定可用區的 Compute Engine 作業,瞭解這項事件。執行個體終止事件的作業類型如下:
compute.instances.terminateOnHostMaintenance
自動重新啟動
如果執行個體設定為在發生維護事件時停止運作,或因底層硬體問題而當機,Compute Engine 可以自動重新啟動執行個體。執行個體會在同一部主機伺服器上重新啟動,或是移至同個可用區中未參與維護事件的其他伺服器。
根據預設,Compute Engine 會嘗試復原已連結本機 SSD 磁碟的執行個體一小時。如果達到時間限制,Compute Engine 會嘗試在同一可用區的不同主機伺服器上重新啟動執行個體。
如要設定自動重新啟動,請將主機維護政策欄位 automaticRestart 設為 true。如果執行個體因區域中斷或手動操作 (例如在客體 OS 中呼叫 sudo shutdown) 而離線,則這項設定不適用。
當 Compute Engine 自動重新啟動執行個體時,會回報系統事件並發布至區域作業清單。您可以查看特定可用區的 Compute Engine 作業,瞭解這項事件。自動重新啟動事件具有下列作業類型:
compute.instances.automaticRestart
執行個體終止後磁碟的持續性
由於 Hyperdisk 是網路附加儲存空間,因此執行個體重新啟動時,Compute Engine 會將開機磁碟和所有次要磁碟重新附加至執行個體。這些磁碟上的資料在即時遷移和執行個體重新啟動後仍會保留。
維護作業排程
Cloud de Confiance by S3NS 提供相關功能,讓您進一步控管維護作業。使用特定機器系列時,您可以指定維護偏好設定,並透過 Cloud Logging、執行個體的中繼資料伺服器、gcloud CLI compute instances describe 指令或 REST instances.describe 方法,接收即將進行維護作業的通知。收到通知後,您可以在一段時間內,選擇合適的時間啟動預定維護作業。如未觸發排定的維護作業,維護事件會在通知時間範圍結束時發生,也就是通知中列出的排定時間。
您可以搭配使用這些功能和主機維護政策,自訂符合工作負載需求的維護時間表。
後續步驟
- 進一步瞭解即時遷移。
- 進一步瞭解如何設定執行個體主機維護政策。
- 進一步瞭解如何接收即時遷移通知。
- 進一步瞭解如何模擬主機維護作業。
- 進一步瞭解如何手動即時遷移單一租戶 VM。