即時遷移

Compute Engine 提供即時遷移功能,讓您即使在主機系統事件 (例如軟硬體更新) 發生時,也能讓虛擬機器執行個體持續運作。Compute Engine 會即時將運作中的執行個體遷移到同一區域中的另一台主機上,而不是要求 VM 重新啟動。這能讓 Google 在不干擾任何 VM 運作的情況下,執行必要的維護作業,以保障基礎架構的安全性與可靠性。

即時遷移功能可在下列事件發生期間讓執行個體持續運作:

  • 定期的基礎架構維護和升級作業。
  • 資料中心的網路和電力網維護。
  • 硬體 (例如記憶體、CPU、網路介面卡、磁碟和電源等) 故障。即時遷移功能會盡可能完成遷移作業;如果硬體完全故障,或是以其他方式妨礙即時遷移作業,VM 就會當機並自動重新啟動,同時記錄發生一次 hostError
  • 主機 OS 和 BIOS 升級。
  • 需要快速回應的安全性相關更新。
  • 系統設定變更,包括變更主機根分區的大小,以便儲存主機映像檔和套件。

即時遷移功能不會變更 VM 本身的任何屬性。即時遷移程序只會把運作中的 VM 從某台主機轉移到同一區域內的另一台主機上。VM 的所有屬性都不會改變,包括內部和外部 IP 位址、執行個體中繼資料、區塊儲存空間資料和磁碟區、OS 和應用程式狀態、網路設定和網路連線等。

即時遷移程序如何運作?

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

即時遷移元件

該程序首先會通知您,某些 VM 需要從它們目前的主機中移除。該通知可能以指示有可用的新 BIOS 版本的檔案變更、硬體操作排程維護,或者來自即將發生的硬體故障的自動信號開始。

Google 的叢集管理軟體會不斷監控這些事件,並根據控制資料中心的政策對其進行排程,例如規模使用率和單一客戶一次可以遷移的 VM 數量。

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

VM 的遷移牽涉到三個階段:

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

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

  • 在遷移後的低電壓期間,VM 會在目標 VM 上執行。來源 VM 仍然存在,且可能會為目標 VM 提供支援性的功能。舉例來說,在網路架構趕上目標 VM 的新位置之前,來源 VM 會為進出目標 VM 的封包提供轉送服務。

最後,遷移作業執行完畢,系統會刪除來源 VM。您可以在 VM 記錄中看到遷移作業發生過了。即時遷移是我們平台的重要元件,因此 Google 會持續以極高層級的審查標準來測試即時遷移功能。在測試期間,我們會使用容錯植入來觸發遷移演算法中所有興趣點的失敗情形。我們會針對每個元件產生主動和被動失敗情形。要實現這個複雜且多方面的程序需要在整個基礎架構中進行深度整合,並且需要一組強大的排程、自動化調度管理和自動化程序。

即時遷移和 GPU

已附加 GPU 的執行個體無法進行即時遷移。您必須將這些執行個體設定為終止,以及會選擇性地重新啟動。Compute Engine 會在已附加 GPU 的 VM 執行個體終止前的 60 分鐘發出通知。如要進一步瞭解這些維護事件通知,請參閱取得即時遷移作業通知

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

即時遷移和本機 SSD

Compute Engine 也可以即時遷移已連結本機 SSD 的執行個體,在進行任何預定維護作業之前將 VM 與它們的本機 SSD 一起移至新的機器。

先占執行個體的即時遷移作業

您無法將先占執行個體設定為即時遷移。根據預設,先占執行個體的維護行為永遠都設定為 TERMINATE,而且您無法變更這個選項。您無法為先占執行個體設定自動重新啟動選項,但可以在執行個體先占之後,再次手動重新啟動先占執行個體。

如果您需要將執行個體變更為不再先占,請卸離先占執行個體的開機磁碟,然後將該開機磁碟重新附加到沒有設定為先占的新執行個體上。也可以為開機磁碟建立快照,用來建立不具先占能力的新執行個體。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件