最近在協助客戶進行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;瀏覽器
建議虛擬機系統爲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。
或者直接設置爲虛擬機分配的全部GPU顯存大小的兩倍,2*n*GPU顯存(單位爲GB)
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直通的兼容性列表必定提早查詢下,好比NVIDIA Tesla V100S與ESXi 6.0是不兼容的,這個也是我本次安裝踩坑之一,這個坑但願你不要掉進去。
兼容性列表能夠在GPU直通兼容性查詢網站,選擇Shared Pass-Through Graphics
項目後進行查詢,該網站打開後常常沒反應,不要一直糾結這個,看我下面附的圖片吧。
這裏介紹下我本次配置所用的軟硬件環境:
首先開機進入bios,提早修改物理機bios設置:
可使用服務器自帶的虛擬光驅或刻錄U盤進行ESXi安裝,本次以U盤安裝進行示例,建議使用Rufu工具進行U盤刻錄。
服務器開機從U盤啓動並完成ESXi安裝,如圖爲本次完成安裝的ESXi軟件版本。
安裝完ESXi軟件後,首先須要將GPU切換爲直通模式,切換方法爲:導航界面選擇管理
--->硬件
--->PCI設備
,搜索框輸入nvidia
篩選出GPU設備,勾選後,點擊切換直通
。
GPU切換直通後,須要從新引導主機
使配置生效:
從新引導主機後,GPU直通變爲活動
狀態,表示GPU切換直通成功。
建立虛擬機
導航欄選擇虛擬機
--->建立/註冊虛擬機
並修改虛擬機配置。
選擇系統安裝介質
本次經過上傳iso鏡像的方式進行虛擬機系統安裝,虛擬硬件
--->CD/DVD驅動器1
中選擇數據存儲ISO文件
,上載ISO鏡像並選擇。
添加直通GPU並預留全部內存
添加其餘設置
--->PCI設備
如圖,添加兩塊GPU,分別爲Tesla V100和Tesla V100S,並在新PCI設備
選項下點擊預留全部內存
。
修改虛擬機內存
虛擬硬件
--->內存
,建議設置最小內存爲虛擬機所分配GPU顯存總大小的1.5倍。確保已勾選預留全部客戶機內存(所有鎖定)
修改MMIO相關參數
虛擬機選項
--->高級
--->編輯配置
,添加如下參數:
本次添加兩塊顯存爲32G的GPU,因此設置pciPassthru.64bitMMIOSizeGB
的值爲2*32
並向上舍入到下一個2的次冪,即128
.
pciPassthru.use64bitMMIO="TRUE" pciPassthru.64bitMMIOSizeGB="128"
修改虛擬機引導選項
編輯虛擬機,修改虛擬機選項
--->引導選項
爲EFI
。
開始安裝虛擬機
自定義設置中完成CPU、內存、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 | +-----------------------------------------------------------------------------+
出現該問題多爲刻錄U盤時選擇的U盤格式有問題,建議使用本文介紹的rufus工具進行刻錄,同時物理機引導模式選擇EFI引導。若使用軟碟通進行U盤刻錄,能夠將寫入方式修改成 USB-ZIP+ v2 或者 USB-HDD+ v2。
以下,系統安裝時顯示找不到引導介質,能夠將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%;" />
添加網頁管理web client的方式是:
ESXi控制檯界面,按F2進入系統配置,輸入用戶名/密碼後,進入 troubleshooting options中,按回車鍵打開SSH。
使用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 來進行網頁管理。
鏈接物理服務器按F2
鍵進入ESXi控制檯界面,進入Troubleshooting Options
,選擇Restart Managent Agents
。若仍然無效,能夠先在控制界面修改登陸密碼後再執行此操做。
具體報錯內容以下:沒法打開虛擬機的電源,失敗 - 模塊「DevicePowerOn」打開電源失敗。
可能緣由爲:
虛擬機內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).
可能緣由: