Confgurando SLES como punto de almacenamiento para la HA de XenServer. Parte 1

Si un servidor cae, los servicios esenciales no tienen porque caer con el mismo.

Para evitar el “dowtime” (tiempo de inactividad) lo máximo posible, los administradores de Linux puede configurar un cluster Heatbeat en Linux. Hearbeat añade funcionalidades de cluster sobre las máquinas virtuales en Xen, con lo que disponemos de ventajas en el “uptime” cuando un servidor se cae op bloquea.
Para ello, nos será necesario utilizar un almacenamiento SAN y un cluster de servidor de máquinas virtuales Xen.

Para empezar, vamos a explicar cocmo configurar la SAN en nuestra máquina SuSE, construyendo un cluster Hearbeat para compartir el almacenamiento de la SAN, de este modo, las máquinas aquí ubicadas estarán disponibles en los diferentes servidores de Xen.

Es muy importante saber el porque es necesario utilizar la cabina o un almacenamiento compartido para las máquinas virtuales, pues en caso de caida del servidor Xen, es necesario que el repositorio de máquinas no este incluido en el mismo servidor caido, y que estas esten disponibles desde cualquiera de los servidores de Xen a fin de poder levantar la máquina en el menor tiempo posible (uptime - dowtime).

Para ello nos sera necesario un volumen de almacenamiento que permita el acceso a escritura simultaneo desde todos los nodos del cluster, un sistema de ficheros que permita la escritura simultanea, un cluster Heartbeat para la HA (alta disponibilidad), y uno o mas servidores Xen.

La instalación de Xen con HA implica la instalación/configuración de una SAN como repositorio/pool para las máquinas virtuales y ficheros de configuración de manera centralizada, que sea accesible desde todos los nodos del cluster de HA, de este modo si un nodo se cae, las máquinas virtuales y conf. alojadas en la SAN estarán disponibles para ser arrancadas desde el otro nodo. Para configurar la SAN podemos hacer uso de las herramientas incluidas en SLES.

Si no disponemos de una cabina, podemos utilizar un servidor SLES para crear una basada en iSCSI,la cual debe ser accesible desde los dos nodos Xen.

Definir una cabina iSCSI
Primero deberemos crear el servidor de almacenamiento, del cual utilizaremos el disco duro del mismo, una partición o un volumén lógico (si no disponemos de una cabina claro). Mínimo necesitaremos 4Gb para almacenar la imagen de un disco virtual Xen. Recomendamos usar una partición o volumen para mejor rendimiento.

Para la creación del mismo utilizaremos nuestra herramienta Yast.
Antes de nada deberemos asegurarnos que tenemos instalados los siguientes módulos:

-iscsitarget
-yast2-iscsi cliente
-yast2-iscsi server

Tras ello deberemos crear la partición para compartir, ella la podemos crear con el módulo incluido en yast dentro de Systema -> particiones creando una partición nativa Linux (0×83 Linux) y/o reiserfs.

Arrancammos la misma, introducimos nuestra pass de root y a continuación arrancamos el módulo iSCSI situado en network services.

Nos situamos en la pestaña de servicio, y nos aseguramos que esta activado que se inicie en la carga del sistema.
En la pestaña “objetivos/target”, eliminar el ejemplo existente y continuar con “Agregar” para añadir un nuevo indicando en el PATH la partición creada anteriormente desde “partitions” definiendola como la primera LUN.

Tras este paso, vamos a arrancar el módulo de iSCSI manualmente, para ello abrimos un terminal y tecleamos:

$ /etc/init.d/iscsitarget start

Si queremos ver las actuales “targets” definidas, podemos hacerlo desde la consola de este modo:

$ cat /proc/net/iet/volumes

Conectar-se al dispositivo iSCSI

En el cliente debemos tener instalado el paquete cliente de iSCI al igual que el iniciador y el paquete open-iscsi. Igual que en el servidor que hará de storage, deberemos arrancar el servicio. Desde consola:

$ /etc/init.d/iscsitarget start

Chequeamos el estado con la opción “status” y lo añadimos al arranque del sistema de la siguiente manera:

$ chkconfig open-iscsi on

Para conectar con el servidor iSCSI deberemos conocer la IP del servidor y deberemos tener acceso a través del puerto 3260. Con estas premisas ejecutaremos:

$ iscsiadm -m discovery -t st -p [IP_SERVER_iSCSI]

Para comprobar que el “target” ha sido guardado en la database, ejecutar:

$ iscsiadm -m discovery

y podemos chequear el nodo con la opción “-m node”. (para mas detalles ver man)

Podemos tambien chequear la conf. del nodo realizando:

$ iscsiadm -m node -r 00f1fd [dónde 00f1fd es el nodo deseado que queremos consultar - dicha información la podemos ver con la opción -m node]

Para establecer la sessión con el nodo teclearemos:

$ iscsiadm -m node -r 00f1fd -l

Con este comando no obtendremos salida alguna con el resultado de la operación, con lo que deberemos hacer uso de dmseg para ver el resultado o un “tail -f” del messages.

Y para validar la conexión podemos usar :
$ fdisk -l
$ cat /proc/partitions
o
$ hwinfo –scsi –short

En el siguiente artículo haremos uso del artículo de configuración de alta disponibilidad para ver como funciona la HA con Xen, disponiendo en nuestro servidor Xen de SUSE de HA para nuestras máquinas virtuales.
 

Actualizado (Jueves, 19 de Marzo de 2009 00:14)