仮想マシン(VM)インスタンスの基盤となるハードウェアの計画的なメンテナンス イベント中、Compute Engine は VM を別のホストに移動する場合があります。Compute Engine は、ホストイベント中に VM を実行し続けるために、同じゾーン内の別のホストへの VM のライブ マイグレーションを実行します。ホストイベントの詳細については、ホストイベントについてをご覧ください。
ライブ マイグレーションを行うと、Google Cloud でワークロードの中断、VM の再起動、VM のプロパティ(IP アドレス、メタデータ、ブロック ストレージ データ、アプリケーションのステータス、ネットワーク設定など)の変更を行わずにメンテナンスを実施できます。
計画的なホストイベント中に VM を実行し続けるだけでなく、ライブ マイグレーションにより、次の状況でも VM の実行を継続できます。
インフラストラクチャのメンテナンス。ホスト ハードウェア、データセンターのネットワークと電力網、ホスト OS と BIOS が含まれます。
セキュリティ関連の更新とシステム構成の変更。セキュリティ パッチのインストール、ホスト OS イメージとパッケージのストレージ用のホスト ルート パーティションのサイズ変更などのイベントが含まれます。
ハードウェアの障害。メモリ、CPU、ネットワーク インターフェース カード、ディスクの障害が含まれます。ハードウェアが完全に故障した場合やライブ マイグレーションができない場合、VM は停止して自動的に再起動され、Compute Engine は
hostError
をログに記録します。
Compute Engine は、ホスト メンテナンス ポリシーがマイグレーションに設定されている VM のライブ マイグレーションのみを実行します。ホスト メンテナンス ポリシーを変更する方法については、VM ホスト メンテナンス ポリシーを設定するをご覧ください。
ライブ マイグレーション プロセスとローカル SSD
Compute Engine では、ローカル SSD がアタッチされた VM をライブ マイグレーションできます。計画メンテナンス前に、VM と一緒にローカル SSD を新しいマシンに移行できます。
制限事項
次の VM タイプでは、ライブ マイグレーションはサポートされていません。
- 一部の Confidential VM インスタンス。ライブ マイグレーションは、AMD SEV を実行する AMD EPYC Milan CPU プラットフォームの N2D マシンタイプでのみサポートされます。他のすべての Confidential VM タイプは、停止して、必要に応じて再起動するように設定する必要があります。詳しくは、ライブ マイグレーションをご覧ください。
GPU がアタッチされている VM。GPU がアタッチされた VM インスタンスは、停止して、必要に応じて再起動するように設定する必要があります。Compute Engine は、GPU を使用する VM インスタンスが停止する 60 分前に通知を行います。メンテナンス イベントの通知の詳細については、ライブ マイグレーションの通知取得をご覧ください。
GPU を使用するホストのメンテナンス方法については、GPU のドキュメントのホスト メンテナンスの処理をご覧ください。
Cloud TPU。Cloud TPU はライブ マイグレーションをサポートしていません。
プリエンプティブル VM。プリエンプティブル VM には、ライブ マイグレーションを構成することができません。プリエンプティブル インスタンスのメンテナンス動作は、デフォルトで
TERMINATE
に設定されており、このオプションは変更できません。プリエンプティブル インスタンスに対して自動再起動オプションは設定できませんが、プリエンプティブル VM は、プリエンプト後に、[VM インスタンスの詳細] ページから再度手動で起動できます。インスタンスを非プリエンプティブルに変更する必要がある場合は、プリエンプティブル インスタンスからブートディスクを切断、プリエンプティブルに構成されていない新しいインスタンスにブートディスクをアタッチします。また、ブートディスクのスナップショットを作成し、それを使用してプリエンプティブなしで新しいインスタンスを作成することもできます。
Spot VM。Spot VM は、動作中にライブ マイグレーションで標準 VM に移行することはできません。また、ホストイベントの際に自動的に再起動するように設定することもできません。
ストレージ最適化 VM。Z3 VM はライブ マイグレーションをサポートしていません。Z3 VM のメンテナンス動作は
TERMINATE
に設定されています。
ライブ マイグレーションのプロセス
VM がライブ マイグレーションされるようスケジュール設定されている場合、Google Cloud は通知を行います。ライブ マイグレーション中、Google Cloud は最小の停止時間(通常は 1 秒未満)を保証します。VM がライブ マイグレーションできるよう設定されていない場合、Compute Engine はホスト メンテナンス中に VM を停止します。ホストイベント中に停止するよう設定されている VM は停止し、必要に応じて再起動します。
Google Cloud は実行中の VM をあるホストから別のホストに移行する場合、VM のすべての状態を、ゲスト OS やそれらと通信する対象にとって透過的な方法で移行元から移行先に移します。作業をシームレスに行うため、この移行には多くのコンポーネントが関係しますが、その概要を以下で説明します。
このプロセスでは、まず、現在のホストマシンから VM を強制的に移動することを通知します。BIOS の新しいバージョンのリリースを示すファイル変更、ハードウェアの定期メンテナンス、予知されるハードウェア障害による自動信号などにより通知が開始されます。
Google Cloud のクラスタ管理ソフトウェアは、これらのイベントを継続的に監視し、ストレージの使用率、1 つの顧客が同時に移行可能な VM の数などのデータセンターの制御ポリシーに基づいてプロセスのスケジュールを設定します。
VM が移行対象に選択されると、Google Cloud はゲストに移行が近いことを通知します。待ち時間が経過すると、ターゲット ホストが選択され、移行するソース VM を受け取るための、新しい、空のターゲット VM をセットアップするように求められます。ソースとターゲットの間の接続を確立するために、認証が使用されます。
VM の移行は次の 3 段階で行われます。
ソース ブラウンアウト。大半の状態が移行元から移行先に送信されていますが、VM はまだ移行元で実行されています。たとえば、Google Cloud はゲストのメモリをすべて移行先にコピーすると同時に、移行元で変更されたページの追跡を行っています。ソース ブラウンアウトの時間は、ゲストメモリのサイズやページの変更率に比例します。
ブラックアウト。非常に短い時間ですが、VM の実行が停止します。VM は一時停止状態になり、移行先での VM の再開に必要な残りの状態がすべて送信されます。ソース ブラウンアウトの状態送信が収穫逓減ポイントに達すると、VM がブラックアウト段階に入ります。ゲスト VM が変更を行う速度に応じて送信するメモリのバイト数を決定するアルゴリズムが利用されます。
注: ブラックアウト イベント中は、システム クロックが最大 5 秒先に進んでいるように見えます。ブラックアウト イベントが 5 秒を超えると、Google Cloud は VM ゲスト パッケージの一部として含まれるデーモンを使用して、クロックを停止して再同期します。
ターゲット ブラウンアウト。VM が移行先の VM で実行されます。この段階では移行元の VM も存在し、移行先の VM にサポート機能を提供します。たとえば、ネットワーク ファブリックが移行先の VM の最新のロケーションを取得できるまで、移行元の VM が移行先の VM にパケット転送サービスを提供します。
最後に、移行が完了すると、システムが移行元の VM を削除します。実施された移行は VM ログで確認できます。
手動ライブ マイグレーションのプロセス
ワークロードを実行中に、VM を別のノードまたはノードグループに移動する必要が生じることがあります。単一テナンシーを使用すると、VM を特定の単一テナントノードまたはノードのグループに移動できます。VM をノードのグループに移動する場合、そのノードを配置するノードは Compute Engine が決定します。単一テナンシーについては、単一テナンシーの概要をご覧ください。
単一テナント VM を別のノードまたはノードグループに移動するには、ライブ マイグレーションを手動で開始します。ライブ マイグレーションを手動で開始して、マルチテナント VM を単一テナンシーに移動させることもできます。詳しくは、VM を手動でライブ マイグレーションするをご覧ください。
次のステップ
VM ホスト メンテナンス ポリシーを設定して、インスタンスにライブ マイグレーションを構成する。
サービスの中断にも対応できる堅牢なシステムを設計するためのヒントを確認する。