關於房東事件


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

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

主機事件類型

主機事件分為兩種,詳情請參閱下列各節:

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

維護事件

維護事件是指 Compute Engine 必須執行維護或修復活動,因此需要將 VM 移出主機伺服器。如果為支援的執行個體類型啟用即時遷移 主機維護政策,Compute Engine 會將執行個體移至新主機,應用程式受到的影響極小。

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 遷移執行個體時,會回報系統事件並發布至區域作業清單和「系統事件」記錄。您可以查看特定區域的 Compute Engine 作業,以審視這個事件。即時遷移事件具有下列作業類型:

compute.instances.migrateOnHostMaintenance

終止並重新啟動

如果您不希望執行個體即時遷移,或執行個體類型不支援即時遷移,則可以選擇允許Google Cloud 在發生主機事件時停止執行個體。採用這項設定後,如果發生主機事件,Compute Engine 會傳送軟體關機訊號,關閉執行個體。然後等待 60 秒,讓執行個體徹底關機,並將執行個體狀態設為 TERMINATED。如果執行個體無法在 60 秒內完全關機,系統就會強制終止執行個體。

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

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

compute.instances.terminateOnHostMaintenance

自動重新啟動

如果您的執行個體設定為在發生維護事件時停止,或者執行個體因基本硬體問題而當機,Compute Engine 可以自動重新啟動執行個體。執行個體會在同一部主機伺服器上重新啟動,或是移至同一個可用區中未參與維護作業的另一部伺服器。

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

如要設定自動重新啟動,請將主機維護政策欄位 automaticRestart 設為 true。如果執行個體因區域服務中斷或手動操作 (例如在訪客 OS 中呼叫 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 資料 6 小時,然後達到逾時限制。

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

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

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

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

停止復原本機 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 方法,接收即將進行維護作業的通知。收到通知後,您可以在一段時間內,選擇合適的時間開始進行預定維護作業。如果未觸發排定的維護作業,維護事件會在通知時間範圍結束時發生,也就是通知中列出的排定時間。

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

後續步驟