維護事件期間的即時遷移程序


在虛擬機器 (VM) 執行個體 或裸機執行個體的基礎硬體進行排程維護時,主機伺服器會無法使用。為確保執行個體在主機事件期間持續運作,Compute Engine 會將執行個體即時遷移至同一可用區的其他主機伺服器。如要進一步瞭解主機事件,請參閱「關於主機事件」一文。

即時遷移功能可讓您執行維護作業,不必中斷工作負載、重新啟動執行個體,也不必修改執行個體的任何屬性,例如 IP 位址、中繼資料、區塊儲存空間資料、應用程式狀態或網路設定。 Google Cloud

即時遷移功能可在下列情況下讓執行個體持續運作:

  • 基礎架構維護。基礎架構維護包括主機硬體、資料中心的網路和電力網,以及主機作業系統 (OS) 和 BIOS。

  • 安全性相關更新和系統設定變更。包括安裝安全修補程式,以及變更主機根分區的大小,以便儲存主機 OS 映像檔和套件等事件。

  • 硬體故障。包括記憶體、CPU、網路介面卡和磁碟故障。如果在伺服器完全故障前偵測到問題,Compute Engine 會執行預防性即時遷移,將執行個體遷移至新的主機伺服器。如果硬體完全故障,或以其他方式妨礙即時遷移,則執行個體會終止並自動重新啟動。

Compute Engine 只會即時遷移主機維護政策設為遷移的 VM。如要瞭解如何變更主機維護政策,請參閱「設定 VM 主機維護政策」。

即時遷移程序和本機 SSD 磁碟

Compute Engine 可以即時遷移已附加本機 SSD 磁碟的執行個體 (不包括附加超過 18 TiB Titanium SSD 的 Z3 執行個體)。Compute Engine 會在任何預定維護作業前,將 VM 執行個體連同本機 SSD 資料移至新機器。

限制

下列 VM 類型不支援即時遷移:

  • 裸機執行個體。使用裸機機器類型建立的執行個體不支援即時遷移。這些執行個體的維護行為分別設為 TERMINATERESTART
  • 大多數機密 VM 執行個體。機密 VM 執行個體僅支援在 N2D 機型上即時遷移,且須使用 AMD EPYC Milan CPU 平台執行 AMD SEV。其他所有機密 VM 執行個體都不支援即時遷移,必須設為在主機維護作業期間停止,並視需要重新啟動。詳情請參閱即時遷移
  • 已連結 GPU 的 VM。附加 GPU 的 VM 執行個體必須設為停止,並視需要重新啟動。Compute Engine 會在已附加 GPU 的 VM 執行個體停止前發出通知,通知時間取決於 GPU 類型:

    • 對於大多數 GPU,Compute Engine 會提前 60 分鐘通知。
    • 對於在 AI Hypercomputer Cluster Director 上執行的 GPU 系列,Compute Engine 會提供 10 分鐘的通知。

    如要進一步瞭解這些維護事件通知,請參閱「查詢中繼資料伺服器,取得維護事件通知」。

    如要進一步瞭解如何搭配 GPU 來處理主機的維護作業,請參閱 GPU 說明文件中的處理主機維護作業

  • Cloud TPUCloud TPU 不支援即時遷移。
  • 儲存空間最佳化 VM。如果 Z3 VM 附加的 Titanium SSD 超過 18 TiB,就不支援即時遷移。這些 VM 的維護行為會設為 TERMINATERESTART。如「執行個體終止後磁碟的持續性」一文所述,Compute Engine 會在維護事件期間保留 Titanium SSD 上的資料。

即時遷移程序如何運作?

如果 VM 預計要即時遷移,Compute Engine 會提供通知,讓您為這項即時遷移作業造成的服務中斷做好準備。執行即時遷移作業時, Google Cloud 會觀察到最短的中斷時間,通常遠少於 1 秒。如果 VM 未設為即時遷移,Compute Engine 會在主機維護期間終止 VM。如果 VM 設定為在主機事件期間終止,則會停止並視情況重新啟動

當 Google Cloud 將執行中的 VM 從一部主機遷移至另一部主機時,會以對客體 OS 和與其通訊的任何項目而言透明的方式,將 VM 的完整狀態從來源移至目的地。 要讓這作業能順暢運作,會牽涉到許多元件;我們利用下圖說明基本步驟:

將 VM 和各項資源遷移至新的主機系統,不必重新啟動訪客作業系統。
即時遷移元件

該程序首先會通知您,某些 VM 需要從目前的主機中移除。通知開頭可能會顯示檔案變更,指出有新版 BIOS 可用、硬體作業排定維護時間,或是硬體即將故障而自動發出訊號。

Google Cloud的叢集管理軟體會持續監控這些事件,並根據控制資料中心的政策 (例如容量使用率和單一客戶一次可遷移的 VM 數量) 安排事件。

當 Google Cloud 選取要遷移的 VM 之後,會向客體發出遷移作業即將開始的通知。系統會在等待一段時間之後選取目標主機,並要求該主機設定全新的空白「目標」VM,以便接收遷移中的「來源」VM。系統會使用驗證功能來建立來源和目標之間的連線。

VM 的遷移作業分為三個階段:

  1. 來源中斷。VM 仍會在來源上執行,而系統會把大多數的狀態從來源傳送至目標。舉例來說,Google Cloud 會將所有客體記憶體複製到目標,同時追蹤來源上已變更的頁面。來源低電壓所花的時間是客體記憶體大小和頁面變更速率的函數。

  2. 停止期間。這是 VM 未在任何地方執行的非常短暫的時刻,來源 VM 會暫停,並且會傳送在目標上開始執行 VM 所需的所有其餘狀態。在來源低電壓階段,當傳送狀態變更達到效益遞減點時,VM 就會進入停電階段。接著,系統會使用一種演算法來平衡正在傳送的記憶體位元組數與客體 VM 進行變更的速率。

    在停電期間,系統時鐘會往前跳最多 5 秒。如果停電事件超過 5 秒, Google Cloud 會停止並使用隨附於 VM 客戶套件的精靈,同步處理時鐘。

  3. 目標停機。VM 會在目標 VM 上執行。來源 VM 存在,且可能支援目標 VM。舉例來說,在網路架構趕上目標 VM 的新位置之前,來源 VM 會為往返目標 VM 的封包提供轉送服務。

最後,遷移作業執行完畢,系統會刪除來源 VM。您可以在 VM 的 Cloud Logging 記錄中看到遷移作業發生過了。

即時遷移單一租戶 VM

工作負載執行期間,您可能想將 VM 遷移至其他單一用戶群節點或節點群組。如果將 VM 移至節點群組,Compute Engine 會決定要將 VM 放在哪個節點上。如需單一用戶群的相關資訊,請參閱「單一用戶群總覽」。

如要將單一用戶群 VM 移至其他節點或節點群組,可以手動啟動即時遷移。您也可以手動啟動即時遷移,將多租戶主機上的 VM 移至單一租戶節點。詳情請參閱「手動即時遷移 VM」。

後續步驟