Implementación de un cluster de Alta Disponibilidad
Autores: Tec. Ulises González Horta
Tec. Maribel Bayona Valentín
Linux Habana
Junio /2009
¿Qué es un cluster?
Un cluster es un sistema paralelo o distribuido que posee una arquitectura formada por un grupo de equipos independientes denominados nodos, que se conectan entre sí, ejecutan acciones de manera conjunta y aparecen como un único recurso computacional ante aplicaciones y clientes y cumple además con los requerimientos de un sistema tolerante a fallos
¿Por qué necesito utilizar un cluster?
Un cluster puede presentarse como una solución de especial interés sobretodo a nivel de empresa, las cuales pueden aprovecharse de estas especiales características de computación para obtener sistemas tolerantes a fallos o grandes capacidades de cálculo.
La falla de uno de los nodos del cluster evita tener una falla general ya que concurren el resto de las computadoras supliendo su ausencia La utilización de componentes de hardware comunes, SL e interconexión de redes de alta velocidad lo hace muy atractivo
Las fallas en informática
- Ley de Murphy:
Si algo puede fallar, pues entonces fallará
Motivos por los que los sistemas salen de servicio:
- fallos de equipamiento
- fallos de programas
- errores en la administración
- otros…
¿ Soluciones…?
Implementar sistemas tolerantes a fallos en los cuales los servicios se encuentren siempre activos.
“Un cluster es un sistema paralelo o distribuido (….) que cumple con los requerimientos de un sistema tolerante a fallos”
Características de un cluster
Un cluster consta de 2 o más nodos.
Los nodos de un cluster deben estar conectados entre sí por, al menos, un canal de comunicación y a través de redes de alta velocidad.
Los clústeres necesitan software de control especializado. (a nivel de aplicación o a nivel de sistema)
Tipos de clústeres
Alto Rendimiento diseñado para dar altas prestaciones en cuanto a capacidad de cálculo y procesamiento, resolviendo problemas de aplicaciones que así lo necesiten. Esto se logra mediante la utilización de un grupo de máquinas individuales las cuales son interconectadas entre sí a través de redes de alta velocidad, obteniendo un sistema de gran rendimiento que actúa como uno solo
Alta Disponibilidad son diseñados para garantizar el funcionamiento ininterrumpido de ciertas aplicaciones.
La idea principal es proporcionar un servicio ininterrumpido las 24 horas del día, los 7 días de la semana a empresas donde su principal función es la de mejorar los servicios que ofrecen a los clientes en las redes a las que pertenecen.
Pero… ¿realmente se usan clústeres?
Google en el año 2003 estuvo conformado por más de 15.000 computadores personales. En promedio, una consulta en Google lee cientos de megabytes y consume algunos billones de ciclos del CPU
En Alemania, el Banco Citysavingsbank de Munich que provee los servicios financieros para la corporación Bavaria, recientemente puso en funcionamiento un cluster de alta disponibilidad para servidores DNS. Debido al buen funcionamiento del sistema y a su gran estabilidad, prevén migrar más servidores IBM a las funciones de cluster para ser usados como firewall y servidores Web
¿Qué programas utilizar para implementar un cluster?
Alto rendimiento:
OpenMosix (a nivel de sistema operativo)
Beowulf (a nivel de aplicación – desarrollado por la NASA)
Alta disponibilidad:
Pirahna (a nivel de aplicación – desarrollado por la RH)
Kimberlite (a nivel de aplicación)
Heartbeat (a nivel de aplicación – desarrollado por Linux HA)
¿Qué distribución utilizar?
- Red Hat
- OpenSuse
- Slackware
- Ubuntu
- Debian
La decisión….
Implementar un sistema de alta disponibilidad utilizando:
Debian GNU/Linux como sistema operativo Heartbeat como software del cluster
Se utilizarán 2 nodos Rsync para sincronizar los datos entre los nodos
Otras aplicaciones para dar servicios ( email, web yDNS)
Pasos para la implementación
Instalación y configuración de las interfaces de red
Instalación y configuración de SSH para las conexiones del cluster
Instalación del programa Heartbeat
Sincronización de los archivos de usuarios y sus identificadores
Configuración del archivo authkeys
Configuración del archivo ha.cf
Configuración del archivo haresources
Instalación y configuración de los servicios del cluster
Configuración de las interfaces de comunicación
Se debe disponer al menos de:
Una interfaz de red para comunicar el cluster con red de la empresa ( interfaz de alta disponibilidad, no debe activarse automáticamente)
Al menos dos interfaces de red para comunicar entre sí a ambos nodos del cluster o en su defecto, una interfaz de red y un cable cross-over serie
(cable serie nulo)
De ser posible/necesario una interfaz independiente para realizar la administración del nodo
Configuración de SSH
Debe ser instalado en ambos nodos del cluster
Debe ser instruido para que permita la autenticación por medio de llaves RSA en lugar de contraseñas
(SIN TERMINAR)