ESXi9をインストールしたHX5520でnvidia A2のパススルーを行うために必要な構成
GPUのパススルーがすぐに実現できなかったので備忘録です。GPUであれば基本同じなはずです。
使った機材
- Lenovo HX5520 (本来GPUは非サポート。試した限りx16レーンでは動作しそう。)
- nVidia A2 16G
GPUパススルーするための設定
- L0(母艦)のサーバのBIOS/UEFI設定でMMIO 4GB以上の構成をサポートするオプションを有効にする
- L0(母艦)のESXiのPCI構成でパススルーを有効にしておく
- L0(母艦)のESXiでhotplugを無効化しておく (これを入れないと起動処理がエラーになる)
母艦のパススルーする構成はここまででOK。あとは起動するVM側でGPUを扱う設定を入れておきます。
* L1(NestedESXi)のCPU仮想化支援(Intel-VTx)を無効にする
* vSphere UI の VM インベントリで構成しておく
* PCIパススルーと競合するため
* L1(NestedESXi)のVMオプションで pciPassthru.use64bitMMIO=”TRUE” , pciPassthru.64bitMMIOSizeGB=64 を入れておく
* https://blogs.vmware.com/cloud-foundation/2018/09/11/using-gpus-with-virtual-machines-on-vsphere-part-2-vmdirectpath-i-o/
* 16GBだとエラーになった。かなり大き目でも良いらしいが適正値は不明。
なおNested ESXi上のVMにvGPUとして渡して起動するには至りませんでした。
ESX9で実施してもWilliamLamも試している通りの内容になり、ESXi8以降ではNestedESXiの構成とNested上のVMの構成での機能制限が競合するため渡すことができません。
既にEOSを迎えていますが、どうしてもvGPUで分割させる必要があればESXi7が必要そうです。
https://williamlam.com/2023/05/gpu-passthrough-with-nested-esxi.html