Instalación de Xen en Debian y sus Problemas

26 Aug

Hoy les voy a hablar de como he podido instalar Xen en Debian (Aplica a Debian Sarge, Etch y Lenny por igual) y los problemas mas comunes que he tenido al tratar de crear más de un Network Bridge. Ya tiempo atrás he hablado de la Virtualizacion con Xen en CentOS, y de como virtualizar una máquina Debian con Xen en un Dom0 CentOS, hoy les traigo uno que tenia en mi TODO list pero que por falta de tiempo no había podido colocar aquí.

Primero que nada debo decir que la instalación de Xen en Debian es bastante sencilla, si colocan en Google, como instalarlo seguramente les apareceran miles de tutoriales bastantes sencillos. Para los que les da un poco de flojera y dicen que ya que estan aquí que les explique como pues bien es asi.



PRIMER PASO: Instalación Xen en Debian

Lo primero que debemos hacer es usando nuestro gestor de paquetes ( si lo haré a la debian way, estamos en Debian no?) sera lo siguiente.

OJO!! esto aplica para i386 en el caso de AMD64 es necesario revisar la siguiente lista de paquetes y adaptarla a las necesarias.

apt-get install linux-image-2.6-xen-vserver-686 xen-hypervisor-3.0.3-1-i386-pae xen-tools xen-linux-system-2.6.18-4-xen-vserver-686 linux-headers-2.6-xen-vserver-686 libc6-xen bridge-utils

Esta es la lista necesaria de paquetes para poder lograr que nuestro Xen este completamente instalado en nuestro equipo. Luego de esto podremos reiniciar nuestro equipo, no sin antes revisar que kernel se tiene como default para el inicio. Esto lo podemos ver en /boot/grub/menu.lst, el kernel parametro “default” debe apuntar al numero que le corresponde a  linux-image-2.6-xen-vserver-686.

Existe un aspecto que debemos tomar en cuenta dependiendo de la cantidad de equipos que deseamos virtualizar. En Debian hay un fichero ubicado en /etc/modules que no nos dejará ejecutar mas de un número determinado de maquinas virtuales (no recuerdo exactamente cuantas) es por esto que debemos modificarlo y solo debería contener lo siguiente.

loop max_loop=64

A partir de este momento podemos reiniciar nuestro servidor, y continuar con el siguiente paso.

SEGUNDO PASO: Configuración XEN en DEBIAN

Después de iniciado nuestro servidor debemos hacer unas configuraciones especiales en los ficheros de Xen. El primero que debemos configurar es /etc/xen/xend-config.sxp en este archivo debemos comentar la linea que contiene (network-script network-bridge-dummy) y descomentar (network-script network-bridge) sustituyendola por (network-script network-multi-bridge).

Después de esto es necesario crear nuestro script de network-multi-bridge, en /etc/xen/scripts, el cual ha de contener lo siguiente:

#!/bin/sh

dir=$(dirname "$0")

"$dir/network-bridge" "$@" vifnum=1 netdev=eth1 bridge=xenbr1

La última línea la repetimos tantas veces como tarjetas de red tengamos para crear un bridge a cada una, pero debemos cambiar los números uno (1) por el correspondiente a la tarjeta que deseamos configurar, por ejemplo si queremos configurar la tarjeta eth2, con el bridge xenbr2 la línea debería ser de esta forma.

"$dir/network-bridge" "$@" vifnum=2 netdev=eth2 bridge=xenbr2

Por último es necesario editar en ese mismo directorio el archivo network-bridge. Para ello buscaremos dentro del archivo lo siguiente:
do_ifup() {
if ! ifup $1 ; then
if [ -n "$addr_pfx" ] ; then
# use the info from get_ip_info()
ip addr flush $1
ip addr add ${addr_pfx} dev $1
ip link set dev $1 up
[ -n "$gateway" ] && ip route add default via ${gateway}
fi
fi
}

Y lo sustituiremos por:
do_ifup() {
ifconfig $1 up
if [ -n "$addr_pfx" ] ; then
# use the info from get_ip_info()
ip addr flush $1
ip addr add ${addr_pfx} dev $1
ip link set dev $1 up
[ -n "$gateway" ] && ip route add default via ${gateway}
fi
}

Después de realizar todo esto, es recomendable reiniciar el equipo para verificar que los bridges están levantados correctamente sin problemas y que Xen arranca correctamente.

TERCER PASO: Instalación de Virtual Machines Debian en Xen

Para realizar la instalación de una Virtual Machine es tan fácil como ejecutar lo siguiente:
xen-create-image --hostname=SRVVIRTUAL01 \
--size=30Gb --swap=2048Mb --ip=xxx.xxx.xxx.xxx \
--memory=512Mb --arch=i386 --role=udev \
--netmask=255.255.255.0 --gateway=xxx.xxx.xxx.xxx \
--dir=/xen --dist=lenny --mirror=http://ftp2.de.debian.org/debian/ \
--passwd --image=sparse --fs=ext3

En lo particular yo hice un script que recibe los parámetros y hace la instalación, pero en Xen hay un archivo que hace exactamente lo mismoy hasta inclusive permite crear perfiles para distintas distribuciones basadas en Debian, eso de los dejo de tarea. =)

ACTUALIZACION: PREVIO CREACION DE VM’s

Hay un bug dentro de Debian para la creación de Maquinas virtuales que se resuelven de la siguiente forma.

  1. Hora en las Maquinas virtuales: hay que agregar en el fichero /sys/devices/system/clocksource/clocksource0/current_clocksource el nombre que nos provoque puede ser relojpruebas y luego permitir los relojes independientes a la VMS de esta forma echo 1 > /proc/sys/xen/independent_wallclock
  2. Agregar los Extras a la configuración de la VM para solucionar los problemas en el arranque: extra = ‘console=hvc0 xencons=tty clocksource=jiffies’
  3. Actualizar la hora en la VM: para esto es necesario ejecutar dpkg-reconfigure tzdata

Si les gustó no duden en seguirme en Twitter @rhoml

¿Quién es Rhommel Lamas?

Escribo en Talfin desde el 2006, soy un fanático de la libertad de expresión en todos sus sabores, fanboy, amante de la cultura libre, cloud computing, dispositivos móviles y de la vida en general. Emprendedor de corazón, y developer de Closet, me encantan los videojuegos, y conocer el mundo. También escribo en: Techironic mi Web Personal: Rhommell, me puedes encontrar también en Twitter: @rhoml y Facebook .

No te pierdas