Imprimir

Crear y manejar máquinas virtuales Xen

  1. Instalar Xen Tools (xen-tools.org, paquete xen-tools): las Xen Tools son una serie de scripts que facilitan la administración de máquinas virtuales Xen.
  2. Crear la imagen de un domU: para crear la imagen de un nuevo domU el comando es:
    # xen-create-image --hostname xen01 --ip 192.168.0.130
    • --hostname: nombre del nuevo dominio.
    • --ip: dirección IP del nuevo dominio.

    Este comando hace bastantes cosas:

    • creará la imagen de xen01 en /home/xen/domains/xen01/disk.img, con formato ext3.
    • creará la swap en /home/xen/domains/xen01/swap.img
    • instalará el sistema mediante debootstrap (igual que chroot) usando el mirror seleccionado.
    • nos pedirá un password para root y creará en xen01 los mismos usuarios que tiene dom0.
    • creará el fichero de configuración /etc/xen/xen01.cfg que se usará para activar xen01.

    El archivo imagen del nuevo dominio /home/xen/domains/xen01/disk.img es la imagen de un sistema de ficheros, por lo que puede montarse y comprobarse su contenido:

    # mount -o loop /home/xen/domains/xen01/disk.img /mnt

    Vemos que tiene la estructura completa de un sistema Linux de tamaño reducido:

    # ls /mnt
    bin   dev  home    lib         media  opt   root  srv  tmp  var
    boot  etc  initrd  lost+found  mnt    proc  sbin  sys  usr
     
    # df /mnt
    S.ficheros                        Bloques  Usado   Dispon  Uso%  Montado
    /home/xen/domains/xen01/disk.img  4128448  388268  3530468  10%  /mnt

    Para comprobar que el nuevo dominio ha sido creado y su configuración:

    # xen-list-images
    Name: xen01
    Memory: 128
    IP: 192.168.0.130

    El comando que crea las imágenes de los nuevos dominios (xen-create-image) utiliza el archivo de configuración /etc/xen-tools/xen-tools.conf, que contiene los parámetros comunes a todos los domU que creemos (en la línea de comandos sólo pondremos los parámetros específicos de cada dominio, --hostname y --ip). Su contenido será similar a:

    # Directorio por defecto para las imágenes
    dir = /home/xen
     
    # Método para obtención de los paquetes
    debootstrap = 1
     
    #  Opciones de disco y tamaño
    size   = 4Gb      # Disk image size.
    memory = 128Mb    # Memory size
    swap   = 256Mb    # 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   = 192.168.0.1
    netmask   = 255.255.255.0
     
    # Establecer password para root al crear la imagen
    passwd = 1
     
    # Mismos usuarios que dom0
    accounts = 1
     
    # Kernel para el nuevo dominio
    kernel = /boot/vmlinuz-`uname -r`
    initrd = /boot/initrd.img-`uname -r`
     
    # Mirror a utilizar por debootstrap
    mirror = ftp://ftp.rediris.es/debian/
  3. Activar un domU: una vez creados los ficheros de imagen y swap del nuevo dominio usaremos el comando xm (Xen management user interface) para activarlo:
    # xm create xen01.cfg
    Using config file "/etc/xen/xen01.cfg"
    Started domain xen01

    El comando xm utiliza el archivo de configuración /etc/xen/xen01.cfg que se generó al crear la imagen del dominio y cuyo contenido será similar a:

    # Configuration file for the Xen instance xen01, created
    # by xen-tools 3.7 on Fri May 18 00:19:16 2007.
     
    #  Kernel + memory size
    kernel      = '/boot/vmlinuz-2.6.18-5-xen-686'
    ramdisk     = '/boot/initrd.img-2.6.18-5-xen-686'
    memory      = '128'
     
    # Boot device
    root        = '/dev/sda2 ro'
     
    # Storage devices
    disk        = ['file:/home/xen/domains/xen01/swap.img,sda1,w',
                   'file:/home/xen/domains/xen01/disk.img,sda2,w']
     
    #  Hostname
    name        = 'xen01'
     
    #  Networking
    vif         = [ 'ip=192.168.0.130,mac=00:16:3E:9C:64:6E' ]
     
    #  Behaviour
    on_poweroff = 'destroy'
    on_reboot   = 'restart'
    on_crash    = 'restart'

    Para comprobar que el nuevo dominio funciona:

    # xm list
    Name                               ID Mem(MiB) VCPUs State   Time(s)
    Domain-0                            0      875     2 r-----   4135.2
    xen01                               2      128     1 -b----      4.5
     
    # ping 192.168.0.130
    PING 192.168.0.130 (192.168.0.130) 56(84) bytes of data.
    64 bytes from 192.168.0.130: icmp_seq=1 ttl=64 time=0.206 ms
    ...
     
    # ssh [email protected]
    [email protected]'s password: *****
    francis@xen01:/$
  4. Manejar un domU

    Para abrir un shell e iniciar sesión en el nuevo dominio:

    # xm console xen01
    Debian GNU/Linux 4.0 xen01 tty1
     
    xen01 login: francis
    Password: *****
    francis@xen01:/$

    Para comprobar que la red está correctamente configurada haremos algunos ping (xen01 tendrá los mismos servidores DNS que dom0, de lo contrario los añadiremos a /etc/resolv.conf):

    $ ping 192.168.0.1
    PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
    64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=1.206 ms
    ...
     
    $ ping 80.58.61.250
    PING 80.58.61.250 (80.58.61.250) 56(84) bytes of data.
    64 bytes from 80.58.61.250: icmp_seq=1 ttl=119 time=38.2 ms
    ...
     
    $ ping www.orange.es
    PING a443.x.akamai.net (194.224.66.105) 56(84) bytes of data.
    64 bytes from 194.224.66.105: icmp_seq=1 ttl=55 time=41.6 ms
    ...

    Para salir de la consola del domU:

    francis@xen01:/$ <Ctrl + AltGr + ]>
    root@asterix:/#

    Para apagar el dominio xen01:

    # xm shutdown xen01

    Atención

    Si hacemos shutdown sobre dom0 se apagarán todos los dominios.

Deja un comentario