關於房東事件


在虛擬機器 (VM) 執行個體或裸機執行個體的生命週期中,執行個體所執行的主機可能會發生多個主機事件。主機事件可能包括 Compute Engine 基礎架構的定期維護,或在極少數情況下發生的主機錯誤。您可以設定主機維護政策,選擇 VM 和裸機執行個體在主機事件期間或之後的回應方式。

根據預設,大部分的執行個體會在主機事件期間設定為即時遷移。您可以覆寫這項行為,並明確將執行個體設為終止,並視需要重新啟動。部分機器類型不支援即時遷移,例如裸機執行個體或已連接 GPU 的 VM。這些執行個體會在主機事件期間終止。詳情請參閱「維護和重新啟動行為」。

主機事件類型

主辦單位事件分為兩種,請參閱以下各節的詳細說明:

如果執行個體沒有回應,系統也會觸發重新啟動或終止執行個體的動作。

維護事件

維護事件是指 Compute Engine 必須執行維護或修復作業,而需要將 VM 移出主機伺服器的情況。如果您為支援的執行個體類型啟用即時遷移 主機維護政策,Compute Engine 會將執行個體遷移至新主機,並盡可能減少對應用程式的中斷。

此外,Compute Engine 會在背景中保留相同主機上的執行個體,以便在背景中套用某些輕量虛擬機器和網路升級,不會造成服務中斷。

維護事件期間的執行個體行為可能會因執行個體的多租戶性質和機器類型而異。下表概述了預定維護事件的行為。

主機用戶群 大約的維護
事件頻率
支援即時遷移 主辦人選取
多租戶 (共用) 每 2 週 Compute Engine
單一用戶群 每 4 到 6 週 主機維護政策而定 主機維護政策而定
X4 最少 90 天 Compute Engine
C3 最少 30 天 Compute Engine

對於單一用戶群 VM,預定主機維護事件的頻率約為每 4 到 6 週一次。是否支援即時遷移功能,取決於單一用戶群 VM 的主機維護政策

主機錯誤

如果出現主機錯誤 (compute.instances.hostError),表示託管您運算執行個體的實體機器或資料中心基礎架構發生硬體或軟體錯誤,導致執行個體當機。主機發生全面硬體故障或其他硬體問題時,可能會導致無法即時遷移執行個體。如果執行個體已設定為自動重新啟動 (這是預設設定),Compute Engine 會重新啟動執行個體,通常會在偵測到錯誤後的三分鐘內完成。視問題而定,重新啟動作業最多可能需要 5.5 分鐘。

有時,在主機發生錯誤前,運算執行個體可能會停止回應。您可以設定主機錯誤復原逾時時間,縮短 Compute Engine 等待重新啟動或終止執行個體的時間。詳情請參閱「設定可用性政策」。

實體硬體和軟體故障偶爾會發生,但並不常見。如要保護您的應用程式和服務,不受這類可能會造成干擾的系統事件影響,請參閱下列資源:

Google 還提供代管服務,例如 App EngineApp Engine 彈性環境

主機維護政策總覽

執行個體的主機維護政策會決定執行個體在下列主機事件期間的行為:

  • 維護事件
  • 主機錯誤事件或執行個體無回應

您可以將執行個體設為在主機維護期間繼續運作,同時讓 Compute Engine 將執行個體即時遷移至其他主機,或者也可以選擇停止執行個體。

只要設定下列設定,即可變更執行個體的主機維護政策

  • 維護行為:在維護事件發生時,執行個體是否要即時遷移或停止。
  • 重新啟動行為:如果執行個體當機、發生主機錯誤或停止回應,Compute Engine 會重新啟動或終止執行個體。
  • 主機錯誤偵測時間:在偵測到執行個體無回應後,Compute Engine 等待重新啟動或終止執行個體的最大時間。
  • 本機 SSD 復原時間:在偵測到主機錯誤後,Compute Engine 用來復原本機 SSD 磁碟資料的最大時間。如果指定的時間到期後仍未成功復原,本機 SSD 資料就會遺失。

您隨時可以更新執行個體的主機維護政策,藉此控管執行個體的行為。

維護和重新啟動行為

發生主機事件時,運算執行個體可以使用即時遷移功能,也可以終止執行個體。如果執行個體遭到終止,您可以選擇自行重新啟動執行個體,或讓 Compute Engine 自動重新啟動。

下列機器系列不支援即時遷移,而是在主機事件期間終止

即時遷移

根據預設,大多數執行個體類型都會設定為即時遷移,但前面一節提到的執行個體類型除外。

在即時遷移期間,Compute Engine 會自動遷移執行個體,使其不受基礎架構維護事件的影響,而且執行個體在遷移過程中會繼續執行。雖然執行個體可能會遭遇效能下降的情況,不過多數執行個體的效能通常不會有任何差異。這項設定非常適合需要持續運作且容許短期間內效能降低的執行個體。

當 Compute Engine 遷移執行個體時,會回報系統事件並發布至區域作業清單和「System Events」記錄。您可以查看特定區域的 Compute Engine 作業,以審查這項事件。即時遷移事件具有下列作業類型:

compute.instances.migrateOnHostMaintenance

終止及重新啟動

如果您不想讓執行個體即時遷移,或是執行個體類型不支援即時遷移,則可以改為選擇允許Google Cloud 在主機事件發生時停止執行個體。在這種情況下,如果發生主機事件,Compute Engine 會傳送軟關機訊號,以便關閉執行個體。接著,它會等待 60 秒讓執行個體徹底關閉,並將執行個體狀態設為 TERMINATED。如果執行個體未在 60 秒內完全關閉,系統會強制終止該執行個體。

如果執行個體需要維持穩定一致的最大效能,且整體應用程式就是專門用於處理執行個體故障或重新啟動情形,就相當適合使用這個選項。

當 Compute Engine 因主機事件而停止執行個體時,會回報系統事件並發布至區域作業清單和「System Events」記錄。您可以查看特定區域的 Compute Engine 作業,以審查這項事件。執行個體終止事件具有下列作業類型:

compute.instances.terminateOnHostMaintenance

自動重新啟動

如果您的執行個體已設定為在維護作業期間終止,或者您的執行個體因基礎硬體問題而當機,Compute Engine 可以自動重新啟動執行個體。執行個體會在同一部主機伺服器上重新啟動,或移至同一個區域中未參與維護事件的其他伺服器。

根據預設,Compute Engine 會嘗試復原連結本機 SSD 磁碟的執行個體,持續時間為一小時。如果達到時間限制,Compute Engine 會嘗試在同一區域的不同主機伺服器上重新啟動執行個體。 Z3 和 X4 執行個體的預設等待時間不同。這些執行個體類型會在執行個體終止後,在同一個主機伺服器上重新啟動。

如要設定自動重新啟動功能,請將主機維護政策欄位 automaticRestart 設為 true。執行個體因區域服務中斷或使用者動作 (例如在來賓作業系統中呼叫 sudo shutdown) 而終止運作時,則不適用這項設定。

當 Compute Engine 自動重新啟動執行個體時,會回報系統事件並發布至區域作業清單。您可以查看特定區域的 Compute Engine 作業,藉此審查這項事件。自動重新啟動事件具有下列作業類型:

compute.instances.automaticRestart

執行個體終止後的磁碟持久性

永久磁碟和Hyperdisk 都是網路連結儲存空間,因此當執行個體重新啟動時,Compute Engine 會將開機磁碟和任何次要磁碟重新連結至執行個體。系統在即時遷移及重新啟動執行個體後,仍會保留這些磁碟上的資料。

Compute Engine 會盡可能在主機事件發生後,保留本機 SSD 磁碟上的資料。不過,Compute Engine 不保證本機 SSD 資料的持久性。

  • 本機 SSD 磁碟會保留在下列情況下:

    • 設定執行個體執行即時遷移,且執行個體經歷過主機維護事件。
    • 發生主機錯誤,且 Compute Engine 在逾時限制內將執行個體重新連線至本機 SSD 磁碟。
    • 含有已連結本機 SSD 磁碟的運算執行個體,只支援終止和自動重新啟動,會經歷維護事件。執行個體會原地重新啟動,保留本機 SSD 資料,而不會遷移至新主機。
  • 在下列情況下,系統不會保留本機 SSD 磁碟:

    • 關閉訪客作業系統並強制停止執行個體。
    • 將執行個體設為在主機維護事件期間停止,且執行個體遭遇到主機維護事件。
    • 主機發生錯誤,Compute Engine 無法在逾時前將磁碟重新連線至執行個體。在這種情況下,系統會重新啟動執行個體,但不會復原本機 SSD 磁碟。當執行個體重新啟動時,Compute Engine 會將空白本機 SSD 磁碟連接至重新啟動的執行個體。您必須先格式化並掛接這些磁碟,執行個體才能使用。原始本機 SSD 磁碟上的資料無法復原。

Google Cloud 會盡力確保本機 SSD 資料保持完整。不過,在某些情況下,資料無法復原,例如逾時情況。如要進一步瞭解何時保留本機 SSD 磁碟,請參閱「本機 SSD 資料保存」一文。

復原本機 SSD 的逾時設定

發生主機錯誤時,Compute Engine 會嘗試復原已連接至執行個體的任何本機 SSD 磁碟。您可以透過主機政策 localSsdRecoveryTimeout 設定,控制 Compute Engine 嘗試復原資料所需的時間。

根據預設,Compute Engine 會花費 1 小時來復原資料,但此設定的有效值介於 0 和 168 之間,以 1 小時為單位。對於 Z3 執行個體,預設值為 6,表示 Z3 執行個體會嘗試復原本機 SSD 資料,直到達到逾時限制為止。

如果將復原本機 SSD 的逾時設定設為 0,Compute Engine 就不會嘗試復原任何已連結的本機 SSD 磁碟。系統會盡快重新啟動執行個體,而本機 SSD 資料無法復原。如果恢復工作負載比復原本機 SSD 資料更重要,請使用這項設定。

如果復原逾時時間未設為 0,但在復原本機 SSD 資料前就已達到時間限制,則 Compute Engine 會重新啟動沒有本機 SSD 磁碟的執行個體。Compute Engine 會將新的空白本機 SSD 磁碟連接至重新啟動的執行個體。您必須先格式化並掛載這些磁碟,執行個體才能使用。

當 Compute Engine 嘗試復原本機 SSD 磁碟時,執行個體會處於 REPAIRING 狀態。在此期間,執行個體和本機 SSD 磁碟將無法使用。

如果您將本機 SSD 復原逾時時間設為 168 的最大值,則在 Compute Engine 嘗試復原本機 SSD 磁碟時,執行個體會維持 REPAIRING 狀態最多 7 天。

停止本機 SSD 磁碟復原

您可以在 Compute Engine 達到復原逾時限制前,中斷本機 SSD 磁碟復原程序。如要執行這項操作,請使用 gcloud compute instances stop 指令搭配 --discard-local-ssd=True 旗標。

此指令會停止復原程序、停止運算執行個體,並捨棄本機 SSD 資料。接著,您可以重新啟動執行個體。詳情請參閱「停止有本機 SSD 的執行個體」。

這個選項不適用於 Z3 執行個體。

如要設定本機 SSD 復原逾時設定,請參閱「設定執行個體主機維護政策」。

維護作業排程

Google Cloud 提供可更嚴密控管維護作業的功能。使用特定機器系列,您可以指定維護偏好設定,並透過 Cloud Logging、執行個體的中繼資料伺服器、gcloud CLI compute instances describe 指令或 REST instances.describe 方法,接收即將進行的維護作業通知。收到通知後,您會有一段時間可以選擇開始預定維護作業的時間。如果您沒有觸發預定的維護作業,維護事件會在通知時間結束時發生,也就是通知中列出的預定時間。

您可以將這些功能與主機維護政策搭配使用,自訂符合工作負載的維護時程。

後續步驟