QEMU, virtualización con software libre

Autor: Jesús López Martín (i32lomaj@www.uco.es)

Introducción

La virtualización se ha convertido en una de las tareas más habituales realizadas por los profesionales de la informática, ya sea para aprovechar completamente la capacidad hardware de los potentes servidores actuales, para poder tener de forma organizada y estructurada diversas máquinas con servicios distintos y que no interfieran unas con otras, para poder tener distintos sistemas operativos en la misma máquina o bien para poder seguir utilizando aplicaciones antiguas.

Dado que la virtualización se realiza tan frecuentemente sería interesante plantearse que software usar para ello, dentro de las distintas soluciones de virtualización nos encontramos con varias alternativas de software privativo y de software libre, dentro del software libre existen varias alternativas: VirtualBox (GPL 2.0), Xen (GPL 2.0), KVM (GPL 2.0 y LGPL 2.0), QEMU (GPL 2.0).

Es frecuente a la hora de escoger una solución que el usuario se decida por la que le resulta más fácil o conoce mejor, de ahí que muchas veces se escoja una solución de software privativo. Es precisamente para evitar esto por lo que es una buena idea acercar las soluciones de software libre a los usuarios, y en mi caso que mejor manera que traducir al español un libro publicado en wikibooks sobre QEMU en inglés, así al eliminar la barrera del idioma que para algunas personas es insalvable y describir como realizar las tareas más comunes en nuestro idioma no habrá excusas para seguir pagando por un software de virtualización privativo.

 

Introducción a QEMU

Tal y como se describe a si mismo QEMU en su página web, es un software capaz de trabajar como emulador (ejecutando sistemas operativos y programa realizados para trabajar en un tipo de arquitectura como ARM sobre otro tipo de arquitectura como la de nuestro PC x86 ó x86-64) o como virtualizador, al ser la arquitectura guest o invitada la misma que la arquitectura host o anfitriona, si además ejecutamos QEMU en un sistema operativo Linux usando el modulo del núcleo de KVM, el rendimiento es prácticamente el mismo que si se hubiera instalado el sistema operativo sobre la máquina sin usar virtualización.

Lo primero que debemos realizar para trabajar con QEMU es descargarnos la última versión, la cual está disponible aquí si bien se recomienda usar los repositorios de paquetes de las distribuciones Linux. Actualmente la última versión disponible en la página web de QEMU es la 2.0, la misma que si instalamos desde Ubuntu.

Trabajar con QEMU

Una vez instalado el software ya estaremos preparados para crear nuestra primera máquina virtual, lo primero es crear un fichero de imagen de disco. Este fichero será lo que nuestra máquina virtual considerará su disco duro, QEMU soporta múltiples formatos de ficheros de imagen de disco, algunos propios de QEMU, otros con el formato usado por otras soluciones de virtualización como VirtualBox y VMWare (lo que facilita la migración) y otros de formato genérico. La elección del formato la debemos de realizar en función de nuestras necesidades, en cuanto al tamaño del fichero, éste vendrá determinado por las necesidades que tengamos para nuestra máquina virtual. Para poder crear la imagen de disco QEMU nos proporciona la utilidad qemu-img, esta utilidad no solo nos permite crear ficheros de imágenes de disco sino también convertir entre distintos formatos, para más detalle consultar el libro traducido.

Una vez tenemos nuestra imagen de disco, sólo tenemos que lanzar QEMU con las características de nuestra máquina, especificando la cantidad de memoria y las unidades de disco, por ejemplo:

qemu -m 1024 -hda winxp.img -cdrom /dev/cdrom -boot d

En el ejemplo, se especifica la memoria (1024 MB = 1 GB), el disco duro y el cdrom que tendrá la máquina virtual, éste podrá ser tanto una imagen iso (hay que especificar el fichero) como el dispositivo físico de nuestra máquina host. Además se ha añadido la opción -boot d para que la máquina se inicie desde el cdrom en vez de desde el disco duro principal, que sería lo habitual de no usar esta opción.

Con este comando tan sencillo tendríamos una maquina virtual de 1 GB de RAM, con un disco duro del tamaño que hubiéramos creado en el paso anterior y con acceso a nuestro cdrom para poder instalar un sistema operativo.

Como es lógico, nuestra máquina virtual, por defecto, dispone de una serie de dispositivos para darnos soporte gráfico, de red, USB, etc., si bien podemos especificar otros a la hora de iniciar nuestra máquina virtual.

Una vez nuestra máquina virtual está arrancada y funcionando, podemos interactuar con ella a través de una herramienta que nos proporciona QEMU, el monitor. Para acceder a él solo debemos pulsar Ctrl + Alt (que son las teclas de captura del ratón) y después Mayús +2. El monitor es una consola desde la que usando varios comandos podemos cambiar medios extraíbles, dispositivos USB, capturar pantallas, guardar la maquina virtual actual con una etiqueta, cargar otras máquina virtuales, eliminarlas, detener la ejecución de una máquina virtual. Una descripción completa de estos comandos se encuentra en el libro traducido.

Conclusiones

QEMU es una alternativa equiparable a las soluciones privativas y en algunos casos es incluso superior (ya que permite emular otras arquitecturas), tal vez el punto flaco de QEMU sea su interfaz ya que todas las operaciones se realizan a través de línea de comando o a través de la consola que QEMU nos proporciona (el monitor), esto hace que muchos usuarios sean reacios a usarlo, pero existen soluciones de software libre totalmente integrables que hacen la labor de GUI como Virt-Manager (GPL 3.o).

Así ya sea a través de un interfaz gráfico o usando como referencia el libro traducido podemos realizar todas las tareas habituales a la hora de trabajar con máquinas virtuales.

 

Referencias

Wikipedia: http://es.wikipedia.org

QEMU en wikibooks: http://es.wikibooks.org/wiki/QEMU

Sitio web de QEMU: http://wiki.qemu.org/Main_Page