今、ESX5.x系でvSGAを使用するためにQuadro 4000を使用しています。
vSGA(Virtual Shared Graphics Acceleration)は、
ESXi仮想マシンの標準GPU(VMware SVGA)をGPUのハードウェアを使用して高速化するものです。
仮想マシンからは普通の「VMware SVGAアダプター」として認識しているが、DirectX9.0cとOpenGL2.1が高速化されます。
なお複数の仮想マシンからは、VGAのメモリが許す限り同時に利用できます。
vMotionなども普通に可能なため、非常に使い勝手のよい技術になります。
なお、いままでコミュニティレベルで実施され、通称「GPUパススルー」とかいわれていた、
VGAをPCI パススルーで仮想マシンに直接接続し、仮想マシンからGPUの全機能を使用可能するものは、VMwareから正式に vDGA(Virtual Dedicated Graphics Acceleration)という名称がつきました。こちらは1GPUごとに1仮想マシンが対応となります。
PCI パススルーを使用しているので、vMotionや電源On中の仮想マシンリソースの拡張等はできなくなります。(ESX6.7でvMotionが出来るようになるかもしれません)。
またこの拡張で、vGPUやMxGPUという技術もありますが、これはGPU側の機能で1枚のGPUを複数の論理GPUとして分割し、論理GPUを仮想マシンに接続できるようにするものです。
こちらもPCI パススルーを使用しているので、vMotionや電源On中の仮想マシンリソースの拡張等は出来ない制限がありますが、ESX6.7でvGPUの場合のvMotionは可能になるようです。
Quadro 4000の概要は、以下の通りです。
(Fermiコア,CUDAコア256,メモリ2GBG DDR5,PCI-e 1Slot)
(最大消費電力142 W,電源補助ケーブル必須[シングル6ピン])
Quadro 4000 の ESX5.5U3での認識情報
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
~ # lspci|grep NVIDIA 0000:05:00.0 Display controller: NVIDIA Corporation NVIDIAQuadro 4000 [vmgfx0] 0000:05:00.1 Multimedia controller: NVIDIA Corporation GF100 High Definition Audio Controller ~ # ~ # lspci -v 0000:05:00.0 VGA compatible controller Display controller: NVIDIA Corporation NVIDIAQuadro 4000 [vmgfx0] Class 0300: 10de:06dd ~ # ~ # esxcli hardware pci list -c 0x0300 -m 0xf 000:005:00.0 Address: 000:005:00.0 Segment: 0x0000 Bus: 0x05 Slot: 0x00 Function: 0x00 VMkernel Name: vmgfx0 Vendor Name: NVIDIA Corporation Device Name: NVIDIAQuadro 4000 Configured Owner: Unknown Current Owner: VMkernel Vendor ID: 0x10de Device ID: 0x06dd SubVendor ID: 0x103c SubDevice ID: 0x0780 Device Class: 0x0300 Device Class Name: VGA compatible controller Programming Interface: 0x00 Revision ID: 0xa3 Interrupt Line: 0x0b IRQ: 11 Interrupt Vector: 0x57 PCI Pin: 0x64 Spawned Bus: 0x00 Flags: 0x0221 Module ID: 4199 Module Name: nvidia Chassis: 0 Physical Slot: 2 Slot Description: SLOT 2 Passthru Capable: true Parent Device: PCI 0:0:3:0 Dependent Device: PCI 0:0:3:0 Reset Method: Bridge reset FPT Sharable: true ~ # ~ # vmkload_mod -l Name Used Size (kb) nvidia 104 9644 ~ # ~ # grep -A 40 -i "Loading module nvidia" /var/log/vmkernel.log 2018-05-05T08:05:05.515Z cpu26:35548)Loading module nvidia ... 2018-05-05T08:05:05.522Z cpu26:35548)Elf: 1861: module nvidia has license NVIDIA 2018-05-05T08:05:05.614Z cpu26:35548)module heap: Initial heap size: 8388608, max heap size: 68476928 2018-05-05T08:05:05.614Z cpu26:35548)vmklnx_module_mempool_init: Mempool max 68476928 being used for module: 4199 2018-05-05T08:05:05.614Z cpu26:35548)vmk_MemPoolCreate passed for 2048 pages 2018-05-05T08:05:05.614Z cpu26:35548)module heap: using memType 2 2018-05-05T08:05:05.614Z cpu26:35548)module heap vmklnx_nvidia: creation succeeded. id = 0x41140ef22000 NVRM: vmk_MemPoolCreate passed for 4194304 pages. 2018-05-05T08:05:05.864Z cpu26:35548)PCI: driver nvidia is looking for devices 2018-05-05T08:05:05.865Z cpu26:35548)PCI: driver nvidia claimed device 0000:05:00.0 2018-05-05T08:05:05.865Z cpu26:35548)PCI: driver nvidia claimed 1 device NVRM: loading NVIDIA UNIX x86_64 Kernel Module 319.65 Wed Oct 9 22:51:48 PDT 2013 2018-05-05T08:05:05.865Z cpu26:35548)Mod: 4780: Initialization of nvidia succeeded with module ID 4199. 2018-05-05T08:05:05.865Z cpu26:35548)nvidia loaded successfully. 2018-05-05T08:05:07.323Z cpu30:35697)Enabling MSI for dev 0000:05:00.0 2018-05-05T08:05:07.323Z cpu30:35697)IntrVector: 288: Vector 0x57 allocated, 149 vectors available 2018-05-05T08:05:07.323Z cpu30:35697)VMK_PCI: 720: device 0000:05:00.0 allocated 1 interrupts (intrType 2) 2018-05-05T08:05:07.323Z cpu30:35697)IRQ: 540: 0x57 <nvidia> exclusive, flags 0x10 2018-05-05T08:05:07.323Z cpu30:35697)VMK_VECTOR: 218: Registered handler for interrupt 0xff57, flags 0x10 ~ # ~ # /etc/init.d/xorg status Xorg is running ~ # ~ # gpuvm Xserver unix:0, PCI ID 0:5:0:0, GPU maximum memory 2076672KB pid 40452, VM "Win7-RDPSV", reserved 131072KB of GPU memory. pid 41854, VM "Win7-TVMW5", reserved 131072KB of GPU memory. pid 41875, VM "Win7-TVMW6", reserved 131072KB of GPU memory. pid 41979, VM "Win10-RDPSV", reserved 131072KB of GPU memory. pid 42021, VM "Win7-Z800", reserved 131072KB of GPU memory. pid 46112, VM "Win10-64-VDI01", reserved 131072KB of GPU memory. pid 46181, VM "DELLWin764", reserved 131072KB of GPU memory. GPU memory left 1159168KB. ~ # ~ # nvidia-smi Sun May 6 02:19:59 2018 +------------------------------------------------------+ | NVIDIA-SMI 5.319.65 Driver Version: 319.65 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Quadro 4000 Off | 0000:05:00.0 Off | N/A | | 36% 62C P12 N/A / N/A | 454MB / 2047MB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Compute processes: GPU Memory | | GPU PID Process name Usage | |=============================================================================| | No running compute processes found | +-----------------------------------------------------------------------------+ ~ # |
ただ、Quadro4000はすでにVMware Compatibility Guideからも削除されており、NVIDIAのドライバの詳細にも書かれておらず、なかったもの扱いされている状態です。
VMware Compatibility Guide for vSGA ESX5.5U3
現在ESXi5.5使用できているQuadro4000用ドライバは 319.65というものです。
NVIDIA-VMware_ESXi_5.5_Host_Driver_319.65.zip
1 2 3 4 |
~ # esxcli software vib list Name Version Vendor Acceptance Level Install Date ---------------------------------- ------------------------------------- --------------- ------------------ ------------ NVIDIA-VMware_ESXi_5.5_Host_Driver 319.65-1OEM.550.0.0.1331820 NVIDIA VMwareAccepted 2017-09-09 |
このドライバでサポートしているGPUは以下の通りですが、このバージョン以降はQuadro 4000サポートがなくなっているとの情報もあります。
1 2 3 4 5 6 7 8 |
NVIDIA GPU product Device PCI ID* ---------------------------------- ---------------------------------- Quadro 6000 0x06D8 Quadro 5000 0x06D9 Quadro 4000 0x06DD Tesla M2070-Q 0x06DF GRID K1 0x0FF2 GRID K2 0x11BF |
なお、ESXi5.1の頃は、以下のドライバが使用可能でした。
NVD.NVIDIA_bootbank_NVIDIA-VMware_304.76-1OEM.510.0.0.802205-999851.zip
(NVIDIA-VMware-304.76-1OEM.510.0.0.802205.x86_64.vib)
すでに、Quadro4000はESX6.0用のNVIDIA sVGAドライバでは認識しないとの情報もあることなので、現状Quadro4000は、ESX5.5U3までしか対応していないことになります。
ドライバのインストール方法は、この辺とかこの辺とかが参考になります。
1 2 3 4 5 6 7 8 9 10 |
~ # vim-cmd hostsvc/maintenance_mode_enter ~ # esxcli software vib install -d /vmfs/volumes/VMSV03-SSD-2/NVIDIA-vib/NVIDIA-VMware_ESXi_5.5_Host_Driver_319.65-1OEM.550.0.0.1331820.vib Installation Result Message: Operation finished successfully. Reboot Required: false VIBs Installed: NVIDIA-VMware_ESXi_5.5_Host_Driver_319.65-1OEM.550.0.0.1331820 VIBs Removed: VIBs Skipped: = # vim-cmd /hostsvc/maintenance_mode_exit = # /etc/init.d/xorg start |
現在、ESXi6.0U3へのバージョンアップを検討していますが、Quadro4000が対応していない以上、vSGAをあきらめるか、別のカードを使用するかですが、NVIDIAの対応カードですと最近のビジネス用ハイエンドGPUしか対応しておらず、価格帯も中古でも2桁万円Over、下手すると3桁万円クラスなので、Home Lab用としてはなかなか手が出せません。
こんな情報もありましたが、ちょっと怖いですね。
で、色々調査した結果、AMDのFirePro W7000というGPUであれば、
ESX5.5およびESX6.0までの対応であれば比較的入手が楽そうであるとの情報を見つけました。
FirePro W7000 for vSGA情報(VMware Compatibility Guide)
現状、AMD GPUでESX6.5以上ではMxGPUで対応する用で、AMDのvSGAサポートががVMware Compatibility Guideでも認証されていない状況のようなのでESX6.5にあげることはできなさそうですが、どうせESX6.5以上になるとvSphere Client(C# Client)が使えなくなるのでまずはESX6.0にあげられるだけでも助かります(ちょっとvvolをつかってみたいので)。
というわけで、FirePro W7000 GPUを入手しました。
ちなみに、ドライバは、以下のものが使用できそうです。
esxi5.5用
https://support.amd.com/en-us/download/workstation?os=VMware%20vSphere%20ESXi%205.5#pro-driver
vSGA用ドライバ
fglrx-12103.1135534-1oem.550.0.0.1331820.x86_64.zip
esx6.0用
https://support.amd.com/en-us/download/workstation/esxi6
vSGA用ドライバ
vmw-esx-6.0.0-fglrx-12103.1224202-3638089.zip
vDGA用ドライバ
15.20.1041.1004-FirePro-Guest-Windowsx64-Retail.exe
なお、MxGPU対応ソフトウェア郡(S71x0用)のESXi6.0と6.5用のは以下からダウンロードできる模様です。高くて買えないので、情報だけ。
ESX6.0用
https://support.amd.com/en-us/download/workstation?os=VMware%20vSphere%20ESXi%206.0#pro-driver
ESX6.5用
https://support.amd.com/en-us/download/workstation?os=VMware+vSphere+ESXi+6.5#pro-driver
とりあえず、Quadro4000が入っているESXi以外は ESX6.0U3にあげたので、
そのうちFirePro W7000に挑戦して、こちらもあげようと思います。
(参考:https://community.spiceworks.com/topic/1749384-vmware-horizon-vsga-amd-w7000)