¡Hola Amigos!. ¿Debian 7?. Simple y llanamente Fuera de Serie como decimos en Cuba. ¡La Misión Espacial Internacional cambió Windows XP por Squeeze… porque aun no era estable el Wheezy!.
No puedo escribir sobre el QEMU-KVM sin mencionar al Wheezy. Nunca antes había tenido la muy grata experiencia de instalar un Debian en la versión de escritorio de la forma “instala y úsalo”. Así de fácil es el Wheezy. Se lo recomiendo a TODOS.
Y cuando digo TODOS, es porque acabo de hacerme una máquina virtual con sólo 256 megas de RAM, con el Wheezy y su escritorio. Si selecciono en el inicio de sesión gráfico el “GNOME Classic” funciona muy bien. Por supuesto que con esa cantidad de memoria no se carga el GNOME Shell 3.4+7.
No quiero incluir imágenes sobre la instalación del Wheezy pues prefiero lo descubran por Ustedes mismos. Descarguen un CD o un DVD de instalación, instalen el Debian 7 y úsenlo. Más nada. Ya me contarán.
Los que dispongan de una buena cantidad de memoria (1 giga o más) o se les cargue automáticamente el GNOME Shell 3.4+7, descubrirán parte de sus bondades si dirigen el puntero del ratón o mouse hacia la esquina superior izquierda. Naveguen por éste excelente Debian Desktop tal y como bautizaron los Debianeros a su escritorio en Wheezy.
¡Felicidades a ese inmenso colectivo que es, para la felicidad de muchos, Debian!.
A los que extrañen algunos detalles del GNOME 2.xxx (como yo), recomendamos instalen los siguientes paquetes como mínimo:
- nautilus-emblems
- nautilus-image-converters
- nautilus-image-manipulators
- nautilus-open-terminal
Para aquellos que dispongan de un procesador con las extensiones de virtualización -de forma general de Dual Core moderno hacia adelante- va dirigido esencialmente el resto del post.
Introducción
KVM o Kernel-based Virtual Machine, funciona solamente si el procesador tiene las extensiones de virtualización de hardware, tanto las de Intel© como las de AMD-V©. Lo podemos determinar si ejecutamos en una consola el siguiente comando:
# egrep -c "(svm|vmx)" /proc/cpuinfo
Si el comando nos devuelve 0, indica que el procesador no soporta virtualización de hardware. Un valor 1 o superior nos indicará cuantos procesadores tienen esa característica. Debemos habilitar (o comprobar si está habilitada) ésta función en la BIOS de nuestro equipo, aunque el valor devuelto sea 1 o mayor.
No me gusta hacer comparaciones para nada. Cada software tiene su encanto. Sólo diré que adiós al Ctrl + Alt para liberar el puntero del ratón; adiós a la necesidad de los paquetes build-essential, binutils, linux-headers-’uname -r’; adiós a los parches para ejecutar una vieja versión en un nuevo núcleo; adiós a una -a veces tediosa- instalación a partir de un script en perl u otro lenguaje; adiós a una interfaz web para la administración y/o creación de máquinas virtuales (que en muchas ocasiones nos hacía sufrir o no funcionaba simplemente); y a todas esas específicas cuestiones que conocemos los que hemos trabajado anteriormente con otro software para máquinas virtuales.
QEMU-KVM es una solución total para máquinas virtuales. Los paquetes están en el repositorio en la rama main. Es lo máximo, como me dijo mi colega y amigo El Freake cuando me lo recomendó.
Y aquí les traigo, como siempre, un Punto de Entrada al fascinante mundo de crear y administrar servidores o máquinas virtuales mediante QEMU-KVM sobre Wheezy (también sobre Squeeze).
Definiciones tomadas de Wikipedia:
QEMU es un emulador de procesadores basado en la traducción dinámica de binarios (conversión del código binario de la arquitectura fuente en código entendible por la arquitectura huésped). QEMU también tiene capacidades de virtualización dentro de un sistema operativo, ya sea GNU/Linux, Windows, o cualquiera de los sistemas operativos admitidos, (de hecho es la forma más común de uso). Esta máquina virtual puede ejecutarse en cualquier tipo de Microprocesador o arquitectura (x86, x86-64, PowerPC, MIPS, SPARC, etc.). Está licenciado en parte con la LGPL y la GPL de GNU.
Kernel-based Virtual Machine o KVM, (en español, Máquina virtual basada en el núcleo) es una solución para implementar virtualización completa con Linux. Está formada por un módulo del núcleo (con el nombre kvm.ko) y herramientas en el espacio de usuario, siendo en su totalidad software libre. El componente KVM para el núcleo está incluido en Linux desde la versión 2.6.20.
Libvirt: Librería escrita en C (C toolkit) para interactuar con las recientes capacidades de virtualización de las versiones modernas de Linux (y de otros sistemas operativos).
¡Entremos en materia!.
Instalar los paquetes necesarios en una estación de trabajo:
# apt-get install qemu-kvm libvirt-bin bridge-utils virt-manager hal
Aclaramos que es en una estación de trabajo porque el paquete virt-manager es la interfaz gráfica o GUI para la administración de nuestras máquinas virtuales en nuestro Desktop y para el resto de los servidores de nuestra LAN que tengamos dedicados al soporte de máquinas virtuales. Además, el proceso de creación y administración de las máquinas o servidores virtuales se puede realizar en modo consola solamente sin la necesidad de una interfaz gráfica. Consulten las man pages de los paquetes instalados las cuales son muy descriptivas. Mucho más que éste artículo. Lástima que estén en inglés.
El usuario root y los miembros del grupo libvirt son los únicos que tienen permisos para utilizar las máquinas virtuales KVM. Por tanto debemos hacer a nuestro usuario miembro del grupo libvirt:
# adduser miusuario libvirt
Debemos cerrar la sesión y entrar nuevamente para que surta efecto el comando anterior.
Nota sobre Ubuntu: No he podido probar el qemu-kvm con el Ubuntu 12.04. CREO que la única diferencia importante estriba en éste comando en el cual debemos especificar el grupo libvirtd. Lo demás DEBE ser válido.
Después de lo anterior queda poco por explicar pues ya podemos ejecutar el “Administrador de Máquina Virtual” o virt-manager, al que encontraremos en el grupo de aplicaciones “Herramientas del Sistema“, o podemos invocarlo si presionamos Alt + F2 y escribimos en la caja de diálogo virt-manager.
Para crear una máquina virtual hacemos clic sobre el botón “Crear una máquina virtual nueva” y seguimos los pasos del asistente el cual es muy intuitivo. Después de revisar el hardware de la máquina virtual en proceso de creación, hacemos clic sobre el botón “Iniciar instalación” y comenzamos a instalar el equipo de la forma acostumbrada como si fuera un servidor físico.
Documentación Acompañante:
- /usr/share/doc/qemu
- /usr/share/doc/qemu-kvm
- /usr/share/doc/qemu-system
- /usr/share/doc/virt-manager
- /usr/share/doc/libvirt-bin
- Páginas del manual o “man“: qemu-img, virsh, virt-clone, virt-convert, virt-host-validate, virt-image, virt-install, virt-manager, virt-viewer, virt-xml-validate.
Sitios web:
- http://en.wikibooks.org/wiki/QEMU
- http://virt-manager.org
Tips
Redes Virtuales: por defecto, el Virt-Manager propone para la red virtual tipo NAT la subnet 192.168.122.0/24 y con un servidor interno DHCP. Si por casualidad borramos la red virtual “default”, lo cual NO recomendamos, y tratamos de crear una nueva y no podemos por cuestiones de permisos, vamos a la carpeta /etc/libvirt/qemu/networks, y si NO encontramos el archivo default.xml, lo creamos nuevamente con el siguiente contenido:
<network> <name>default</name> <bridge name="virbr0" /> <forward/> <ip address="192.168.122.1" netmask="255.255.255.0"> <dhcp> <range start="192.168.122.2" end="192.168.122.254" /> </dhcp> </ip> </network>
Como vemos, si editamos manualmente éste archivo, podemos declarar otra subnet y eliminar el DHCP. Siempre será mejor crear una nueva red virtual mediante la interfaz del Virt-Manager, activar la casilla Autoiniciar y seleccionarla cuando creemos una máquina virtual. Para evitar que se auto inicie la red virtual “default”, no seleccionamos la casilla Autoiniciar.
Almacenamiento: por defecto está ubicado en /var/lib/libvirt/images. La mejor opción es la de crear un nuevo Almacenamiento mediante la interfaz gráfica, y ubicarlo en el directorio o lugar que más nos convenga. Los archivos de configuración se encuentran en/etc/libvirt/storage/.
Crear discos duros con formato qcow2 (qemu copy on write) antes de crear una máquina virtual es una buena opción. Consulte man qemu-img.
Copia de seguridad de los archivos de configuración: Siempre hagan una copia de seguridad de los archivos de configuración ANTES de modificarlos manualmente.
Resumen
Como bien declaramos al inicio de nuestro artículo, la guía dada es solo una pequeña introducción al tema. Es imposible sustituir en un post a la extensa documentación de ésta potente herramienta. ¡Que la disfruten!.
¡Hasta la próxima aventura, Amigos!.