Proyecto: Proxmox, GPU-Passthrough y multiseat.

Hola eolianos!

Estoy terminado un grado superior de ASIR, por lo que me encuentro haciendo el proyecto de fin de curso. Me llama mucho el tema de la virtualización y la asignación de dispositivos PCIe a máquinas virtuales por lo que me he basado en ello para el trabajo.
Creo que es un tema muy interesante y por eso lo comparto con vosotros.

Podéis consultarme cualquier duda o sugerencia para el proyecto, estaré encantado de escucharos!

Imagen
Imagen

Podeis encontrar aquí el documento:
https://github.com/zeusin/ProyectoAsir

Un saludo!
Tiene muy buena pinta, lo voy a ver mas tranquilamente este fin de semana! dale caña!!
Gracias @rotwey! Espero que te resulte interesante!

He hecho unas cuantas modificaciones ya que con proxmox 5.1 hay una incompatibilidad con el firmware ovmf.
Felicidades compi, ya era hora de ver algo interesante por estos lares y tu trabajo es impresionante.

Mis dieses caballero.
has mirado algo de vGPU y tal? con ovirt/rhev y nvidia se puede y mola mil, desconozco como esta el tema en proxmox.

quizas el mayor problema sea conseguir hard compatible
Zokormazo escribió:has mirado algo de vGPU y tal? con ovirt/rhev y nvidia se puede y mola mil, desconozco como esta el tema en proxmox.

quizas el mayor problema sea conseguir hard compatible


Lo has probado? vi un paper de nvidia hace uno/dos años sobre vgpu, pierde mucho rendimiento? saca video? xd, que lo que vi parecia que estaba mas orientado para entornos en la nube y comparticion de gpu en las instancias
nu_kru escribió:
Zokormazo escribió:has mirado algo de vGPU y tal? con ovirt/rhev y nvidia se puede y mola mil, desconozco como esta el tema en proxmox.

quizas el mayor problema sea conseguir hard compatible


Lo has probado? vi un paper de nvidia hace uno/dos años sobre vgpu, pierde mucho rendimiento? saca video? xd, que lo que vi parecia que estaba mas orientado para entornos en la nube y comparticion de gpu en las instancias

no tengo un tesla xD

pero en la doc de redhat parece una gpu que es util, aunque mas que de video siempre hablan de computacion.
Wynztech escribió:Felicidades compi, ya era hora de ver algo interesante por estos lares y tu trabajo es impresionante.

Mis dieses caballero.


Muchas gracias [sonrisa]

Zokormazo escribió:has mirado algo de vGPU y tal? con ovirt/rhev y nvidia se puede y mola mil, desconozco como esta el tema en proxmox.

quizas el mayor problema sea conseguir hard compatible



Si, el hardware es lo que mas problemas da... AMD con sus cpu hasta hace bien poquito tenia bastantes problemas... las placas, al menos en intel, a no ser que sean de gama alta suelen venir con soporte a medias, luego igual con las graficas... nvidia pone impedimentos al gpu-passtrough... AMD con las vega creo que hasta el kernel 4.18 tenian un problema con el reinicio de las maquinas virtuales.
Zokormazo escribió:has mirado algo de vGPU y tal? con ovirt/rhev y nvidia se puede y mola mil, desconozco como esta el tema en proxmox.

quizas el mayor problema sea conseguir hard compatible

nu_kru escribió:Lo has probado? vi un paper de nvidia hace uno/dos años sobre vgpu, pierde mucho rendimiento? saca video? xd, que lo que vi parecia que estaba mas orientado para entornos en la nube y comparticion de gpu en las instancias


A nivel de hardware comercial la unica opción real son las vgpu de intel, que con cada gpu de intel se pueden sacar, creo, que hasta 7vGPU's. El código se ha vertido en qemu estable (2.12) hace menos de un mes.

AMD y Nvidia no tienen nada que no sea de nivel de empresa a chorromil euros la GPU. Lo mas cerca que estuvimos con los dos grandes fue cuando amd saco las vega fronter edition que soportan sr-iov, pero finalmente no han dado soporte para ello. https://community.amd.com/thread/218846#2817867

Otra cosa curiosa es que la implemetacion de vGPU de intel divide la grafica segun el uso que hagan los usuarios, la solucion vgpu que hace amd divide la grafica en trozos fijos, se esten usando o no su capacidad.
Yo tengo una pregunta, por si has probado. ¿Puedes asignar la misma tarjeta a varias máquinas KVM o la asignación se hace por identificador y por tanto, se puede usar una única tarjeta para cada máquina?

Buen trabajo. Saludos
yuku escribió:Yo tengo una pregunta, por si has probado. ¿Puedes asignar la misma tarjeta a varias máquinas KVM o la asignación se hace por identificador y por tanto, se puede usar una única tarjeta para cada máquina?

Buen trabajo. Saludos


A la hora de asignar la gráfica al driver vfio se hace con el identificador de dispositivo

A la hora de asignar la gráfica a una máquina virtual se hace mediante el número del puerto PCI al que este conectado ( 02:00.0, 05:00.1 ... ).

Los mismos puertos se pueden agregar a varias configuraciones de diferentes maquinas virtuales siempre y cuando no arranques las dos máquinas a la vez.

Espero haber resulto tu duda!
ZeusAO escribió:
yuku escribió:Yo tengo una pregunta, por si has probado. ¿Puedes asignar la misma tarjeta a varias máquinas KVM o la asignación se hace por identificador y por tanto, se puede usar una única tarjeta para cada máquina?

Buen trabajo. Saludos


A la hora de asignar la gráfica al driver vfio se hace con el identificador de dispositivo

A la hora de asignar la gráfica a una máquina virtual se hace mediante el número del puerto PCI al que este conectado ( 02:00.0, 05:00.1 ... ).

Los mismos puertos se pueden agregar a varias configuraciones de diferentes maquinas virtuales siempre y cuando no arranques las dos máquinas a la vez.

Espero haber resulto tu duda!


Interesante, entonces puedes asignar la gráfica para una máquina directamente. Proxmox lo usé hace mucho tiempo y parece ser que ahora es mucho más flexible. En cuanto a estabilidad, ¿qué tal anda para un sistema de producción?
seria posible en portatil usar la grafica para una cosa y la integrada para otra ?
yuku escribió:Interesante, entonces puedes asignar la gráfica para una máquina directamente. Proxmox lo usé hace mucho tiempo y parece ser que ahora es mucho más flexible. En cuanto a estabilidad, ¿qué tal anda para un sistema de producción?


Pues no lo he usado nunca en un ambiente de producción asi que lo unico que puedo decir para "elogiarlo" es que OVH suele proveer servidores con proxmox.


aljares escribió:seria posible en portatil usar la grafica para una cosa y la integrada para otra ?


pues tecnicamente es posible pero encontrar un portatil que soporte vt-d e integre bien los grupos IOMMU yo creo que va a ser mas dificil...

en teoria con el proyecto de looking glass ( https://looking-glass.hostfission.com/ ) se copia la pantalla de la maquina virtual a la maquina host sin apenas latencia, por lo que no haria falta tener monitor en grafica externa o similar.

echale un vistazo a esto que he encontrado: https://gist.github.com/Misairu-G/616f7 ... addc940b28
ZeusAO escribió:
yuku escribió:Interesante, entonces puedes asignar la gráfica para una máquina directamente. Proxmox lo usé hace mucho tiempo y parece ser que ahora es mucho más flexible. En cuanto a estabilidad, ¿qué tal anda para un sistema de producción?


Pues no lo he usado nunca en un ambiente de producción asi que lo unico que puedo decir para "elogiarlo" es que OVH suele proveer servidores con proxmox.


aljares escribió:seria posible en portatil usar la grafica para una cosa y la integrada para otra ?


pues tecnicamente es posible pero encontrar un portatil que soporte vt-d e integre bien los grupos IOMMU yo creo que va a ser mas dificil...

en teoria con el proyecto de looking glass ( https://looking-glass.hostfission.com/ ) se copia la pantalla de la maquina virtual a la maquina host sin apenas latencia, por lo que no haria falta tener monitor en grafica externa o similar.

echale un vistazo a esto que he encontrado: https://gist.github.com/Misairu-G/616f7 ... addc940b28


Sí, es verdad, OVH ofrece esa opción. ¡Gracias!
echale un vistazo a esto que he encontrado: https://gist.github.com/Misairu-G/616f7 ... addc940b28


que interesante esto wov gracias por la info amos a leer

gracias
@ZeusAO En primer lugar felicidades por el trabajo, me viene que ni pintado (tengo un hp gen8 corriendo proxmox) . Decirte que con tu permiso voy a pasar este pdf a un grupo en el que estoy con gente que usa g8 y proxmox que seguro a mas de uno le vendra de perlas.


Un saludo

pd: como dice un compañero estas aportaciones valen oro por que son de un nivel muy alto.
@ZeusAO Muchas gracias por el esfuerzo y el trabajo. Te iba a preguntar (a ti y a quien pueda ayudarme) por el tema del error 43 en las Nvidia.

He seguido está guía y otras análogas, hay pequeñas variaciones en la receta pero todas tienen unas etapas concretas. He conseguido que proxmox cargue la grafica con los drivers vfio-pci... la primera vez que arranco me aparece la gráfica con el codigo 31 de no haber instalado los drivers correctos... al instalarlos, codigo 43...

He seguido el último paso de añadir los argumentos en el archivo .conf (kvm=off, hdvendor.... ) y nada, si noto que tarda algo más en arrancar puesto que tiene que desconectar la grafica del host y meterla en el guest... pero del codigo 43 no paso...

Viendo que el tema está en el kvm=off, veo que en la configuración web del proxmox me aparece tildada la virtualización kvm (en el archivo de configuración tengo correctamente puesto kvm=off) y, si descmarco esta casilla, la maquina directamente no arranca...

Alguna sugerencia sobre que puedo estar haciendo mal o que debería intentar?
Muchas gracias, un saludo!
16 respuestas