仮想マシン(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 VM インスタンスはライブ マイグレーションをサポートしていないため、ホスト メンテナンス イベント中に停止し、必要に応じて再起動するように設定する必要があります。詳しくは、ライブ マイグレーションをご覧ください。
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 を受け取るための、新しい、空のターゲット 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 の Cloud Logging ログで移行が行われたことを確認できます。
単一テナント VM のライブ マイグレーション
ワークロードを実行中に、VM を別の単一テナントノードまたはノードグループに移動する必要が生じることがあります。VM をノードのグループに移動する場合、そのノードを配置するノードは Compute Engine が決定します。単一テナンシーについては、単一テナンシーの概要をご覧ください。
単一テナント VM を別のノードまたはノードグループに移動するには、ライブ マイグレーションを手動で開始します。ライブ マイグレーションを手動で開始して、マルチテナント ホスト上の VM を単一テナントノードに移動させることもできます。詳しくは、VM を手動でライブ マイグレーションするをご覧ください。
次のステップ
VM ホスト メンテナンス ポリシー オプションを設定して、インスタンスにライブ マイグレーションを構成する。
サービスの中断にも対応できる堅牢なシステムを設計するためのヒントを確認する。