CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta...

22
CLUSTERS HA LINUX Clusters de Alta Disponibilidad Yezid Camilo Guerrero Angulo Javier Mauricio Ortiz December 11, 2013 Contents 1 Introducci´ on 2 2 Marco Te´ orico 3 2.1 Qu´ e es un cluster? ........................ 3 2.2 Cluster de Alta Disponibilidad HA ............... 4 2.3 Configuraciones de Alta Disponibilidad ............. 5 2.4 Arquitectura Cluster Linux de Alta Disponibilidad ...... 7 2.5 Funcionamiento Cluster Linux de Alta Disponibilidad .... 9 2.6 Soluciones multinodos ...................... 13 2.7 Software Cluster HA en Linux .................. 14 3 Objetivo 15 4 Desarrollo Paso a Paso - HowTo 16 4.1 Alta Disponibilidad con Heartbeat ............... 16 5 Recomendaciones 21 6 Conclusiones 22 1

Transcript of CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta...

Page 1: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

CLUSTERS HA LINUX

Clusters de Alta Disponibilidad

Yezid Camilo Guerrero AnguloJavier Mauricio Ortiz

December 11, 2013

Contents

1 Introduccion 2

2 Marco Teorico 32.1 Que es un cluster? . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Cluster de Alta Disponibilidad HA . . . . . . . . . . . . . . . 42.3 Configuraciones de Alta Disponibilidad . . . . . . . . . . . . . 52.4 Arquitectura Cluster Linux de Alta Disponibilidad . . . . . . 72.5 Funcionamiento Cluster Linux de Alta Disponibilidad . . . . 92.6 Soluciones multinodos . . . . . . . . . . . . . . . . . . . . . . 132.7 Software Cluster HA en Linux . . . . . . . . . . . . . . . . . . 14

3 Objetivo 15

4 Desarrollo Paso a Paso - HowTo 164.1 Alta Disponibilidad con Heartbeat . . . . . . . . . . . . . . . 16

5 Recomendaciones 21

6 Conclusiones 22

1

Page 2: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

CLUSTERS HA LINUXClusters de Alta Disponibilidad

1 Introduccion

Para conseguir redundancia y proteccion contra fallos de un sistema, laprimera de las medidas que se suelen tomar es replicar sus componenteshardware mas crıticos. Por ejemplo en el caso de un servidor se empleanconfiguraciones de discos en RAID (Redundant Array Inexpensive Disks -sistema de almacenamiento de datos que usa multiples unidades de almace-namiento de datos), fuentes de alimentacion redundantes, varias interfacesde red en bonding (Union de varias tarjetas de red independientes), etc.Y el mismo concepto de redundancia se aplica tambien para el resto decomponentes como la electronica de red o el sistema electrico. Estas medi-das indudablemente aumentan el nivel de disponibilidad de un sistema, peropara conseguir un nivel aun mas alto, se suelen utilizar configuraciones avan-zadas de hardware y software como son los clusters de Alta Disponibilidad(Clusters HA).

En la actualidad es de gran importancia para las instituciones, empresasy el negocio tener los servicios, aplicativos y paginas web disponibles siempreo casi siempre, y no solo por el tema economico, sino tambien por imagen.Pensemos que si a la hora de intentar acceder a una determinada paginaweb, un alto porcentaje de las veces no se encuentra disponible y en terminosprofesionales genera cierta inseguridad de como manejan sus aplicativos, yen otros terminos se perdera un considerable numero de visitas e interespor parte de los usuarios. Si hay un campo en donde Linux es unos delos principales titulares indiscutibles o se ha visto que se destaca, es en elclustering, la capacidad de unir varias maquinas virtuales o fısicas para darservicio a la vez de forma que se balancean recursos para evitar sobrecargasde algunos servidores y en casos de que alguno falle y no pueda ofrecerlo.Esto es algo transparente al usuario final, pues se cuenta con una direccionvirtual en donde se accede a todo el servicio del cluster y luego los nodosque son los que realmente proporcionaran el servicio.

Por lo tanto y conociendo la importancia de un cluster; en este doc-umento encontraremos la definicion del mismo, sus servicios, pero princi-palmente nos enfocaremos en cluster HA, su arquitectura, tecnologıas uti-lizadas, tipos de cluster HA y sus respectivas aplicaciones, etc. AL final sedara a conocer un ejemplo de configuracion basica de un cluster Heartbeaten Linux, que suele ser muy utilizado en produccion a nivel profesional.

2

Page 3: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

2 Marco Teorico

2.1 Que es un cluster?

Un cluster, consiste en un grupo de nodos entre sı unidos mediante una redde alta velocidad generalmente redes de area local, que interactuan comouna sola maquina. En caso que un nodo deje de funcionar tomarıa el controlel segundo nodo, reduciendo ası considerablemente la tolerancia a fallos ycaıdas de servicio.

Un cluster podrıa servir perfectamente en el caso de un problema dehardware, los usuarios tendrıan igualmente servicio ya que uno de los nodostomarıa el control como maquina primaria.

La tecnologıa de clusteres ha evolucionado en apoyo de actividades quevan desde aplicaciones de supercomputo y software de misiones crıticas,servidores web y comercio electronico, hasta bases de datos de altorendimiento, entre otros usos. Los clusteres son usualmente empleados paramejorar el rendimiento y/o la disponibilidad por encima de la que es provistapor un solo computador tıpicamente siendo mas economico que computa-dores individuales de rapidez y disponibilidad comparables.

De un cluster se espera que presente combinaciones de los siguientesservicios:

• Alto rendimiento

• Alta disponibilidad

• Balanceo de carga

• Escalabilidad

La construccion de los computadores del cluster es mas facil y economicadebido a su flexibilidad, ası:

Cluster homogeneo: Todos los nodos se basan en la misma configuracion dehardware y sistema operativo.

Cluster semihomogeneo: Diferente rendimiento pero con arquitecturas ysistemas operativos similares.

Cluster heterogeneo: Diferente hardware y sistema operativo.Se recomiendan las configuraciones de hardware homogeneos (nodos con

especificaciones similares en terminos de sockets de CPU, nucleos, la memo-ria, etc.)

Para que un cluster funcione como tal, no basta solo con conectar entresı los ordenadores, sino que es necesario proveer un sistema de manejo del

3

Page 4: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

cluster, el cual se encargue de interactuar con el usuario y los procesos quecorren en el para optimizar el funcionamiento.

2.2 Cluster de Alta Disponibilidad HA

Un cluster de alta disponibilidad es un conjunto de dos o mas servidores,que se caracteriza por compartir el sistema de almacenamiento, y porqueestan constantemente monitorizandose entre sı. Si se produce un fallo delhardware o de los servicios de alguno de las maquinas que forman el cluster,el software de alta disponibilidad es capaz de rearrancar automaticamentelos servicios que han fallado en cualquiera de los otros equipos del cluster.Y cuando el servidor que ha fallado se recupera, los servicios se migran denuevo a la maquina original.

Esta capacidad de los clusters de restablecer en pocos segundos un servi-cio, manteniendo la integridad de los datos, permite que en muchos casos losusuarios no tengan porque notar que se ha producido un problema. Cuandoun problema de este tipo, se presenta en un sistema sin cluster, podrıa de-jarles sin servicio durante horas.

La utilizacion de clusters no solo es beneficiosa para caıdas de servicio noprogramadas, sino que tambien es util en paradas de sistema programadascomo puede ser un mantenimiento hardware o una actualizacion software.

En general las razones para implementar un cluster de alta disponi-bilidad son:

• Aumentar la disponibilidad

• Mejorar el rendimiento

• Escalabilidad

• Tolerancia a fallos

• Recuperacion ante fallos en tiempo aceptable

• Reducir costes

• Consolidar servidores

• Consolidar el almacenamiento

4

Page 5: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

2.3 Configuraciones de Alta Disponibilidad

Las configuraciones mas comunes en entornos de clusters de alta disponibil-idad son:

Configuracion Activo/Activo: En una configuracion activo/activo, todos losservidores del cluster pueden ejecutar los mismos recursos simultaneamente.Es decir, los servidores poseen los mismos recursos y pueden acceder aestos independientemente de los otros servidores del cluster. Si un nododel sistema falla y deja de estar disponible, sus recursos siguen estandoaccesibles a traves de los otros servidores del cluster.

La ventaja principal de esta configuracion es que los servidores en elcluster son mas eficientes ya que pueden trabajar todos a la vez (aumentode potencia con el aumento de nodos). Sin embargo, cuando uno de losservidores deja de estar accesible, su carga de trabajo pasa a los nodosrestantes, lo que produce una degradacion del nivel global de servicio ofrecidoa los usuarios. Desventaja: No todos los servicios son clusterizables y suconfiguracion es complicada.

En la siguiente figura se muestra como ambos servidores estan ac-tivos, proporcionando un mismo servicio a los diferentes usuarios. Losclientes acceden al servicio o recursos de forma transparente y no tienenconocimiento de la existencia de varios servidores formando un cluster.

5

Page 6: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

Configuracion Activo/Pasivo:Una configuracion activo/pasivo, consistesolamente en un nodo que da servicio y los otros nodos son capaces deacceder a esos recursos, pero no los activan hasta que el servidor principaleste inactivo.

Las ventajas de la configuracion activo/pasivo son que no haydegradacion de servicio y que los servicios solo se reinician cuando elservidor activo deja de responder y es de configuracin sencilla. Sin embargo,una desventaja de esta configuracion es que los servidores pasivos noproporcionan ningun tipo de recurso mientras estan en espera, haciendoque la solucion sea menos eficiente que el cluster de tipo activo/activo.Otra desventaja es que los sistemas tardan un tiempo en migrar los recursos(failover) al nodo en espera.

6

Page 7: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

2.4 Arquitectura Cluster Linux de Alta Disponibilidad

Linux es conocido como un sistema operativo estable. Sin embargo, unaconfiguracion cliente/servidor Linux puede tener varios puntos de falla, in-cluyendo el hardware del servidor, los componentes de red y las aplicacionesbasadas en servidor. A medida que mas administradores eligen Linux paraaplicaciones crıticas, la demanda de clusters alta disponibilidad (HA) parala plataforma Linux es cada vez mayor. En respuesta, varios distribuidoresde Linux han diseado e implementado soluciones de Alta Disponibilidad em-paquetados en sus productos, y numerosos complementos estan disponiblesahora.

La disponibilidad de los sistemas se clasifica con la regla de los 9s:

Almacenamiento:Los datos son crıticos ya que sin ellos no se puede ofrecer el servicio.Existen dos tecnicas para garantizar la alta disponibilidad en los sistemasde almacenamiento:

- Sistemas de almacenamiento externo.Ventajas:

• Altamente escalable.

• Rapidez, hasta 4 Gb/s.

Inconvenientes:

• Precio.

• Requiere personal especializado.

7

Page 8: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

- Replicacion de datos:Ventajas:

• Barato.

Inconvenientes:

• Poco escalable.

• Lentitud.

La replicacion de datos se puede hacer utilizando slony que es un sistema demaestro a varios esclavos de replicacion para PostgreSQL apoyo en cascada,por ejemplo un nodo puede alimentar a otro nodo que se alimenta de otronodo y ası sucesivamente, y de conmutacion por error.

8

Page 9: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

2.5 Funcionamiento Cluster Linux de Alta Disponibilidad

En un cluster de alta disponibilidad, el software de cluster realiza dos fun-ciones fundamentales. Por un lado intercomunica entre sı todos los nodos,monitorizando continuamente su estado y detectando fallos. Y por otro ladoadministra los servicios ofrecidos por el cluster, teniendo la capacidad de mi-grar dichos servicios entre diferentes servidores fısicos como respuesta a unfallo.

A continuacin se describen los elementos y conceptos basicos en elfuncionamiento del cluster:

- Recurso y grupos de recursos: Tradicionalmente se entiende comoservicio a un conjunto de procesos que se ejecutan en un momento dadosobre un servidor y sistema operativo. Este ultimo provee a los procesos,los recursos necesarios para realizar su tarea: sistema de ficheros, interfacesde red, tiempo de cpu, memoria, etc.

En un cluster de alta disponibilidad, el software de cluster, abstrae eindependiza a los servicios de un host concreto. Posibilitando que estos sedesplacen entre diferentes servidores de forma trasparente para la aplicaciono los usuarios.

El software de cluster permite definir grupos de recursos, que son todosaquellos recursos necesarios por el servicio. Estos recursos seran los scriptsde arranque del servicio, un sistema de ficheros, una direccin IP, etc.

9

Page 10: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

- Intercomunicacion: El software de cluster gestiona servicios y recursos enlos nodos. Pero ademas, tiene que mantener continuamente entre estos unavision global de la configuracion y estado del cluster. De esta forma, ante elfallo de un nodo, el resto conoce que servicios se deben restablecer.

Ya que la comunicacion entre los nodos del cluster es crucial para elfuncionamiento de este, es habitual utilizar un canal especıfico como unared IP independiente o una conexion serie, que no se pueda ver afectadapor problemas de seguridad o rendimiento.

- Heartbeat: El software de cluster conoce en todo momento la disponi-bilidad de los equipos fısicos, gracias a la tecnica de heartbeat. Elfuncionamiento es sencillo, cada nodo informa periodicamente de suexistencia enviando al resto una senal de vida.

- Escenario Split-Brain: Falla la comunicacin Heartbeat entre dos gru-pos diferentes de nodos. En un escenario split-brain, mas de un servidor oaplicacion pertenecientes a un mismo cluster intentan acceder a los mismosrecursos, lo que puede causar danos a dichos recursos. Este escenario ocurrecuando cada servidor en el cluster cree que los otros servidores han falladoe intenta activar y utilizar dichos recursos.

- Monitorizacion de Recursos (Resource Monitoring): Ciertas soluciones declustering HA permiten no solo monitorizar si un host fısico esta disponible,tambien pueden realizar seguimientos a nivel de recursos o servicios ydetectar el fallo de estos.

El administrador puede configurar la periodicidad de estos monitoreosası como las acciones a llevar a cabo en caso de fallo.

- Reiniciar recursos: Cuando un recurso falla, la primera medida quetoman las soluciones de cluster es intentar reiniciar dicho recurso en elmismo nodo. Lo que supone detener una aplicacion o liberar un recurso yposteriormente volverlo a activar.

Algunas implementaciones no permiten reiniciar un unico recurso, y loque realizan es un reinicio completo de todo un grupo de recursos (servicio).Esto puede llegar a demorar bastante para servicios como las bases de datos.

- Migracion de Recursos (Failover): Cuando un nodo ya no esta disponible,o cuando un recurso fallido no se puede reiniciar satisfactoriamente enun nodo, el software de cluster reacciona migrando el recurso o grupo derecursos a otro nodo disponible en el cluster.

10

Page 11: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

De este modo el tiempo de inactividad por el posible fallo es mınimo, y elcluster seguira proporcionando el correspondiente servicio.

- Dependencia entre recursos: Habitualmente para que el cluster pro-porcione un servicio, son necesarios no solo un recurso si no varios (IPvirtual, sistema de ficheros, proceso), lo que se conoce como grupo derecursos. Cuando se arranca o detiene un servicio, sus recursos tienen queactivarse en el orden apropiado ya que unos dependen de otros. El softwarede cluster tiene que permitir definir estas dependencias entre recursos asıcomo entre grupos.

- Preferencia de Nodos (Resource Stickiness): En configuraciones decluster con multiples nodos, es comun distribuir los servicios a proporcionarentre los diferentes servidores. Ademas puede que los servidores tengan

11

Page 12: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

caracterısticas hardware diferentes (cpu, memoria ram) y nos interese que,para un estado ideal del cluster, determinados servicios se ejecuten siempreen un determinado servidor. Este comportamiento se define mediante lapreferencia de nodo en la definicion de cada recurso.

- Comunicacion con otros sistemas: El cluster tiene que monitorizarno solo que un servidor y sus servicios estan activos, tambien debe decomprobar que, de cara a los usuarios, dicho servidor no queda desconectadode la red por el fallo de un latiguillo, switch, etc.

Por lo tanto el software de cluster debe comprobar que los nodos sonalcanzables. Un metodo simple para conseguirlo, es verificar que cada nodotiene accesible el router o puerta de enlace de la red de usuarios.

- Fencing: En los clusters HA existe una situacion donde un nodo deja defuncionar correctamente pero todava sigue levantado, accediendo a ciertosrecursos y respondiendo peticiones. Para evitar que el nodo corromparecursos o responda con peticiones, los clusters lo solucionan utilizando unatecnica llamada Fencing. La funcion principal del Fencing es hacerle sabera dicho nodo que esta funcionando en mal estado, retirarle sus recursosasignados para que los atiendan otros nodos, y dejarlo en un estado inactivo.

Linux HA soporta:

STONITH (Shoot The Other Node In The Head): es un servicio quesirve para garantizar que un nodo esta realmente muerto en situaciones declusters con servicios crıticos en cuanto a integridad de datos.

Sistemas Self-Fencing (Sistemas que aseguran acceso exclusivo a unrecurso (ServerRAID de IBM)) para resource fencing: Es un sistemamediante el cual podemos decirle a un servidor que maneje varios discoscomo si se tratasen de uno solo, o que vaya duplicando la informacion deun disco en otro para que al descomponerse uno pueda seguir funcionandocon la informacion grabada en otro.

- Quorum: Para evitar que se produzca un escenario de Split-Brain,algunas implementaciones de cluster HA introducen un canal de comuni-cacion adicional que se emplea para determinar exactamente que nodosestan disponibles en el cluster y cuales no. Tradicionalmente se implementautilizando los llamados quorum devices, que habitualmente son un volumen

12

Page 13: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

de almacenamiento compartido exclusivo (disk heart beating).Uno de los sistemas mas comunes de Quorum es el voto. Solo la division

con mas nodos puede ejecutar el cluster. Esto no funciona muy bien parados nodos.

Otro sistema de Quorum es el acceso a un recurso exclusivo, el quellegue despues, desiste y cede los servicios.

- SPOFs (single point of failure): Elemento del sistema que en caso defallo puede dejar todo el sistema inutilizado. Un buen diseno elimina todoslos SPOFs.

Un SPOF puede ser un componente de hardware, software o electrico.Para garantizar la inexistencia de un SPOF en un sistema, todos suscomponentes suelen ser redundados, conformando ası un sistema de altadisponibilidad, que garantiza el correcto funcionamiento aun en caso de quealguno de sus componentes falle.

2.6 Soluciones multinodos

Aunque las configuraciones de cluster de aplicacion HA mas comunes son ac-tualmente de dos nodos, existen algunas soluciones de conmutacion de variosnodos (mas de dos nodos) para Linux que recientemente estan disponible.Con los clusteres de configuracion multinodo, tales como N+1 y en cascadade conmutacion por error, estos ayudan a los administradores a cumplir conlas necesidades de alta disponibilidad en un entorno complejo, mientras que

13

Page 14: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

tambien proporciona una mejor utilizacion de los recursos. Por ejemplo,en una configuracion N+1, un unico servidor dedicado se ejecuta en modopasivo, mientras que el resto de los servidores de proceso responden activa-mente las solicitudes de sus aplicaciones. Si un servidor falla completamente,el nodo pasivo proporciona todos los recursos de un servidor no utilizado,en vez de saturar la aplicacion en otro servidor ya responsable de variasaplicaciones. Las configuraciones de multiples nodos pueden ser ejecutadasya sea mediante la duplicacion de contenido de forma local en cada servidoro a traves de una estructura de almacenamiento conmutada por el uso deSAN (Storage Area Network), que es una red de almacenamiento integral.

Proporcionan clusters multinodo con excelentes servidores adicionalesde almacenamiento que se aaden a la SAN, ası como la capacidad de escalarde manera efectiva la cantidad de almacenamiento a los nodos del cluster.

2.7 Software Cluster HA en Linux

HeartBeat: Un software de cluster activo-pasivo (de codigo abierto), que seutiliza comunmente en los sistemas Linux.

• Soporta E/S fencing utilizando el mecanismo STONITH.

• Facil de instalar: No vinculado a determinada SO, kernel.

• Originalmente se configuraban con archivos de texto. Ahora tambienhay una interfaz grafica de usuario.

• Soporta multiples nodos.

• Funciona con cualquier tipo de dispositivo de bloques.

Cluster Suite de RedHat:

• Soporta tambien clusters activo-activo y activo-pasivo

• Muy sencillo: No hace un seguimiento adecuado de los recursos.

• Tiene una interfaz grafica de usuario sencilla para configurarlo.

• Soporta E/S fencing utilizando el mecanismo STONITH.

• Funciona con cualquier tipo de dispositivo de bloques

14

Page 15: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

Oracle RAC

• El servidor de base de datos Oracle 10 (tambien conocido como RACReal Apliccations Cluster) soporta configuraciones de activo-pasivo yactivo-activo.

• Si ejecuta una base de datos Oracle, por lo general no utiliza lamaquina para otras cosas, por lo que no necesita un software de clsterHA adicional.

3 Objetivo

Exponer lo investigado acerca de Cluster Linux de Alta Disponibilidad, suarquitectura, configuracion, funcionamiento y tecnologıas, junto con la re-spectiva demostracion de instalacion de Heartbeat que soporte el servidorAPACHE.

15

Page 16: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

4 Desarrollo Paso a Paso - HowTo

4.1 Alta Disponibilidad con Heartbeat

Primeramente debemos saber que es Heartbeat.

Es un paquete de software creado por LINUX-HA, por medio delcual se lleva a cabo un proceso de verificacion de los nodos que estanactivos y los que no estan activos, y lo realizan todos y cada uno de losnodos del cluster, lanzando dos seales al resto de compaero del cluster. Unase llama LooksAlive, y suele ser un simple ping, y otra mas autoritativaque se llama IsAlive, que se realiza en intervalos de tiempo (por defecto 60s).

Este es un esquema de como se comportarıa:

El Cliente se conecta a una IP virtual que comparten ambos nodos,y dependiendo como lo tengamos configurado, uno recibirıa la peticion, encaso de que se detecte que no funciona correctamente el otro nodo esclavoobtiene el control del servicio en segundos. La forma de conectar a losservidores entre sı puede ser: un cable cruzado, un switch dedicado o unaVLAN en un switch.

16

Page 17: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

A continuacion se explicara como configurar Heartbeat para dos nodos,y ofrecer un servicio de alta disponibilidad con un servidor principal y unmirror.

La configuracion de Heartbeat es identica en los dos equipos del clus-ter, por lo que haremos la configuracion para nodo1 y la copiaremos a nodo2.

Nodo 1:

Hostname nodo1 principal:IP Address: 192.168.1.8

Nodo 2:

Hostname nodo2 espejo:IP Address: 192.168.1.7

IP Virtual Linux-HA: 192.168.1.10

El primer paso es instalar Heartbeat en ambas maquinas:

apt-get install heartbeat

Ponemos las IPs y hostnames en /etc/hosts de los 2 nodos:

127.0.0.1 localhost192.168.1.8 nodo1192.168.1.7 nodo2

Debemos modificar 3 ficheros en cada una de las maquinas, estos seencuentran en /etc/ha.d :

authkeysha.cfharesources

En authkeys especificaremos las claves, para nuestro caso usaremos elmetodo inseguro CRC (La comprobacion de redundancia cıclica es uncodigo de deteccion de errores usado frecuentemente en redes digitales yen dispositivos de almacenamiento para detectar cambios accidentales enlos datos. Tiene menos carga de CPU) asumiendo que tenemos un buen

17

Page 18: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

firewall configurado, podemos usar md5, o sha1 para mayor seguridad:

auth 11 crc

Y hacemos que solo el usuario root pueda leer este archivo:

chmod 600 /etc/ha.d/authkeys

En el fichero ha.cf especificaremos las opciones de configuracion deheartbeat, indicamos donde queremos guardar los logs, en keepalive leindicamos que los latidos se enviaran cada 2 segundos, en deadtime especifi-camos que si un nodo no responde en 30 segundos esta muerto, en warntimele decimos que si no responde en 10 segundos nos lanzara una alerta, en elinicio antes de considerar un nodo muerto esperaremos 120 segundos paraevitar problemas con el arranque del servicio, usaremos el puerto UDP649 para la comunicacion entre las maquinas, en ucast indicaremos nuestrodispositivo ethernet e indicamos que mandamos latidos por unicast a la ipdel otro nodo (peer), ponemos el parametro failback en on para indicar elcomportamiento en caso de recuperacion de un nodo caıdo, estando en oneste recuperara todos los servicios al volver a estar activo si lo dejamos enoff, los servicios residiran en el nodo espejo hasta que este caiga, indicamosque nodos forman el servicio, el nombre que indicamos debe coincidir con elque devuelve el comando uname -n en cada uno de los nodos y finalmenteun dispositivo ethernet para broadcast.

Definimos los logslogfile /var/log/ha-loglogfacility local0

Tiempo en segundos entre cada latidokeepalive 2

Tiempo en segundos en el que se considera un sistema inactivodeadtime 30warntime 10

Tiempo de espera en segundos para interfaces que levantan lentamenteinitdead 120

18

Page 19: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

Ping por interface que comunica ambos nodos (interface latido)

La IP debe ser la interface del otro nodoucast eth0 (ip del otro servidor)

Interface por la que hacemos la comunicacin y el puertoudpport 694

Definir el tipo de failbackauto failback on

Nodos que componen el clusternode nodo1node nodo2bcast eth0

En el fichero haresources, especificaremos los servicios que debe manejarheartbeat (en este caso apache), este fichero es el mismo en los dos nodos.En este caso tenemos el nodo1 como activo y el nodo2 como pasivo:

nodo1 IPaddr2::192.168.1.10/24/eth0 apache2

Creamos un fichero index.html para tener una prueba grafica de quenodo nos da el servicio:

echo nodo1 apache test server en /var/www/html/index.htmlecho nodo2 apache test server en /var/www/html/index.html

Reiniciamos el servicio Heartbeat en las 2 maquinas:

/etc/init.d/heartbeat restart

Abrimos el navegador y ponemos la url (ip virtual):

http://192.168.1.10

Nos saldra el mensaje nodo1 apache test server

Ahora paramos el heartbeat en el nodo1 y el mensaje lo veremos en el nodo2

19

Page 20: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

root@nodo1 /etc/init.d/heartbeat stop

http://192.168.1.10

Nos saldra el mensaje nodo2 apache test server

20

Page 21: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

5 Recomendaciones

Al instalar Heartbeat, los 3 ficheros:

• authkeys

• ha.cf

• haresources

No se encuentran por defecto en /etc/ha.d. En este mismo directoriodebemos abrir el README y en su contenido no indicara donde lospodemos encontrar; generalmente estan en /usr/share/doc/heartbeat.

Debemos descomprimirlos ya que son ficheros con extension .gz, unavez realizado solo queda copiarlos a /etc/ha.d.

21

Page 22: CLUSTERS HA LINUX Clusters de Alta Disponibilidad...CLUSTERS HA LINUX Clusters de Alta Disponibilidad 1 Introducci on Para conseguir redundancia y protecci on contra fallos de un sistema,

6 Conclusiones

• Es de gran importancia para la organizaciones y empresas contarcon los servicios que provee un cluster de alta disponibilidad, ya quemantiene en funcionamiento los servicios y operaciones, eliminando losproblemas comunes de los sistemas de informacion de la organizacion,ademas, la informacion se encuentra consolidada y en el caso de unaperdida de datos o problemas de servicios, otra maquina tomara elrol de la principal, pudiendo tener un sistema continuo de datos sinafectar el negocio.

• Ademas, la alta disponibilidad nos permite poder tener los sistemascrıticos funcionando un 99.9 porciento del tiempo, algo que general-mente es un desafıo para los departamentos tecnologicos. Si ponemosen la balanza poder tener un sistema crıtico en operacion en un 99.9porciento vs los costos de tener que quedar con los sistemas detenidos,podrıamos tener clara la importancia de poder disponer de estas tec-nologıas que nos permiten un alto desempeo de la informacion.

• En el campo laboral, no olvidemos que el marketing es el eslabonentre la empresa y el mercado, y que junto con una buena seleccion depersonal y una buena eleccion en tecnologıa es posible obtener exitoen las acciones que se planifique. Actualmente la alta disponibilidades muy importante, con la necesidad de inmediatez, con la enormecantidad de informacion bidireccional a gestionar y con la urgenterespuesta que se requiere ante cualquier inconveniente, este requisito seha convertido en una de las estrategias para ofrecer un servicio integraldentro de los planes tanto de comunicacion como de mercadeo.

22