即時遷移作業

Compute Engine 提供即時遷移功能,即使在發生主機系統事件 (例如軟硬體更新) 時也能讓虛擬機器執行個體持續執行。Compute Engine 可將正在運作的執行個體即時遷移至同一區域中的另一台主機,而不是要求重新啟動您的 VM。這種處理方式可讓 Google 執行必要的維護作業,藉此保障基礎架構的安全性與可靠性,並且不會對 VM 的運作造成任何影響。

即時遷移可在以下期間讓執行個體持續運作:

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

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

即時遷移程序如何運作?

當 Google 將正在運作的 VM 執行個體從一台主機遷移到另一台主機時,它會以對客體 OS 和任何與其通訊的對象透明的方式,將完整的執行個體狀態從來源移至目的地。要讓這項作業順暢運作涉及許多元件,這裡說明了高階步驟:

即時遷移元件

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

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

選擇要遷移的 VM 後,Google 會向客體發送即將進行遷移的通知。經過一段等候期間後,系統會選擇目標主機並要求該主機設定新的空白「目標」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 說明文件