jump to navigation

Virtualización con Xen en Debian 5 (Lenny) 13 abril, 2009

Posted by ubanov in Informática-Linux.
Tags: , , ,
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:
https://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: https://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/

Comentarios»

1. Virtualización con Xen en Debian « El Weblog de Ivan Ricondo (Ubanov) - 13 abril, 2009

[…] He actualizado esta entrada para máquinas con debian 5.0. El nuevo post es el siguiente: https://ubanov.wordpress.com/2009/04/13/virtualizacion-con-xen-en-debian-5-lenny/ […]

2. Marcos - 16 abril, 2009

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!🙂

3. ubanov - 24 abril, 2009

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….

4. Cotolo - 3 septiembre, 2009

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

5. eldespojo - 29 septiembre, 2009

OK.. Cotolo!!!!
yo no lo sabia.. jejeje

Perfecto.. ya funciona.. ya tengo ssh..

saludos..

6. eldespojo - 28 octubre, 2009

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..

7. Johny - 31 octubre, 2009

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.

8. Programas Open Source para la empresa « El Weblog de Ivan Ricondo (Ubanov) - 4 noviembre, 2009

[…] 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í). […]

9. samuelito - 11 noviembre, 2009

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??

10. Comparativa soluciones virtualización para Linux « El Weblog de Ivan Ricondo (Ubanov) - 7 diciembre, 2009

[…] Tengo una entrada en la que describo cómo instalar xen en un debian 5, pulsar aquí. […]

11. Rudy - 3 mayo, 2010

Cuando trato de colocar tu comando (el primero) me sale lo siguiente:

Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
No se pudieron instalar algunos paquetes. Esto puede significar que
usted pidió una situación imposible o, si está usando la distribución
inestable, que algunos paquetes necesarios no han sido creados o han
sido movidos fuera de Incoming.
La siguiente información puede ayudar a resolver la situación:

Los siguientes paquetes tienen dependencias incumplidas:
libc6-xen: PreDepende: libc6 (= 2.7-18lenny2) pero 2.10.2-6 va a ser instalado
xen-linux-system-2.6.26-1-xen-686: Depende: xen-hypervisor-3.2-1-i386 pero no es instalable o
xen-hypervisor-3.2-1-amd64 pero no es instalable
E: Paquetes rotos

Alguien que pueda ayudarme a resolver este issue?


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: