Sie sind auf Seite 1von 6

21/11/13

Cluster HTTP en alta disponibilidad con CentOS + Heartbeat | rm-rf.es

# rm-rf.es | Administracin de sistemas


Bitcora personal de un SysAdmin Gnu/Linux, Windows, BSD... INICIO Suscrbete por email Contacto
Introduce tu bsqueda...

abr 19, 2011

Cluster HTTP en alta disponibilidad con CentOS + Heartbeat


CCIE Training
www.ine.com/CCIE-Training We've Certified 3000+ CCIEs More CCIEs than any other company.

En esta entrada vamos a montar un cluster de alta disponibilidad con dos nodos CentOS, Heartbeat y servidor web Apache . A partir de esta configuracin bsica el cluster puede aumentar su nmero de nodos segn requerimientos de forma gradual y sencilla. La configuracin del cluster es la siguiente: nodo 1: IP: 192.168.1.129 HOSTNAME: cluster01 nodo 2: IP: 192.168.1.130 HOSTNAME: cluster02 IP virtual para el cluster: IP: 192.168.1.131

Imagen: hapm.sourceforge.net

Una vez configurado en los dos nodos el hostname e IPs (la IP virtual de momento no la tocamos), pasamos directamente a la instalacin de Heartbeat y Apache , en ambos nodos deberamos instalar:
y u mi n s t a l lh t t p d

Si prefers compilar apache en lugar de usar paquetes precompilados acudir a este post: compilar apache y php. Nota: Tendris que configurar Apache para que escuche por la IP virtual, no lo arranquis todava:
L i s t e n1 9 2 . 1 6 8 . 1 . 1 3 1 : 8 0

Evitamos que httpd arranque automticamente, lo har HeartBeat:


#c h k c o n f i gh t t p do f f

Instalamos Heartbeat mediante yum:


#y u mi n s t a l lh e a r t b e a t

Una vez instalado pasamos a la configuracin de Heartbeat. Los ficheros bsicos son authkeys, ha.cf y haresources . La ruta en la que debemos configurarlos es /etc/ha.d/. Si
rm-rf.es/cluster-http-en-alta-disponibilidad-con-centos-heartbeat/ 1/6

21/11/13

Cluster HTTP en alta disponibilidad con CentOS + Heartbeat | rm-rf.es

necesitamos ejemplos o los ficheros base los podemos encontrar en /usr/share/doc/heartbeat-2.1.2/.

ha.cf
ha.cf es el fichero en el que se especifica la configuracin global del cluster. Nuestra configuracin base es la siguiente. En el fichero de muestra tenis informacin sobre todas las directivas disponibles:
l o g f i l e/ v a r / l o g / c l u s t e r . l o g l o g f a c i l i t yl o c a l 0 w a r n t i m e5 d e a d t i m e3 0 i n i t d e a d1 2 0 k e e p a l i v e2 b c a s te t h 0 u d p p o r t6 9 4 a u t o _ f a i l b a c ko n n o d ec l u s t e r 0 1 n o d ec l u s t e r 0 2

En primera instancia especificamos que el log donde se volcar toda la informacin ser /var/log/cluster.log. Las directivas de deteccin de fallo de nodos son las siguientes: warntime : Heartbeat avisar cuando un nodo falle tras 5 segundos. deadtime : Hearbeat confirmar que un nodo ha cado, 30 segundos. initdead: Tiempo mximo que Heartbeat esperar a que un nodo arranque, 60 segundos. keepalive : Especifica cada cuanto tiempo Heartbeat enviar paquetes para comprobar la disponibilidad de los nodos, 2 segundos. A travs de node especificamos cada uno de los nodos que componen el cluster (sus hostname), uddport es el puerto UDP utilizado para la comunicacin y bcast la interfaz broadcast.

authkeys
Este es el fichero en el que se configura el sistema de autenticacin entre todos los nodos del cluster. El formato es el siguiente:
a u t hn u m n u ma l g o r i t h ms e c r e t

Los algoritmos disponibles son crc (1) sha1 (2) y md5 (3). Se recomienda utilizar sha1 as que lo utilizamos para nuestro cluster. clu$ter-4uth ser la llave de autenticacin (secret):
a u t h2 2s h a 1c l u $ t e r 4 u t h

nicamente root debe poder leer el fichero, as que asignamos los permisos correspondientes:
#c h m o d6 0 0/ e t c / h a . d / a u t h k e y s

haresources
En este fichero se especifican los servicios que se moveran entre los distintos nodos del cluster cuando uno de ellos caiga. En este caso nicamente trabajaremos con httpd, en el propio fichero tenis toda la informacin. Le especificamos tambin la IP virtual asignada al servicio:
c l u s t e r 0 11 9 2 . 1 6 8 . 1 . 1 3 1h t t p d

Propagar cambios de configuracin entre nodos


Una vez finalizada la configuracin inicial, podemos propagar los cambios entre todos los nodos mediante el comando ha_propagate. Hay que tener conectividad ssh/scp entre las mquinas, si no utilizis llaves os pedir la clave ssh de los nodos:
#/ u s r / l i b / h e a r t b e a t / h a _ p r o p a g a t e P r o p a g a t i n gH Ac o n f i g u r a t i o nf i l e st on o d ec l u s t e r 0 2 . h a . c f a u t h k e y s S e t t i n gH As t a r t u pc o n f i g u r a t i o no nn o d ec l u s t e r 0 2 . . . . . . 1 0 0 % 1 1 K B 1 0 . 7 K B / s 1 0 0 % 6 7 2 0 . 7 K B / s

Arrancar y probar el cluster


Una vez finalizada la configuracin ya podemos proceder a arrancar el cluster, para ello iniciamos HeartBeat en cada uno de los nodos:
#/ e t c / i n i t . d / h e a r t b e a ts t a r t

El propio HeartBeat reiniciar Apache, no lo hagis manualmente:


I P a d d r [ 4 6 1 8 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 4 3 : 0 2I N F O : R e s o u r c ei ss t o p p e d R e s o u r c e M a n a g e r [ 4 5 9 1 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 4 3 : 0 2i n f o :R u n n i n g/ e t c / h a . d / r e s o u r c e . d / I P a d d r1 9 2 . 1 6 8 . 1 . 1 3 1s t a r t I P a d d r [ 4 6 9 4 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 4 3 : 0 2I N F O :U s i n gc a l c u l a t e dn i cf o r1 9 2 . 1 6 8 . 1 . 1 3 1 :e t h 0 I P a d d r [ 4 6 9 4 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 4 3 : 0 2I N F O :U s i n gc a l c u l a t e dn e t m a s kf o r1 9 2 . 1 6 8 . 1 . 1 3 1 :2 5 5 . 2 5 5 . 2 5 5 . 0 I P a d d r [ 4 6 9 4 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 4 3 : 0 3I N F O :e v a li f c o n f i ge t h 0 : 01 9 2 . 1 6 8 . 1 . 1 3 1n e t m a s k2 5 5 . 2 5 5 . 2 5 5 . 0b r o a d c a s t1 9 2 . 1 6 8 . 1 . 2 5 5 I P a d d r [ 4 6 7 7 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 4 3 : 0 3I N F O : S u c c e s s R e s o u r c e M a n a g e r [ 4 5 9 1 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 4 3 : 0 3i n f o :R u n n i n g/ e t c / i n i t . d / h t t p d s t a r t

rm-rf.es/cluster-http-en-alta-disponibilidad-con-centos-heartbeat/

2/6

21/11/13

Cluster HTTP en alta disponibilidad con CentOS + Heartbeat | rm-rf.es

En este caso no estamos montando a travs de iSCSI, NFS o similar los datos que sirve Apache, de modo que para verificar contra qu nodo del cluster estamos conectando en cada momento podemos crear un index.html bsico en cada uno de los nodos, ruta /var/www/html/index.html en el que indiquemos el nodo en el que nos encontramos. En este momento, si accedermos a http://192.168.1.131 ya deberamos poder acceder va web al servicio, y nos indicar que es el cluster01 quien est sirviendo el contenido. La primera prueba que vamos a hacer para probar el cluster es tirar el nodo cluster01, para ello tiramos la interfaz de red, en mi caso eth0:
#i f d o w ne t h 0

Una vez pasado el tiempo especificado en la configuracin, en nodo cluster02 debera tomar el control de httpd y servir la web http://192.168.1.131, en el log veris algo similar a:
h e a r t b e a t [ 2 3 5 4 ] :2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 4W A R N :n o d ec l u s t e r 0 1 :i sd e a d h e a r t b e a t [ 2 3 5 4 ] :2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 4W A R N :N oS T O N I T Hd e v i c ec o n f i g u r e d . h e a r t b e a t [ 2 3 5 4 ] :2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 4W A R N :S h a r e dd i s k sa r en o tp r o t e c t e d . h e a r t b e a t [ 2 3 5 4 ] :2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 4i n f o :R e s o u r c e sb e i n ga c q u i r e df r o mc l u s t e r 0 1 . h e a r t b e a t [ 2 3 5 4 ] :2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 4i n f o :L i n kc l u s t e r 0 1 : e t h 0d e a d . h a r c [ 2 4 1 7 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 5i n f o :R u n n i n g/ e t c / h a . d / r c . d / s t a t u ss t a t u s h e a r t b e a t [ 2 4 1 8 ] :2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 5i n f o :N ol o c a lr e s o u r c e s[ / u s r / s h a r e / h e a r t b e a t / R e s o u r c e M a n a g e rl i s t k e y sc l u s t e r 0 2 ]t oa c q u i r e . m a c h _ d o w n [ 2 4 4 7 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 6i n f o :T a k i n go v e rr e s o u r c eg r o u p1 9 2 . 1 6 8 . 1 . 1 3 1 R e s o u r c e M a n a g e r [ 2 4 7 3 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 7i n f o :A c q u i r i n gr e s o u r c eg r o u p :c l u s t e r 0 11 9 2 . 1 6 8 . 1 . 1 3 1h t t p d I P a d d r [ 2 5 0 0 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 8I N F O : R e s o u r c ei ss t o p p e d R e s o u r c e M a n a g e r [ 2 4 7 3 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 2 8i n f o :R u n n i n g/ e t c / h a . d / r e s o u r c e . d / I P a d d r1 9 2 . 1 6 8 . 1 . 1 3 1s t a r t I P a d d r [ 2 5 7 6 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 3 0I N F O :U s i n gc a l c u l a t e dn i cf o r1 9 2 . 1 6 8 . 1 . 1 3 1 :e t h 0 I P a d d r [ 2 5 7 6 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 3 0I N F O :U s i n gc a l c u l a t e dn e t m a s kf o r1 9 2 . 1 6 8 . 1 . 1 3 1 :2 5 5 . 2 5 5 . 2 5 5 . 0 I P a d d r [ 2 5 7 6 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 3 1I N F O :e v a li f c o n f i ge t h 0 : 01 9 2 . 1 6 8 . 1 . 1 3 1n e t m a s k2 5 5 . 2 5 5 . 2 5 5 . 0b r o a d c a s t1 9 2 . 1 6 8 . 1 . 2 5 5 I P a d d r [ 2 5 5 9 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 3 2I N F O : S u c c e s s R e s o u r c e M a n a g e r [ 2 4 7 3 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 3 2i n f o :R u n n i n g/ e t c / i n i t . d / h t t p d s t a r t m a c h _ d o w n [ 2 4 4 7 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 3 3i n f o :/ u s r / s h a r e / h e a r t b e a t / m a c h _ d o w n :n i c e _ f a i l b a c k :f o r e i g nr e s o u r c e sa c q u i r e d m a c h _ d o w n [ 2 4 4 7 ] : 2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 3 3i n f o :m a c h _ d o w nt a k e o v e rc o m p l e t ef o rn o d ec l u s t e r 0 1 . h e a r t b e a t [ 2 3 5 4 ] :2 0 1 1 / 0 4 / 1 9 _ 1 1 : 3 1 : 3 3i n f o :m a c h _ d o w nt a k e o v e rc o m p l e t e .

Y efectivamente, al entrar por navegador a http://192.168.1.131/ accedemos al cluster02. Esta es la configuracin ms bsica de un cluster HTTP con HeartBeat, a partir de aqu es cuestin de ir haciendo pruebas de failover y failback tirando nodos, levantandolos, y en definitiva, trastear con la configuracin, etc ya que HeartBeat permite una gran cantidad de configuraciones.

Tambin te puede interesar:


Red Hat Cluster: generic error al crear un IP Resource
Llevo unos das haciendo pruebas con una maqueta de Red Hat Cluster Suite en CentOS. De momento, voy estudiando los distintos comandos y ficheros de configuracin, aunque utilizo luci/ricci para la...

11
Tw ittear

Windows Failover Cluster: failed registration of one or more associated DNS name(s)
Si bien el siguiente error no es crtico ni afecta al servicio, s que resulta muy molesto porque nos "ensucia" el registro de errores del cluster y del sistema de forma continuada hasta que se sol...

Cmo compilar Apache y PHP en Linux


En este artculo voy a explicar los pasos bsicos para compilar Apache y PHP (con soporte para MySQL y otros mdulos) en GNU/Linux, concretamente bajo RHEL, aunque se puede aplicar a cualquier dist...

Categora: Apache, Linux | Etiquetas: alta disponibilidad, Apache, cluster, HeartBeat

15 Comentarios
1. jose dice: noviembre 5, 2011 a las 5:08 am excelente tutorial..me servira como guia para implemnetarlo pero de forma virtual. Responder 2. luis dice: junio 25, 2012 a las 9:09 am buen tutorial.. Responder 3. Fernando dice: noviembre 19, 2012 a las 3:25 pm heartbeat sincroniza tambien los datos entre los servidores? Responder Alex dice: noviembre 19, 2012 a las 4:56 pm
rm-rf.es/cluster-http-en-alta-disponibilidad-con-centos-heartbeat/ 3/6

21/11/13

Cluster HTTP en alta disponibilidad con CentOS + Heartbeat | rm-rf.es

No, en este caso lo normal es utilizar un almacenamiento compartido entre todos los nodos (SAN, NAS). Saludos Responder 4. Enzo dice: diciembre 5, 2012 a las 1:44 pm Excelente tutorial, pero me nace una pregunta, entiendo que ambos servidores VPS poseen diferentes ip: nodo 1: IP: 192.168.1.129 HOSTNAME: cluster01 nodo 2: IP: 192.168.1.130 HOSTNAME: cluster02 pero en el caso de la ip virtual, a cual de los 2 se la debemos asignar? o directamente le asignamos y la coger automticamente de la lista de ips disponibles de ese direccionamiento? Responder Alex dice: diciembre 5, 2012 a las 4:37 pm Hola Enzo, Pues la IP virtual la levantar el primer nodo que arranques con heartbeat. Saludos Responder Enzo dice: diciembre 5, 2012 a las 5:10 pm Hola Alex, gracias por tu respuesta, te comento que para este caso pienso usar 2 maquinas virtuales que estn en el mismo nodo. Responder 5. Os dice: diciembre 7, 2012 a las 12:06 am Hola tengo una pregunta. Nose como configurar Apache para que escuche por la IP virtual. Que archivo de apache hay que modificar. o solo hay que poner el comando Listen seguido de la IP VIRTUAL?? Responder Alex dice: diciembre 7, 2012 a las 12:44 am Hola Os, S, nicamente Listen IP:PUERTO Un saludo Responder Os dice: diciembre 7, 2012 a las 3:26 am Hola otra vez. perdona mi ignorancia pero en que fichero de apache exactamente es donde hay que poner el parmetro: Listen IP:PUERTO?? jejeje perdona. Gracias de antemano. Un saludo. Responder Alex dice: diciembre 7, 2012 a las 10:19 am En el fichero httpd.conf, ya tendrs una lnea que diga: Listen 80 (o similar) Un saludo.
rm-rf.es/cluster-http-en-alta-disponibilidad-con-centos-heartbeat/ 4/6

21/11/13

Cluster HTTP en alta disponibilidad con CentOS + Heartbeat | rm-rf.es

Responder 6. Os dice: diciembre 7, 2012 a las 12:50 am Ok muchas gracias por la respuesta. Responder 7. Os dice: diciembre 7, 2012 a las 12:39 pm Buenos das. Pues creo que no el fichero: sudo less /etc/apache2/httpd.conf lo tengo vaco, probar a poner ah mi IP:PUERTO, quedara mas o menos as. Listen 192.168.2.10:80 Ya que est IP ya la tengo montada com recurso de mi CLUSTER. a ver si tengo suerte. Gracias. Responder 8. VR dice: diciembre 20, 2012 a las 4:21 pm Buenas he visto mucha informacion en internet, y lo que deseo es poder correr varios servidores Linux CentOS, los cuales todos esscriban sobre el mismo storage. Me explico mejor: ServerCoreNLB Server1 APACHE, MYSQL, CORREO, FTP Server2 APACHE, MYSQL, CORREO, FTP El ServerCoreNLB lo que me hace es un balanceo de carga. IP Virtual Lo que que busco es que Server1 y Server2 accedan al mismo Storage compartido. Indiferentemente donde acceda el usuario la informacion sea la misma. Esto es viable con CentOS 6.x Responder 9. Lizy dice: abril 3, 2013 a las 11:30 am Hola a todos, necesito que me ayuden; tengo un so Ubuntu 12.04.2 necesito configurar un cluster con heartbeat para conectar 3 mquinas virtuales, dos de las cuales estarn conectadas entre s, mientras la tercera ser la instancia que contendr la informacin con Mysql, tambien tengo que fusionarlas usando pacemaker. Mi pregunta: Cmo lo hago, cmo conecto las mquinas para hacer funcionar a heartbeat y pacemaker? me urge. gracias Responder

Deja una respuesta


Nombre (obligatorio) Mail (obligatorio) Website

Enviar comentario
Seguir a @rm _rf_es 638 seguidores

Entradas recientes
Solaris vi: Terminal too wide gzip en paralelo con pigz VMware: vSphere HA virtual machine monitoring error | Invalid transition requested VMware: arranque de VM colgado en bringing up the network interfaces Equivalente a ProxyAuth en imapsync contra MS Exchange

Comentarios recientes
rm-rf.es/cluster-http-en-alta-disponibilidad-con-centos-heartbeat/ 5/6

21/11/13

Cluster HTTP en alta disponibilidad con CentOS + Heartbeat | rm-rf.es

Mazzz en Migrar privilegios de un servidor MySQL erik en Diferencias entre soft (symbolic) y hard links knybiza en Migrar privilegios de un servidor MySQL Sabalera en APF: Unable to load iptables module (ip_tables), aborting Fred en Cmo configurar tarjetas de red en Red hat Enterprise, CentOS y Fedora Core

Etiquetas

Apache backup bash CentOS Cisco comando Comandos comandos linux comunicaciones correo cPanel data ontap Debian Dns error Fedora IIS instalacin IOS ip kernel Linux Monitorizacin MySQL NetApp optimizacion Oracle password Perl PHP Red Hat RHEL Seguridad SELinux sistema ficheros Solaris ssh Ubuntu Unix vim Virtualizacin
virtuozzo vps

Windows yum

Categoras
Apache BSD Comandos cPanel Curiosidades Dns Dominios y Hosting Humor Geek IIS Linux Manuales Monitorizacin MySQL NetApp PHP PostgreSQL Python y Perl Redes Scripts Seguridad Servidores de aplicaciones Servidores de correo Storage Ubuntu Unix Utilidades Vdeos Virtualizacin Windows Poltica de privacidad | Tema Grid Focus | Licencia Creative Commons | Guitarra

rm-rf.es/cluster-http-en-alta-disponibilidad-con-centos-heartbeat/

6/6

Das könnte Ihnen auch gefallen