viernes, noviembre 17, 2006

Consideraciones para crear un Cluster de Servidores

Los cluster de servidores permite dotar a las aplicaciones y/o servicios que se ejecuten en un grupo de servidores de alta disponibilidad. El funcionamiento básico de los clusteres es el siguiente:

  • Una aplicación se ejecuta en uno de los nodos del cluster
  • En el momento en que este nodo cae, el cluster toma la aplicación y la levanta en otro de los nodos.
Los usuarios normalmente no notan nada, sin embargo, existe un corte de x segundos hasta que el cluster es capaz de levantar de nuevo la aplicación en otro nodo. Cuando se trabajo con aplicaciones que mantienen conexiones abiertas, éstas se pierden.

¿Cómo funciona un cluster?
Los clusteres se basan en la publicación de sus servicios mediante IPs virtuales. Cuando un administrador da de alta una aplicación, con sus correspondientes recursos (luego veremos cómo), aparece en la red un nuevo servidor, con un IP, un nombre de red y los recursos que le hemos asignado. El mantenimiento de esta estructura la realiza el cluster en sí. Cuando un usuario realiza una petición al servidor virtual, el cluster redireccionará al servidor físico que realmente esté ejecutando la aplicación. En el caso que se caiga este servidor físico, las peticiones hacia la IP virtual serán redirigidas por el cluster hacia el nuevo servidor que haya empezado a ejecutar la aplicación. En el siguiente esquema se ve el funcionamiento:
















Aspectos Técnicos a tener en cuenta:
A la hora de montar un cluster, hay que tener en cuenta ciertos aspectos importantes que pueden determinar el buen funcionamiento de la solución. Los requisitos fundamentales son:

  • Cabina de discos compartida donde se alojarán los datos de los servidores
  • Dobles tarjetas de red para poder utilizar una entre ellos y otra para la red
  • Sistema Operativo que permita la gestión de clusteres. En el caso de Microsoft, sólo los opertativos Enterprise lo permiten.
Antes de empezar a montar los servidores debemos dimensionar nuestro espacio en la cabina para que se acomode a las necesidades de las aplicaciones. Imprescindible es dejar espacio para la unidad de Quorum que es la encargada de mantener el estado de las aplicaciones y que sirve de nexo de unión entre los servidores. Para esta unidad se suelen dar 512MB de espacio (normalmente es el mínimo que permiten las cabinas). Luego, para cada aplicación que lo precise se le irá creando una o varias unidades en la cabina. Un ejemplo normal sería el siguiente:

  • Quorum: 512MB
  • Base de Datos: 100 GB
  • Ficheros: 2TB
Es importante saber que existe una limitación en las cabinas por las que no son capaces de crear volúmenes mayores de 2TB. Además, los clusteres de Microsoft, no así los de Linux, no permiten discos dinámicos, con lo que las aplicaciones tienen que estar preparadas para ello.

Una vez que hayamos creado los volúmenes, crearemos el cluster (vamos a ir siguiendo el método de Microsoft) mediante el administrador de clusteres. Al crearlo tendremos que darle los siguientes datos:

  • IP Virtual del cluster
  • Nombre DNS del Cluster
  • Unidad de Quorum
Con estos datos se creará el cluster que contendrá un grupo de aplicaciones para el cluster con tres recursos (IP, Nombre y Unidad) y un grupo de aplicaciones por cada volumen de la cabina que haya encontrado. Una vez creado tendremos que incluir en el cluster el resto de nodos que vayan a formar parte de él.

Una vez incluidos los nodos, tendremos que crear los grupos de aplicaciones. Esto es tan sencillo como incluir los ejecutables necesarios o los recursos necesarios (servicios, carpetas compartidas,...) en el grupo de aplicaciones. Se le dará a cada grupo de aplicaciones un nodo preferido donde se ejecute que será el que por defecto arranque la aplicación. Hay determinadas aplicaciones (p.e. SQL Server u Oracle) que al instalarlas detectan automáticamente que se encuentran en un entorno de cluster y se instalan en todos los nodos y crean sus propios grupos de aplicaciones. Para el resto de aplicaciones hay que realizar la instalación manualmente en todos los nodos y mantener exactamente la misma configuración. Lógicamente, para cada grupo de aplicaciones tendremos que dar también una IP Virtual a la que responderá y un nombre de red.


Consideraciones Finales:
Una vez que la instalación se haya completado y el cluster esté en funcionamiento, toda la administración se debe realizar desde el administrador de clusteres. El arranque o parada de los servicios, la conmutación entre nodos, los cambios de configuración no se deben hacer directamente en las aplicaciones.


1 comentario:

Jose Luis dijo...

BRAVO MACHOTE, muy bién inicio al tema de clusteres.