仮想マシン(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 タイプでは、ライブ マイグレーションはサポートされていません。
- ベアメタル インスタンス。C3 ベアメタル インスタンスと X4 ベアメタル インスタンスはライブ マイグレーションをサポートしていません。これらのインスタンスのメンテナンス動作は、それぞれ
TERMINATE
とRESTART
に設定されています。 - ほとんどの Confidential VMs インスタンス。Confidential VM インスタンスのライブ マイグレーションは、AMD SEV を実行する AMD EPYC Milan CPU プラットフォームの N2D マシンタイプでのみサポートされます。他のすべての Confidential VMs インスタンスはライブ マイグレーションをサポートしていないため、ホスト メンテナンス イベント中に停止し、必要に応じて再起動するように設定する必要があります。詳細については、ライブ マイグレーションをご覧ください。
GPU が接続されている VM。GPU がアタッチされた VM インスタンスは、停止して、必要に応じて再起動するように設定する必要があります。Compute Engine は、GPU を使用する VM インスタンスが停止する 60 分前に通知を行います。メンテナンス イベントの通知の詳細については、ライブ マイグレーションの通知取得をご覧ください。
GPU を使用するホストのメンテナンス方法については、GPU のドキュメントのホスト メンテナンスの処理をご覧ください。
- Cloud TPU。Cloud TPU はライブ マイグレーションをサポートしていません。
- ストレージ最適化 VM。Z3 VM はライブ マイグレーションをサポートしていません。Z3 VM のメンテナンス動作は
TERMINATE
に設定されています。
ライブ マイグレーションのプロセス
VM がライブ マイグレーションされるようスケジュール設定されている場合、Compute Engine は通知を行います。これにより、このライブ マイグレーションの中断に備えてワークロードとアプリケーションを準備できます。ライブ マイグレーション中、Google Cloud は最小の停止時間(通常は 1 秒未満)を保証します。VM がライブ マイグレーションできるよう設定されていない場合、Compute Engine はホスト メンテナンス中に VM を停止します。ホストイベント中に停止するよう設定されている VM は停止し、必要に応じて再起動します。
Google Cloud は実行中の VM をあるホストから別のホストに移行する場合、VM のすべての状態を、ゲスト OS やそれらと通信する対象にとって透過的な方法で移行元から移行先に移します。作業をシームレスに行うため、この移行には多くのコンポーネントが関係していますが、その概要を以下で説明します。
このプロセスでは、まず、現在のホストマシンから VM を強制的に移動することを通知します。BIOS の新しいバージョンのリリースを示すファイル変更、ハードウェアの定期メンテナンス、予知されるハードウェア障害による自動信号などにより通知が開始されます。
Google Cloud のクラスタ管理ソフトウェアは、これらのイベントを継続的に監視し、ストレージの使用率、1 つの顧客が同時に移行可能な VM の数などのデータセンターの制御ポリシーに基づいてプロセスのスケジュールを設定します。
VM が移行対象に選択されると、Google Cloud はゲストに移行が近いことを通知します。待ち時間が経過すると、ターゲット ホストが選択され、移行する「ソース」仮想マシンを受け取るための、新しい、空の「ターゲット」仮想マシンをセットアップするように求められます。ソースとターゲットの間の接続を確立するために、認証が使用されます。
VM の移行は次の 3 段階で行われます。
ソース ブラウンアウト。大半の状態が移行元から移行先に送信されていますが、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 ホスト メンテナンス ポリシー オプションを設定して、インスタンスにライブ マイグレーションを構成します。
サービスの中断にも対応できる堅牢なシステムを設計するためのヒントを確認する。