ホストイベントの発生中または発生後に仮想マシン(VM)インスタンスがどのように応答するかは、VM の作成時にホスト メンテナンス ポリシーを設定することで選択できます。ホストイベントには、Compute Engine インフラストラクチャの定期メンテナンスまたは VM のホストエラーを指定できます。デフォルトでは、VM はホストシステムのイベント中にライブ マイグレーションに設定されますが、終了し、必要に応じて再起動するよう設定することもできます。Z3 VM は、デフォルトでインプレースで再起動するため、ライブ マイグレーションの例外です。
次のホストイベントでは、設定したホスト メンテナンス ポリシーに応じて VM はライブ マイグレーションされるか、終了します。
メンテナンス イベント
メンテナンス イベントでは、Compute Engine が VM を停止して、ハードウェアまたはソフトウェアの更新が行われます。ライブ マイグレーションのホスト メンテナンス ポリシーを有効にすると、Compute Engine によって VM が新しいホストに移動されるため、アプリケーションが中断されることはありません。
メンテナンス イベント中の VM の動作は、VM のテナンシーによって異なる場合があります。次の表に、メンテナンス イベント中のマルチテナント VM と単一テナント VM の動作の違いを示します。
ホスト テナンシー | おおよその頻度 * | 新しいホストへのライブ マイグレーション | ホストの選択 |
---|---|---|---|
マルチテナント | 隔週 | ○ | Compute Engine |
単一テナント | 4~6 週間ごと | ホスト メンテナンス ポリシーによって異なる | ホスト メンテナンス ポリシーによって異なる |
また、Compute Engine は、バックグラウンドで軽量のハイパーバイザとネットワークのアップグレードを無停止で適用します。
ホスト メンテナンス ポリシー
VM のホスト メンテナンス ポリシーは、次のイベント中に VM がどのように動作するかを決定します。
- Google が VM を別のホストマシンに移動する必要があるメンテナンス イベントが発生した場合
- Google が VM の終了または再起動を行う必要があるホストエラーが発生した場合
Compute Engine が別のホストへのライブ マイグレーションを行っている間、ホストのメンテナンス中も VM の実行を継続するように構成できます。また、VM の停止を選択することもできます。VM のホスト メンテナンス ポリシーによって VM の動作が制御されます。このポリシーは、必要なときにいつでも更新できます。
VM のホスト メンテナンス ポリシーを変更するには、次の設定を構成します。
- メンテナンスの動作: メンテナンス イベントが発生した場合に VM をライブ マイグレーションするか、または停止するかを設定します。
- 再起動の動作: VM がクラッシュした場合やホストエラーが発生した場合、Compute Engine が VM を再起動するか停止するかを設定します。
- ホストエラーの検出時間: VM が応答していないことを検出してから、Compute Engine が VM の再起動または終了を行うまで待機する最大時間を設定します。
- Local SSD recovery time: ホストエラーの検出後、Compute Engine がローカル SSD ディスクのデータの復元に費やす最大時間。復元が正常に実行されないまま指定時間が経過すると、ローカル SSD データは失われます。
メンテナンスのスケジュール設定
Google Cloud には、メンテナンスをより厳密に管理できる機能が用意されています。特定の VM ファミリーを使用すると、メンテナンス設定を指定して、Cloud Logging から数日間の通知を受け取ることができます。通知を受け取ったら、スケジュールされたイベントまで任意の時点でメンテナンスをトリガーできます。
これらの機能とホスト メンテナンス ポリシーを組み合わせて、ワークロードに適したスケジュールをカスタマイズできます。
ライブ マイグレーション
デフォルトでは、Z3 VM を除くすべての VM はライブ マイグレーションに設定されています。Compute Engine が、インフラストラクチャのメンテナンス イベントから自動的に VM を移行し、移行中は VM が実行されたままになります。通常、ほとんどの VM のパフォーマンスには大きな影響が及ぶことはありませんが、VM のパフォーマンスが一時的に低下することがまれにあります。この設定は、継続的な稼働時間を必要とし、一時的なパフォーマンスの低下を許容する VM に適しています。
VM を移行する際、Compute Engine はゾーン オペレーションのリストに公開されているシステム イベントを報告します。このイベントを確認するには、特定のゾーンに対する Compute Engine のオペレーションを表示します。ライブ マイグレーション イベントには、次のオペレーション タイプがあります。
compute.instances.migrateOnHostMaintenance
停止と(必要に応じた)再起動
VM をライブ マイグレーションしない場合は、VM を停止し、必要に応じて再起動できます。VM が停止と必要に応じた再起動に設定されている場合、Compute Engine はソフト パワーオフ信号を送信して VM をシャットダウンします。その後、VM が完全にシャットダウンするまで 60 秒間待機し、メンテナンス イベントとは独立して、VM を終了して再起動します。VM が 60 秒以内に完全にシャットダウンしない場合でも、VM は終了します。
VM が常に最大のパフォーマンスを必要とし、アプリケーション全体が VM の障害や再起動を処理するように構築されている場合、このオプションが最適です。
VM を停止して再起動すると、Compute Engine はゾーン オペレーションのリストに公開されるシステム イベントを報告します。このイベントを確認するには、特定のゾーンに対する Compute Engine のオペレーションを表示します。停止されたイベントは、次のオペレーション タイプで示されます。
compute.instances.terminateOnHostMaintenance
VM を再起動したときにも前と同じ永続ブートディスクを使用し、構成したセカンダリ永続ディスクを再接続します。それらのディスク上のデータは、VM の移行や再起動の後も維持されます。
メンテナンス イベントの発生により VM が停止した場合、ローカル SSD データは保持されません。VM を再起動したときには、新しいローカル SSD が作成されるので、それをフォーマットしてマウントする必要があります。
ローカル SSD データは、ストレージ最適化された Z3 VM に保持されます。メンテナンス イベントが発生すると、Z3 VM は新しいホストに移行せずに、そのまま再起動します。定期メンテナンスが終了すると、VM が再起動されます。Google Cloud は、ローカル SSD データがそのまま残るように最善を尽くします。ただし、タイムアウトの場合など、データが復元できない場合があります。
自動再起動
メンテナンス イベントが発生したとき、またはハードウェアの根本的な問題で VM に障害が発生したときに VM を停止するよう設定されている場合、automaticRestart
フィールドを true
に設定すると、Compute Engine によって VM が自動的に再起動されます。この設定は、sudo shutdown
の呼び出しなどのユーザー操作によって VM がオフラインになった場合、またはゾーンの停止中は適用されません。
VM を自動的に再起動する際、Compute Engine はゾーン オペレーションのリストに公開されているシステム イベントを報告します。このイベントを確認するには、特定のゾーンに対する Compute Engine のオペレーションを表示します。自動再起動イベントには、次のオペレーション タイプがあります。
compute.instances.automaticRestart
ホストエラー
ホストエラー(compute.instances.hostError
)は、VM をホストしている物理マシンで、VM がクラッシュするようなハードウェアまたはソフトウェアの問題が発生したことを意味します。ハードウェア全体の障害やその他のハードウェアの問題でホストエラーが発生すると、VM のライブ マイグレーションが停止することがあります。VM が自動的に再起動するように設定されている場合(デフォルト設定)、Google は通常、エラーが検出されてから 3 分以内に VM を再起動します。問題によっては、再起動に最大 5.5 分かかります。
ローカル SSD ディスク付きの VM
1 つ以上のローカル SSD ディスクがアタッチされている VM でホストエラーが発生した場合、Compute Engine は可能な限り VM に再接続を試み、ローカル SSD を保持しようとします。Compute Engine が VM とローカル SSD ディスクを復元している間、ホストシステムと基盤となるディスクは応答不能になります。
Compute Engine がローカル SSD の復元を試みる時間は、ローカル SSD の復元タイムアウトを設定して指定できます。
ホストエラー発生時におけるローカル SSD ディスクの動作の詳細については、ローカル SSD データの永続性をご覧ください。
応答しない VM
ホストエラーが検出される前に、VM が応答しなくなる場合があります。ホストエラー回復タイムアウト(プレビュー)を設定することで、Compute Engine が VM の再起動または終了を待機する時間を短縮できます。詳細については、可用性ポリシーを設定するをご覧ください。
物理的なハードウェアとソフトウェアの障害が発生する可能性はありますが、これはまれな現象です。起こりうる破壊的なシステム イベントからアプリケーションやサービスを保護するため、次の方策を確認してください。
Google は、App Engine や App Engine フレキシブル環境などのマネージド サービスも提供しています。
ローカル SSD の復元タイムアウト
ホストエラーが発生すると、Compute Engine は VM にアタッチされているローカル SSD ディスクの復元を試みます。Compute Engine がデータの復元を試みる時間は、ローカル SSD の復元タイムアウトで設定できます。デフォルトでは、Compute Engine がデータの復元に費やす時間は 1 時間に設定されますが、0~168 の時間数を設定できます。時間数は 1 時間単位で増やすことができます。例外は Z3 で、デフォルトの復旧時間は最大 6 時間です。
タイムアウト時間が経過してもデータを復元できない場合、Compute Engine はローカル SSD ディスクなしで VM を再起動します。Compute Engine は、再起動された VM に新しい空のローカル SSD ディスクをアタッチします。
タイムアウトが 1 時間以上の場合、Compute Engine がアタッチされているローカル SSD ディスクを復元している間、VM は REPAIRING
状態になります。復元中は VM とローカル SSD ディスクは応答しません。
タイムアウトが 0 の場合、Compute Engine はローカル SSD ディスクの復元を試行せず、データを復元することはできません。ローカル SSD データの復元よりもワークロードの再開の方が重要な場合は、復元タイムアウトを 0 に設定できます。
ローカル SSD ディスクの復元を停止する
ローカル SSD の復元タイムアウトが時間切れになる前に、復元プロセスを中断できます。これを行うには、--discard-local-ssd=True
フラグを指定して gcloud compute instances stop
コマンドを使用します。
これにより、復元プロセスが停止し、VM が停止して、ローカル SSD データが破棄されます。後で VM を再起動できます。詳細については、ローカル SSD を使用する VM を停止するをご覧ください。
ローカル SSD の復元タイムアウトの設定については、VM ホスト メンテナンス ポリシーを設定するをご覧ください。
次のステップ
- ライブ マイグレーションの詳細を見る。
- 詳しくは、VM ホスト メンテナンス ポリシーの設定の詳細を見る。
- ライブ マイグレーションの通知取得の詳細を見る。
- ホスト メンテナンスのシミュレーションの詳細を見る。
- GPU ホスト メンテナンス イベントの処理の詳細を見る。
- 単一テナント VM の手動でのライブ マイグレーションの詳細を見る。