免責事項:これは英文の記事「When assigning vGPU PCI card to VM get error : The use of a virtual IOMMU is not supported on this virtual machine with a vGPU device」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
Linux 仮想マシンに NVIDIA vGPU を割り当てようとする際、次のエラーメッセージで処理が失敗します:「仮想 IOMMU の使用は、vGPU デバイスを搭載した仮想マシンではサポートされていません」。この初期エラーを解決した後、Linux 仮想マシンは起動する場合がありますが、nvidia-smi コマンドは次のエラーで失敗します:"NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver".
VMware vSphere ESXi
初期エラーの根本原因は、仮想マシン内の設定競合です。特定のワークロード用の仮想 IOMMU を有効化するパラメータ (vvtd.enable) が TRUE に設定されていました。この構成は、GPU リソース管理のハイパーバイザに依存する vGPU アーキテクチャとは互換性がありません。
nvidia-smi コマンドのエラーは、仮想マシンが vGPU デバイスを受け入れるために正しく構成されているにもかかわらず、仮想ハードウェアと通信するために必要な NVIDIA vGPU ソフトウェアドライバがインストールおよびロードされていないために発生します。
問題を解決するために下記手順を順に実行します。
IOMMU 構成の競合を修正します。
仮想マシンをパワーオフします。
vSphere Client にて、仮想マシンの 設定の編集 > 仮想マシンのオプション > 詳細設定 > 構成パラメータ に移動します。
下記パラメータが追加されているか、あるいは値が FALSE であるか確認します。
vvtd.enable
pciPassthru.vmiop.allowViommu
pciPassthru.vmiop.enableViommu
変更を保存するために OK をクリックし、再度 vGPU デバイスの割り当てを実施します。
vvtd.enable パラメータは、ネストされた仮想化、あるいは 128 個以上の vCPU で構成された VM などの特定の状況において、Broadcom KB 313255 で参照されているように、通常 TRUE に設定されます。標準的な vGPU 構成でこの設定を適用すると、サポート対象外の状態が生じます。
NVIDIA vGPU ドライバは、ライセンス付きソフトウェアスイートの一部であり、標準的なパブリックドライバとは異なります。有効なライセンスを使用して NVIDIA Enterprise ポータルからダウンロードする必要があり、ホストの vGPU Manager とバージョンを一致させる必要があります。