Proxmox VE + NVIDIA = 🚀

I NVIDIA vGPU 18 finns Proxmox VE med på listan över supporterade hypervisors som har officiellt stöd. Redan innan detta så kunde man köra GPU:er, till och med i vissa fall vGPU:er, men det krävdes då oftast PCIe-passthrough av hela grafikkortet(vilket då innebär att bara en VM kan nyttja GPU:n). Eller om man ville köra vGPU så hamnar man lite i den moraliska gråzonen och får ladda hem firmware/de-kompilerade drivrutiner för att få till det. Inte riktigt sånt man kan hålla på med om man vill köra Proxmox i en företagsmiljö.

Vad är vGPU?

vGPU-kvm

vGPU gör det möjligt att dela upp en fysisk GPU i flera mindre virtuella GPU:er. Det kan jämföras med att dela upp en fysisk CPU i många vCPU:er som vid virtualisering.

Eftersom Proxmox VE bygger på KVM så kan man titta på arkitekturen för KVM för att skapa sig en bild över hur sakerna faktiskt fungerar. vGPU bygger helt på SR-IOV där vGPU:er egentligen är ett gäng VF:er(Virtual Functions). Och delar på det sätter upp den fysiska GPU:n till flera mindre GPU:er. VFIO är en drivrutin som finns med i Linux kärnan och tillhandahåller ett ramverk för att direct I/O exponering. NVIDIA har sedan sin egna VFIO-driver som ligger en nivå ovanpå detta och interagerar med core-drven som hanterar kontakten med hårdvaran. Allt tillsammans resulterar i en fullt fungerande vGPU-lösning med stöd för live-migration och både heterogena och homogena GPU-uppsättningar vilket gör lösningen extremt flexibel.

Men stödjer Proxmox allt som native KVM stödjer?

Proxmox VE

SÄtta upp vGPU i Proxmox var otroligt lätt. Mycket tack vare verktygen och dokumentationen som Proxmox tillhandahåller.NVIDIA vGPU on ProxmoxVE Den kunde ha varit något mer detaljerad på vissa delar, men överlag så kan man följa den från punkt a till b och få till en fullt fungerande vGPU lösning. NVIDIA:s dokumentation för vGPU är också extremt bra och nyttig att titta på. vGPU on KVM NVIDIA o andra sidan är lite väl verbose ibland, så det kan vara lite svårt att hitta vad man leta efter. Men grymt användbar när man vill förstå hur sakerna fungerar, och hur man ändrar vissa speciella inställningar.

NVIDIA vGPU för KVM implementerar stöd för live-migration och Proxmox är inte sämre. Har man två hosts med GPU:er som kan presentera samma vGPU-profil så kan man flytta en vGPU guest mellan dessa hostar under drift. Möjligheten implementerades i Proxmox VE 9.1 och är fortfarande experimentell, så man ska nog vara lite försiktig.

Testerna jag har gjort hittils har bara resulterat i lyckade migreringar utan ngra fel. Om man t.ex kör RDP mot en vGPU guest och kör en live migration upplever man en mycket kort freeze. Tittar man på loggarna så ligger det runt 400-900ms - och har inte resulterat i några krasher eller liknande. Förhoppningsvis går den ifrån experimental i 9.2 =)

Jag har inget dåligt att säga om vGPU:er på Proxmox VE utan är förvånad över hur bra det fungerar. Man märker att det inte är någon hastig implementation från Proxmox utan att dem har tänkt, och implementerar funktionerna i lugn och ro. Likaså från NVIDIAs håll verkar allting stabilt, här är nog Proxmox mycket hjälpt av att det bygger på beprövad teknik (KVM). VIktigt att nämna kan också vara att man har full enterprise support OM man har supportavtal med NVIDIA och Proxmox.

Dags att njuta av “The Coolest 4K Video ULTRA HD 240FPS | Dolby Vision HDR 4K” på en GPU-accelererade Windows Server 2025. Framöver är det kanske dags för en kort guide för hur man sätter upp NVIDIA vGPU på Proxmox, där de delar jag saknade från dokumentatonen också finns med. ツ