GPU在ESXI的使用有三種方式: 直通、vGPU、Bitfusion。各有優缺點,簡單講: 直通,與裝在單機意思雷同,一張卡片只能給一台VM使用; vGPU可以單卡分享給不同的vm使用,但需要取得nVidia的授權;bitfusion可以把所有GPU集中成一個大水庫,供需要的VM使用。
這篇就來講講怎麼設定一個直通的GPU服務給ubuntu 22.04使用的例子。本篇雖以ESXI8-Ubuntu24.04|22.04 GPU 直通_GPU一般有輸出的顯示卡,但Linux 都適用喔。
直通有另一個好處,你可以讓鍵盤、滑鼠等周邊一起直通,就可以利用ESXI的優點來進行作業系統的管理喔。
這邊主要是針對一般使用者可以輕易取得的消費者端顯示卡進行的範例,如果你的卡片是沒有HDMI、DP PORT那種輸出的計算卡,請參考:
第一個步驟,請到BIOS找到4G以上 decoding的功能打開他(Enable):
開啟虛擬化功能:
如果你的主機版比較舊(或是無自動功能),可能會需要針對顯示卡所在位置進行EFI的Enable,這不是每個人都需要的,請注意只有你的設備有需要才要執行這個選項。
我們通常會查詢出要插顯示卡的那個插槽號碼,例如:
我們插在SLOT5,所以必須在BIOS進行設定:
這條線以上是BIOS的相關設定。
這邊開始是ESXI8 HOST的設定:
如果你之後直通失敗,可以檢查這邊,必要時可以進行變更:
這條線之前是ESXI HOST的設定。
這條線開始是虛擬機設定。用戶端虛擬機設定,本處以ubuntu22.04為例。
裝設新虛擬機:
Edit blacklist-nvidia-nouveau.conf:
sudo nano /etc/modprobe.d/blacklist-nvidia-nouveau.conf
填入內容:
blacklist nouveau
options nouveau modeset=0
run:
sudo update-initramfs -u
init 0
虛擬機加入PCIe裝置:
新增(option不是必要項目):
pciPassthru.use64bitMMIO=”TRUE”
pciPassthru.64bitMMIOSizeGB=64
vhv.allowPassthru = TRUE(option)
vhv.enable = TRUE(option)
hypervisor.cpuid.v0=FALSE(option)
開啟虛擬機後執行:
sudo apt update
sudo apt upgrade
sudo apt install gcc make build-essential libglvnd-dev pkg-config
下載nvidia驅動:
請到https://download.nvidia.com/XFree86下載相關的驅動程式。
執行:
chmod +x ./N………(請依據你的版本填入).run
sudo ./N………(請依據你的版本填入).run -m=kernel-open
新增顯卡參數:
sudo nano /etc/modprobe.d/nvidia.conf
內容:
options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
重新開機:
sudo reboot
測試:
nvidia-smi
以上分享,希望可以幫助到想要把GPU放在ESXI的夥伴。有設定困難的歡迎討論喔。