在虛擬機器 (VM) 執行個體 或裸機執行個體的基礎硬體進行預定維護作業期間,主機伺服器將無法使用。為了在主機事件期間讓執行個體持續運作,Compute Engine 會將執行個體即時遷移至同區域中的另一台主機伺服器。如要進一步瞭解主辦單位事件,請參閱「關於主辦單位事件」。
即時遷移功能可讓 Google Cloud 在維護時不中斷工作負載、重新啟動執行個體,或修改任何執行個體屬性 (例如 IP 位址、中繼資料、區塊儲存空間資料、應用程式狀態或網路設定)。
即時遷移功能可在下列情況下讓執行個體持續運作:
基礎架構維護。基礎架構維護作業包括主機硬體、資料中心的網路和電力網,以及主機作業系統 (OS) 和 BIOS。
安全性相關更新和系統設定變更。包括安裝安全性修補程式和變更主機根分區大小的事件,以便儲存主機 OS 映像檔和套件。
硬體故障包括記憶體、CPU、網路介面卡和磁碟的故障。如果在伺服器完全故障前偵測到故障,Compute Engine 就會執行預防性動作,將執行個體遷移至新的主機伺服器。如果硬體完全故障,或以其他方式妨礙即時遷移,則執行個體會終止並自動重新啟動。
Compute Engine 只會對主機維護政策設為遷移的 VM 執行即時遷移作業。如要瞭解如何變更主機維護政策,請參閱「設定 VM 主機維護政策」。
即時遷移程序和本機 SSD 磁碟
Compute Engine 可以即時遷移連結本機 SSD 磁碟的執行個體 (不包括 Z3 執行個體)。在任何預定的維護作業開始前,Compute Engine 會將 VM 執行個體連同本機 SSD 資料一起移至新機器。
限制
以下 VM 類型不支援即時遷移:
- Bare Metal 執行個體。C3 和 X4 Bare Metal 執行個體不支援即時遷移。這些執行個體的維護行為分別設為
TERMINATE
和RESTART
。 - 大多數機密 VM 執行個體。機密 VM 執行個體的即時遷移功能僅支援 N2D 機器類型,且必須搭配執行 AMD SEV 的 AMD EPYC Milan CPU 平台。所有其他機密 VM 執行個體都不支援即時遷移,且必須在主機維護事件期間設為停止,並視情況重新啟動。詳情請參閱即時遷移。
已連結 GPU 的 VM。連結 GPU 的 VM 執行個體必須設定為停止,並視情況重新啟動。Compute Engine 會在已附加 GPU 的 VM 執行個體停止前的 60 分鐘發出通知。如要進一步瞭解這些維護事件通知,請參閱「取得即時遷移作業通知」。
如要進一步瞭解如何搭配 GPU 來處理主機的維護作業,請參閱 GPU 說明文件中的「處理主機維護作業」。
- Cloud TPU。Cloud TPU 不支援即時遷移。
- 儲存空間最佳化 VM。Z3 VM 不支援即時遷移。Z3 VM 的維護行為已設為
TERMINATE
。
即時遷移程序如何運作?
當虛擬機器排定即時遷移作業時,Compute Engine 會提供通知,讓您能為這項即時遷移作業做好準備,以免影響工作負載和應用程式。在即時遷移期間, Google Cloud 會確保最短中斷時間,通常遠低於 1 秒。如果未將 VM 設為即時遷移,Compute Engine 會在主機維護期間終止 VM。在主機事件期間設定為終止的 VM,停止並 (選用) 重新啟動。
Google Cloud 將執行中的 VM 從一台主機遷移至另一台主機時,會以對訪客作業系統和與其通訊的任何項目透明的方式,將 VM 的完整狀態從來源移至目的地。 要讓這項作業能順暢運作,會牽涉到許多元件;我們利用下圖說明基本步驟:
該程序首先會通知您,某些 VM 需要從目前的主機中移除。通知可能會因檔案變更而開始,表示有新的 BIOS 版本可供使用、硬體作業排程維護,或是即將發生的硬體故障自動信號。
Google Cloud的叢集管理軟體會持續監控這些事件,並根據控制資料中心的政策 (例如容量利用率和單一客戶一次可遷移的 VM 數量) 安排事件。
當 Google 選取要遷移的 VM 之後, Google Cloud 會向客體發出遷移作業即將開始的通知。系統會在等待一段時間之後選取目標主機,並要求該主機設定全新的空白「目標」VM,以便接收遷移中的「來源」VM。系統會使用驗證功能來建立來源和目標之間的連線。
VM 的遷移牽涉到三個階段:
來源低電量。VM 仍會在來源上執行,而系統會把大多數的狀態從來源傳送至目標。舉例來說,Google Cloud 會將所有客體記憶體複製到目標,同時追蹤來源上已變更的頁面。來源低電壓所花的時間是客體記憶體大小和頁面變更速率的函數。
停電。這是 VM 未在任何地方執行的非常短暫的時刻,VM 會暫停並且會傳送在目標上開始執行 VM 所需的所有其餘狀態。在來源低電壓階段,當傳送狀態變更達到效益遞減點時,VM 就會進入停電階段。接著,系統會使用一種演算法來平衡正在傳送的記憶體位元組數與客體 VM 進行變更的速率。
在停電事件期間,系統時鐘會跳轉,最多 5 秒。如果停電事件超過 5 秒, Google Cloud 會停止並使用虛擬機器人訪客套件的守護程序來同步時鐘。
指定目標停電。VM 會在目標 VM 上執行。來源 VM 已存在,且可能會為目標 VM 提供支援。舉例來說,在網路結構追上目標 VM 的新位置之前,來源 VM 會為往返目標 VM 的封包提供轉送服務。
最後,遷移完成,系統會刪除來源 VM。您可以在 VM 的 Cloud Logging 記錄中,看到遷移作業發生過了。
即時遷移單一用戶群 VM
在工作負載執行期間,您可能會想要將 VM 遷移至其他單一用戶群節點或節點群組。如果您將 VM 移至一組節點,Compute Engine 會決定將 VM 放在哪個節點。如需單一用戶群的相關資訊,請參閱單一用戶群總覽。
如要將單一用戶群 VM 移至其他節點或節點群組,您可以手動啟動即時遷移。您也可以手動啟動即時遷移作業,將多租戶主機上的 VM 移至單一用戶群節點。詳情請參閱「手動即時遷移 VM」。
後續步驟
設定 VM 主機維護政策選項,以便將執行個體設為即時遷移。
參閱如何設計可處理服務中斷情況的強大系統的相關提示。