libvirt y el soporte para aceleración por hardware gráfico 3D

Valoración del Usuario:  / 1
MaloBueno 

Uno de mis lectores, Elvin, me envió por correo una inquietud respecto al soporte de aceleración por hardware para gráficos 3D en máquinas virtuales KVM. Por lo que decidí investigar un poco al respecto, ya que me resulta un tema más que interesante.



Luego de instalar Linux Mint 15 en un guest KVM, al iniciar por primera vez muestra una notificación en el escritorio indicando que Cinnamon está ejecutando sin aceleración por hardware de video (en modo de renderizado por software) y que, como resultado, se puede observar un consumo de CPU mayor al normal.

La pregunta de Elvin era si es posible habilitar el soporte para aceleración por hardware gráfico 3D (al igual que en VMware) en máquinas virtuales KVM desde virt-manager, ya que las opciones de video disponibles son sólo cirrus, vga, vmvga, xen y qxl (si estamos utilizando Spice).

A pesar de que en la documentación de libvirt efectivamente existe una característica para habilitar aceleración por hardware gráfico (accel3d):

http://libvirt.org/formatdomain.html#elementsVideo

  ...
  <devices>
    <video>
      <model type='vga' vram='8192' heads='1'>
        <acceleration accel3d='yes' accel2d='yes'/>
      </model>
    </video>
  </devices>
  ...

La misma indica claramente que sólo está disponible si está soportada por el hipervisor/emulador subyacente (if supported). Cabe recordar que la meta principal de libvirt es proveer una forma simple y conveniente para administrar máquinas virtuales y otras funcionalidades virtuales como almacenamiento (storage) e interfaces de red pertenecientes a múltiples hipervisores diferentes. Para ello utiliza una librería API, un demonio (libvirtd), y una herramienta de línea de comandos (virsh). Por ejemplo, el comando virsh list --all puede utilizarse para listar las máquinas virtuales para cualquier hipervisor soportado (KVM, Xen, VMWare ESX, etc.) sin necesidad de aprender a utilizar las herramientas específicas de cada uno. Por esta razón, cuando la documentación de libvirt aclara if supported se refiere justamente a que esta característica sólo aplica para aquellos hipervisores que la soporten.

En el caso del emulador QEMU (o el fork de KVM qemu-kvm) aún es una característica que está siendo investigada (ni siquiera existe una versión experimental en desarrollo).

Aunque, Red Hat se encuentra analizando diferentes implementaciones para una posible solución de aceleración 3D para QEMU (en algún momento se analizó la posibilidad de adaptar el driver Gallium3D de Xen). Como siempre, Red Hat es quien mayor desarrollo invierte en el proyecto KVM/QEMU/libvirt, ya que es su caballo de batalla en el terreno de virtualización.

En el sitio oficial del proyecto Spice es posible examinar cuales son los planes de Red Hat en lo referente a una implementación de aceleración gráfica para guests KVM.

http://www.spice-space.org/page/Features/3D

El proyecto Spice provee una solución Open Source completa para la interacción con entornos de escritorio virtualizados. Actualmente se enfoca en proveer acceso remoto de alta calidad a máquinas virtuales QEMU. Spice es uno de los proyectos "et" de Red Hat (Red Hat Emerging Technology Projects). Los proyectos ET son un surtido de proyectos de desarrollo de nuevas tecnologías Open Source relacionadas con virtualización y la nube.

Actualmente posee una GPU virtual que sólo soporta operaciones 2D. Necesita soportar operaciones 3D para poder ejecutar de forma eficiente entornos de escritorio que utilizan efectos 3D (por ejemplo Aero y gnome-shell) y aplicaciones 3D.

En el siguiente enlace se observa la planificación detallada de la implementación:

http://www.spice-space.org/page/3DPlanning

Como usuarios de KVM/Spice sólo podemos esperar a que haya disponible una implementación o tratar de participar activamente del proyecto Spice.



Suscribirse

    Registrate para recibir las novedades y artículos por correo electrónico.

Linuxito en G+