Dar una tarjeta gráfica a una máquina virtual: el obstáculo real no es el controlador, es el grupo
Pasar hardware directamente a una máquina es posible, pero los dispositivos se ceden por grupos, no de uno en uno. Y el hardware cedido también le quita a la máquina la libertad de moverse.
AtlasPVE ·
Esta entrada responde a
- proxmox gpu passthrough
- proxmox grupo iommu
- proxmox pci passthrough no funciona
- proxmox tarjeta gráfica a vm
- proxmox paso de hardware
Dar una tarjeta gráfica física, una controladora de disco o una capturadora directamente a una máquina virtual es posible. La promesa es real: la máquina usa ese hardware como si fuera suyo.
Pero donde la gente se atasca no es el controlador. Es el grupo.
Los dispositivos no se ceden de uno en uno
Tu placa base decide qué dispositivos pueden aislarse entre sí y los ordena en grupos. No puedes ceder un solo dispositivo de un grupo; cedes el grupo entero.
La consecuencia: si tu tarjeta gráfica está en el mismo grupo que la controladora de disco, dar la gráfica significa dar también la controladora. Eso normalmente no se puede hacer, porque ahí está el disco del servidor.
Así que la pregunta al comprar hardware no es "funcionará esta gráfica" sino "en esta placa base está en su propio grupo". La agrupación es una propiedad de la placa base, no de la tarjeta. La misma tarjeta se cede limpiamente en una placa y en otra no se puede en absoluto.
El dispositivo desaparece del servidor
Segunda sorpresa: una vez cedido un dispositivo a una máquina virtual, el servidor ya no puede usarlo. No es un préstamo, es un traspaso.
La versión más común: en una máquina con una sola gráfica cedes la tarjeta a una máquina virtual y la pantalla del propio servidor se va con ella. Si puedes conectarte en remoto no pasa nada, pero ante un contratiempo ya no tienes la opción de enchufar teclado y monitor para mirar.
El hardware cedido también quita la libertad de moverse
Para quien ha montado un clúster este es el punto más importante: una máquina con paso de hardware normalmente no puede ir a otro nodo.
El motivo es simple: la tarjeta que cediste está dentro de esta máquina física. Aunque el otro nodo tenga el mismo modelo, no es el mismo dispositivo.
Así que la red de seguridad que te da el clúster no cubre esa máquina. No se puede mover en las noches de mantenimiento ni levantar en otro nodo durante una avería. Al montar un paso de hardware, lo que de verdad eliges es esto: movilidad a cambio de rendimiento y acceso directo al hardware.
La memoria tampoco sigue siendo flexible
Cuarta restricción, la menos conocida: el hardware cedido escribe directamente en la memoria de la máquina virtual. Para que eso funcione, esa memoria tiene que quedarse en su sitio.
Pero el mecanismo que estira la memoria y la recupera es justo el que la mueve de un lado a otro. Cuando ambos están activos en la misma máquina, aparecen problemas del lado del controlador.
En la práctica la regla es: en una máquina con paso de hardware no estires la memoria, dásela fija. Eso significa que esa máquina no puede participar en el juego de "prometer más de lo que hay" descrito en el artículo anterior. La memoria que le prometiste está de verdad apartada.
La frase de la decisión
El paso de hardware no es una ganancia, es un intercambio. Lo que ganas: la velocidad real del hardware y acceso a todas sus capacidades. Lo que pierdes: portabilidad, el uso de ese dispositivo por parte del servidor y la flexibilidad de la memoria.
Si haces ese intercambio a sabiendas, es la herramienta correcta. Si lo hiciste sin darte cuenta, lo descubres en la primera noche de mantenimiento o en la primera avería.
Qué hace Atlas
Cuando Atlas lee los dispositivos PCI del servidor, lee también en qué grupo de aislamiento está cada uno. Así que antes de decidir puedes ver la agrupación: el dispositivo que quieres ceder está solo, o hay al lado algo que no quieres entregar.
Además hay una regla que cae exactamente en la última parte de este artículo. Si una máquina virtual tiene un paso de hardware definido y el estiramiento de memoria activado, Atlas lo marca como aviso: juntos causan problemas del lado del controlador. El aviso no solo dice "hay un problema", dice qué hacer y te lleva directo al ajuste de memoria.
Es un pequeño ejemplo de la postura general del producto: la configuración en sí es válida, nada da error, pero dos ajustes válidos juntos no tienen sentido. Esas cosas hay que decirlas al montar, no durante una avería.
Fuentes
La documentación oficial de Proxmox. En inglés, y en este asunto es ella la que tiene la última palabra.