Cuando se habla de virtualización a nivel usuario, la mayoría de la gente piensa en Virtualbox (que es una genial aplicación), y cuando se habla de virtualización a nivel empresarial, el software en el que casi todo el mundo piensa es VMWare.

Ambos son grandísimos productos, maduros y estables... pero desde que probé XenServer, éste genial sistema de virtualización de la empresa Citrix es el que más me gusta.

XenServer es (al igual que el resto de productos de Citrix) un software cerrado y de pago, pero también existe una version gratuita que se puede usar libremente en entornos de producción empresarial. Ésta versión gratuita únicamente tiene algunas limitaciones con respecto a la versión de pago, y una de ellas es precisamente la de configurar las máquinas virtuales para que se inicien automáticamente cuando se inicia el servidor.

Cuando tenemos un entorno de servidores virtuales, obviamente queremos que tras un reinicio del servidor principal donde éstos estan alojados, dichos servidores se inicien automáticamente... ya que de lo contrario tendríamos que acceder al servidor e ir arrancando las máquinas virtuales una a una de forma manual.

Por desgracia, a partir de la versión 6 de XenServer, la capacidad de configurar una máquina virtual como autoarrancable para que se inicie automáticamente ha sido eliminada de la versión gratuita. Supongo que es una decisión comercial para favorecer el uso de la versión de pago... pero en cualquier caso, únicamente se ha eliminado ésta funcionalidad desde el cliente de XenCenter, ya que es posible seguir utilizando ésta opción con un poco de configuración externa.

Para hacer ésto, hay que crear una vApp.

Una vApp es un grupo de máquinas virtuales que pueden ser administradas como una única entidad lógica, es decir, una agrupación de servidores.

Éste concepto fué introducido en la versión 6 de XenServer, y permite seleccionar un grupo de servidores virtuales, y asignar el orden en el que tienen que ir iniciándose cada uno de ellos cuando se inicie la vApp.

Cliente de XenCenter para Güindous

Siento muchísimo tener que ilustrar éste artículo con capturas de pantalla del cliente de Windows (a mi también se me revuelve el estómago, lo siento), pero aunque existe una alternativa para GNU/Linux llamada OpenXenManager, lo cierto es que está aún muy verde... y no solo no permite aún utilizar la mayoría de las opciones de XenServer, sino que las que si permite, no funcionan del todo bien.

Espero que algún dia éste cliente sea lo suficientemente maduro como para poder reemplazar el cliente XenCenter de Windows... pero mientras tanto:

Crear un vApp con los servidores que queramos incluir en la secuencia de arranque

El primer paso es crear una vApp con los servidores que queramos incluir en la secuencia de inicio, y establecer el orden en el que queramos que se inicien, así como el tiempo que queremos que cada servidor espere antes de iniciarse (para dar tiempo a que se inicie correctamente el servidor anterior, por ejemplo):

Configuramos el orden en el que se iniciarán los servidores y el retardo entre el arranque de uno y de otro

Una vez tengamos la vApp creada y configurada, necesitamos saber su identificador (UUID), para lo cual lo más sencillo es ejecutar el comando xe (comando principal de XenServer) de ésta forma:

$ sudo xe appliance-list

Lo que nos dará algo parecido a ésto:

              uuid ( RO): 6373fb13-520b-aafb-eae3-ea0cb47ca64a
        name-label ( RW): Main vApp
  name-description ( RW): vApp
               VMs (SRO): 0e210b62-68ce-7d8f-ee61-7a8279cf7818
allowed-operations (SRO): clean_shutdown; hard_shutdown; shutdown
current-operations (SRO):

De cuya primera linea obtenemos el UUID de la vApp.

Ya solo nos quedará editar el archivo /etc/rc.local del servidor XenServer y añadir el comando para iniciar nuestra vApp:

#!/bin/bash

touch /etc/boottime.stamp

/sbin/update-issue
clear </dev/tty1 >/dev/tty1

if [ ! -e /etc/xensource/no_move_kernel_tty ]
then
    # Put the kernel messages on tty2
    /usr/bin/openvt -c 2 /bin/echo "System Messages:"
    /opt/xensource/libexec/set-printk-console 2
fi

# Start the main vApp to boot the VMs
xe appliance-start uuid=6373fb13-520b-aafb-eae3-ea0cb47ca64a

Y listo... cada vez que arranquemos nuestro servidor XenServer principal, se iniciará la vApp que hayamos definido, lo que iniciará los servidores virtuales que hayamos configurado en ella.

Espero que os haya resultado de utilidad!

Alaaaaaaaaaaaaaaaa

Referencias