vSGA調査結果(Quadro4000,FirProW7000 for vSGA ドライバ情報)

今、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での認識情報

~ # 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

~ # 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サポートがなくなっているとの情報もあります。

    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までしか対応していないことになります。

 

ドライバのインストール方法は、この辺とかこの辺とかが参考になります。

~ # 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)

 

 

Views: 13

カテゴリー: 未分類 | コメントする

ESXiの仮想マシンのハードウェアバージョンのダウングレード

ESXiの仮想マシンで誤ってハードウェアバージョンをあげてしまった場合、
そのとき仮想マシンを動かしていたESXiのバージョン以下のESXiで動かせなくなってしまいます。

公式には、以下の方法でダウングレードするとなってます。

  • 仮想マシン ハードウェアをアップグレードする前に作成したスナップショットに戻す
  • VMware vCenter Converter Standalone を使用して、[ターゲットの指定] ウィザードで必要な仮想ハードウェア バージョンを選択してコンバート
  • 必要なハードウェア バージョンで新しい仮想マシンを作成し、仮想マシンから既存のディスクを接続。

ハードウェアバージョンをあげる前にスナップショットを取っている場合は戻すだけですが、他の2つを選択した場合でも、いままでのログや稼動情報が消えてしまいますし、ダウンタイムがかなりとられます。

この場合の裏技ですが、実は、ハードウェアバージョンをあげる作業というのは、仮想マシンの定義ファイル(.vmx)のあるパラメータを書き換えているだけだったりします。

ですので、.vmxファイルを直接書き換えれば、ダウングレードできてしまいます。

該当するパラメータは、以下とおりです。

  • virtualHW.version = “11”

この”11″を該当するHW番号に書き換えて保存し、
仮想マシンの編集などをせずにそのまま仮想マシンを起動します。

書き換えるハードウェアバージョンは以下のURLが参考になります。

ESXi/ESX ホストおよび互換性のある仮想マシンのハードウェア バージョンのリスト (2020181)

すると、書き換えた内容が認識され、ハードウェアバージョンがダウングレードされて起動します。

アンサポート的な作業ですが、覚えておくといざとなってときに便利です。

 

 

Views: 22

カテゴリー: 未分類 | コメントする

Z800からZ820へのESXi環境移行&リソース増強完了

先月中旬にマザーボード不良で突然死したHP Z800ですが、
後継機種であるHPZ820を調達し、拡張パーツの移植を行い、一旦暫定対応し、
必要なパーツを取り寄せてどうにか、ハード的に復旧&リソース増強が完了しました。

主な仕様と変更点は以下のとおり

HP Z800 WorkStation HP Z820 WorkStation 備考
CPU Xeon x5690  Dual
[Westmere EP]
(6コアx2CPU, 2.7GHz,)
Xeon E5-2687W     Dual
[Sandy Bridge-EP]
(8コアx2CPU, 3.10GHz)
冷却方式 水冷モデル 水冷モデル
MEM 192GB
(DDR3 Registerd 1333MHz 16GB*12)
256GB
(DDR3 Registerd 1333MHz 16GB*16)
ただし、Z820は1333MHzメモリは未サポート
ストレージアダプタ SATA 3Gbps 6ポート
SAS    3Gbps 8ポート
SATA 6Gbps 2ポート
SATA 3Gbps 4ポート
SAS   6Gbos 8ポート
ストレージ
(VMFS領域)
SSD 960GB
SSD 960GB
SSD 240GB
SATA 4TB x 3
SSD 960GB
SSD 960GB
SSD 240GB
SATA 4TB x 3
一部領域をNexentastorでNFS領域として提供
(RSIDZ 2TBx3で実効領域約4TB)
ストレージ
(NFS仮想マシンへ直結)
SAS 300GB x4 SSD 120GB
SSD 120GB
SSD 480GB
SATA 8TB x4
Nexentastoreでnfs領域を提供
RAID10(8TB x4、j実効領域約16TB)
Logデバイスとして120GBx2
Cacheデバイスとして480GB
NIC GB ether x2
Gb ether x1
GB ether x2  (E1000e,E1001e)
Gb ether x1  (E1000)
2ポートは通常ネットワーク用
1ポートはストレージネットワーク用
Graphiceボード Quadro 4000 Quadro 4000
Quadro K2000
Quadro 4000はブート兼、vSGA用
Quadro K2000はvDGA用(予定)
USBポート USB 2.0 (内蔵) USB 2.0 (内蔵)
USB 3.0 (内蔵)
USB 3.0 (増設)
増設USB3.0ボードはUSB3.0RX4-P4-PCIEで、仮想マシンに直結
OS ESXi 5.5U2 ESXi 5.5U2 ESXi 5.5 U3にアップ予定

こんな感じになりました。

Z800とZ820は、後継機種だけあって、内部仕様やベイの数がほぼ同じなので、その点は楽でした。
ただ、ストレージアダプタのうち、SATA4ポートの認識がZ800と異なっており、ESXi上でHDD上のVMFS領域がそのままマウントせずに、調整が必要だったのが少し大変でした。

これで、もう少し戦えます。

 

Views: 15

カテゴリー: 未分類 | コメントする