Beruflich Dokumente
Kultur Dokumente
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
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
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
rm-rf.es/cluster-http-en-alta-disponibilidad-con-centos-heartbeat/
2/6
21/11/13
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.
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...
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
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
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
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
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