Máquinas virtuales con Xen en Debian
Disclaimer: un error en las operaciones puede provocar desde la desconexión del servidor hasta la destrucción total de los datos. ¡OJITO!
Para montar raídamente máquinas virtuales hay que hacer lo siguiente:
- Instalación del software necesario
- Instalar los paquetes con el kelmer Xen y las herramientas adecuadas:
apt-get install xen-linux-system-2.6.26-2-xen-amd64
Esto es para montar máquinas a pelo. Si queremos más facilidades, Debian proporciona unos scripts estupendos con el paquete xen-tools:
apt-get install xen-tools
Configuración del demonio Xend
Hay que toquetear algunas cosas en /etc/xen/xend-config.sxp:
...
(network-script network-bridge) ...
(vif-script vif-bridge) ...
Configuración de los scripts de creación de domU's
Esto fue de lo que más dolor de cabeza dio, por culpa de la opción arch:
dir = /home/xen ... install-method = debootstrap ... size = 10Gb
#
Disk image size. memory = 1024Mb
#
Memory size swap = 512Mb
# Swap size
# noswap = 1
# Don't use swap at all for the new system.
fs = ext3
# use the EXT3 filesystem for the disk image.
dist = lenny
# Default distribution to install.
image = sparse
# Specify sparse vs. full disk images.
...
gateway = 193.144.59.1 netmask = 255.255.255.0 ...
#ojito con esta opción. Teóricamente debería estar descomentada, pero no funciona si lo haces
# arch=[amd64]
#
#
# The default mirror for debootstrap to install Debian-derived distributions
# mirror = http://ftp.nl.debian.org/debian/
...
# You may specify the things to use here:
#aunque ponga que toma hvc0 como default, en realidad no lo hace, con lo que te quedas
#sin consola :-P
serial_device = hvc0 #default
# serial_device = tty1
#
# disk_device = xvda #default
# disk_device = sda
Creación de domU's
Para crear una máquina virtual, en un archivo, que se alojará en este caso en /home/xen:
xen-create-image --hostname=pepe --ip=ip.de.pe.pe --role udev
(lo de --role udev viene a cuento de lo mismo de poner hvc0 como consola)
Lanzamiento de domU's ya existentes
Al crear las máquinas virtuales, genera los archivos de imagen y el archivo de configuración del arranque del domU, que guarda en /etc/xen:
xm create -c /etc/xen/mimaquinavirtual.cfg
Para que las máquinas virtuales se lancen en el momento de arrancar el sistema de forma automática, hay que hacer un enlace de /etc/xen/mimaquinavirtual.cfg a /etc/xen/auto
Notas adicionales
Con todo esto, tenemos, por un lado, la interfaz del dom0 eth0, el bridge (que al no haberlo construído a mano, no aparece como xenbr0 al hacer ifconfig), y una interfaz virtual vif-algo que se puentea con la eth0 del domU. Para configurar la red no hay que hacer nada en especial, salvo por tener en cuenta que:
- un problema que he tenido, es al crear un domU con configuración de un diferente segmento de red que el del dom0. Solución rápida: que todas las IP's de dom0 y domU's se configuren dentro del mismo segmento de red
- el otro problema, está con las reglas del firewall. Se haga a mano, o automáticamente con los scripts que llama xend, hay que hacer que primero deje pasar los paquetes forwarded al domU, y después filtrar al dom0. Estoy en fase de mejorar la solución
Y por cierto... Xen se muere, ¡viva KVM!