Imprimir

Instalar Xen

  1. Instalar Xen (paquete xen-linux-system-2.6.18-5-xen-686): instalando este paquete se instalará por dependencias el hypervisor (paquete xen-hypervisor-3.0.3-1-i386), que es el archivo que cargará primero GRUB al arrancar (/boot/xen-3.0.3-1-i386.gz) y el kernel Xen (paquete linux-image-xen-686), un kernel que ya incorpora el parche Xen (podemos descargarnos el parche y compilar el kernel desde las fuentes pero es más cómodo instalar el kernel ya compilado).
  2. Configurar GRUB: después de instalar el paquete con el kernel aparecerá una entrada en /boot/grub/menu.lst donde se indica que el hypervisor debe cargarse en primer lugar, antes que el kernel y la imagen initrd.
    title       Xen 3.0.3-1-i386 / Debian GNU/Linux, kernel 2.6.18-5-xen-686
    root        (hd0,0)
    kernel      /boot/xen-3.0.3-1-i386.gz
    module      /boot/vmlinuz-2.6.18-5-xen-686 root=/dev/hda1 ro console=tty0
    module      /boot/initrd.img-2.6.18-5-xen-686
    savedefault
  3. Deshabilitar TLS: por dependencias se instalará el paquete libc6-xen, en cuyo caso no es necesario deshabilitar TLS. En caso contrario, deshabilitaremos TLS (Thread Local Storage) para que el rendimiento de Xen no se vea mermado:
    # mv /lib/tls /lib/tls.disabled
  4. Reparto de memoria entre dom0 y el resto de dominios: si al crear un nuevo dominio se nos informa de que no hay memoria disponible, se puede solucionar limitando la memoria para dom0 mediante un parámetro al arrancar el kernel, añadiendo en /boot/grub/menu.lst la opción dom0_mem a la línea kernel (por ejemplo para limitar la memoria a 256 MB):
    kernel      /boot/xen-3.0.3-1-i386.gz dom0_mem=256M
  5. Aumentar el número de dispositivos loop: dado que el número máximo de dispositivos loop que existen en el sistema es por defecto 8 y que cada máquina virtual usa 2, para arrancar más de 4 máquinas virtuales tendremos que incrementar este valor. Para ello utilizaremos un parámetro al arrancar el kernel, añadiendo en /boot/grub/menu.lst la opción max_loop a la línea module (por ejemplo para permitir montar hasta 64 dispositivos loop):
    module /boot/vmlinuz-2.6.18-xen-686 root=/dev/hda1 ro console=tty0 max_loop=64

    Para crear los dispositivos loop, por ejemplo /dev/loop8, usaremos el comando:

    # mknod /dev/loop8 b 7 8
  6. Configurar la red: para que dom0 funcione en modo puente (paquete bridge-utils) editaremos /etc/xen/xend-config.sxp, comentaremos la línea:
    # (network-script network-dummy)

    y descomentaremos las siguientes líneas:

    (network-script network-bridge)
    (vif-script vif-bridge)
    (dom0-min-mem 196)
    (dom0-cpus 0)
  7. Reiniciar con el kernel Xen: reiniciamos el ordenador con el kernel Xen y veremos en los mensajes de inicio cómo se carga Xen. Para comprobar que está realmente funcionando verificaremos si aparece dom0 en la lista de máquinas virtuales:
    # xm list
    Name                          ID Mem(MiB) VCPUs State   Time(s)
    Domain-0                       0      941     2 r-----   3441.8

    Para ver los mensajes de inicio del hypervisor:

    # xm dmesg

    Para obtener información sobre Xen:

    # xm info

    Para comprobar que se ha activado el puente:

    # ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:10:60:BA:05:BF
              inet addr:192.168.0.5  Bcast:192.168.0.255  Mask:255.255.255.0
              inet6 addr: fe80::210:60ff:feba:5bf/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:2529 errors:0 dropped:0 overruns:0 frame:0
              TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:2312102 (2.2 MiB)  TX bytes:7933 (7.7 KiB)
     
    peth0     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
              inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:16467 errors:0 dropped:43520 overruns:0 frame:0
              TX packets:71 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:14040624 (13.3 MiB)  TX bytes:8821 (8.6 KiB)
     
    vif0.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
              inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:59 errors:0 dropped:0 overruns:0 frame:0
              TX packets:2532 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:7933 (7.7 KiB)  TX bytes:2315196 (2.2 MiB)
     
    xenbr0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
              inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
              UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
              RX packets:27 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:1350 (1.3 KiB)  TX bytes:0 (0.0 b)
  8. Scrip de inicio de Xen: para arrancar/parar xend, el demonio de Xen, disponemos del script de inicio /etc/init.d/xend. Por ejemplo, si modificamos la configuración podremos reiniciar Xen con los nuevos parámetros con el comando:
    # /etc/init.d/xend restart

Deja un comentario