12.8. 仮想マシンの移行に関するトラブルシューティング
仮想マシン (VM) を移行する際に、以下のいずれかの問題が発生した場合は、手順を参照して問題を修正または回避してください。
12.8.1. 仮想マシンのライブマイグレーションに長時間かかり、完了しない
原因
場合によっては、実行中の仮想マシンを移行することにより、その仮想マシンは、ダーティーメモリーページ の移行速度よりも速いスピードで、ダーティーメモリーページを生成することがあります。このような場合、移行は正常に完了できません。
この問題は、以下のシナリオにより、頻繁に発生します。
- 負荷が大きい仮想マシンのライブマイグレーション
大量のメモリー (1 TB 以上) を使用する仮想マシンのライブマイグレーション
重要Red Hat は、最大 6 TB のメモリーを搭載した仮想マシンのライブマイグレーションを正常にテストしました。ただし、メモリーが 1 TB を超える仮想マシンのライブマイグレーションのシナリオに関しては、Red Hat テクニカルサポート までお問い合わせください。
診断
仮想マシンのライブマイグレーションにかかる時間が予想よりも長い場合は、virsh domjobinfo
コマンドを使用して、仮想マシンのメモリーページデータを取得します。
# virsh domjobinfo <vm-name> Job type: Unbounded Operation: Outgoing migration Time elapsed: 168286974 ms Data processed: 26.106 TiB Data remaining: 34.383 MiB Data total: 10.586 TiB Memory processed: 26.106 TiB Memory remaining: 34.383 MiB Memory total: 10.586 TiB Memory bandwidth: 29.056 MiB/s Dirty rate: 17225 pages/s Page size: 4096 bytes
この出力では、Dirty rate
と Page size
を乗算すると、Memory bandwidth
より大きくなります。これは、ネットワークがダーティーページを移行できるよりも速い速度で、仮想マシンがダーティーメモリーページを生成していることを意味します。そのため、移行先ホストの仮想マシンの状態を移行元ホストの仮想マシンの状態に収束することができません。これにより、移行が完了しません。
修正
停止状態のライブマイグレーションが正常に終了する確率を高めるには、以下のいずれかを行います。
仮想マシンのワークロード、特にメモリー更新を減らします。
- これを行うには、元の仮想マシンのゲストオペレーティングシステムで必須ではないプロセスを停止またはキャンセルします。
ライブマイグレーションで許容されるダウンタイムを増やします。
移行中の仮想マシンのライブマイグレーションの最後に、現在の最大ダウンタイムを表示します。
# virsh migrate-getmaxdowntime <vm-name>
最大ダウンタイムを長く設定します。
# virsh migrate-setmaxdowntime <vm-name> <downtime-in-miliseconds>
最大ダウンタイムを長く設定すればするほど、移行の完了までにかかり時間が長くなる可能性があります。
ライブマイグレーションを post-copy モードに切り替えます。
# virsh migrate-start-postcopy <vm-name>
これにより、仮想マシンのメモリーページが移行先ホストで収束し、移行が完了できるようになります。
ただし、post-copy モードがアクティブになると、移行先ホストから移行元ホストへのリモートページ要求が原因で、仮想マシンが大幅に遅くなる可能性があります。さらに、post-copy マイグレーション中に移行元ホストと移行先ホスト間のネットワーク接続が動作しなくなった場合、メモリーページが不足しているために一部の仮想マシンプロセスが停止することがあります。
したがって、仮想マシンの可用性が重要である場合や、移行ネットワークが不安定な場合は、post-copy マイグレーションを使用しないでください。
- ワークロードで許可されている場合は、仮想マシンを一時停止し、移行を ライブ以外 の移行として完了させます。これにより、仮想マシンのダウンタイムは長くなりますが、ほとんどの場合で、移行が正常に完了するようになります。
阻止
仮想マシンのライブマイグレーションが正常に完了する確率は、以下によって変わってきます。
移行中の仮想マシンのワークロード
- 移行を開始する前に、仮想マシンのゲストオペレーティングシステムで必須でないプロセスを停止またはキャンセルします。
ホストが移行に使用できるネットワーク帯域幅
- ライブマイグレーションの最適な結果を得るには、移行に使用するネットワークの帯域幅を、仮想マシンのダーティーページ生成よりも、はるかに広くする必要があります。仮想マシンのダーティーページの生成速度を取得する手順は、コマンドラインインターフェイスを使用した仮想マシンの移行 の前提条件を参照してください。
- 移行元ホストと移行先ホストの両方に、移行用の専用のネットワークインターフェイスコントローラー (NIC) が必要です。メモリーが 1 TB を超える仮想マシンのライブマイグレーションの場合、Red Hat では、25 Gb/s 以上の速度を持つ NIC を推奨しています。
-
また、移行の開始時に
--bandwidth
オプションを使用して、ライブマイグレーションに割り当てるネットワーク帯域幅を指定することもできます。非常に大きな仮想マシンを移行するには、デプロイメントに実行可能な帯域幅をできるだけ多く割り当てます。
ライブマイグレーションのモード
- デフォルトの pre-copy 移行モードでは、メモリーページがダーティーになると、繰り返しメモリーページをコピーします。
Post-copy 移行は、メモリーページを 1 回だけコピーします。
移行が停止した場合にライブマイグレーションが post-copy モードに切り替わるようにするには、移行の開始時に
virsh migrate
を指定した--postcopy
オプションを使用します。
デプロイメント用に指定されたダウンタイム
-
前述のように、
virsh migrate-setmaxdowntime
を使用して移行中にこれを調整できます。
-
前述のように、