Virtualización con Xen en Debian 5 (Lenny) 13 Abril 2009
Posted by ubanov in Informática-Linux.Tags: debian, linux, virtualizacion, xen
trackback
Por Internet hay muchas guías de cómo funciona Xen. Yo voy a dar un par de notas que he escrito sobre cómo configurar un servidor debian 5.0 como dominio0 (máquina fisica) e instalar un debian como dominioU (máquina virtual).
Este post es una actualización de otro anterior que escribí para Debian 4. Ver artículo viejo aquí.
Si estás interesado en otro soft de virtualización, lee el siguiente post en el que hago una comparativa subjetiva de varios soft de virtualización.
Para instalar el sistema básico de xen hay que ejecutar el siguiente comando:
apt-get install xen-linux-system-2.6.26-1-xen-686 libc6-xen xen-tools bridge-utils
Actualización 22/6/09: han cambiado el kernel y ahora sería xen-linux-system-26.26-2-xen-686
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
no se si sigue siendo necesario lo anterior, pero por si acaso ya lo he hecho. Despues 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
# cambiar la distribucion por defecto
dist=lenny
# 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 –dist=lenny
(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
# al crear la imagen de lenny si la arrancas directamente la consola no aparece. Para arreglarlo es necesario cambiar una cosa, para ello debemos montar la imagen.
cd /home/xen/domain/pruebaxen
mkdir tmp
mount disk.img tmp -o loop
# editar el fichero mnt/etc/inittab, comentar la linea de tty1 por hvc0
#1:2345:respawn:/sbin/getty 38400 tty1
1:2345:respawn:/sbin/getty 38400 hvc0
umount tmp
# 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
El resto de cosas de aquí en adelante no las he probado en Debian 5, con lo que dejo las mismas notas que tenía en su momento
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/
[...] He actualizado esta entrada para máquinas con debian 5.0. El nuevo post es el siguiente: http://ubanov.wordpress.com/2009/04/13/virtualizacion-con-xen-en-debian-5-lenny/ [...]
Buenas,
Te hago una consulta …
Tengo actualmente, un Xen corriendo con 4 VMs en un Debian Etch (4.0).
Estoy pensando en migrar el xen host a Debian Lenny .. unicamente. No las VM’s corriendo alli.
Es posible esto? alguien lo ha hecho? experiencias? links? ayuda!
yo entiendo que se podría hacer y que no dará problemas, pero no lo he probado… si lo pruebas ya nos contarás…. quizás lo más fácil es instalar otra máquina y configurarle una de las 4 VMs….
lo mismo ya lo sabéis pero para evitar tener que montar la imagen en tmp y no tener problemas con las consolas se hace imprescindible lo siguitente:
Añadir a xen-tools.conf
serial_device=hvc0
extra=’console=hvc0 xencons=tty’
Al creal la máquina virtual (xen-create-image) añadir –role=udev
Saludos
OK.. Cotolo!!!!
yo no lo sabia.. jejeje
Perfecto.. ya funciona.. ya tengo ssh..
saludos..
Hola..
y como uso el puerto serie fisico desde la maquina virtual.. ?
estoy usando minicom con ttyS0, hvc0, y no funciona..
alguna idea..
saludos y gracias..
Gracias por estas “notas” y por el resto de aportaciones. Desearía que tanta información que encuentras por ahí se convirtieran en “notas” como estas. Muy práctico, sencillo y, sobre todo útil esta entrada.
Una consulta: ¿y si quisiera crear imágenes (disk.img) que incrementen su tamaño dinámicamente, cómo podría hacerlo?
Gracias de antemano.
[...] Virtualización. Es una tecnología que está muy de moda últimamente. Con virtualización se instalan varias máquina virtuales, sobre una única máquina física. Esto consigue consolidar servidores lo cual aporta: se ahorran gastos eléctricos, se aprovechan mejor los recursos, se bajan los costes de mantenimiento de las máquinas, los gastos de administración, permite simplificar las soluciones de alta disponibilidad… Yo creo que las mejores soluciones de virtualización open source son Xen y KVM. Hace algún hice una comparación sobre soluciones de virtulización para linux, puede leerse aquí. También escribí un artículo sobre cómo instalar Xen en Debian (aquí). [...]
hola al querer conectarme por medio xm console, se queda en
Starting periodic command scheduler: crond.
y no responde mas..Alguien sabe porque puede ser??
[...] Tengo una entrada en la que describo cómo instalar xen en un debian 5, pulsar aquí. [...]