6.12. ホスト間における仮想マシンの移行

ライブマイグレーションは、サービスを停止せずに物理ホスト間で稼働中の仮想マシンを移行する機能を提供します。新しい物理ホストに移行される間、仮想マシンは電源オンの状態を維持し、ユーザーアプリケーションは継続的に実行されます。バックグラウンドでは、仮想マシンの RAM が移行元のホストから移行先のホストにコピーされます。ストレージおよびネットワークの接続性は変更されません。

6.12.1. ライブマイグレーションの前提条件

ライブマイグレーションを使用すると、仮想マシンをシームレスに移行して、数多くの一般メンテナンスタスクをサポートすることができます。ライブマイグレーションを使用する前には、Red Hat Enterprise Virtualization 環境がライブマイグレーションをサポートするように正しく設定されているかどうかを十分前もって確認してください。
仮想マシンのライブマイグレーションを適切に実行するには、少なくとも以下の条件を満たしている必要があります。
  • CPU の互換性を確保するために、移行元と移行先のホストはいずれも同じクラスターのメンバーであること。

    注記

    一般的に、異なるクラスターの間で仮想マシンをライブマイグレーションすることは推奨されません。現在サポートされているユースケースについての説明は、https://access.redhat.com/articles/1390733 に記載しています。
  • 移行元と移行先のホストは、Up の状態であること。
  • 移行元と移行先のホストは、同じ仮想ネットワークと VLAN にアクセス可能であること。
  • 移行元と移行先のホストは、仮想マシンが属するデータストレージドメインにアクセス可能であること。
  • 移行先ホストには、仮想マシンの要件に対応するのに十分な CPU 容量があること。
  • 移行先のホストには、仮想マシンの要件に対応するのに十分な RAM の空き容量があること。
  • 移行する仮想マシンには、cache!=none カスタムプロパティーが設定されていない必要があります。
また、パフォーマンスを最適化するには、ストレージネットワークと管理ネットワークを分割してネットワークが飽和状態となるのを回避する必要があります。仮想マシンの移行は、ホスト間における大容量のデータ転送を伴います。
ライブマイグレーションは、管理ネットワークを使用して実行します。各ライブマイグレーションイベントの最大転送速度は 30 MBps に制限されており、またサポートされる同時マイグレーション数もデフォルトで制限されています。このような対策にかかわらず、同時にマイグレーションを行うことにより、管理ネットワークが飽和状態となってしまう可能性があります。このため、ストレージ、ディスプレイ、仮想マシンデータ用に別々の論理ネットワークを作成してネットワーク飽和のリスクを最小限に抑えることを推奨します。

6.12.2. ライブマイグレーションの最適化

仮想マシンのライブマイグレーションは、リソースを集中的に使用する操作となる場合があります。以下の 2 つのオプションは、環境内の全仮想マシンに対してグローバルで設定するか、クラスターレベル、または個別の仮想マシンレベルで設定することができます。
移行の自動収束 オプションでは、仮想マシンのライブマイグレーション中に自動収束を使用するかどうかを設定することができます。ワークロードが大きくサイズの大きい仮想マシンは、ライブマイグレーション中に到達する転送速度よりも早くメモリーをダーティーな状態にして、移行を収束できないようにする可能性があります。QEMU の自動収束機能は、仮想マシンの移行を強制的に収束することができます。移行が収束されていない場合には、QEMU が自動的に検出して、仮想マシンの vCPU の使用率を制限します。
移行時の圧縮の有効化 オプションでは、仮想マシンのライブマイグレーション中に移行の圧縮を使用するかどうかを設定することができます。この機能は、Xor Binary Zero Run-Length-Encoding を使用して、仮想マシンのダウンタイムおよび、メモリーの書き込みの多いワークロードを実行する仮想マシンやメモリー更新パターンがスパースなアプリケーションの合計ライブマイグレーション時間を減らします。
デフォルトでは、どちらのオプションもグローバルに無効化されています。

手順6.24 仮想マシンの移行の自動収束および移行の圧縮の設定

  1. グローバルレベルで最適化設定を行います。
    1. グローバルレベルで自動収束を有効化します。
      # engine-config -s DefaultAutoConvergence=True
    2. グローバルレベルで移行の圧縮を有効化します。
      # engine-config -s DefaultMigrationCompression=True
    3. ovirt-engine サービスを再起動して変更を有効にします。
      # service ovirt-engine restart
  2. クラスターレベルで最適化設定を行います。
    1. クラスターを選択します。
    2. 編集 をクリックします。
    3. スケジューリングポリシー タブをクリックします。
    4. 移行の自動収束 リストから グローバル設定から継承する自動収束 または 自動収束しない を選択します。
    5. 移行時の圧縮の有効化 リストから グローバル設定から継承する圧縮 または 圧縮しない を選択します。
  3. 仮想マシンレベルで最適化設定を行います。
    1. 仮想マシンを選択します。
    2. 編集 をクリックします。
    3. ホスト タブをクリックします。
    4. 移行の自動収束 リストから クラスター設定から継承する自動収束 または 自動収束しない を選択します。
    5. 移行時の圧縮の有効化 リストから クラスター設定から継承する圧縮 または 圧縮しない を選択します。

6.12.3. 仮想マシンの自動移行

Red Hat Enterprise Virtualization Manager は、ホストがメンテナンスモードに切り替わると、全仮想マシンのライブマイグレーションを自動的に開始します。各仮想マシンの移行先ホストは、仮想マシンが移行する際に評価され、クラスター全体に負荷が分散されます。
Manager は、スケジューリングポリシーに対応した負荷分散もしくはパワーセービングのレベルを維持する目的で、仮想マシンのライブマイグレーションを自動的に開始します。デフォルトでは、スケジューリングポリシーは定義されていませんが、管理者は自分の環境に最も適したスケジューリングポリシーを指定することを推奨します。また、必要に応じて、特定の仮想マシンの自動または手動のライブマイグレーションを無効にすることもできます。

6.12.4. 仮想マシンの自動移行の防止

Red Hat Enterprise Virtualization Manager では、仮想マシンの自動移行を無効にすることができます。また、仮想マシンが特定のホスト上のみで実行されるように設定すると、手動での仮想マシン移行も無効にすることが可能です。
自動移行を無効にし、仮想マシンが特定のホストで実行されるように要求する機能は、Red Hat High Availability や Cluster Suite などのアプリケーション高可用性製品を使用している場合に有用です。

手順6.25 仮想マシンの自動移行の防止

  1. 仮想マシン タブをクリックして、仮想マシンを 1 つ選択します。
  2. 編集 をクリックします。
    仮想マシンの編集ウィンドウ

    図6.15 仮想マシンの編集ウィンドウ

  3. ホスト タブをクリックします。
  4. 実行を開始するホスト のラジオボタンで、クラスター内の任意ホスト または 特定 のホストで仮想マシンを実行するように指定します。特定のホストで実行する場合は、一覧から特定のホストまたはホストのグループを選択します。

    警告

    仮想マシンを特定の 1 台のホストに明示的に割り当て、移行を無効にすると、Red Hat Enterprise Virtualization の高可用性機能は使用できません (その逆も同様)。特定の 1 台のホストに割り当てられた仮想マシンを高可用性にするには、Red Hat High Availability など、外部の高可用性製品を使用する必要があります。この制約は、複数の特定ホストに割り当てられている仮想マシンには適用されません。

    重要

    仮想マシンにホストデバイスが直接アタッチされ、異なるホストが指定された場合には、以前のホストのデバイスは、仮想マシンから自動的に削除されます。
  5. 移行のオプション のドロップダウンリストから 手動の移行のみを許可する または 移行を許可しない を選択します。
  6. オプションで カスタム移行ダウンタイムを使用する チェックボックスを選択して、ミリ秒単位で値を指定します。
  7. OK をクリックします。

6.12.5. 手動での仮想マシン移行

実行中の仮想マシンを指定のホストクラスター内の任意のホストにライブマイグレーションすることができます。仮想マシンのライブマイグレーションによってサービスが中断することはありません。 別のホストへの仮想マシン移行は、特定のホストが過負荷の状態になった場合に特に役立ちます。ライブマイグレーションの前提条件については、「ライブマイグレーションの前提条件」を参照してください。

注記

ホストをメンテナンスモードに設定すると、ホストで実行中の仮想マシンは自動的に同じクラスター内の別のホストに移行されます。これらの仮想マシンを手動で移行する必要はありません。

注記

一般的に、異なるクラスターの間で仮想マシンをライブマイグレーションすることは推奨されません。現在サポートされているユースケースについての説明は、https://access.redhat.com/articles/1390733 に記載しています。

手順6.26 手動での仮想マシン移行

  1. 仮想マシン タブをクリックして、実行中の仮想マシンを選択します。
  2. 移行 をクリックします。
  3. ラジオボタンで ホストを自動選択 を選択するか、移行先のホストを選択 を選択して、ドロップダウンリストでホストを指定します。

    注記

    ホストを自動選択 オプションを選択すると、システムは、スケジューリングポリシーで設定されている負荷分散および電源管理のルールに従って、移行先のホストを決定します。
  4. OK をクリックします。
移行中には 移行 のプログレスバーに進捗状況が表示されます。仮想マシンの移行が完了すると、ホスト のコラムが更新され、仮想マシンが移行した先のホストが表示されます。

6.12.6. 移行優先度の設定

Red Hat Enterprise Virtualization Manager は、一定のホストからの仮想マシン移行の同時要求をキューに入れます。負荷分散プロセスが毎分実行されます。移行イベントにすでに関与しているホストは、その移行イベントが完了するまで、移行サイクルには含まれません。移行要求がキューにあり、その要求に対応できるホストがクラスター内にある場合には、そのクラスターを対象に定義されている負荷分散ポリシーに従って、移行イベントがトリガーされます。
移行キューの順序は、ミッションクリティカルな仮想マシンを他より先に移行するように設定するなど、仮想マシンごとに優先度を設定して変更することができます。移行は優先度をベースに順番に行われ、最も優先度の高い仮想マシンが先に移行されます。

手順6.27 移行優先度の設定

  1. 仮想マシン タブをクリックして、仮想マシンを 1 つ選択します。
  2. 編集 をクリックします。
  3. 高可用性 タブを選択します。
  4. 優先度 のドロップダウンリストから、 を選択します。
  5. OK をクリックします。

6.12.7. 実行中の仮想マシンの移行キャンセル

仮想マシンの移行に予想以上の時間がかかっている場合には、全仮想マシンがどこで実行されているかを確認した上で環境に変更を加えます。

手順6.28 実行中の仮想マシンの移行キャンセル

  1. 移行中の仮想マシンを選択します。仮想マシン リソースタブに Migrating From のステータスで表示されます。
  2. 移行をキャンセル をクリックします。
仮想マシンのステータスが Migrating From から Up に変わります。

6.12.8. 高可用性仮想サーバーの自動移行におけるイベントおよびログ通知

高可用性機能により仮想サーバーが自動的に移行された場合には、その自動移行の詳細情報は、トラブルシューティングを行う際に役立つように イベントタブおよび engine.log に記録されます。以下はその例です。

例6.1 Web 管理ポータルのイベントタブの通知

Highly Available Virtual_Machine_Name failed. It will be restarted automatically.
Virtual_Machine_Name was restarted on Host Host_Name

例6.2 Manager engine.log 内の通知

このログは、Red Hat Enterprise Virtualization Manager の /var/log/ovirt-engine/engine.log で確認することができます。
Failed to start Highly Available VM. Attempting to restart. VM Name: Virtual_Machine_Name, VM Id:Virtual_Machine_ID_Number