È possibile condividere una GPU integrata tra una macchina virtuale e i container dell'host?

Eva Wong è la Technical Writer e smanettatrice residente di ZimaSpace. Una geek da sempre con una passione per homelab e software open-source, si specializza nel tradurre concetti tecnici complessi in guide accessibili e pratiche. Eva crede che l'auto-ospitare debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, dà potere alla comunità di demistificare le configurazioni hardware, dalla costruzione del loro primo NAS al dominio dei container Docker.

A volte. Il passthrough PCI completo assegna alla VM l'intera GPU integrata, quindi in genere i container dell'host perdono l'accesso. La condivisione richiede il supporto hardware e dei driver per i dispositivi mediati, Intel GVT-g su alcune piattaforme meno recenti o funzioni virtuali SR-IOV sulle piattaforme più recenti supportate.

L'accesso dei container è un livello separato: di solito i container condividono il kernel dell'host e usano dispositivi di rendering come `/dev/dri/renderD128`. Una VM ha bisogno di una funzione GPU virtualizzata o di un dispositivo mediato, non di quel nodo dispositivo dell'host. Questa distinzione determina la configurazione sicura, il metodo di convalida e il punto di ripristino.

Identifica la modalità di virtualizzazione supportata dalla tua piattaforma

Inizia dalla generazione esatta della CPU, dall'ID PCI della iGPU, dal firmware, dal kernel dell'host e dal driver. Una guida per una generazione Intel potrebbe non essere applicabile a un'altra, e alcuni metodi di condivisione sono stati ritirati o richiedono moduli esterni all'albero del kernel.

Se è supportato solo il passthrough completo, scegli se usare l'accelerazione nella VM o nell'host. Non aspettarti che un container dell'host mantenga Quick Sync dopo che il driver dell'host è stato scollegato.

Se sono supportati SR-IOV o i dispositivi mediati, mantieni la funzione fisica sull'host e assegna una funzione virtuale o un mdev alla VM. Verifica il comportamento del reset e dei driver prima di considerare la configurazione pronta per la produzione.

Usa segnali relativi alle capacità e ai carichi di lavoro

Verifica che l'host continui a esporre un nodo di rendering e che la VM rilevi la GPU virtuale assegnata. Esegui la decodifica o la codifica hardware in entrambi gli ambienti invece di affidarti agli elenchi dei dispositivi.

Monitora l'utilizzo dei motori GPU, gli errori, la pressione sulla memoria e i log del kernel durante transcodifiche simultanee. La capacità di condivisione non garantisce prestazioni prevedibili o il supporto dei codec.

Usa la tabella seguente per scegliere un modello operativo sicuro.

Stato osservato Verdetto Prossima azione
Passthrough PCI completo Uso esclusivo della VM I container dell'host perdono la iGPU
mdev/GVT-g supportato Porzioni condivise Specifico per la generazione
SR-IOV supportato PF sull'host, VF alla VM Convalida il ciclo di vita del driver

Configura il minimo privilegio e il controllo degli aggiornamenti

Concedi ai container dell'host solo il dispositivo di rendering e i permessi dei gruppi richiesti, non un accesso privilegiato esteso. Nella VM, installa il driver corrispondente alla funzione virtualizzata e mantieni un fallback al rendering software per la manutenzione.

Blocca le combinazioni di kernel e driver funzionanti finché il prossimo aggiornamento non supera un test in laboratorio. I moduli SR-IOV sperimentali possono rompersi dopo gli aggiornamenti del kernel o del firmware, quindi documenta i passaggi di rimozione e ripristino.

La panoramica dell'espansione GPU di ZimaCube di ZimaSpace fornisce il contesto hardware.

Una guida indipendente alla condivisione della GPU in homelab illustra il passthrough completo, i dispositivi mediati e SR-IOV.

-15% OFF

Esegui nuovamente i test dopo il riavvio e sotto carico simultaneo

Esegui un avvio a freddo dell'host, avvia prima i container e poi la VM; ripeti nell'ordine inverso. Entrambi i percorsi dovrebbero ripristinarsi senza ricollegare manualmente i driver.

Esegui il carico di lavoro simultaneo reale abbastanza a lungo da far emergere la limitazione termica e i problemi di reset. Poi riavvia la VM senza riavviare l'host e verifica che i container mantengano l'accelerazione.

Procedi solo quando la piattaforma esatta supporta una modalità di condivisione e supera i test sotto carico simultaneo e dopo il riavvio. Interrompi la procedura se l'host perde il nodo di rendering, la VM non può essere reimpostata o la soluzione dipende da un driver non mantenuto che non puoi bloccare in modo sicuro.

Supporto e consigli

Altro da leggere

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.