ESXi GPU 直通

​ 最近在協助客戶進行ESXi GPU 直通配置,由於沒有相關文檔指導,跳了很多坑,今天把配置過程整理下,留做記念。php

物理機及虛擬機配置

​ 參考vmware及NVIDIA官網介紹,進行ESXi GPU直通配置時,爲了不一系列的報錯,請按照如下要求完成配置。ios

簡單點來講就是:git

物理機與虛擬機建議所有使用EFI引導。web

ESXi軟件建議使用6.7及以上版本,操做系統安裝64-bit的。shell

物理機配置

  • 物理機使用EFI引導模式;
  • 若GPU 須要 16 GB 或更多的內存映射(BAR1 Memory),須要在物理機bios中啓用GPU直通,設置項名稱一般爲Above 4G decoding、Memory mapped I/O above 4GB 或 PCI 64-bit resource handing above 4G;瀏覽器

  • BIOS 中啓用虛擬化功能: Intel Virtualization Technology for Directed I/O (VT-d) 或 AMD I/O Virtualization Technology (IOMMU);

ESXi虛擬機設置

  • 建議虛擬機系統爲64-bit操做系統;bash

  • If the total BAR1 memory exceeds 256 Mbytes, EFI boot must be enabled for the VM.服務器

    Note: To determine the total BAR1 memory, run nvidia-smi -q on the host.app

  • To enable 64-bit Memory Mapped I/O (MMIO) add this line to the virtual machine vmx file:ssh

    pciPassthru.use64bitMMIO="TRUE"

  • Memory Mapped I/O (MMIO)大小調整:建議調整爲(n*GPU顯存)向上舍入到下一個2次冪。

    示例:pciPassthru.64bitMMIOSizeGB ="64"

    • 兩個16G顯存GPU,2 x 16 GB = 32,將 32 GB 向上舍入到下一個 2 次冪,所需的內存量爲 64 GB。

    • 三個16G顯存GPU,3 x 16 GB = 48,將 48 GB 向上舍入到下一個 2 次冪,所需的內存量爲 64 GB。

    或者直接設置爲虛擬機分配的全部GPU顯存大小的兩倍,2*n*GPU顯存(單位爲GB)

  • 虛擬機內存最小值建議爲分配的全部GPU顯存總大小的1.5倍。

ESXI 6.5如下版本注意事項:

  • Set the ESXi hosts BIOS to allow PCI mapping above 4GB and below 16TB(好比物理機bios中MMIO High Base 設置爲4T).
  • In UEFI BIOS mode, a virtual machines's total BAR allocation is limited to 32GB.

ESXi GPU直通兼容性列表

​ ESXi與GPU直通的兼容性列表必定提早查詢下,好比NVIDIA Tesla V100S與ESXi 6.0是不兼容的,這個也是我本次安裝踩坑之一,這個坑但願你不要掉進去。

​ 兼容性列表能夠在GPU直通兼容性查詢網站,選擇Shared Pass-Through Graphics項目後進行查詢,該網站打開後常常沒反應,不要一直糾結這個,看我下面附的圖片吧。

NVIDIA GPU兼容性列表

ESXi GPU 直通

AMD GPU兼容性列表

ESXi GPU 直通

實際配置演示

軟硬件環境介紹

​ 這裏介紹下我本次配置所用的軟硬件環境:

  • GPU:NVIDIA Tesla V100與Tesla V100S各一塊,均爲32G顯存GPU。
  • 虛擬化軟件:ESXi 6.7 U3
  • 虛擬機操做系統:CentOS 7.5-64-bit

物理機配置

首先開機進入bios,提早修改物理機bios設置:

  • Above 4G decoding - Enable
  • Intel Virtualization Technology for Directed I/O (VT-d) - Enable
  • MMIO High Base - 默認56T(若爲ESXi 6.5如下版本注意修改成4G-16T之間的值,如4T)

ESXi 6.7安裝

​ 可使用服務器自帶的虛擬光驅或刻錄U盤進行ESXi安裝,本次以U盤安裝進行示例,建議使用Rufu工具進行U盤刻錄。

ESXi GPU 直通

​ 服務器開機從U盤啓動並完成ESXi安裝,如圖爲本次完成安裝的ESXi軟件版本。

ESXi GPU 直通

GPU 切換直通模式

​ 安裝完ESXi軟件後,首先須要將GPU切換爲直通模式,切換方法爲:導航界面選擇管理--->硬件--->PCI設備,搜索框輸入nvidia篩選出GPU設備,勾選後,點擊切換直通

ESXi GPU 直通

GPU切換直通後,須要從新引導主機使配置生效:

ESXi GPU 直通

從新引導主機後,GPU直通變爲活動狀態,表示GPU切換直通成功。

ESXi GPU 直通

虛擬機建立及配置

建立虛擬機

​ 導航欄選擇虛擬機--->建立/註冊虛擬機並修改虛擬機配置。

ESXi GPU 直通

ESXi GPU 直通

ESXi GPU 直通

選擇系統安裝介質

​ 本次經過上傳iso鏡像的方式進行虛擬機系統安裝,虛擬硬件--->CD/DVD驅動器1中選擇數據存儲ISO文件,上載ISO鏡像並選擇。

ESXi GPU 直通

image-20210118172252112

ESXi GPU 直通

添加直通GPU並預留全部內存

添加其餘設置--->PCI設備

ESXi GPU 直通

​ 如圖,添加兩塊GPU,分別爲Tesla V100和Tesla V100S,並在新PCI設備選項下點擊預留全部內存

ESXi GPU 直通

ESXi GPU 直通

修改虛擬機內存

虛擬硬件--->內存,建議設置最小內存爲虛擬機所分配GPU顯存總大小的1.5倍。確保已勾選預留全部客戶機內存(所有鎖定)

ESXi GPU 直通

修改MMIO相關參數

虛擬機選項--->高級--->編輯配置,添加如下參數:

本次添加兩塊顯存爲32G的GPU,因此設置pciPassthru.64bitMMIOSizeGB的值爲2*32並向上舍入到下一個2的次冪,即128.

pciPassthru.use64bitMMIO="TRUE"   

pciPassthru.64bitMMIOSizeGB="128"

ESXi GPU 直通

ESXi GPU 直通

修改虛擬機引導選項

編輯虛擬機,修改虛擬機選項--->引導選項EFI

ESXi GPU 直通

開始安裝虛擬機

​ 自定義設置中完成CPU、內存、GPU、引導選項等各類設置後,點擊完成開始安裝虛擬機便可。

ESXi GPU 直通

GPU識別檢查

​ 系統安裝完成後,登錄虛擬機系統使用lspci命令檢查GPU識別狀況,以下表示添加的兩塊GPU識別正常。

[root@localhost ~]# lspci | grep -i nvidia
0b:00.0 3D controller: NVIDIA Corporation Device 1db6 (rev a1)
13:00.0 3D controller: NVIDIA Corporation Device 1df6 (rev a1)

​ 最後從NVIDIA官網下載對應的GPU驅動並安裝,安裝後建議打開GPU驅動persistence mode並配置開機自啓動:

[root@localhost ~]# nvidia-smi 
Mon Jan 18 17:43:13 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 450.80.02    Driver Version: 450.80.02    CUDA Version: 11.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla V100-PCIE...  On   | 00000000:0B:00.0 Off |                    0 |
| N/A   37C    P0    27W / 250W |      0MiB / 32510MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  Tesla V100S-PCI...  On   | 00000000:13:00.0 Off |                    0 |
| N/A   35C    P0    25W / 250W |      0MiB / 32510MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

可能會遇到的問題

ESXi 安裝時卡在bnxtroce.v00

​ 出現該問題多爲刻錄U盤時選擇的U盤格式有問題,建議使用本文介紹的rufus工具進行刻錄,同時物理機引導模式選擇EFI引導。若使用軟碟通進行U盤刻錄,能夠將寫入方式修改成 USB-ZIP+ v2 或者 USB-HDD+ v2

ESXi GPU 直通

系統安裝時找不到引導介質

​ 以下,系統安裝時顯示找不到引導介質,能夠將CD/DVD驅動器1刪除後從新添加,從新配置引導介質。

<img src="file:///E:\軟件資料存儲\qq\1037509307\Image\C2C]T0J}$NN1C]Q60Y]1G{}E.png" alt="img" style="zoom:200%;" />

<img src="https://gitee.com/Gavin_zj/blog/raw/master/blog_img/%E6%97%A0%E5%BC%95%E5%AF%BC%E4%BB%8B%E8%B4%A8-20210118182049.png" style="zoom:150%;" />

ESXi GPU 直通

ESXi GPU 直通

ESXi 6.0安裝後沒法經過瀏覽器進行管理

​ 添加網頁管理web client的方式是:

​ ESXi控制檯界面,按F2進入系統配置,輸入用戶名/密碼後,進入 troubleshooting options中,按回車鍵打開SSH。

ESXi GPU 直通

ESXi GPU 直通

ESXi GPU 直通

​ 使用xshell等終端 ssh IP,進入命令行窗口,而後經過ssh運行安裝web client的命令:

esxcli software vib install -v https://download3.vmware.com/software/vmw-tools/esxui/esxui-signed-7119706.vib

安裝完成後,可使用瀏覽器打開 http://IP/ui 來進行網頁管理。

ESXi GPU 直通

瀏覽器管理界面密碼輸入正確但沒法登陸

​ 鏈接物理服務器按F2鍵進入ESXi控制檯界面,進入Troubleshooting Options,選擇Restart Managent Agents。若仍然無效,能夠先在控制界面修改登陸密碼後再執行此操做。

ESXi GPU 直通

虛擬機沒法開機,提示電源報錯

​ 具體報錯內容以下:沒法打開虛擬機的電源,失敗 - 模塊「DevicePowerOn」打開電源失敗。

ESXi GPU 直通

可能緣由爲:

  • ESXi 軟件與GPU不兼容
  • ESXi軟件中未設置MMIO相關參數
    • pciPassthru.use64bitMMIO="TRUE"
    • pciPassthru.64bitMMIOSizeGB =「<n>」

GPU驅動安裝報錯

​ 虛擬機內GPU驅動安裝失敗,提示如下報錯:

NVRM: BAR1 is 0M @ 0x0 (PCI:0000:02:02.0)
[  90.823015] NVRM: The system BIOS may have misconfigured your GPU.
[  90.823019] nvidia: probe of 0000:02:02.0 failed with error -1
[  90.823031] NVRM: The NVIDIA probe routine failed for 1 device(s).

ESXi GPU 直通

可能緣由:

  • 虛擬機操做系統引導方式爲BIOS,須要修改成EFI;
  • ESXi軟件中未設置MMIO相關參數
    • pciPassthru.use64bitMMIO="TRUE"
    • pciPassthru.64bitMMIOSizeGB =「<n>」
相關文章
相關標籤/搜索