Implementación de un cluster de Alta Disponibilidad

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)

¿Te resultó interesante? Compártelo ...



GUTL

Publicado por GUTL

Forma parte de GUTL desde el 6 diciembre, 2011.