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 で移行することはできません。これらのデバイスは、仮想マシンの移行前に切断してください。

vSphere 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 互換性マトリックスを参照してください。

vGPU 仮想マシンのサスペンド時間制限を設定する方法

vSphere vMotion を使用して NVIDIA vGPU 搭載仮想マシンを移行するときに、仮想マシンごとにサスペンド時間制限を設定する方法について説明します。サスペンド時間制限を設定すると、vCenter Server による仮想マシンのパワーオンや、ホストとネットワークへの仮想マシンの移行は、推定される最大サスペンド時間が制限を超える場合に実行できなくなる可能性があります。

仮想マシンのサスペンド時間は、vMotion 中にユーザーが仮想マシンにアクセスできない時間です。vSphere 8.0 Update 2 以降では、vGPU 仮想マシンの vMotion サスペンド時間制限を設定できます。

設定する制限は、現在のデバイス構成の推定最大サスペンド時間よりも長くする必要があります。複数の PCI デバイスの場合、設定するサスペンド時間制限は、すべての PCI デバイスの時間の合計よりも長くする必要があります。サスペンド時間制限を推定最大サスペンド時間よりも短く設定すると、仮想マシンがパワーオンできなくなる可能性があります。

注: 最大サスペンド時間の推定は、C シリーズおよび Q シリーズの vGPU タイプでのみ使用できます。

最大サスペンド時間は、仮想マシンが現在実行されているホストの帯域幅に基づいて計算されます。ターゲット ホストの方が帯域幅が低い場合、移行時に計算が変化することがあります。たとえば、仮想マシンが 25 Gbps vMotion NIC のホスト上で実行されていて、ターゲット ホストが 10 Gbps vMotion NIC である場合です。移行時の最大サスペンド時間の計算は、10 Gbps vMotion NIC に基づきます。

前提条件

  • vCenter Server インスタンスがバージョン 8.0 Update 2 であることを確認します。
  • ソースとターゲットの ESXi ホストが、バージョン 8.0 Update 2 であることを確認します。
  • vSphere クラスタ サービス (vCLS) 仮想マシンが健全な状態であることを確認します。vCLS については、「vSphere クラスタ サービス」を参照してください。
  • クイックスタート ワークフローを使用して vMotion ネットワークが構成されていることを確認します。vMotion トラフィックのネットワーク オプションの構成については、「クイックスタート ワークフローを使用して vSphere クラスタを構成する方法」を参照してください。
  • vGPU 仮想マシンで vMotion が有効になっていることを確認します。vgpu.hotmigrate.enabled 詳細設定は、true に設定する必要があります。vCenter Server の詳細設定の構成方法については、『vCenter Server の構成』ドキュメントの「詳細設定の構成」を参照してください。

手順

  1. vSphere Client で、vGPU 仮想マシンに移動します。
  2. 仮想マシンを右クリックし、[設定の編集] を選択します。
    [設定の編集] ダイアログ ボックスが表示されます。
  3. [仮想マシン オプション] タブをクリックし、[詳細] を展開します。
    仮想マシンの詳細設定が展開されている [設定の編集] ダイアログ ボックス
  4. [vMotion のサスペンド時間制限] 入力フィールドに、サスペンド時間制限を秒単位で入力します。
    [vMotion のサスペンド時間] 入力フィールドが強調表示されている、展開された詳細設定
    PCI デバイスの構成に、推定最大サスペンド時間よりも短いサスペンド時間制限を設定すると、警告メッセージが表示されます。警告メッセージは、 [仮想ハードウェア] タブにも表示されます。
  5. [OK] をクリックします。

仮想マシン スワップ ファイルの場所と vSphere vMotion の互換性

仮想マシンのスワップ ファイルの場所は、仮想マシンのホストで実行されている 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 以降であることと、次の高度な仮想マシン構成オプションの構成が必要です。

vSphere Web Services API を使用すると、仮想マシン内で実行されているアプリケーションへの通知の送信を有効にしたり、アプリケーションが vMotion 操作の準備に必要な最大期間を秒単位で指定したりできます。

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

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

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

詳細については、vSphere Web Services API ドキュメントの仮想マシン データ オブジェクトのプロパティを参照してください。vSphere Web Services SDK の使用方法については、『vSphere Web Services SDK Programming Guide』を参照してください。

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

VmOpNotificationToApp.Timeout の詳細なホスト構成設定を使用して、ホスト上のすべての仮想マシンに適用される通知タイムアウトを指定できます。ConfigManager API を使用して、この構成プロパティに値を設定します。デフォルトの通知タイムアウトは 0 です。この場合、アプリケーション通知は生成されますが、vSphere vMotion 操作は遅延しません。

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

vSphere Web Services SDK の使用方法については、『vSphere Web Services SDK Programming Guide』を参照してください。

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

アプリケーションが vSphere vMotion イベントの通知を受信できるようにするには、アプリケーションをホストしている仮想マシンに VMware Tools がインストールされている必要があります。VMware Tools のインストールと構成の詳細については、「VMware Tools のドキュメント」を参照してください。

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

ゲスト RPC 呼び出しの使用方法については、『VMware Guest SDK Programming Guide』を参照してください。

コマンド

説明

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 の開始イベントを確認します。