Virtualizacion con XEN en debian

Como configurar un servidor debian 4.0 como dominio0 (máquina fisica) e instalar un debian como dominioU (máquina virtual).

Para instalar el sistema básico de xen hay que ejecutar el siguiente comando:

apt-get install xen-linux-system-2.6.18-5-xen-686 libc6-xen xen-tools bridge-utils

Al final parece que no es tan dificil instalarlo. Vamos a parametrizar un par de cosas más:

#Suele haber en /etc/modules línea con loop, añadir en esa línea “loop max_loop=64″(comprobar que no haya dos líneas loop, esto es para poder montar muchos dispositivos loop)
#echo loop max_loop=64 >>/etc/modules

# editar configuracion de red de xen en /etc/xen/xend-config.sxp
# descomentar línea (network-script network-bridge) y comentar la (network-script network-dummy)
# si tienes poca ram, editar tambien el tamaño de la memoria (por defecto deja 196M de RAM para la
# maquina anfitriona dom0) poner (dom0-min-mem 128)

#crear directorio para contener imagenes de xen
mkdir /home/xen

# configurar xen-tools con las opciones para nuestro sistema:

echo ‘hwcap 0 nosegneg’ > /etc/ld.so.conf.d/libc6-xen.conf # configurar las librerías con esto

rebotar y arrancar con el nuevo kernel de xen

Ahora vamos a configurar la herramienta de creación de máquinas virtuales. Para ello ejecutar:

echo dir=/home/xen >>/etc/xen-tools/xen-tools.conf o lvm=nombre volumen lvm
# change de kernel and initrd line to
dist=etch
kernel=/boot/vmlinux-2.6.18-5-xen-686
initrd=/boot/initrd.img-2.6.18-5-xen-686

# Para crear crear primera imagen ejecutar lo siguiente
xen-create-image –hostname=pruebaxen –size=2GB –swap=256Mb –ip=192.168.1.1 –netmask=255.255.255.0 –gateway=192.168.1.2 –force –memory=92Mb –debootstrap

(sería posible que se usasen lvm con –lvm=migrupovolumen)

# al de un buen rato creara toda la imagen y el fichero de configuracion, en nuestro caso /etc/xen/pruebaxen.cfg

# para arrancar la máquina virtual ejecutar:
xm create pruebaxen.cfg

# para conectarse a la consola xm console pruebaxen, para apagarla xm shutdown pruebaxen

# si queremos que arrance automaticamente ejecutar
ln -s /etc/xen/pruebaxen.cfg /etc/xen/auto

Un Live migration es mover una máquina virtual que se está ejecutando desde una máquina física a otra a tiempo real. Para hacer esto es necesario que ambas máquinas físicas tengan acceso al disco virtual y después ejecutar un comando (funciona de puta madre, es más haciendo pings no te enteras de que has cambiado de máquina). Más información sobre esto en:
http://ubanov.wordpress.com/2008/09/14/live-migration-en-xen/ o en https://virt.108.redhat.com/articles/2007/01/15/xen-live-migration.pdf

Si lo que quieres es emular puestos en lugar de servidores mira el siguiente link: http://ubanov.wordpress.com/2008/09/14/virtualizacion-de-escritorios-en-linux/

En Xen es posible asignar un cierto hardware a una de las máquinas virtuales (yo lo he probado montando una tarjeta de Digium en un asterisk sobre máquina virtual y me ha estado funcionado perfectamente). Para hacer hay que decirle al kernel que ignore la tarjeta y configurar en el xen que la tenga asignada una determinada máquina virtual.

Con lspci (del paquete pciutils) buscar id de la tarjeta que quieres asignar, por ejemplo 0:12.0

Hacer que kernel arranque con pciback.hide=(00:12.0) (si quisieras dos tarjetas poner pciback.hide=(00:12.0)(00:13.0)
para ello cambiar fichero /boot/grub/menu.lst
rearrancar
añadir a fichero .cfg de la maquina la línea: pci=[‘0,12,0’]

[en suse no me deja añadirlo al grub, dado que no carga automaticamente el modulo pciback por que no esta probado por novell (de hecho nos deja el kernel en modo tainted).
En su lugar ejecutar “modprobe pciback hide=(00:12.0)”]

la información básica extraida de: http://www.howtoforge.com/ubuntu-7.10-server-install-xen-from-ubuntu-repositories (es para ubuntu pero es muy parecida a la de debian)

script para integrar xen en heartbeat?!?
http://www.novell.com/coolsolutions/tools/19733.html

homepage de xen
http://xen.xensource.com/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: