Nexolinux
Sistemas Linux, servidores web, certificaciones, LPIC, Linux básico y profesional
Navigation
  • Home
  • Bash
  • LPIC
  • Noticias
  • Seguridad
  • Servicios
  • HowTo’s
You are here: Home › Linux General › Clustering Alta disponibilidad en Linux. heartbeat

Clustering Alta disponibilidad en Linux. heartbeat

7 noviembre, 2012 | Filed under: Linux General, Servicios and tagged with: alta disponibilidad linux, centos cluster, cluster con linux, debian cluster, linux heartbeat, red hat cluster

 

En los tiempos que vivimos es vital para las empresas y el negocio  tener los aplicativos, servicios y páginas web disponibles siempre o casi casi siempre, y no sólo hablamos por el tema económico, si no por imagen, pensad que si a la hora de intentar acceder a una página web determinada un alto % de las veces no está disponible en términos profesionales da cierta inseguridad de cómo manejan sus aplicativos, y en otros términos perderemos un considerable número de visitas e interés por los usuarios.

Si hay un campo en donde Linux he visto que ha destacado o es el jugador titular indiscutible, es en el clustering, la capacidad de unir varias máquinas virtuales o físicas para dar servicio a la vez  de forma que se balancean recursos para evitar sobrecargas de algunos servidores y en casos de que alguno falle y no pueda darlo. Esto es algo transparente al usuario final, pues tendremos una dirección virtual en donde se accede a todo el servicio del cluster y luego los nodos que son los que realmente proporcionarán el servicio.

Este es el top 500 de sistemas operativos a nivel mundial de supercomputadoras:

Las lista completa oficial la podéis encontrar en Top 500 supercomputers

 

En este artículo vamos a poner un ejemplo de una configuración básica de un cluster Heartbeat en Linux que suele ser muy utilizado en producción a nivel profesional. Se llama así porque el servidor que tiene el servicio manda «latidos» unos ping con los que verifican si el servidor principal está disponible o no.

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 petición, en caso de que se detecte que no funciona correctamente el otro nodo esclavo obtiene el control del servicio en segundos. Esta es la forma de configurarlo:

Nodo 1:

Hostname node01
IP Address: 172.16.4.80

Nodo 2:

Hostname node02
IP Address: 172.16.4.81

IP Virtual: 172.16.4.82

1 – Instalamos Heartbeat:

#yum install heartbeat

Estos son los tres ficheros de configuración:

authkeys
ha.cf
haresources

2 – Estos son los paquetes de cluster que nos van a instalar:

heatbeat-2.08
heartbeat-pils-2.08
heartbeat-stonith-2.08

3 – Copiamos los ficheros a la ruta /etc/ha.d el fichero de configuración de Heartbeat

cp /usr/share/doc/heartbeat-2.1.2/authkeys /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.2/ha.cf /etc/ha.d/
cp /usr/share/doc/heartbeat-2.1.2/haresources /etc/ha.d/

4- Empezamos a configurarlo todo editando el /etc/ha.d/authkeys añadiendo las siguientes líneas:

auth 2
2 sha1 test-ha

Cambiamos permisos a este fichero:

chmod 600 /etc/ha.d/authkeys

5- editamos el fichero /etc/ha.d/ha.cf

# Definimos los logs.
 logfile /var/log/ha-log
 logfacility local0
 # Tiempo en segundos entre cada latido.
 keepalive 2
 # Tiempo en segundos en el que se considera un sistema inactivo.
 deadtime 30
 # Tiempo de espera en segundos para interfaces que levantan lentamente.
 initdead 120
 # Ping por el interface que comunica ambos nodos (interface de latido).
 # La IP debe de ser la del interface del otro nodo.
 bcast eth0
 # Por que interface hacemos la comunicacion entre nodos y por que puerto.
 udpport 694
 # Definir el tipo de failback.
 auto_failback on
 # Nodos que componen el cluster.
 node node01
 node node02

6 – El final de la configuración es editar el fichero /etc/haresources

Que contiene información de los recursos que queremos alta disponibilidad, también debemos indicar el servicio que lo tendrá, en este ejemplo es el servicio web (httpd) En este caso tenemos el node01 como activo y el node02 como pasivo.

node 01 172.16.4.82 httpd

7- copiamos el fichero de configuración del cluster /etc/ha.d del node01 al node02

scp -r /etc/ha.d  root@node02:/etc/

8- Nos queda una configuración en el Apache,

Configurar la IP por defecto en la que escucha el servidor, esto lo hacemos en ambos nodos:

/etc/httpd/conf/httpd.conf
Listen 172.16.4.82:80

9 – Creamos un fichero index.html para tener una prueba gráfica de qué nodo nos da el servicio:

echo "node01 apache test server" > /var/www/html/index.html
echo "node02 apache test server" > /var/www/html/index.html

10 – Iniciamos servicio cluster heartbeat en ambos nodos

/etc/init.d/heartbeat start

11 -Abrimos el navegador y ponemos la url:

http://172.16.4.82 
Nos saldrá el mensaje «node01 apache test server»

12 – paramos el heartbeat en el node01 y el mensaje lo veremos en el node02

root@node01# /etc/init.d/heartbeat start


http://172.16.4.82 
Nos saldrá el mensaje «node02 apache test server»

 

Fuente: howtoforge

 

Comparte esto:

  • Facebook
  • Twitter
  • LinkedIn

Me gusta esto:

Me gusta Cargando...

12 Responses to "Clustering Alta disponibilidad en Linux. heartbeat"

  1. Nacho dice:
    28 mayo, 2016 a las 10:29

    Buenos dias, tengo una duda y es que la configuracion de red qe utilizas es la indicada en el primer apartado, hasta ahi todo bien. la pregunta es ¿utilizas una ip virtual, que en este caso es la 172.16.4.82, que en ambos equipos esta configurada como por ejemplo eth0:0?

    Responder
  2. luis951214 dice:
    12 octubre, 2015 a las 17:13

    la configuracion del heart beat se realiza en cada nodo

    Responder
  3. pedro dice:
    16 octubre, 2014 a las 01:12

    amigo que pasa cuando el maestro nodo 1 de ejemplo cae y vuelve quien queda como primario en este caso, nodo 1 o nodo 2.

    Responder
    1. m3t4g4m3 dice:
      6 noviembre, 2014 a las 20:42

      Buenas.

      En este ejemplo en particular no, porque es lo más básico, pero bastaría con añadirle esta línea:

      en el fichero ha.cf
      auto_failback on

      Saludos!

      Responder
    2. Soledad-woman dice:
      31 enero, 2017 a las 20:01

      Hola colega,
      te cometo cuando se cae en nodo1 , automáticamente levanta el nodo2.. supongamos que tiene problemas de que se cae muy seguido, te recomiendo que implementes CRONTAB -E… acá es donde podes crear un script que se ejecute cada una hora, para que el servicio Heartbeat se mantenga levantado. mira algo asi:

      El script seria de esta manera:

      crea un archico nonbredelarchivo.sh
      # touch /heartbeat-start.sh

      dale estos permisos
      # chmod a+x heartbeat-start.sh

      editalo
      # nano heartbeat-start.sh

      en el archivo copia esto:
      # !/bin/bash

      ####Estre scrit es para levantar el sevicion HEARTBEAT####

      /etc/init.d/heartbeat restart

      ####Fin, creado 11/1/2017####

      luego guarda con ctrl+o desp dale enter para guarda, y salir con cntrol+x

      ejecuta el comando crontab -e, y copia
      # crontab -e

      # m h dom mon dow user command

      ####Iniciar Servivio Heartbeat, cada 3 horas####
      00 08 * * * /heartbeat-start.sh
      00 09 * * * /heartbeat-start.sh
      00 10 * * * /heartbeat-start.sh
      00 11 * * * /heartbeat-start.sh
      00 12 * * * /heartbeat-start.sh
      00 13 * * * /heartbeat-start.sh
      00 14 * * * /heartbeat-start.sh
      00 15 * * * /heartbeat-start.sh
      00 16 * * * /heartbeat-start.sh
      00 17 * * * /heartbeat-start.sh
      00 18 * * * /heartbeat-start.sh
      00 19 * * * /heartbeat-start.sh
      00 20 * * * /heartbeat-start.sh
      00 21 * * * /heartbeat-start.sh

      luego guarda con ctrl+o desp dale enter para guarda, y salir con cntrol+x

      listo, evitas de levantarlo manualmente.

      Suerte colega

      Responder
      1. m3t4g4m3 dice:
        31 enero, 2017 a las 23:31

        Buenas Soledad.

        Esto no es una solución a un problema así ni es profesional, es ponerle una tirita mal puesta, lo PRIMERO es ver los logs en busca de errores y en algunos casos hasta es mejor reinstalarlo cambiando la versión a una más actualizada. No puedes reiniciar un servicio en muchos entornos en producción cada poco tiempo porque lo mismo tiras sesiones y es algo bastante grave.

        En cualquier caso de que se haga un script para reiniciarlo algo que me parece una auténtica burrada de primeras, primero habría que chequear si el proceso está levantado como mínimo y en ese caso ARRANCARLO, pues al reiniciarlo te va a dar fallos al no poder pararlo.

        Por otro lado el crontab, es impensable poner una línea cada 3 horas, revisa esto:
        http://nexolinux.com/crontab-programando-tareas/

        La cadena UNICA de un crontab para ejecutarse cada 3 horas sería así:
        0 */3 * * * /path-to-script

        Saludos!
        Andrés

        Responder
  4. Christian González dice:
    4 abril, 2014 a las 16:55

    Amigo se puede configurar para sincronizar 2 servidores de DHCP?

    Responder
    1. m3t4g4m3 dice:
      4 abril, 2014 a las 20:27

      Buenas.

      El DHCP ya tiene configuración para poner varios y que se sincronicen entre ellos. Normalmente servicios así no requieren de un cluster, sólo un DNS y configuración local en sus ficheros.

      Responder
  5. Erick dice:
    12 diciembre, 2013 a las 19:37

    podrías dejar un poco más completo de como se editan los archivos de heartbeat

    Responder
    1. m3t4g4m3 dice:
      12 diciembre, 2013 a las 22:39

      Buenas Erick.

      La edición de ficheros de configuración es algo básico en Linux, y creo que no es necesario poner explícitamente en algo tan avanzado como la configuración de un cluster, de qué forma se editan los ficheros, como tampoco en cada configuración.

      Saludos!!

      Responder
      1. Erick dice:
        13 diciembre, 2013 a las 18:34

        Perdon por la duda anterior la resolví inmediato, ahora otra pregunta, entro a el navegador y pongo la dirección y pues no muestra nada solo un cuadro de reintentar…..

        Responder
        1. m3t4g4m3 dice:
          13 diciembre, 2013 a las 21:43

          Estás poniendo la IP del ejemplo o la de la máquina? está correctamente el Apache arrancado?

          Responder

Deja un comentarioCancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Categorías.

  • Bases de datos
  • Bash & Comandos
  • HowTo
  • Linux General
  • LPIC
  • LPIC-2
  • Nivel Avanzado
  • Nivel Basico
  • Noticias
  • Seguridad
  • Servicios
  • Servidor Web

Entradas y Páginas Populares

  • Comando fuser, Localizamos procesos que usan un fichero.
    Comando fuser, Localizamos procesos que usan un fichero.
  • Ejemplos usos mount y umount
    Ejemplos usos mount y umount
  • Ficheros de usuarios /etc/passwd y /etc/shadow
    Ficheros de usuarios /etc/passwd y /etc/shadow
  • Instruccion READ en Bash
    Instruccion READ en Bash
  • ¿Cómo cifra linux las contraseñas?
    ¿Cómo cifra linux las contraseñas?
  • Proxy Squid, control de accesos ACL (II)
    Proxy Squid, control de accesos ACL (II)
  • 15 dispositivos que funcionan con Linux
    15 dispositivos que funcionan con Linux
  • fichero fstab
    fichero fstab
  • HowTo:Ejecutar comando como otro usuario.
    HowTo:Ejecutar comando como otro usuario.
  • Comandos más usados para gestionar Iptables
    Comandos más usados para gestionar Iptables

© 2025 Nexolinux

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrar publicidad relacionada con tus preferencias. cerrar Política de cookies
Privacidad y política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR
 

Cargando comentarios...
 

    %d