Utilización de xen-tools

El paquete xen-tools incluye una serie de scripts para facilitar la creación de nuevos dominios, aunque sólo permite instalar algunas distribuciones GNU/Linux. Este paquete depende de debootstrap, el cual se instalará también.

Editamos el fichero /etc/xen-tools/xen-tools.conf y modificamos las siguientes líneas (Suponiendo que estamos en una red local 10.0.0.0/24):

#
# Directorio por defecto para las imágenes
#

dir = /vm

#
# Método para obtención de los paquetes del nuevo dominio
#

debootstrap = 1

#
#  Opciones de disco y tamaño
#

size   = 4Gb      # Disk image size.
memory = 64Mb     # Memory size
swap   = 128Mb    # Swap size
fs     = ext3     # use the EXT3 filesystem for the disk image.
dist   = etch     # Default distribution to install.
image  = sparse   # Specify sparse vs. full disk images.

#
# Configuración de red
#

gateway   = 10.0.0.254
netmask   = 255.255.255.0

#
# Núcleo para el nuevo dominio
#
kernel = /boot/vmlinuz-2.6.18-4-xen-686
initrd = /boot/initrd.img-2.6.18-4-xen-686

#
# Réplica a utilizar por debootstrap
#
mirror = ftp://ftp.rediris.es/debian/
En este fichero incluimos todos los parámetros que sean comunes para todas las imágenes que vamos a crear y en la línea de instrucciones añadiremos los parámetros específicos de cada dominio. El fichero va autocomentado y lo único que es necesario aclarar es el método de instalación. Se utiliza la herramienta debootstrap que instala un sistema Debian a través de la red. Esta aplicación suele usarse para construir entornos enjaulados (chroot jail) y es apropiada para la creación de dominios nuevos con Xen.

Una vez configurado xen-tools, ejecutamos la siguiente instrucción:

xen-create-image --hostname brun --ip 10.0.0.2
Donde especificamos el nombre y la dirección IP del nuevo dominio.

La situación ideal es cuando instalamos un dominio que corresponde con la misma versión que el dom0, ya que debootstrap en lugar de utilizar el repositorio remoto, simplemente copiará los paquetes de la caché de dom0 al domU, para luego terminar de configurar el nuevo dominio. En nuestro caso utilizamos un domU que es también Debian etch.

La salida producida por la instrucción anterior es algo como:

General Infomation
--------------------
Hostname       :  brun
Distribution   :  etch
Fileystem Type :  ext3

Size Information
----------------
Image size     :  4Gb
Swap size      :  128Mb
Image type     :  sparse
Memory size    :  64Mb
Kernel path    :  /boot/vmlinuz-2.6.18-4-xen-686
initrd path    :  /boot/initrd.img-2.6.18-4-xen-686

Networking Information
----------------------
IP Address 1   : 10.0.0.2
Netmask        : 255.255.255.0
Gateway        : 10.0.0.254


Creating swap image: /vm/domains/brun/swap.img
Done

Creating disk image: /vm/domains/brun/disk.img
Done

Creating ext3 filesystem on /vm/domains/brun/disk.img
Done

Installing your system with debootstrap mirror ftp://ftp\
.rediris.es/debian/
Done

Running hooks
Done

No role script specified.  Skipping

Creating Xen configuration file
Done
All done

Logfile produced at:
         /var/log/xen-tools/brun.log
Que genera el fichero de configuración /etc/xen/brun.cfg.

La imagen y el fichero de swap del nuevo dominio están en:

/vm/domains/brun/
Tal y como podemos comprobar:
ayla:/vm/domains/brun# ls -lh
total 2,2G
-rw-r--r-- 1 root root 4,0G 2006-08-31 22:05 disk.img
-rw-r--r-- 1 root root 128M 2006-08-31 22:05 swap.img
Puesto que el fichero disk.img consiste en la imagen de un sistema de ficheros puede montarse y comprobarse su contenido, haciendo un simple:
mount -o loop /vm/domains/brun/disk.img /mnt
Y comprobando el contenido del directorio montado, vemos que tiene la estructura completa de un sistema GNU/Linux, aunque de tamaño reducido:
ayla:/mnt# ls
bin   dev  home    lib         media  opt   root  srv  tmp  var
boot  etc  initrd  lost+found  mnt    proc  sbin  sys  usr
ayla:/mnt# du -hs /
262M    /

Alberto Molina Coballes 2007-05-17