SPICE es un protocolo de escritorio remoto diseñado para entornos virtuales que reemplaza a VNC en máquinas virtuales KVM/QEMU. SPICE entrega un mejor rendimiento a bajo consumo de CPU, soporta video de alta calidad, sonido e interacción con el host (copiar/pegar).

En el artículo Utilizar SPICE en máquinas virtuales KVM expliqué detalladamente cómo configurar SPICE en una máquina virtual Windows y cómo instalar el driver QXL en Windows XP. En este artículo voy a explicar como configurar máquinas virtuales GNU/Linux para que utilicen SPICE.



Al utilizar SPICE en una máquina GNU/Linux, se mejora notablemente el movimiento del cursor del mouse en la consola de la máquina virtual, y el entorno gráfico en general. Para ello el sistema de ventanas X11 (X Window System) requiere los drivers adicionales qxl. Estos se incluyen por defecto en los sistemas Red Hat/CentOS 5.4 y superior. Las versiones anteriores no son soportadas.

Lógicamente, esto es útil sólo para máquinas virtuales donde el usuario requiere entorno gráfico. No tiene sentido para el caso de servidores virtuales que no poseen entorno gráfico, ya que en general se accede mediante SSH y es suficiente con VNC para el acceso eventual a la consola (por ejemplo al instalar o resolver problemas de red).

En sistemas Red Hat y derivados (CentOS/Scientific Linux), el driver qxl es provisto por el paquete xorg-x11-drv-qxl. En caso de que el sistema no lo posea, instalarlo ejecutando:

# yum install xorg-x11-drv-qxl

Luego es necesario configurar el servidor X11 para que utilice los drivers qxl. En la máquina virtual, crear una copia de respaldo del archivo de configuración de X11:

# cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

Buscar la sección correspondiente al dispositivo de video (por ejemplo "Videocard0") y reemplazar el driver existente (generalmente "vesa") por "qxl", debe quedar:

Section "Device"
        Identifier "Videocard0"
        Driver "qxl"
Endsection

Finalmente apagar la máquina virtual.

Una vez detenida, reiniciar la máquina virtual:

[18:48 root@vaio emi] > virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     CentOS6.5                      shut off

[18:48 root@vaio emi] > virsh start CentOS6.5
Domain CentOS6.5 started

Luego, en lugar de abrir virt-manager, conectarse a la consola de la máquina virtual utilizando el cliente spicy. Esto nos permitirá aprovechar todas las ventajas del protocolo SPICE (por ejemplo redimensionar automáticamente la pantalla de la máquina virtual al redimensionar la ventana, o copiar y pegar entre host y guest).

En este ejemplo, lanzo spicy desde el host Slackware 14.1 mediante Alt+F2, aunque cabe destacar que es posible instalar el cliente spicy desde cualquier sistema remoto GNU/Linux o Windows.

Ingresar el nombre o dirección IP del host y puerto para conectarse a la consola de la máquina virtual:

En este caso utilizo localhost ya que me conecto desde el propio host de máquinas virtuales, el puerto se puede obtener desde la configuración de la máquina virtual utilizando virt-manager o con virsh mediante el siguiente comando:

[19:24 root@vaio emi] > virsh domdisplay CentOS6.5
spice://127.0.0.1:5900

Al abrirse la consola, en la barra de estado se indica que el agente spice está corriendo en la máquina virtual (en la parte inferior izquierda de la ventana):

Entonces al redimensionar la ventana se redimensiona automáticamente el display del guest:

Para mayor información de SPICE en máquinas virtuales GNU/Linux remitirse a la guía de administración Red Hat Enterprise Virtualization 3.0.


Tal vez pueda interesarte


Compartí este artículo