vMotion を使用して仮想マシンを移行するには、その仮想マシンが、特定のネットワーク、ディスク、CPU、USB、および他のデバイスの要件を満たしている必要があります。

vSphere vMotion を使用する場合、次の仮想マシンの条件と制限が適用されます。

  • ソースとターゲットの管理ネットワーク IP アドレス ファミリが一致する必要があります。仮想マシンを、IPv4 アドレスを使用して vCenter Server に登録されているホストから IPv6 アドレスで登録されているホストへ移行させることはできません。
  • vSphere vMotion ネットワークに 1 GbE ネットワーク アダプタを使用すると、vGPU プロファイルが大きい仮想マシンを移行する場合に移行に失敗することがあります。vSphere vMotion ネットワークには、10 GbE ネットワーク アダプタを使用してください。
  • 仮想 CPU パフォーマンス カウンタが有効になっている場合、移行できるのは、互換性のある CPU パフォーマンス カウンタを持つホストのみです。
  • 3D グラフィックを有効にした仮想マシンを移行できます。3D レンダラが [自動] に設定されている場合、仮想マシンはターゲット ホストに存在するグラフィック レンダラを使用します。レンダラはホストの CPU または GPU グラフィック カードにできます。3D レンダラを [ハードウェア] に設定した仮想マシンを移行するには、ターゲット ホストに GPU グラフィック カードが必要です。
  • vSphere 6.7 Update 1 以降、vSphere vMotion は vGPU を搭載した仮想マシンをサポートします。
  • vSphere DRS は、ロード バランシングのサポートなしに vSphere 6.7 Update 1 以降を実行している vGPU 仮想マシンの初期配置をサポートします。
  • ホストの物理 USB デバイスに接続されている USB デバイスを使用する仮想マシンは移行できます。vSphere vMotion のデバイスを有効にする必要があります。
  • vSphere vMotion は、ターゲット ホストからアクセスできないデバイスでバッキングされている仮想デバイスを使う仮想マシンの移行には使用できません。たとえば、ソース ホストの物理 CD ドライブでバッキングされている CD ドライブを使用する仮想マシンは移行できません。これらのデバイスは、仮想マシンの移行前に切断してください。
  • 仮想マシンが、クライアント コンピュータのデバイスでバッキングされている仮想デバイスを使用している場合、vSphere vMotion で移行することはできません。これらのデバイスは、仮想マシンの移行前に切断してください。

vMotion を使用した vGPU 仮想マシンの移行

vMotion を使用して、データの損失を発生させることなく、NVIDIA vGPU を利用した仮想マシンのライブ マイグレーションを実行できます。

vGPU 仮想マシンで vMotion を有効にするには、vgpu.hotmigrate.enabled の詳細設定を true に設定する必要があります。vCenter Server の詳細設定の構成方法については、『vCenter Server の構成』ドキュメントの「詳細設定の構成」を参照してください。

vSphere 6.7 Update 1 および vSphere 6.7 Update 2 では、vMotion を使用して vGPU 仮想マシンを移行するときに、vMotion の停止時間が 100 秒を超えると、フレーム バッファ サイズが 24 GB 以上の vGPU プロファイルの移行プロセスが失敗することがあります。vMotion のタイムアウトを回避するには、vSphere 6.7 Update 3 以降にアップグレードしてください。

サスペンド時には、仮想マシン、デスクトップ、またはアプリケーションにアクセスできません。移行が完了すると、仮想マシンへのアクセスが再開され、すべてのアプリケーションが前の状態から続行されます。vGPU プロファイルのフレーム バッファ サイズの詳細については、NVIDIA 仮想 GPU のドキュメントを参照してください。

想定される仮想マシンのサスペンド時間(vMotion 中にユーザーが仮想マシンにアクセスできなくなる時間)と、最悪のケースの推定サスペンド時間を次の表に示します。推定サスペンド時間は、NVIDIA Tesla V100 PCIe 32 GB GPU を使用して 10 Gb ネットワークでテストしたものです。

表 1. vGPU 仮想マシンの vMotion で想定されるサスペンド時間
使用されている vGPU フレーム バッファ (GB) 仮想マシンのサスペンド時間(秒)
1 2
2 4
4 6
8 12
16 22
32 39
表 2. 最悪のケースの推定サスペンド時間(秒)
vGPU メモリ 仮想マシンのメモリ 4 GB 仮想マシンのメモリ 8 GB 仮想マシンのメモリ 16 GB 仮想マシンのメモリ 32 GB
1 GB 5 6 8 12
2 GB 7 9 11 15
4 GB 13 14 16 21
8 GB 24 25 28 32
16 GB 47 48 50 54
32 GB 91 92 95 99
注: 想定されるサスペンド時間と、最悪のケースの推定サスペンド時間を検討する際は、次の点に注意してください。
  • 設定済みの vGPU プロファイルは、使用されている vGPU フレーム バッファの上限を表します。多くの使用事例では、任意の時点で仮想マシンによって使用される vGPU フレーム バッファ メモリの量はプロファイルで割り当てられた vGPU メモリを下回っています。
  • 想定されるサスペンド時間と、最悪のケースでの推定サスペンド時間は、単一の仮想マシンを移行する場合にのみ有効です。複数の仮想マシンを同時に移行している場合、つまり vSphere の手動修正プロセスでは、サスペンド時間に悪影響が及びます。
  • 上記の見積もりでは、10 Gbps の移行スループットを達成するのに十分な CPU、メモリ、PCIe、およびネットワーク キャパシティを想定しています。

DRS は、ロード バランシングのサポートなしに vSphere 6.7 Update 1 以降を実行している vGPU 仮想マシンの初期配置をサポートします。

VMware vSphere vMotion は、NVIDIA によって定義されサポートされているように、互換性のある NVIDIA GPU デバイス モデルおよび NVIDIA GRID ホスト ドライバ バージョンでのみ、またそれらの間でのみサポートされます。互換性の情報については、NVIDIA 仮想 GPU ユーザー ガイドを参照してください。

NVIDIA vGPU ホスト ドライバ、vSphere、および Horizon 間の互換性を確認するには、VMware 互換性マトリックスを参照してください。

スワップ ファイルの場所の互換性

仮想マシンのスワップ ファイルの場所は、仮想マシンのホストで実行されている ESXi のバージョンによって、vMotion の互換性にさまざまな影響を与えます。

ESXi 6.7 以降のホストを構成して、仮想マシン スワップ ファイルを仮想マシン構成ファイルと一緒に保存するか、そのホストに指定されたローカル スワップ ファイル データストアに保存できます。

仮想マシンのスワップ ファイルの場所は、vMotion の互換性に次のような影響を与えます。

  • ESXi 6.7 以降を実行しているホスト間の移行の場合は、vMotion およびサスペンド状態またはパワーオフ状態の仮想マシンの移行が可能です。
  • vMotion での移行時に、ターゲット ホストで指定されたスワップ ファイルの場所が、ソース ホストで指定されたスワップ ファイルの場所と異なっている場合は、スワップ ファイルが新しい場所にコピーされます。この処理により、vMotion での移行に時間がかかることがあります。ターゲット ホストが指定されたスワップ ファイルの場所にアクセスできない場合は、仮想マシンの構成ファイルと同じ場所にスワップ ファイルが格納されます。

スワップ ファイル ポリシーの構成の詳細については、『vSphere リソース管理』 ドキュメントを参照してください。

遅延の影響を受けやすいアプリケーションの vSphere vMotion 通知

vSphere 8.0 以降では、vSphere vMotion イベントが開始および終了したときに、仮想マシンのゲスト OS 内で実行されているアプリケーションに通知できます。この通知メカニズムにより、遅延の影響を受けやすいアプリケーションは、vSphere vMotion 操作の準備や遅延を行えます。

VoIP アプリケーションや高頻度でやり取りするアプリケーションなど、遅延の影響を受けやすいアプリケーションの場合、vSphere vMotion および vSphere DRS は通常無効になります。vSphere 8.0 では、アプリケーションが準備に必要な手順を実行できるように、vSphere vMotion が発生しようとしていることをアプリケーションに通知するための通知メカニズムが導入されています。開始イベントを生成した後に vSphere vMotion は一時停止し、アプリケーションが開始通知を確認するまで待機してから続行します。

注:

vSphere vMotion 操作の通知メカニズムを有効にすると、全体的な vSphere vMotion 時間が長くなることがあります。

vSphere vMotion 通知用に仮想マシンを構成する方法

デフォルトでは、通知メカニズムは無効になっています。仮想マシンで通知メカニズムを有効にするには、仮想マシンがハードウェア バージョン 20 であることと、次の高度な仮想マシン構成オプションの構成が必要です。

  • 仮想マシン内で実行されているアプリケーションへの通知の送信を有効にするには、vmx.vmOpNotificationToApp.enabled 仮想マシン プロパティを true に設定します。

  • アプリケーションが vMotion 操作の準備に必要な最大期間を秒単位で指定するには、vmx.vmOpNotificationToApp.timeout 仮想マシン プロパティを使用します。vSphere vMotion 操作で開始イベントが生成されると、vMotion 操作は一時停止し、アプリケーションからの確認が続行されるまで待機します。vSphere vMotion は、指定した通知タイムアウトを待機します。

    このプロパティはオプションであり、デフォルトでは設定されていません。これを使用すると、特定の仮想マシンに対してより制限の厳しいタイムアウトを構成できます。設定を解除したままにすると、ホスト通知の構成が使用されます。

vSphere vMotion 通知用にホストを構成する方法

VmOpNotificationToApp.Timeout の詳細なホスト構成設定を使用して、ホスト上のすべての仮想マシンに適用される通知タイムアウトを指定できます。ConfigManager API を使用して、この構成プロパティに値を設定します。vSphere Web Services API リファレンスのドキュメントを参照してください。

デフォルトの通知タイムアウトは 0 です。この場合、アプリケーション通知は生成されますが、vSphere vMotion 操作は遅延しません。

ホストと、そのホストで実行されている仮想マシンで同時に通知タイムアウトを設定した場合、小さい方の値が使用されます。

vSphere vMotion 通知用にアプリケーションを登録する方法

アプリケーションが vSphere vMotion イベントの通知を受信できるようにするには、アプリケーションをホストしている仮想マシンに VMware Tools がインストールされている必要があります。vSphere 8.0 では、仮想マシンごとに 1 つのアプリケーションのみを登録できます。vSphere vMotion 通知を受信するアプリケーションは、次のゲスト RPC 呼び出しを使用し、新しい vMotion イベントを定期的に確認できます。たとえば、vm-operation-notification.check-for-event のゲスト RPC 呼び出しを使用して 1 秒または 2 秒おきに確認します。

コマンド

説明

vm-operation-notification.register

アプリケーションを登録して、vSphere vMotion イベントの通知の受信を開始します。

vm-operation-notification.unregister

アプリケーションが vSphere vMotion イベントの通知を受信しないように登録解除します。

vm-operation-notification.list

ホスト上の仮想マシンで実行されている登録済みアプリケーションに関する情報を取得します。

vm-operation-notification.check-for-event

呼び出し時に登録された vSphere vMotion イベントに関する情報を取得します。

vm-operation-notification.ack-event

vSphere vMotion の開始イベントを確認します。