You are on page 1of 5

Instalar Xen en Debian con LVM y bridges a varias interfaces de red

Este artculo describe cmo instalar Xen en Debian GNU/Linux y cmo configurar las interfaces de
red para ser utilizadas como bridges, ha sido probado tanto en Debian 6.0 "Squeeze" como en
Debian 7.0 "Wheezy".
Contenido

1 Instalacin de Debian
2 Instalacin y configuracin de Xen
2.1 Buenas prcticas
3 Ajustes de red
4 Creacin de las mquinas virtuales
4.1 Creacin de la imagen
4.2 Imagen de Debian
4.3 Imagen de Ubuntu
4.4 Agregar particin
4.5 Uso de la mquina virtual
4.6 Aumentar tamao de una particin
5 Otras rdenes importantes
6 Fuentes

Instalacin de Debian
Se debe instalar Debian configurando la particin principal como LVM. Para que Grub2 pueda
instalarse sin problemas se debe crear una particin especial en primer lugar de tipo biosgrub (1
Mb es suficiente) (segn el tipo de servidor es posible que sea necesaria o no) y otra para /boot de
256Mb (puede ser de tipo ext4). El resto del disco duro puede ser asignado a LVM en el que se
crear un grupo nico (VG) en el que dentro se crear una particin (LV) para / (se puede llamar
root) de un tamao moderado y otro LV para swap, del tamao apropiado segn el tamao de la
RAM. El resto del espacio se deja sin asignar, pues posteriormente se crearn los LVs de las
mquinas virtuales.
Al finalizar la instalacin se puede comprobar el estado del LVM con los comandos vgdisplay y
lvdisplay.

Instalacin y configuracin de Xen


A menos que se indique lo contrario, en este artculo todas las rdenes han de ser
ejecutadas como usuario root.
Asegrese que se han configurado los repositorios de manera apropiada.
Instalar XEN por medio de la siguiente instruccin.
aptitude install xen-hypervisor xen-linux-system xen-utils xenstore-utils xenwatch
xen-tools

Cambiar la prioridad de arranque del kernel para que arranque el hypervisor


mv /etc/grub.d/10_linux /etc/grub.d/50_linux
update-grub2

Buenas prcticas
Limitar y proteger el uso de memoria y CPUs de la dom0
Como usuario root editar el archivo /etc/default/grub, tal como se muestra a continuacin.
vi /etc/default/grub
Agregar la siguiente lnea
GRUB_CMDLINE_XEN_KERNEL="dom0_mem=512M"
Actualizar la configuracin de GRUB ejecutando como root la siguiente orden.
update-grub2
Como usuario root editar el archivo /etc/xen/xend-config.sxp, tal como se muestra a continuacin.
vi /etc/xen/xend-config.sxp
Agregar o modificar las siguientes lneas
(dom0-min-mem 512)
(dom0-cpus 1)

Ajustes de red

Debian tiene una configuracin diferente a la de Upstream, en la que todo se maneja mediante el
script network-bridge. http://wiki.debian.org/Xen#Configure_Networking
yhttp://wiki.xen.org/wiki/Network_Configuration_Examples_%28Xen_4.1%2B
%29#Example_Debian-style_bridge_configuration_.28e.g._Debian.2C_Ubuntu.29
Editar como root el archivo /etc/network/interfaces
Cambiamos la configuracin normal de eth0, eth1, etc. (quitamos cualquier configuracin de IP)
por
iface eth0 inet manual
De manera similar con todas las dems interfaces disponibles. Y agregar los bridges.
auto xenbr0 xenbr1 xenbr2 xenbr3
iface xenbr0 inet static
bridge_ports eth0
bridge_stp no
address 10.10.20.40
netmask 255.255.255.0
network 10.10.20.0
broadcast 10.10.20.255
gateway 10.10.20.1
dns-nameserver 10.10.20.20 10.10.20.21
dns-search salud.gob.sv
Una entrada de iface por cada bridge (xenbr1, xenbr2, etc.), obviamente.
Verificar que en /etc/xen/xend-config.sxp est comentado
# (network-script network-bridge)
y descomentado

(vif-script vif-bridge)
Luego en los ficheros de configuracin de cada mquina virtual se indicar qu bridge se usar
aparte de otros parmetros.
vif=[ 'bridge=xenbr1',.... ]
o indicarlo en el xm-create-image (parmetro --bridge=xenbr#)
Reiniciar (reboot) y probar que todo funciona tras el reinicio con
xm dmesg
Si no salen un montn de instrucciones definitivamente hay algn problema u omisin

Creacin de las mquinas virtuales


Crear las mquinas virtuales con xen-tools, as que retocamos/revisamos algunos parmetros:
vi /etc/xen-tools/xen-tools.conf
[...]
# dir = /var/xen
[...]
lvm = VG01
[...]
fs
= ext4
[...]
gateway
= 10.10.20.1
netmask
= 255.255.255.0
broadcast = 10.10.20.255
[...]
passwd = 1
[...]
ext4_options
= noatime,nodiratime,errors=remount-ro
[...]
serial_device = hvc0 #default
[...]
disk_device = xvda #default
[...]

Creacin de la imagen
Imagen de Debian
Para crear una imagen de Debian, ejecutar la siguiente orden como usuario root.
xen-create-image --passwd --hostname=xen-server.salud.gob.sv --vcpus=2 --size=20Gb
\
--swap=512Mb --ip=10.10.20.45 --bridge=xenbr1 --memory=2048Mb --arch=amd64
--role=udev

Imagen de Ubuntu

Para rear una imagen de Ubuntu en lugar de Debian (cambiar lucid por la versin deseada, p.e.
natty)
xen-create-image --passwd --hostname=xen-server-ubuntu.salud.gob.sv --dist
lucid \
--mirror=http://sv.archive.ubuntu.com --vcpus=4 --size=100Gb --swap=1Gb
--ip=10.10.20.46 \

--bridge=xenbr2 --memory=4096Mb --arch=amd64 --role=udev


Es posible que falten algunos paquetes tiles para que todo quede bien, que por supuesto pueden
instalarse normalmente una vez arrancada la mquina:
apt-get install wget language-pack-es aptitude vim

Agregar particin

http://wiki.stocksy.co.uk/wiki/Creating_Xen_Machines_on_Debian_Lenny#Creating_a_.2Fvar_partitio
n_for_the_domU
Ejecutar en bash de la dom0
LVM_VG=$(/bin/grep lvm /etc/xen-tools/xen-tools.conf | /bin/sed -e 's/lvm = //')
XEN_HOSTNAME=xen-server.salud.gob.sv
SIZE=1024G
/sbin/lvcreate -n $XEN_HOSTNAME-var -L $SIZE $LVM_VG
/sbin/mkfs.ext4 -m 1 /dev/$LVM_VG/$XEN_HOSTNAME-var
if [ $(/bin/grep "disk[\t ]*=.*\]" /etc/xen/$XEN_HOSTNAME.cfg | /usr/bin/wc
--lines) -eq 0 ]; then
/bin/sed -i -e "/^disk[\t ]*=.*/a\\
'phy:/dev/$LVM_VG\/$XEN_HOSTNAME-var,xvda3,w'," \
/etc/xen/$XEN_HOSTNAME.cfg
else
/bin/sed -i -e "s/^\(disk[\t ]*=.*\)\]/\1, 'phy:/dev/$LVM_VG\/$XEN_HOSTNAMEvar,xvda3,w' ]/" /etc/xen/$XEN_HOSTNAME.cfg
fi
Parar la mquina virtual, pues vamos a hurgar en sus particiones:
xm shutdown $XEN_HOSTNAME
Ahora editamos el fstab de la domU donde queremos agregar la particin
/bin/umount /dev/$LVM_VG/$XEN_HOSTNAME-disk
MOUNT_POINT=$(/bin/mktemp -d)
/bin/mount /dev/${LVM_VG}/${XEN_HOSTNAME}-disk ${MOUNT_POINT}
/bin/echo "/dev/xvda3
/var
ext4
defaults
0
/usr/bin/tee -a ${MOUNT_POINT}/etc/fstab
VAR_MOUNT_POINT=$(/bin/mktemp -d)
/bin/mount /dev/${LVM_VG}/${XEN_HOSTNAME}-var ${VAR_MOUNT_POINT}
/bin/cp -a ${MOUNT_POINT}/var/* ${VAR_MOUNT_POINT}
/bin/umount ${VAR_MOUNT_POINT}
/bin/umount ${MOUNT_POINT}
Reiniciar la mquina virtual del todo
xm shutdown xen-server.salud.gob.sv
xm create /etc/xen/xen-server.salud.gob.sv.cfg

Uso de la mquina virtual

Arrancarla
xm create /etc/xen/xen-server.salud.gob.sv.cfg
Entrar a la mquina (para salir de la consola usar ctrl+])
xm console xen-server.salud.gob.sv
Arranque automtico:

1" |

mkdir /etc/xen/auto
ln -s /etc/xen/xen-server.salud.gob.sv.cfg /etc/xen/auto

Aumentar tamao de una particin

Para aumentar el tamao de una particin (NO reducir, se corrompe el sistema de archivos
irremediablemente)
Por ejemplo agregar 100 Gb al /var de una mquina virtual.
xm shutdown xen-server.salud.gob.sv
lvresize -L +100G /dev/VG01/xen-server.salud.gob.sv-var
e2fsck -f /dev/VG01/xen-server.salud.gob.sv-var
resize2fs /dev/VG01/xen-server.salud.gob.sv-var
xm create xen-server.salud.gob.sv.cfg

Otras rdenes importantes


Apagado forzado
xm destroy <name>
Apagado normal
xm shutdown <name>
Listar todas las mquinas virtuales
xm list
Listado de todas las rdenes
xm help

You might also like