Kan een geïntegreerde GPU worden gedeeld tussen een VM en containers op de host?

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Soms. Bij volledige PCI-passthrough krijgt de VM de volledige geïntegreerde GPU, waardoor containers op de host normaal gesproken geen toegang meer hebben. Delen vereist hardware- en driverondersteuning voor gemedieerde apparaten, Intel GVT-g op bepaalde oudere platforms of SR-IOV-virtuele functies op ondersteunde nieuwere platforms.

Toegang vanuit containers is een aparte laag: containers delen doorgaans de kernel van de host en gebruiken renderapparaten zoals `/dev/dri/renderD128`. Een VM heeft een gevirtualiseerde GPU-functie of een gemedieerd apparaat nodig in plaats van dat apparaatknooppunt van de host. Dat onderscheid bepaalt de veilige configuratie, de validatiemethode en het terugvalpunt.

Identificeer welke virtualisatiemodus je platform ondersteunt

Begin met de exacte CPU-generatie, iGPU-PCI-ID, firmware, hostkernel en driver. Een handleiding voor de ene Intel-generatie is mogelijk niet van toepassing op een andere, en sommige deelmethoden zijn uitgefaseerd of vereisen out-of-tree-modules.

Als alleen volledige passthrough wordt ondersteund, kies dan de VM of de host voor acceleratie. Verwacht niet dat een container op de host Quick Sync behoudt nadat de hostdriver is losgekoppeld.

Als SR-IOV of gemedieerde apparaten wordt ondersteund, houd dan de fysieke functie op de host en wijs een virtuele functie of mdev toe aan de VM. Controleer het reset- en drivergedrag voordat je dit productierijp noemt.

Gebruik signalen voor mogelijkheden en werklast

Controleer of de host nog steeds een rendernode beschikbaar stelt en of de VM de toegewezen virtuele GPU ziet. Voer hardwarematige decoding of encoding uit in beide omgevingen in plaats van alleen op apparaatlijsten te vertrouwen.

Houd GPU-enginegebruik, fouten, geheugendruk en kernelogboeken in de gaten tijdens gelijktijdige transcoderingen. Een gedeelde capaciteit garandeert geen voorspelbare prestaties of codec-ondersteuning.

Gebruik de onderstaande tabel om een veilig bedrijfsmodel te kiezen.

Waargenomen toestand Beoordeling Volgende actie
Volledige PCI-passthrough Exclusief gebruik door VM Containers op host verliezen iGPU
Ondersteunde mdev/GVT-g Gedeelde segmenten Generatiespecifiek
Ondersteunde SR-IOV PF op host, VF naar VM Driverlevenscyclus valideren

Configureer minimale rechten en controleer upgrades

Geef containers op de host alleen het renderapparaat en de vereiste groepsrechten, geen brede bevoorrechte toegang. Installeer in de VM de driver die overeenkomt met de gevirtualiseerde functie en houd een fallback voor software-rendering beschikbaar voor onderhoud.

Vergrendel werkende combinaties van kernel en driver totdat de volgende update een test in het lab doorstaat. Experimentele SR-IOV-modules kunnen breken na kernel- of firmware-updates, dus documenteer de stappen voor verwijdering en herstel.

Het GPU-uitbreidingsoverzicht van ZimaCube van ZimaSpace biedt hardwarecontext.

Een onafhankelijke handleiding voor het delen van GPU's in homelabs beschrijft volledige passthrough, gemedieerde apparaten en SR-IOV.

-15% OFF
Single board computer zimaboard2

Test opnieuw na opnieuw opstarten en bij gelijktijdige belasting

Start de host volledig opnieuw op, start eerst de containers en daarna de VM; herhaal dit in omgekeerde volgorde. Beide paden moeten herstellen zonder handmatig opnieuw koppelen van drivers.

Voer de echte gelijktijdige werklast lang genoeg uit om thermische throttling en resetfouten zichtbaar te maken. Start daarna de VM opnieuw op zonder de host opnieuw op te starten en controleer of containers acceleratie behouden.

Ga alleen verder wanneer het exacte platform een deelmodus ondersteunt en tests met gelijktijdige belasting en na opnieuw opstarten doorstaat. Stop als de host zijn rendernode verliest, de VM niet kan resetten of de oplossing afhankelijk is van een niet-onderhouden driver die je niet veilig kunt vastzetten.

Ondersteuning & Tips

Meer om te lezen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.