¿Se puede compartir una GPU integrada entre una máquina virtual y contenedores del host?

Eva Wong es la Redactora técnica y manitas residente en ZimaSpace. Una geek de toda la vida con pasión por los homelabs y el software de código abierto, se especializa en traducir conceptos técnicos complejos en guías accesibles y prácticas. Eva cree que el autoalojamiento debe ser divertido, no intimidante. A través de sus tutoriales, empodera a la comunidad para desmitificar las configuraciones de hardware, desde construir su primer NAS hasta dominar los contenedores Docker.

A veces. El passthrough completo de PCI asigna a la máquina virtual toda la GPU integrada, por lo que los contenedores del host normalmente pierden el acceso. El uso compartido requiere compatibilidad de hardware y controladores con dispositivos mediados, Intel GVT-g en determinadas plataformas antiguas o funciones virtuales SR-IOV en plataformas nuevas compatibles.

El acceso de los contenedores es una capa independiente: normalmente comparten el kernel del host y utilizan dispositivos de renderizado como `/dev/dri/renderD128`. Una máquina virtual necesita una función de GPU virtualizada o un dispositivo mediado, no ese nodo de dispositivo del host. Esta distinción determina la configuración segura, el método de validación y el punto de reversión.

Identifica el modo de virtualización compatible con tu plataforma

Empieza por identificar la generación exacta de la CPU, el ID PCI de la iGPU, el firmware, el kernel del host y el controlador. Una guía para una generación de Intel puede no aplicarse a otra, y algunos métodos de uso compartido están retirados o requieren módulos externos al árbol principal.

Si solo se admite el passthrough completo, elige entre la máquina virtual y el host para la aceleración. No esperes que un contenedor del host conserve Quick Sync después de desvincular el controlador del host.

Si se admiten SR-IOV o dispositivos mediados, mantén la función física en el host y asigna una función virtual o un mdev a la máquina virtual. Confirma el comportamiento del restablecimiento y del controlador antes de considerarlo listo para producción.

Utiliza indicadores de capacidad y carga de trabajo

Verifica que el host siga exponiendo un nodo de renderizado y que la máquina virtual detecte la GPU virtual asignada. Ejecuta decodificación o codificación por hardware en ambos entornos en lugar de basarte únicamente en los listados de dispositivos.

Supervisa la utilización de los motores de la GPU, los errores, la presión de memoria y los registros del kernel durante transcodificaciones simultáneas. Compartir la capacidad no garantiza un rendimiento predecible ni compatibilidad con los códecs.

Utiliza la siguiente tabla para elegir un modelo operativo seguro.

Estado observado Veredicto Siguiente acción
Passthrough completo de PCI Uso exclusivo de la máquina virtual Los contenedores del host pierden la iGPU
mdev/GVT-g compatible Particiones compartidas Depende de la generación
SR-IOV compatible PF en el host, VF para la máquina virtual Validar el ciclo de vida del controlador

Configura el mínimo privilegio y controla las actualizaciones

Concede a los contenedores del host únicamente el dispositivo de renderizado y los permisos de grupo necesarios, no un acceso privilegiado amplio. En la máquina virtual, instala el controlador que coincida con la función virtualizada y conserva una alternativa de renderizado por software para el mantenimiento.

Fija las combinaciones funcionales de kernel y controlador hasta que la siguiente actualización supere una prueba de laboratorio. Los módulos SR-IOV experimentales pueden fallar después de actualizaciones del kernel o del firmware, así que documenta los pasos de eliminación y recuperación.

La descripción general de la expansión de GPU de ZimaCube de ZimaSpace proporciona contexto sobre el hardware.

Una guía independiente sobre el uso compartido de GPU en homelabs explica el passthrough completo, los dispositivos mediados y SR-IOV.

-15% OFF

Vuelve a probar después de reiniciar y con carga simultánea

Arranca el host en frío, inicia primero los contenedores y después la máquina virtual; repite el proceso en el orden inverso. Ambas rutas deberían recuperarse sin volver a vincular manualmente el controlador.

Ejecuta la carga de trabajo simultánea real durante el tiempo suficiente para detectar la reducción térmica del rendimiento y los fallos de restablecimiento. Después, reinicia la máquina virtual sin reiniciar el host y confirma que los contenedores mantienen la aceleración.

Continúa solo cuando la plataforma exacta admita un modo de uso compartido y supere las pruebas de carga simultánea y reinicio. Detente si el host pierde su nodo de renderizado, la máquina virtual no puede restablecerse o la solución depende de un controlador sin mantenimiento que no puedas fijar de forma segura.

Soporte y Consejos

Más para leer

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.