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

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

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

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

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

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

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

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

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

Compute Engine 可即時遷移附加本機 SSD 磁碟的執行個體 (不含附加超過 18,000 GiB Titanium SSD 的 Z3 執行個體)。在任何預定維護作業前,Compute Engine 會將運算執行個體及其本機 SSD 資料移至新的主機伺服器。

限制

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

  • 具備本機 SSD 的 H4D 執行個體。
  • 具有 Cloud RDMA 網路介面的執行個體。
  • Bare Metal 執行個體。使用裸機機型建立的執行個體不支援即時遷移。這些執行個體的維護行為分別設為 TERMINATE 和 RESTART。
  • 大多數 Confidential VM 執行個體。Confidential VM 執行個體的即時遷移功能,適用於執行 AMD SEV 的 N2D 和 C3D 機型。所有其他 Confidential VM 執行個體都不支援即時遷移,必須設為在主機維護事件期間停止,並視需要重新啟動。詳情請參閱「即時遷移」。
  • 已連接 GPU 的 VM。連接 GPU 的 VM 執行個體必須設為停止,並視需要重新啟動。Compute Engine 會在停止附加 GPU 的 VM 執行個體前發出通知,通知時間取決於 GPU 類型:

    • 對於大多數 GPU,Compute Engine 會在 60 分鐘前發出通知。
    • 如果是 A4X、A4 或 A3 Ultra 執行個體,Compute Engine 會在 10 分鐘前通知。

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

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

  • Cloud TPU。Cloud TPU 不支援即時遷移。
  • 儲存空間最佳化 VM。對於下列機型,這些 VM 的維護行為會設為 TERMINATE 和 RESTART。Compute Engine 會在維護事件期間保留 Titanium SSD 上的資料,詳情請參閱「執行個體終止後的磁碟持續性」。

    • Z4D 或 Z4M VM,且附加的 Titanium SSD 超過 42,000 GiB
    • 具備 Cloud RDMA 網路介面的 Z4M VM
    • Z3 VM 附加超過 18,000 GiB 的 Titanium SSD
  • 運算最佳化 VM H4D VM 不支援即時遷移,因為啟用 RDMA 的 VM 不支援即時遷移。從 HPC 應用程式的角度來看,對執行個體執行即時遷移會嚴重影響應用程式效能,因此應用程式最好從檢查點啟動。這些 VM 的維護行為設為 TERMINATE 和 RESTART。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 數量) 安排事件。

選取要遷移的 VM 後, Google Cloud 會通知訪客即將進行遷移。等待一段時間後,系統會選取目標主機,並要求主機設定新的空白「目標」VM,以接收遷移的「來源」VM。驗證機制用於建立來源與目標之間的連線。

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

  1. 來源限電。VM 仍在來源上執行,而大部分狀態會從來源傳送至目標。例如,Google Cloud 會將所有訪客記憶體複製到目標,同時追蹤來源上已變更的頁面。來源部分停機時間取決於客體記憶體大小和頁面變更速率。

  2. 停播。在 VM 未在任何位置執行的短暫時間內,來源 VM 會暫停,並傳送在目標上開始執行 VM 所需的所有剩餘狀態。當在來源中斷階段傳送狀態變更時,VM 會進入中斷階段,直到達到報酬遞減點為止。系統會使用演算法,平衡傳送的記憶體位元組數與客體 VM 變更速率。

    在停播事件期間,系統時鐘會向前跳轉最多 5 秒。如果停電事件超過 5 秒, Google Cloud 會停止,並使用 VM 訪客套件中包含的 daemon 同步處理時鐘。

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

最後,遷移作業完成,系統會刪除來源 VM。您可以在 VM 的 Cloud Logging 記錄中,查看遷移作業是否已完成。

即時遷移單一租戶 VM

工作負載執行時,您可能需要將 VM 移至其他單一租戶節點或節點群組。如果您將 VM 移至一組節點,Compute Engine 會決定要將 VM 放在哪個節點。如要瞭解單一用戶群,請參閱「單一用戶群總覽」。

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

後續步驟