Si en el anterior capítulo del especial hablamos de Virtual PC, la solución propuesta por Microsoft para la virtualización en entornos de escritorio, hoy vamos a buscar una plataforma de virtualización de código libre dentro de las distintas alternativas a nuestra disposición. En mi caso la opción elegida para analizar ha sido KVM. Vamos a ver que nos puede ofrecer la virtualización con KVM como una opción de virtualización de código abierto.
KVM me parece una opción de futuro puesto que recientemente Red Hat a apostado fuerte por esta solución, lo que le garantiza un recorrido y un desarrollo importante en los próximos años. KVM se encuentra integrado en el núcleo de Linux a partir de la versión 2.6.20 del kernel. Esta aplicación necesita soporte de hardware para ejecutar la virtualización, ya sea con procesadores de Intel o de AMD. En caso de que nuestro procesador no soporte dichas tecnologías de virtualización será inútil intentar instalarlo.
Instalación de KVM
Por lo tanto estamos hablando de una solución de virtualización para utilizar en los sistemas Linux. KVM utiliza Virt-Manager como administrador de máquinas virtuales y un Qemu modificado como hypervisor. Yo he probado la instalación en Ubuntu 9.04 y ha funcionado correctamente. Para instalarlo lo primero que debemos saber es si nuestro procesador es compatible. Para ello introduciremos los siguientes comandos:
$ cat /proc/cpuinfo | grep vmx # para CPUs Intel
$ cat /proc/cpuinfo | grep svm # para CPUs AMD
Si el sistema no nos devuelve nada me temo que no tenemos soporte de virtualización en nuestro procesador o no lo tenemos activado. En caso afirmativo, instalamos los paquetes necesarios:
$ sudo apt-get install kvm libvirt-bin ubuntu-vm-builder bridge-utils
e incluimos el usuario en el grupo de kvm
$ sudo adduser $USER kvm
Una vez realizado todos estos pasos tendremos que reiniciar la sesión, dependiendo de la versión de Ubuntu que estemos utilizando. Si todo ha ido bien, tendremos una nueva entrada en nuestro menú Aplicaciones/Herramientas del Sistema/Administrador de Máquina Virtual desde donde podemos comenzar la instalación de nuestras máquinas virtuales.
Creación de las máquinas virtuales
Una vez abierto el Administrador de Máquina Virtual tendremos que crear una conexión, en caso de que no nos aparezca por defecto. Para ello lo único que tenemos que seleccionar es QEMU como hipervisor y Local como conexión. Tras seleccionar la nueva entrada creada nos aparecerá activo el botón Nuevo, donde tras pulsarlo accedemos al Asistente para la creación de máquinas virtuales.
Lo primero que tenemos que hacer es asignar un nombre al sistema que vamos a virtualizar, y luego nos permite elegir cómo queremos virtualizarlo, ya sea virtualización completa o paravirtualización. Este segundo método utiliza el hipervisor para compartir el acceso al hardware subyacente pero integra código que está al tanto de la virtualización en el propio sistema operativo. Es necesario que los sistemas operativos alojados sean modificados por el hipervisor. Ofrece un rendimiento próximo al de un sistema no virtualizado. En mi caso he optado por una virtualización completa para tratar de aproximar los resultados al resto de opciones que hemos virtualizado.
Comenzamos con el asistente a definir las opciones de nuestra máquina virtual. Podemos elegir visor, ya sea KVM o QEMU y la instalación la podemos llevar a cabo mediante una imagen ISO, un CD o a través de la red. Lo siguiente que debemos hacer es indicar donde está la imagen *.ISO y dónde vamos a alojar nuestro disco duro virtual. Podemos elegir si le damos el tamaño fijo o dentro del tamaño asignado el archivo de imagen va creciendo a medida que vamos instalando archivos. Después nos bastará con elegir las opciones de red, ya sea red virtual o compartir la tarjeta de red física con el equipo anfitrión. Por último asignamos memoria y CPU a la máquina virtual y ya tendremos creada nuestra máquina virtual.
Una vez creada la máquina virtual tendremos que instalar el sistema operativo que hayamos elegido al igual que haríamos en este caso con un ordenador al que le acabamos de instalar el disco duro. Este proceso nos llevará más o menos tiempo en función de la memoria y procesador que hayamos asignado a nuestra máquina virtual, así como si instalamos a través de CD, de una imagen *.ISO o de la red que son las opciones disponibles.
Funcionamiento general
Las máquinas virtuales tienen un rendimiento muy bueno, comparando con el funcionamiento general de otras máquinas virtuales de las aquí examinadas. No tienen nada que envidiar en ningún aspecto. Una de las cosas que me ha gustado bastante es el modo fluido que funciona automáticamente en Windows sin necesidad de tener que instalar aplicaciones extras para equipos invitados. No ocurre lo mismo con los sistemas virtualizados en Linux donde no he conseguido tener un modo fluido semejante al obtenido con sistemas Windows.
El soporte de los USB es bastante bueno. Tenemos que seleccionar la opción de añadir hardware en las opciones de la consola, hardware donde tenemos una opción para añadir hardware. En este caso para dispositivos USB podemos añadirlos como dispositivos de almacenamiento, seleccionando directamente la partición de disco y la opción de disco USB. Con esta opción podemos utilizar nuestro dispositivo tanto en nuestro sistema anfitrión como en nuestro invitado. Siempre es posible realizar mejoras en este sector que creo que es uno donde todos los sistemas tiene margen para conseguir que la experiencia del usuario sea más satisfactoria.
Respecto a la instalación de los dispositivos USB uno de los aspectos positivos es que una vez instalado el controlador del dispositivo en el equipo invitado podremos conectarlo directamente en caliente. No es necesario tener previamente seleccionado el dispositivo antes de arrancar el sistema, ni siquiera es necesaria que la unidad esté montada en nuestro sistema. El aspecto que menos me ha gustado ha sido el gráfico, donde creo que KVM rinde peor que otras soluciones en el apartado gráfico puesto que no soporta la aceleración por hardware 3D que si está disponible por ejemplo en VirtualBox.
Un aspecto que me ha parecido interesante es la incorporación de los gráficos de rendimiento de los sistemas virtuales dentro de Virtual Manager que nos indica como se está comportando nuestro sistema virtual, qué uso está haciendo de la CPU o de la memoria, datos que nos ayudan a ver el rendimiento de estas máquinas y hasta que punto podemos tener varias trabajando en paralelo en nuestro ordenador.
Respecto a los puntos negativos de este sistema podemos subrayar que únicamente está disponible para Linux, por lo tanto no se trata de un sistema multiplataforma y esto sin duda le resta puntos. Podríamos decir que es el equivalente de Virtual PC en sistemas Linux, con un buen rendimiento aún a costa de una peor resolución gráfica. La parte buena es que al estar integrado en el kernel de Linux la relación entre sistemas es bastante buena.
En general KVM no me parece muy intuitivo, no es que tampoco podamos decir que es complicado, pero si es verdad que para usuarios noveles no es el sistema con el cual yo les recomendaría que se iniciasen en la virtualización. Existen formas más sencillas de dar soluciones a distintos aspectos de la virtualización, y no me refiero a nivel técnico, sino respecto a la usabilidad del programa, que a veces te puedes perder un poco entre las distintas opciones.
Para finalizar esta serie de artículos sobre sistemas virtualizados el próximo día haremos un pequeño resumen de las características de cada uno de ellos y sus aspectos más destacados, que nos ayude a elegir la opción más adecuada para cada uno, puesto que cómo habéis podido observar respecto a las distintas opciones presentadas no existe una buena y otra mala, sino que dependiendo de las circunstancias de cada uno se obtendrán mejores o peores resultados con una u otra opción.