Clúster de alta Disponibilidad

3,237 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,237
On SlideShare
0
From Embeds
0
Number of Embeds
65
Actions
Shares
0
Downloads
78
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clúster de alta Disponibilidad

  1. 1. CLÚSTER DE ALTADISPONIBILIDAD
  2. 2. CLÚSTER DE ALTA DISPONIBILIDAD(HA)• Para conseguir redundancia y protección contrafallos de un sistema, la primera de las medidas quese suelen tomar es replicar sus componenteshardware más críticos. Por ejemplo en el caso deun servidor se emplean configuraciones de discosen RAID, fuentes de alimentación redundantes,varias interfaces de red en bonding, etc. Y el mismoconcepto de redundancia se aplica también parael resto de componentes como la electrónica dered o el sistema eléctrico.
  3. 3. CLÚSTER DE ALTA DISPONIBILIDAD(HA)•Estas medidas indudablemente aumentan el nivel de disponibilidad deun sistema, pero para conseguir un nivel aun mas alto, se suelen utilizarconfiguraciones avanzadas de hardware y software como son losclusters de Alta Disponibilidad.Un Cluster de Alta Disponibilidad es un conjunto de dos o mas servidores,que se caracteriza por compartir el sistema de almacenamiento, y porque están constantemente monitorizándose entre sí. Si se produce unfallo del hardware o de los servicios de alguno de las maquinas queforman el cluster, el software de alta disponibilidad es capaz derearrancar automáticamente los servicios que han fallado en cualquierade los otros equipos del cluster. Y cuando el servidor que ha fallado serecupera, los servicios se migran de nuevo a la máquina original.Esta capacidad de los clusters de restablecer en pocos segundos unservicio, manteniendo la integridad de los datos, permite que en muchoscasos los usuarios no tengan por que notar que se ha producido unproblema. Cuando una avería de este tipo, en un sistema sin cluster,podría dejarles sin servicio durante horas.
  4. 4. CLÚSTER DE ALTA DISPONIBILIDAD(HA)• En general las razones para implementar un clusterde alta disponibilidad son:* Aumentar la disponibilidad* Mejorar el rendimiento* Escalabilidad* Tolerancia a fallos* Recuperación ante fallos en tiempo aceptable* Reducir costes* Consolidar servidores* Consolidar el almacenamiento
  5. 5. CLÚSTER DE ALTA DISPONIBILIDAD(HA)• 1. Configuraciones de Alta Disponibilidad• Las configuraciones mas comunes en entornos declusters de alta disponibilidad son la configuraciónactivo/activo y la configuración activo/pasivo.
  6. 6. CONFIGURACIÓN ACTIVO/ACTIVO• -En una configuración activo/activo, todos los servidores del clusterpueden ejecutar los mismos recursos simultáneamente. Es decir, losservidores poseen los mismos recursos y pueden acceder a estosindependientemente de los otros servidores del cluster. Si un nodo delsistema falla y deja de estar disponible, sus recursos siguen estandoaccesibles a través de los otros servidores del cluster.La ventaja principal de esta configuración es que los servidores en elcluster son mas eficientes ya que pueden trabajar todos a la vez. Sinembargo, cuando uno de los servidores deja de estar accesible, sucarga de trabajo pasa a los nodos restantes, lo que produce unadegradación del nivel global de servicio ofrecido a los usuarios.En la siguiente figura se muestra como ambos servidores están activos,proporcionando un mismo servicio a los diferentes usuarios. Los clientesacceden al servicio o recursos deforma transparente y no tienenconocimiento de la existencia de varios servidores formando un cluster.•
  7. 7. CONFIGURACIÓN ACTIVO/ACTIVO
  8. 8. -CONFIGURACIÓN ACTIVO/PASIVO•Un cluster de alta disponibilidad, en una configuraciónactivo/pasivo, consiste en un servidor que posee los recursosdel cluster y otros servidores que son capaces de acceder aesos recursos, pero no los activan hasta que el el propietariode los recursos ya no este disponible.Las ventajas de la configuración activo/pasivo son que nohay degradación de servicio y que los servicios solo sereinician cuando el servidor activo deja de responder. Sinembargo, una desventaja de esta configuración es que losservidores pasivos no proporcionan ningún tipo de recursomientras están en espera, haciendo que la solución seamenos eficiente que el cluster de tipo activo/activo. Otradesventaja es que los sistemas tardan un tiempo en migrar losrecursos (failover) al nodo en espera.
  9. 9. CONFIGURACIÓN ACTIVO/PASIVO
  10. 10. 2. FUNCIONAMIENTO DE UN CLÚSTERDE ALTA DISPONIBILIDAD•En un cluster de alta disponibilidad, el software decluster realiza dos funciones fundamentales. Por un ladointercomunica entre sí todos los nodos, monitorizandocontinuamente su estado y detectando fallos. Y por otrolado administra los servicios ofrecidos por el cluster,teniendo la capacidad de migrar dichos servicios entrediferentes servidores físicos como respuesta a un fallo.• A continuación se describen los elementos y conceptosbásicos en el funcionamiento del cluster.
  11. 11. - RECURSO Y GRUPOS DE RECURSOS•Tradicionalmente se entiende como servicio a un conjunto deprocesos que se ejecutan en un momento dado sobre unservidor y sistema operativo. Este último provee a los procesosde los recursos necesarios para realizar su tarea: sistema deficheros, interfaces de red, tiempo de cpu, memoria, etc.En un cluster de alta disponibilidad, el software de cluster,abstrae e independiza a los servicios de un host concreto.Posibilitando que estos se desplacen entre diferentesservidores de forma trasparente para la aplicación o losusuarios.El software de cluster permite definir grupos de recursos, queson todos aquellos recursos necesarios por el servicio. Estosrecursos serán los scripts de arranque del servicio, un sistemade ficheros, una dirección IP, etc.
  12. 12. - REINICIAR RECURSOS•Cuando un recurso falla, la primera medida quetoman las soluciones de cluster es intentar reiniciardicho recurso en el mismo nodo. Lo que suponedetener una aplicación o liberar un recurso yposteriormente volverlo a activar.Algunas implementaciones no permiten reiniciar unúnico recurso, y lo que realizan es un reiniciocompleto de todo un grupo de recursos (servicio).Esto puede llegar a demorar bastante paraservicios como las bases de datos.
  13. 13. HEARTBEAT•El software de cluster conoce en todo momento ladisponibilidad de los equipos físicos, gracias a latécnica de heartbeat. El funcionamiento essencillo, cada nodo informa periódicamente de suexistencia enviando al resto una “señal de vida”.
  14. 14. INTERCOMUNICACIÓN•El software de cluster gestiona servicios y recursosen los nodos. Pero además, tiene que mantenercontinuamente entre estos una visión global de laconfiguración y estado del cluster. De esta forma,ante el fallo de un nodo, el resto conoce queservicios se deben restablecer.Ya que la comunicación entre los nodos del clusteres crucial para el funcionamiento de este, eshabitual utilizar un canal especifico como una redIP independiente o una conexión serie, que no sepueda ver afectada por problemas de seguridad orendimiento.
  15. 15. ESCENARIO SPLIT-BRAIN• - En un escenario split-brain, mas de un servidor oaplicación pertenecientes a un mismo clusterintentan acceder a los mismos recursos, lo quepuede causar daños a dichos recursos. Esteescenario ocurre cuando cada servidor en elcluster cree que los otros servidores han fallado eintenta activar y utilizar dichos recursos.
  16. 16. - MONITORIZACIÓN DE RECURSOS(RESOURCE MONITORING)•Ciertas soluciones de clustering HA permiten no solomonitorizar si un host físico esta disponible, tambiénpueden realizar seguimientos a nivel de recursos oservicios y detectar el fallo de estos.El administrador puede configurar la periodicidadde estos monitores así como las acciones a llevar acabo en caso de fallo.
  17. 17. - MIGRACIÓN DE RECURSOS(FAILOVER)•Cuando un nodo ya no esta disponible, o cuandoun recurso fallido no se puede reiniciarsatisfactoriamente en un nodo, el software decluster reacciona migrando el recurso o grupo derecursos a otro nodo disponible en el cluster.De este modo el tiempo de inactividad por elposible fallo es mínimo, y el cluster seguiráproporcionando el correspondiente servicio.
  18. 18. • - Dependencia entre recursosHabitualmente para que el cluster proporcione un servicio, sonnecesarios no solo un recurso si no varios (ip virtual, sistema deficheros, proceso), lo que se conoce como grupo de recursos.Cuando se arranca o detiene un servicio, sus recursos tienen queactivarse en el orden apropiado ya que unos dependen deotros. El software de cluster tiene que permitir definir estasdependencias entre recursos así como entre grupos.• - Preferencia de Nodos (Resource Stickiness)En configuraciones de cluster con múltiples nodos, es comúndistribuir los servicios a proporcionar entre los diferentesservidores. Además puede que los servidores tengancaracterísticas hardware diferentes (cpu, memoria ram) y nosinterese que, para un estado ideal del cluster, determinadosservicios se ejecuten siempre en un determinado servidor.Este comportamiento se define mediante la preferencia de nodoen la definición de cada recurso.
  19. 19. • - Comunicación con otros sistemasEl cluster tiene que monitorizar no solo que un servidor y sus servicios están activos, tambiéndebe de comprobar que, de cara a los usuarios, dicho servidor no queda desconectado de lared por el fallo de un latiguillo, switch, etc.Por lo tanto el software de cluster debe comprobar que los nodos son alcanzables. Un métodosimple para conseguirlo, es verificar que cada nodo tiene accesible el router o puerta deenlace de la red de usuarios.• - FencingEn los clusters HA existe una situación donde un nodo deja de funcionar correctamente perotodavía sigue levantado, accediendo a ciertos recursos y respondiendo peticiones. Para evitarque el nodo corrompa recursos o responda con peticiones, los clusters lo solucionan utilizandouna técnica llamada Fencing.La función principal del Fencing es hacerle saber a dicho nodo que esta funcionando en malestado, retirarle sus recursos asignados para que los atiendan otros nodos, y dejarlo en unestado inactivo.• - QuorumPara evitar que se produzca un escenario de Split-Brain, algunas implementaciones de clusterHA introducen un canal de comunicación adicional que se emplea para determinarexactamente que nodos están disponibles en el cluster y cuales no. Tradicionalmente seimplementa utilizando los llamados quorum devices, que habitualmente son un volumen dealmacenamiento compartido exclusivo (disk heart beating). También existen implementacionesque utilizan una conexiones de red adicional o una conexión serie. Esta última tienelimitaciones de distancia y actualmente ha quedado en desuso.
  20. 20. • Documentación:* Blueprints for High Availability – Evan Marcus, HalStern – Wiley 2003* Clusters for High Availability – Peter S. Weygant –Prentice Hall 2001* Red Hat Cluster Suite Overview – Red Hat Inc. 2008* The SUSE Linux Enterprise Server Heartbeat Guide –Novell 2008* Linux-HA Project Documentation – www.linux-ha.org

×