Dinámica HA

Se considera dinámica HA a todas las reconfiguraciones del clúster que garanticen la máxima disponibilidad del servicio de datos. Esta dinámica esta orientada a los nodos integrantes del cúster y la forma en la cual el clúster responde. Se denomina de la siguiente manera:

Failover

Es un término genérico que se usa cuando un nodo debe asumir la responsabilidad de otro nodo, importar sus recursos y levantar el servicio de datos.

Takeover

Es un failover automático se produce cuando un nodo nota un fallo en el servicio de datos. Para ello debe haber cierta monitorización con respecto al servicio de datos. El nodo que se declara fallido fallido es forzado a ceder el servicio, o simplemente eliminado.

Swichover o Giveaway

Es un failover manual, consiste en ceder los recursos de un servicio de datos y este mismo, a otro nodo del clúster, mientras se realizan ciertas tareas administrativas. A este procedimiento se le denomina "Node outage".

Splitbrain

Es un caso especial de failover en el cual falla el mecanismo de comunicacion y gestion del cluster (Entre nodos). Cada nodo cree que es el unico activo y por tanto tomara acciones en consecuencia forzando un takeover.

Esta situación es peligrosa, sobre todo cuando tenemos recursos delicados, como recursos de almacenamiento, ya que cada nodo podria escribir por su cuenta y quebrar a integridad de datos.

Para ello se habilita un recurso quórum, dendro de un recurso compartido, que permita a los nodos poner una especie de bandera de propiedad; los demas nodos deberan ceder sus recursos y abandonar el cluster. El quórum es utilizado como método de decisión; el primero que se apropie de el, se queda con todos los recursos.

Otra forma de evitar esta situacion es que los nodos eliminen a sus compañeros de cluster directamente apagandolos.

Grupos de recursos de un servicio de datos

Pensando en un servicio de datos cualquiera, se puede pensar en unas serie de recursos que va a utilizar. Por ejemplo, imaginemos un servicio de datos de servicio web como puede ser apache, este va a necesitar un nodo donde va a ser ejecutado (Ciclos de CPU, Memoria), un sistema de ficheros donde guardar toda la información web y por supuesto una red donde poder responder a las peticiones de servicio. Estos recursos deben atender a cierta flexibilidad, donde la flexibilidad es la capacidad del recurso de ser estatico virtualmente y ser dinámico físicamente. A continuación se enumeraran los distintos tipos de servicios de datos que son interesantes en un cluste HA.

Recursos de computacionales

Los recursos computacionales pueden ser considerados a nivel de CPU, nodo o clúster. Son los recursos que permiten que el programa que se encarga de ofrecer servicio de datos pueda ser ejecutado. Si tenemos varias CPU, varios nodos o varios clústers estos deberan tener una copia del programa del servicio de datos en memoria.

En la HA para Linux este tise considera a nivel de nodo, donde el servicio de datos va a estar situado en un nodo determinado (Como master del servicio). El software de HA es quien decide que nodo va a alojar que servicio de datos dependiendo del estado del clúster.

Recursos de comunicaciones

Normalmente el servicio de datos va a ser accedido mediante una red de comunicaciones. Los interfaces de red asi como el stack de protocolos de red, deben ser capaces de responder a varias direcciones de red con el fin de dar flexiblidad al servicio de datos; es decir virtualizar el servicio. En el caso de redes TCP/IP el servicio de datos sera accedido mediante una dirección IP y un puerto; para que el servicio de datos pueda residir físicamente en cualquier nodo se debe utilizar IP's virtuales (IP aliasing) para que esto sea posible.

Si se utiliza una red Ethernet-TCP/IP y el NIC no es capaz de cambiar la direccion MAC, se puede llegar aun problema con las tablas ARP de los demas elementos de red; ya que se debe obligar a los clientes o routers de la LAN a actualizar la nueva MAC para la IP de servicio.

Recursos de almacenamiento

El almacenamiento de los datos del servicio de datos es quizás uno de los puntos mas delicados de el HA. Pues en ellos tendremos la aplicación que se usara para el servicio de datos junto con los datos.

El almacenamiento suele ser el recurso mas complicado de virtualizar en configuraciones clasicas; ya que suele ser un medio SCSI compartido con muchos discos y muchos elementos candidatos a SPOF. En configuraciones hardware mas modernas no hay tanta problemática; las arquitecturas SAN (System Area Network) permiten que los recursos de computación accedan por red SAN a los recursos de almacenamiento. Los recursos de almacenamiento suelen ser servidores de archivos en con discos en RAID y backup integrado con interfaz FiberChannel. Al estar en un entorno SAN permite acceder a estos recursos a mas de un nodo de forma muy flexible.

El recurso de almacenamiento además de ser flexible debe ser independiente para las necesidades de cada servicio de datos. Surge el concepto de grupos de volumenes; un grupo de volumenes es un conjunto de volumenes que pertenecen a un servicio de datos en concreto. Cada volumen es un espacio de almacenamiento que el servicio de datos utilizará para sus propósitos con independencia de otros volumenes.

Es vital que el recurso de almacenamiento sea capaz de mantener la integridad de los datos y el tiempo de recuperación ante un fallo sea minimo. Ante estos problemas surge las técnicas de journaling para la gestión de los datos.