ESXi ホストで、ネットワーキングのために SR-IOV 仮想機能(VF)を使用する 1 つ以上の仮想マシンがパワーオフする。

問題

ESXi ホストでは、割り当てられている仮想機能 (VF) の総数がvSphere Configuration Maximumsのガイドに示されている VF の最大数に近くなると、ネットワーキングのために SR-IOV VF を使用する 1 つ以上の仮想マシンがパワーオンに失敗します。

仮想マシン ログ ファイル vmware.log には、VF に関する次のメッセージが記録されます。

PCIPassthruChangeIntrSettings: vf_name failed to register interrupt (error code 195887110)

VMkernel ログ ファイル vmkernel.log には、仮想マシンに割り当てられている VF に関する次のメッセージが記録されます。

VMKPCIPassthru: 2565: BDF = vf_name intrType = 4 numVectors: 3
WARNING: IntrVector: 233: Out of interrupt vectors

原因

割り当て可能な割り込みベクトルの数は、ESXi ホスト上の物理 CPU の数に応じて増加します。32 個の CPU がある ESXi ホストは、合計 4096 の割り込みベクトルを提供できます。ホストが起動するときに、ホスト上のデバイス(ストレージ コントローラ、物理ネットワーク アダプタ、USB コントローラなど)は、4096 個のベクトルの一部を消費します。これらのデバイスによって 1024 個を超えるベクトルが必要になると、潜在的にサポートされる VF の最大数が減らされます。

仮想マシンがパワーオンし、ゲスト OS VF ドライバが起動するときには、割り込みベクトルが消費されます。必要な数の割り込みベクトルが使用できない場合、ゲスト OS はエラー メッセージを表示することなく突然停止します。

ホストで消費される割り込みベクトルまたは使用できる割り込みベクトルの数を特定するルールは、現在ありません。この数は、ホストのハードウェア構成によって異なります。

解決方法

  • 仮想マシンをパワーオンできるようにするには、ホストで仮想マシンに割り当てられている VF の総数を減らします。
    たとえば、仮想マシンの SR-IOV ネットワーク アダプタを vSphere 標準スイッチまたは vSphere Distributed Switch に接続されるアダプタに変更します。