Xen en 10 minutos con debian etch/lenny

Este es un pequeño intento para hacer un tuto para tener instalado xen y andando xen en 10 minutos

Xen es una máquina virtual de código abierto desarrollada por la Universidad de Cambridge. La meta del diseño es poder ejecutar instancias de sistemas operativos con todas sus características, de forma completamente funcional en un equipo sencillo. Xen proporciona aislamiento seguro, control de recursos, garantías de calidad de servicio y migración de máquinas virtuales en caliente. Los sistemas operativos deben ser modificados explícitamente para correr Xen (aunque manteniendo la compatibilidad con aplicaciones de usuario). Esto permite a Xen alcanzar virtualización de alto rendimiento sin un soporte especial de hardware.

para mas informacion:
http://es.wikipedia.org/wiki/Xen

Sin mas comencemos la instalación y configuración de xen para toda la familia.

para instalar todo lo que necesitamos para utilizar xen solamente por consola como root ejecutamos el siguiente comando

$ aptitude install xen-linux-system-2.6.18-6-xen-686
aclaracion: donde dice 2.6.18.6 fijate que version del nucleo esta diponible al momento que hagas la instalacion ya que es posible que haya actualizaciones desde que hice este tutorial.

la salida que nos daria ese comando deberia de ser similar a la siguiente:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Leyendo las descripciones de las tareas... Hecho
Construir la base de datos de etiquetas... Hecho
Se instalarán automáticamente los siguientes paquetes NUEVOS:
bridge-utils libc6-xen linux-image-2.6.18-6-xen-686 linux-modules-2.6.18-6-xen-686 xen-hypervisor-3.0.3-1-i386-pae xen-utils-3.0.3-1
xen-utils-common
Se ELIMINARÁN automáticamente los siguientes paquetes:
libc6-i686
Se instalarán los siguiente paquetes NUEVOS:
bridge-utils libc6-xen linux-image-2.6.18-6-xen-686 linux-modules-2.6.18-6-xen-686 xen-hypervisor-3.0.3-1-i386-pae
xen-linux-system-2.6.18-6-xen-686 xen-utils-3.0.3-1 xen-utils-common
Se ELIMINARÁN los siguientes paquetes:
libc6-i686
0 paquetes actualizados, 8 nuevos instalados, 1 para eliminar y 0 sin actualizar.
Necesito descargar 17,6MB de ficheros. Después de desempaquetar se usarán 50,7MB.
¿Quiere continuar? [Y/n/?]

aceptamos las dependencias que nos quiera instalar y a esperar que puede llegar a tomar un rato una vez que el proceso se completo debemos modificar algunos archivos para tener a xen con una configuración básica y funcional

con nuestro editor de textos favorito ahora editamos los siguientes archivos
/etc/xen/xend-config.sxp
buscamos la linea que diga “(network-script network-bridge)” y la descomentamos
luego buscamos la que diga “(vif-script vif-bridge)” y nos fijamos que este descomentada, de esta forma lo que logramos es que la maquina virtual este “conectada” a la red fisica del domain0 (el domain0 es donde se corren todas las VM’s), y para terminar en caso que lo creas necesario podes asignar la memoria minima con la cual se puede quedar el domain0, eso es asi por que por cada vm que ejecutes esa memoria sera reservada exclusivamente para esa vm osea que si tenes 512mb de ram y corres una vm de 256mb automaticamente el domain0 pasara a tener 256mb y todas las aplicaciones que este corriendo ahi deberan de arreglarce con esa cantidad de memoria, toda esta configuracion la podes hacer desde la opcion que dice “(dom0-min-mem 128)“.

una vez terminado esto modificamos el archivo “/etc/xen-tools/xen-tools.conf
dentro de este archivo debemos modificar lo siguiente:
dir = /home/xen
esta opcion es donde se van a crear las nuevas imagenes de las VM que crees con xen-tools
debootstrap = 1
esta opcion especifica que tamplate usar para la vm que creara xen-tools lo que puedes hacer despues de crear la primera maquina es poner el fs en una tar.gz y usar la opcion tar que es mucho mas rapida
size = 3Gb # Disk image size.
esta opcion especifica el tamaño de disco inicial que se dara a las vm’s por defecto desde el xen-tools
memory = 128Mb # Memory size
esta opcion especifica el tamaño de la memoria ram que se dara por defecto desde xen-tools
swap = 512Mb # Swap size
esta opcion especifica el tamaño de la swap por defecto
fs = ext3 # use the EXT3 filesystem for the disk image.
esta opcion especifica el sistema de archivos por defecto
dist = etch # Default distribution to install.
esta opcion especifica la distribucion a usar por defecto
image = sparse # Specify sparse vs. full disk images.
esta opcion especifica como sera creada la vm full disk asignara el tamaño de disco al momento de crear la maquina virtual pero sparse solamente reservara el espacio lo que hara que sea un poco mas lenta la escritura pero mas rapida de crearla
dhcp = 1
si tienes un servidor dhcp en tu red puedes descomentar esta opcion y comentar las siguientes.
gateway = 192.168.0.1
creo que es bastante clara por si misma pero por las dudas esta especifica el gateway por default
netmask = 255.255.255.0
creo que es bastante clara por si misma pero por las dudas esta especifica la mascara de subred
mirror = http://ftp.debian.org/debian/
este es repocitorio que se utilizara si tienes alguna copia local en el disco de tu pc puede ponerlo aca y te ahorraras de tener que bajar todo cada vez que crees una vm.

Con esto ya deberiamos de tener configurado a xen, ahora solo bataria con reiniciar el equipo y cargar el nucleo con el hypervisor de xen.

una vez iniciado el equipo nos daremos cuenta que esta todo bien al poner uname -r y nos diga:
2.6.18-6-xen-686

Para crear nuestra primera vm dependiendo de la configuracion que hayas elejido en el xen-tools podes utilizar los siguiente comandos:
si dejaste habilitado el dhcp bastara con poner
xen-create-image --hostname=test-vm
en cambio si no tenes un dhcp en tu red o simplemente te gusta hacer todo a mano los siguientes modificadores podes crear una vm.
xen-create-image --hostname=test-vm --ip=xxx.xxx.xxx.xxx
en caso que quieras poner otros valores a los que asignaste por defecto podes agregarle por ejemplo --memory=32MB --size=3GB para mas informacion “xen-create-image --help

si todo sale bien el comando xen-create-image deberia devolverte algo similar a esto dependiendo de las opciones que hayas elejido

xen-create-image --hostname=test-vm --ip=192.168.0.12 --memory=32MB --size=1GB --swap=100MB --force


General Infomation
--------------------
Hostname : test-vm
Distribution : etch
Fileystem Type : ext3

Size Information
----------------
Image size : 1GB
Swap size : 100MB
Image type : sparse
Memory size : 32MB
Kernel path : /boot/vmlinuz-2.6.18-5-xen-vserver-686
Initrd path : /boot/initrd.img-2.6.18-5-xen-vserver-686

Networking Information
----------------------
IP Address 1 : 192.168.0.12
Netmask : 255.255.255.0
Gateway : 192.168.0.1


Creating swap image: /home/xen/domains/test-vm/swap.img
Done

Creating disk image: /home/xen/domains/test-vm/disk.img
Done

Creating ext3 filesystem on /home/xen/domains/test-vm/disk.img
Done

Installing your system with tarfile /home/xen/template.tar
Done

Running hooks
Done

No role script specified. Skipping

Creating Xen configuration file
Done
Setting up root password
Enter new UNIX password:
Retype new UNIX password:
passwd: contraseña actualizada correctamente
All done

Logfile produced at:
/var/log/xen-tools/test-vm.log

luego con ejecutar:
xm create /etc/xen/test-vm.cfg ya tenemos nuestra vm corriendo y podemos accederla por ssh para hacer lo que queramos…

por si le es util a alguien de como adjunto un configuracion de ejemplo completa y para la proxima actualizacion la virtualizacion de un SO que no sea Linux
bueno espero que esto le sirva a alguien salu2 a todos

Configuracion de ejemplo de una Maquina Virtual de Windows

Configuracion de Ejemplo de una Maquina Linux Normal

Configuracion de Ejemplo de Xen Tools

Configuracion de Ejemplo de Xen

Update al 11/09/2009:
el howto se mantiene exactamente igual, salvo que si estamos usando lenny cuando hacemos el:
xen-create-image debemos agregar como parametro: --role udev

Leave a Reply

*