Añadir nuevo comentario

Xen para impostores

En cualquier trabajo, el día a día siempre es sota, caballo y rey.
Realmente solo es necesario conocer un par de cosas sobre una herramienta para manejarla bien y eso es lo que voy a mostrar ahora con Xen.
Si aprendes a hacer estas dos cosas podrás ir por ahí diciendo que sabes Xen ... aunque sea mentira. ;-)



¿Que es Xen?
Primero que nada, Xen sirve para montar un servidor de máquinas virtuales. También podíamos haber usado qemu, virtualbox u openvz (me encanta openvz), pero el mejor cuando hay dinero y recursos es Xen.
Este guiaburros es para máquinas que soportan virtualización por hardware. Por ejemplo, si tu procesador es intel y miras /proc/cpuinfo deberías ver que uno de los flags de la CPU es vmx.

Paso 1: instalar Xen
Necesitamos instalar el núcleo, el hypervisor y las utils.
En resumen, si estás en Debian apt-get install xen-linux-system-2.6.26-2-xen-686 qemu y reiniciar. Si estás en Ubuntu apt-get install linux-xen bridge-utils xen-hypervisor-3.2 xen-utils-3.2 qemu y reiniciar con el núcleo que sale arriba del todo. Si no arranca algo hay mal hecho pero ya no es objeto de esta entrada.

Paso 2: configurar la red
Necesitamos configurar la red para que las máquinas virtuales puedan ser uno más con su IP y su mac. A todos los efectos, el único que se enterará de que la máquina virtual es una máquina virtual será el que la haya creado.
Debemos hacer estos cambios en nuestro /etc/network/interfaces:

Reiniciamos y vemos si tenemos red.

Paso 3: crear una máquina virtual

  • Crear el disco duro: qemu-img create -f raw MiDiscoDuro.img 20G
  • Copiar el CD de instalación a algún lugar accesible
  • Crear la configuración de la máquina configuracionMaquina.cfg:

    kernel = '/usr/lib/xen-default/boot/hvmloader'
    builder = 'hvm'
    device_model = '/usr/lib/xen-default/bin/qemu-dm'
    #
    memory = '512'
    #
    # Para arrancar desde el CD
    disk = [ 'file:/ruta/al/disco/duro,ioemu:hda,w', 'file:/ruta/al/CD/de/instalacion,hdc:cdrom,r' ]
    boot = 'd'
    # Para arrancar desde el disco duro
    #disk = [ 'file:/ruta/al/disco/duro,ioemu:hda,w' ]
    #boot = 'c'
    #
    name = 'nombreVirtual'
    #
    dhcp = 'dhcp'
    # Puedes poner cualquier MAC que empiece por 02
    vif = [ 'mac=02:ca:ca:de:ba:ca,type=ioemu,bridge=xenbr0' ]
    #
    vnc = 0
    sdl = 1
    # nographic=0 -> interfaz gráfica, nographic=1 -> sin interfaz gráfica
    nographic = 0
    serial = 'pty'
  • Arrancar la máquina con un xm create configuracionMaquina.cfg
  • Instalar la máquina
  • Para la máquina con un xm shutdown configuracionMaquina.cfg. Si se niega a pararse cambia el shutdown por un destroy.

Paso 4: dejarla lista para su uso
Hay que cambiar la configuración para que no se vea la gráfica y no arranque desde el CD:

Comandos básicos

  • xm create configuracionMaquina.cfg crea la máquina virtual.
  • xm shutdown configuracionMaquina.cfg le dice a la máquina virtual que se cierre.
  • xm destroy configuracionMaquina.cfg destruye la máquina virtual. Es como tirar del cable.
  • xm list muestra las máquinas virtuales en funcionamiento.
  • xm info muestra información sobre el estado del anfitrión.

Pequeño ajuste
Se puede variar la memoria reservada para el contenedor de las máquinas virtuales en la configuración del grub en /boot/grub/menu.lst

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=dom0_mem=1024M