6.14. ホスト間での仮想マシンの移行
ライブマイグレーションでは、サービスを中断することなく、実行中の仮想マシンを物理ホスト間で移動できます。仮想マシンの電源がオンのままとなり、仮想マシンが新しい物理ホストに移動している間、ユーザーアプリケーションは実行を継続します。バックグラウンドで、仮想マシンの RAM が移行元ホストから移行先ホストにコピーされます。ストレージおよびネットワーク接続は変更されません。
仮想 GPU を使用している仮想マシンは、別のホストに移行することはできません。
6.14.1. ライブマイグレーションの前提条件
これは、Red Hat Virtualization で SR-IOV を準備およびセットアップする方法を示す一連のトピックの 1 つです。詳細は、SR-IOV のセットアップと設定 を参照してください。
ライブマイグレーションを使用して仮想マシンをシームレスに移行し、多くの一般的なメンテナンスタスクをサポートすることができます。事前に、Red Hat Virtualization 環境を、ライブマイグレーションを適切にサポートするように正しく設定する必要があります。
仮想マシンのライブマイグレーションを正常に実行するには、少なくとも以下の前提条件を満たす必要があります。
- 移行元ホストと移行先のホストが同じクラスターのメンバーであり、それらの間で CPU の互換性が確保されている。
通常、異なるクラスター間で仮想マシンのライブマイグレーションを行うことは推奨されません。
-
移行元ホストと移行先のホストのステータスが
Up
である。 - 移行元ホストと移行先のホストが、同じ仮想ネットワークおよび VLAN にアクセスできる。
- 移行元および移行先のホストが、仮想マシンが存在するデータストレージドメインにアクセスできる。
- 移行先ホストに、仮想マシンの要件をサポートするのに十分な CPU 容量がある。
- 移行先ホストには、仮想マシンの要件をサポートするのに十分な未使用 RAM がある。
-
移行する仮想マシンには
cache!=none
カスタムプロパティーが設定されていない。
ライブマイグレーションは管理ネットワークを使用して行われ、ホスト間で大量のデータを転送します。同時移行では、管理ネットワークが飽和する可能性があります。最適なパフォーマンスを得るには、管理、ストレージ、表示、および仮想マシンデータ用に個別の論理ネットワークを作成し、ネットワーク飽和をのリスクを最小限に抑えます。
6.14.2. 移行中のネットワーク停止を減らすための SR-IOV 対応 vNIC が設定された仮想マシンの設定
SR-IOV 対応ホスト NIC の仮想機能 (VF) に直接接続された仮想 NIC が設定された仮想マシンでは、ライブマイグレーション中のネットワーク停止を減らすようにさらに設定することができます。
- 移行先のホストに利用可能な VF があることを確認します。
- パススルー vNIC のプロファイルで Passthrough および Migratable オプションを設定します。管理ガイド の vNIC プロファイルでのパススルーの有効化 を参照してください。
- 仮想マシンのネットワークインターフェイスのホットプラグを有効にします。
- 移行中の仮想マシンのネットワーク接続を維持するために、仮想マシンにパススルー vNIC に加えてバックアップの VirtIO vNIC があることを確認します。
-
ボンディングを設定する前に、VirtIO vNIC の
No Network Filter
オプションを設定します。管理ガイド の VM Interface Profile ウィンドウの設定に関する説明 を参照してください。 プライマリーインターフェイスとしてのパススルー vNIC と共に、両方の vNIC をスレーブとして仮想マシンの
active-backup
ボンディングの下に追加します。ボンディングおよび vNIC プロファイルは、以下のいずれかの方法で設定できます。
ボンディングは
fail_over_mac=active
で設定されず、VF vNIC がプライマリースレーブ
に設定します (推奨)。VirtIO vNIC プロファイルの MAC スプーフィングフィルターを無効にして、VF vNIC MAC アドレスを使用するため、VirtIO vNIC を通過するトラフィックがドロップされないようにします。
ボンディングを
fail_over_mac=active
に設定します。このフェイルオーバーポリシーにより、ボンディングの MAC アドレスは常にアクティブなスレーブの MAC アドレスになります。フェイルオーバー時に、仮想マシンの MAC アドレスが変更され、トラフィックが若干中断されます。
6.14.3. ダウンタイムを最小限に抑えるための SR-IOV 対応 vNIC が設定された仮想マシンの設定
SR-IOV 対応 vNIC が設定された仮想マシンを設定して移行時のダウンタイムを最小限に抑えるには、以下の手順に従います。
以下の手順は、テクノロジープレビューとしてのみ提供されます。詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
- SR-IOV 対応 vNICS で vNIC プロファイルを作成します。vNIC プロファイルの作成 および SR-IOV のセットアップと設定 を参照してください。
-
管理ポータルで
をクリックして、vNIC プロファイルを選択し、 をクリックして、ドロップダウンリストから Failover vNIC profile
を選択します。 - をクリックすると、プロファイルの設定が保存されます。
仮想マシンに作成したフェイルオーバー vNIC プロファイルを持つネットワークインターフェイスをホットプラグするか、このネットワークインターフェイスがプラグインされた仮想マシンを起動します。
注記仮想マシンには、コントローラーインターフェイスと 2 つのセカンダリーインターフェイスという 3 つのネットワークインターフェイスがあります。移行を成功させるには、コントローラーインターフェイスがアクティブで接続されている必要があります。
この設定で仮想マシンを自動デプロイメントするには、以下の
udev
ルールを使用します。UBSYSTEM=="net", ACTION=="add|change", ENV{ID_NET_DRIVER}!="net_failover", ENV{NM_UNMANAGED}="1", RUN+="/bin/sh -c '/sbin/ip link set up $INTERFACE'"
この
udev
ルールは、NetworkManager
でインターフェイスを管理するシステムでのみ機能します。このルールにより、コントローラーインターフェイスのみがアクティベートされます。
6.14.4. ライブマイグレーションの最適化
仮想マシンのライブマイグレーションは、リソースを大量に消費する操作です。ライブマイグレーションを最適化するには、環境内のすべての仮想マシンにグローバルに、クラスター内の全仮想マシンに、または個々の仮想マシンに対して、以下の 2 つのオプションを設定できます。
Auto Converge migrations および Enable migration compression オプションは、クラスターレベル 4.2 以前で利用できます。
クラスターレベル 4.3 以降では、すべてのビルトイン移行ポリシーについて自動収束がデフォルトで有効にされており、移行圧縮は移行ポリシー Suspend workload if needed
に対してのみデフォルトで有効になっています。これらのパラメーターは、新しい移行ポリシーの追加時または MigrationPolicies
設定値を変更して変更できます。
Auto Converge migrations オプションを使用すると、仮想マシンのライブマイグレーション中に自動収束が使用されるかどうかを設定できます。負荷が大きく、サイズの大きい仮想マシンでは、ライブマイグレーションで得られる転送速度よりも早くメモリーがダーティーになり、移行が収束できなくなります。QEMU の自動調整機能を使用すると、仮想マシン移行の収束を強制的に実行できます。QEMU は、収束の欠如を自動的に検出し、仮想マシン上の vCPU のスロットルダウンをトリガーします。
Enable migration compression オプションでは、仮想マシンのライブマイグレーション中に移行圧縮を使用するかどうかを設定できます。この機能は、Xor Binary Zero Run-Length-Encoding を使用して、メモリー書き込みを必要とするワークロードまたはスパースメモリー更新パターンを使用するアプリケーションに対して、仮想マシンのダウンタイムと合計移行時間を短縮します。
デフォルトでは、両方のオプションはグローバルで無効になっています。
手順
グローバルレベルで自動収束を有効にします。
# engine-config -s DefaultAutoConvergence=True
グローバルレベルで移行圧縮を有効にします。
# engine-config -s DefaultMigrationCompression=True
ovirt-engine サービスを再起動して変更を適用します。
# systemctl restart ovirt-engine.service
クラスターの最適化設定を行います。
-
をクリックし、クラスターを選択します。 - をクリックします。
- Migration Policy タブをクリックします。
- Auto Converge migrations リストから、Inherit from global setting、Auto Converge、または Don't Auto Converge を選択します。
- Enable migration compression リストから、Inherit from global setting、Compress、または Don't Compress を選択します。
- をクリックします。
-
仮想マシンレベルで最適化設定を行います。
-
をクリックし、仮想マシンを選択します。 - をクリックします。
- Host タブをクリックします。
- Auto Converge migrations リストから、Inherit from cluster setting、Auto Converge、または Don't Auto Converge を選択します。
- Enable migration compression リストから、Inherit from cluster setting、Compress、または Don't Compress を選択します。
- をクリックします。
-
6.14.5. ゲストエージェントフック
フックとは、キーイベントの発生時に仮想マシン内でアクティビティーをトリガーするスクリプトです。
- 移行前
- 移行後
- ハイバネート前
- ハイバネート後
フック設定のベースディレクトリーは、Linux システムでは /etc/ovirt-guest-agent/hooks.d
です。
各イベントには、対応するサブディレクトリー (before_migration
および after_migration
、before_hibernation
および after_hibernation
) があります。そのディレクトリー内のすべてのファイルまたはシンボリックリンクが実行されます。
Linux システムでは、実行ユーザーは ovirtagent
です。スクリプトが root
パーミッションを必要とする場合は、フックスクリプトの作成者により昇格を実行する必要があります。
6.14.6. 仮想マシンの自動移行
ホストがメンテナンスモードに移行すると、Red Hat Virtualization Manager は、ホストで実行しているすべての仮想マシンのライブマイグレーションを自動的に開始します。クラスター全体に負荷を分散するために、各仮想マシンの移行先ホストは、仮想マシンが移行される際に評価されます。
バージョン 4.3 から、手動または自動移行モードで定義されたすべての仮想マシンは、ホストがメンテナンスモードになると、移行されます。ただし、高パフォーマンスやピニングされた仮想マシンの場合には、ターゲットホストのパフォーマンスが現在のホストよりも低い可能性があるため、Maintenance Host ウィンドウが表示され、アクションの確認を求められます。
Manager は、負荷分散レベルまたは省電力レベルをスケジューリングポリシーに整合させるために、仮想マシンのライブマイグレーションを自動的に開始します。環境のニーズに最も適したスケジューリングポリシーを指定します。必要に応じて、特定の仮想マシンの自動または手動のライブマイグレーションを無効にすることもできます。
仮想マシンが高パフォーマンス用に設定されている場合や、(パススルーホスト CPU、CPU ピニング、または NUMA ピニングを設定して) 仮想マシンがピニングされている場合には、移行モードは Allow manual migration only に設定されます。ただし、必要に応じて、これを Allow Manual and Automatic モードに変更できます。デフォルトの移行設定を変更するときは、仮想マシンがハイパフォーマンスまたはピニングをサポートしていないホストに移行しないように、特別な注意を払う必要があります。
6.14.7. 仮想マシンの自動移行の防止
Red Hat Virtualization Manager では、仮想マシンの自動移行を無効にできます。また、仮想マシンを特定のホストでのみ実行するように設定して、仮想マシンの手動による移行を無効にすることもできます。
自動移行を無効にして、仮想マシンを特定のホストで実行するように要求できることは、Red Hat High Availability や Cluster Suite などのアプリケーションの高可用性製品を使用している場合に役立ちます。
仮想マシンの自動移行の防止
-
をクリックし、仮想マシンを選択します。 - をクリックします。
- Host タブをクリックします。
Start Running On セクションで、Any Host in Cluster または複数のホストを選択できる Specific Host(s) を選択します。
警告特定のホストに仮想マシンを明示的に割り当て、移行を無効にすることは、Red Hat Virtualization の高可用性と相互に排他的です。
重要仮想マシンに直接アタッチされるホストデバイスがあり、別のホストが指定されると、以前のホストからのホストデバイスは仮想マシンから自動的に削除されます。
- Migration Options ドロップダウンリストから、Allow manual migration only または Do not allow migration を選択します。
- をクリックします。
6.14.8. 仮想マシンの手動移行
実行中の仮想マシンは、指定したホストクラスター内の任意のホストにライブマイグレーションが可能です。仮想マシンのライブマイグレーションでは、サービスが中断されることはありません。仮想マシンを別のホストに移行することは、特定のホストの負荷が高すぎる場合に特に便利です。ライブマイグレーションの前提条件は、ライブマイグレーションの前提条件 を参照してください。
ハイパフォーマンス仮想マシンや パススルーホスト CPU、CPU ピニング、またはNUMA ピニング で定義された仮想マシンの場合、デフォルトの移行モードは Manual です。Select Host Automatically を選択し、仮想マシンが最適なパフォーマンスを提供するホストに移行できるようにします。
ホストをメンテナンスモードに移行すると、そのホストで実行されている仮想マシンは自動的に同じクラスター内の他のホストに移行します。これらの仮想マシンを手動で移行する必要はありません。
通常、異なるクラスター間で仮想マシンのライブマイグレーションを行うことは推奨されません。
手順
-
をクリックし、実行中の仮想マシンを選択します。 - をクリックします。
ラジオボタンを使用して、 Select Host Automatically か Select Destination Host(ドロップダウンリストを使用してホストを指定する) かどうかを選択します。
注記Select Host Automatically オプションを選択すると、システムはスケジューリングポリシーに設定された負荷分散および電源管理ルールに基づいて、仮想マシンを移行するホストを決定します。
- をクリックします。
移行中、Migration 進捗バーに進捗が表示されます。移行が完了すると、Host 列が更新され、仮想マシンが移行されたホストが表示されます。
6.14.9. 移行の優先順位の設定
Red Hat Virtualization Manager は、特定のホストからの仮想マシンの移行の同時リクエストをキューに入れます。負荷分散プロセスは 1 分ごとに実行されます。移行イベントにすでに関与しているホストは、移行イベントが完了するまで移行サイクルに含まれません。キューに移行リクエストがあり、それに対応するホストがクラスターで利用可能である場合、クラスターの負荷分散ポリシーに基づいて移行イベントがトリガーされます。
各仮想マシンの優先度を設定して、たとえば、ミッションクリティカルな仮想マシンを他の仮想マシンより先に移行するように設定するなど、移行キューの順序に影響を与えることができます。移行は優先順位に従って順序付けられます。優先度がもっとも高い仮想マシンが最初に移行されます。
移行の優先順位の設定
-
をクリックし、仮想マシンを選択します。 - をクリックします。
- High Availability タブを選択します。
- Priorityドロップダウンリストから Low、Medium、または High を選択します。
- をクリックします。
6.14.10. 実行中の仮想マシン移行のキャンセル
仮想マシンの移行には、予想よりも長い時間がかかります。環境に変更を加える前に、すべての仮想マシンが実行中であることを確認してください。
手順
-
移行中の仮想マシンを選択します。これは、
にMigrating from のステータスで表示されます。 - More Actions ( ) をクリックしてから、Cancel Migration をクリックします。
仮想マシンのステータスが Migrating from から Up に戻ります。
6.14.11. 高可用性仮想サーバーの自動移行時のイベントおよびログ通知
高可用性機能により仮想サーバーが自動的に移行される場合、以下の例のように、トラブルシューティングを容易にするために自動移行の詳細が Events タブとエンジンログに記載されます。
例6.4 管理ポータルのイベントタブの通知
Highly Available Virtual_Machine_Name failed.It will be restarted automatically.
Virtual_Machine_Name was restarted on Host Host_Name
例6.5 Manager engine.log の通知
このログは、Red Hat 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_