Inicio > Documentos > Howtos > Máquinas virtuales con Qemu

Máquinas virtuales con Qemu



Introducción Antes de Empezar Manos a la Obra Notas

Introducción

En este tutorial veremos como instalar y configurar Qemu para poder crear máquinas virtuales en Linux.



Volver al inicio de este documento

Antes de Empezar

Seguramente, muchos de vosotros ya conoceréis VMWare

Para los que aún no lo conozcáis, simplemente os diré que VMWare es un programa que nos permite crear "Máquinas Virtuales" en nuestro sistema operativo. Esto se traduce, a groso modo, en que puedo ejecutar un sistema operativo o varios, como si fueran una aplicación más de mi escritorio.

Windows XP ejecutándose sobre QEMU en Debian

La tecnología de la virtualización se explota mucho y eficientemente en el campo de los servidores. Así por ejemplo, se pueden tener varias máquinas virtuales configuradas para ofrecer determinados servicios, sobre una misma máquina real.

Para qué sirven las máquinas virtuales.

Para usuarios domésticos, tal vez el uso de la virtualización no es tan evidente, pero dejadme que os dé varios ejemplos interesantes de usos que os pueden interesar.

1º) Probar sistemas operativos que no conocéis con plena seguridad.

Resulta que han sacado una versión nueva de una distribución GNU/Linux que está de moda, o de ese sistema operativo privativo que no queremos instalar en nuestra máquina, pero que sí que nos interesaría probar...

La solución es tan fácil como crearnos una máquina virtual e instalar el sistema operativo en cuestión en ella. Si algo falla, no pasa nada: no hay riesgos de borrar archivos, formatear particiones, ...

2º) Ejecutar aplicaciones de un sistema operativo concreto que no se pueden ejecutar en el nuestro.

Si como yo sois usuarios de GNU/Linux, os puede interesar poder ejecutar la última versión de tal o cual programa de Windows del que no existe equivalente en Linux y tampoco se puede ejecutar con Wine o Crossover.

Si eres usuario habitual de Windows (mi más sentido pésame!) tal vez te interese ejecutar un programa de Linux que no tiene versión para Windows.

3º) Para hacer pruebas.

Si sois como yo y os gusta "salsearlo" todo, entonces entenderéis que muchas veces acabamos montando enormes desastres sólo por probar tal o cual aplicación, por instalar estas librerías, o simplemente por querer probar de primera mano esa nueva distro que descubrimos ayer.

4º) Entornos de desarrollo personales.

¿Os gusta programar en php o ruby on rails? ¿queréis probar un gestor de contenidos como Wordpress, Joomla, OSCommerce o MediaWiki? ...

Si lo que queremos es no complicarnos la vida y no corromper nuestro sistema debido a nuestra falta de experiencia la la configuración del mismo, tal vez lo mejor sea crearnos nuestro propio servidor virtual, donde podremos instalar todas estas herramientas y establecer así un entorno de desarrollo y pruebas de aplicaciones web, pudiendo, una vez estemos seguros de que tenemos controlado cada tema, proceder a la instalación y configuración de las aplicaciones en nuestro servidor real.

Podría poner algunas utilidades más, pero creo que con estas es más que suficiente para mostraros la utilidad de las máquinas virtuales.



Volver al inicio de este documento

Manos a la Obra

Existen sistemas de virtualización como VMWare, no muy complicados de instalar y configurar, pero que tienen una gran desventaja: son privativos.

Entonces ... ¿Existe alguna aplicación de virtualización libre?

La respuesta es , y se llama QEMU.

La instalación de Qemu es sencillísima, suele venir por defecto en casi todas las distribuciones GNU/Linux, pero si no viene para la tuya o eres usuario de windows, sólo tienes que descargarte qemu de su web, descomprimir, compilar y listo.

Para compilar desde los fuentes Qemu, simplemente descargamos los fuentes, instalamos los headers de nuestro kernel y compilamos al uso:

#./configure
#make

Y como root:

#make install

Lo que encontrarás seguramente es que Qemu va algo lento, la solución, es tan sencilla como descargar y compilar kqemu, un módulo para el núcleo Linux que acelera enormemente las máquinas virtuales hasta hacer que funcionen a una velocidad que casi se podría equiparar a las de un sistema real (salvando las distancias).

Para compilarlo simplemente procedemos como con los fuentes de Qemu:

#./configure
#make

Y como root:

#make install

luego cargamos (también como root) el nuevo módulo compilado:

#modprobe kqemu

Y comprobamos que está cargado:

#lsmod | grep kqemu

y nos debe devolver algo así:

kqemu 107908 0

Ahora nos aseguraremos de que cada vez que reiniciemos se cargue el módulo kqemu y se cree el correspondiente dispotivo (/dev/kqemu) de manera correcta.

Para ello, editamos el archivo /etc/init.d/bootmisc.sh y añadimos las siguientes líneas al final:

modprobe kqemu
mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu

¡Listo!, ya tenemos preparado Qemu para ser ejecutado con aceleración en nuestro sistema.

Ejecutar Qemu

Para ejecutar Qemu os recomiendo que useis front-ends al principio, os facilitará mucho el trabajo, luego podéis probad a invocar Qemu desde línea de comandos, en la ayuda de qemu podéis ver los comandos y parámetros pertinentes si os interesa, y os puede resultar muy útil, una vez creada una máquina virtual, crear un script para lanzarla de manera más cómoda.

KQemu ejecutando la instalación de Windows XP

Ubuntu instalándose en una máquina virtual Qemu

Para empezar a usar Qemu, tenemos dos herramientas:

qemu-launcher y kqemu, cuyo nombre puede inducir a error al ser el mismo que el del módulo de aceleración antes citado, y que es un programa sencillito para KDE.

Qemu Launcher

También tenéis qemuctl, un lanzador de quemu que nos permite tener una consola gráfica con opciones útiles para modificar el comportamiento de qemu mientras este se está ejecutando.

Podemos, gracias a qemuctl montar y desmontar cd's y dvd's, activar o desactivar determinados dispositivos de la máquina virtual.

Qemuctl el control de qemu



Volver al inicio de este documento

Notas

Si tenemos algun problema con la instalación de algún sistema operativo, suele dar buen resultado desactivar el sistema acpi lanzando qemu con el parámetro -no-acpi

Mi recomendación es que, si queréis sacar algo más de rendimiento con Qemu, probéis a compilar vosotros mismos el programa. No es nada complejo, y lo único que tenemos que tener en cuenta es que Qemu (no así kqemu) se debe compilar con gcc-3.

En mi caso, como tenía la versión gcc 4 instalada, simplemente instalé el 3, hice un enlace simbólico:

ln -s -f /usr/bin/gcc-3.4 /usr/bin/gcc

compilé y luego volví a dejar todo como antes

ln -s -f /usr/bin/gcc-4.1 /usr/bin/gcc

Una vez lanzado QEMU, algunas teclas rápidas interesantes son:

Ctrl-Alt-f
Sirve para alternar entre modo ventana y pantalla completa.

Ctrl-Alt-n
Alterna entre consolas virtuales (1 ventana principal del sistema, 2 Monitor y 3 Puerto Serie)

Ctrl-Alt
Permite alternar el uso del teclado y el ratón dentro y fuera de Qemu, es decir, en la máquina virtual y real.

Aunque la virtualización, como hemos visto tiene muchas utilidades, no todo son ventajas:

Para empezar, lógicamente, la velocidad de las máquinas virtuales no es la de una máquina real; en este aspecto también cabe destacar que VMWare es algo más rápido y está más depurado que Qemu, aunque este último mejora muy rápido.

Otro tema interesante es que aplicaciones que necesitan tener un acceso intensivo y directo a cierto hardware, como son por ejemplo los juegos, no funcionarán bien en las máquinas virtuales, pues precisamente el fundamento de estas es abstraer a los sistemas operativos que se ejecutan en las máquinas virtuales del hardware real. Esto permite precisamente poder ejecutar varias máquinas virtuales a la vez en el mismo hardware real.

También decir que para que ambos sistemas corran rápido, es necesario compilar módulos que se integren con nuestro sistema operativo. No es una tarea especialmente compleja, pero puede que a veces cueste un poco (de hecho, la razón de que probara Qemu es que VMWare se niega a compilar su módulos en mi sistema pese a tener instalados los paquetes de fuentes requeridos), mientras que Qemu nunca me ha dado ningún problema.



Volver al inicio de este documento

[cc] jEsuSdA 8)
Consulta la sección Información para saber a cerca de la política de distribución del contenido de esta web.