Copy Link
Add to Bookmark
Report
5x02 Clustering y alta disponibilidad en servers
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
))))))))))))))S)i)e)n)t)e))l)o))p)r)o)h)i)b)i)d)o)))))))))))))))))))
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
http://kshezine.org
Clustering y alta disponibilidad en servers.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
by NiEtZsChE-2k
°°°°°°°°°°°°°°°
Copyright 2001.
'''''''''''''''
<>-InTr0-<>
===========
Bien, este articulo sera basado en lo que se denominan: "Clusters de alta dis
ponibilidad". Para entender este concepto y luego poder llevarlo a la
practica, debemos analizar las caracteristicas y ventajas del mismo, con el
objetivo de comprenderlo y poder llevarlo a cabo. Es por eso que este articulo
esta dirigido especialmente a administradores de red, o incluso personas que
trabajen en el mantenimiento de servers, etc. quiero aclarar, que este txt,
contiene mas aspectos a desarrollar, que se iran desenvoviendo en posteriores
ediciones. Con esto dicho, ya estamos listos... empecemos !!
-----------------------------------------------------------------------------
<>-Desarr0ll0-<>
================
Para ejemplificar dicho concepto, supongamos que estais a cargo o teneis un
server muy impotante a mantener, que este libre de cuelgues, y que precises
que el server como tal este siempre activo, me refiero a que sea un ordenador
incondicional, que no puede estar fuera de la red ni un minuto, ya que
causaria un caos total. imaginad aquellos servers importantes, los mismos ISP,
que sus servers deben estar siempre en la red, ofreciendo servicios a los
clientes, cuando me refiero a server, puede ser un servidor web, sevidor de
correo, servidor ftp, etc. Pues ultimamente se han desarrollado tecnicas para
evitar eso como ser utilizar una "replica" del server primario creando un
server secundario de apoyo. claro está, que eso implica una serie de gastos a
la empresa u organizacion, pero ultimamente se han usado esas tecnicas de
"server de emergencia". Pues el tema es que en caso que no tengamos cuelgues
ni problemas en el server primario, el server secundario estaria ocioso, y
seria un armatoste sin usar, en fin no productivo. pues lo que trataremos
atraves de estos bytes..., sera justamente como desarrollar un sistema de
auxilio, que monitoree constantemente la accion del server primario de forma
automatica, y que al mismo tiempo este activo y monitoreando el comportamiento
de los demas nodos que conforman dicha LAN.
<>-Requerimient0s-<>
====================
* Un ordenador con prestaciones para trabajar como servidor.
dicho ordenador el cual funcionara como servidor secundario, debe tener
caracteristicas similares al server primario, como ser compatabilidad de
Hardware y software en gral. ademas, debemos tener en cuenta que si vuestro
server secundario trabajara como replica del primario en caso de conflictos es
fundamental que EN AMBOS SERVERS TENGAMOS EL MISMO SOFTWARE, DATOS, Y
HERRAMIENTAS, YA QUE CUALQUIERA DE LOS DOS REEMPLAZARIA AL OTRO.
es decir que debemos tener una replica, "espejo", de los datos del server
primario en el secundario, ya que, por si acaso el server principal que
funcionaba como servidor de correo, servidor ftp, y web, se "cae" de la red,
el servidor secundario lo auxiliaria en segundos, ya que tendriamos
exactamente los mismos datos, software, servicios y paginas webs disponibles
como si en realidad fuese el server principal.
* una vez que ya tenemos ambos los dos severs ya listos, los conectaremos en
red usando NIC´s ( Network interface Card) tarjetas de red, o bien por los
puertos seriales. Aqui os presento un esquema basico de como quedaria la
conexion en red de ambos servers:
- CLIENTES- <<-----------------------------------------------------|
---------- | |
| CONECTADO A LA RED |
| PRINCIPAL |
| |
| |
[------------------] [------------------]
[ ORDENADOR ] CONEXION DE LOS SERVERS [ ORDENADOR ]
[ PRINCIPAL ]<------------------------->[ SECUNDARIO ]
[(SERVER PRINCIPAL)] USANDO NICS O POR [(SERVER DE EMERG.)]
[------------------] PUERTOS SERIALES. [------------------]
SERVIDOR1 -> 10.1.1.3 SERVIDOR2 -> 10.1.1.4
* Una vez que ya hemos configurado, nuestras placas de red y establecimos la
comunicacion entre ambos servers, viene el paso mas importante: hacer nuestro
Clustering.
Para ello haremos uso de un software llamado "Heartbeat", es aquella la
aplicacion con la cual llevaremos a cabo nuestro clustering. bien antes que
nada, para que no os quedeis en el aire..., el Heartbeat viene ya incluido en
las siguientes distros de linux:
-Conectiva 6.0 -Mandrake -SuSE
para ser mas exacto, heartbeat viene cargado en el kernel: 2.2.17-14cl. (para
verificar vuestro kernel, tipeas: uname -r). pues tambien os coloco el web
para que os bajeis la ultima version:
----------------------------
<www.linux-ha.org/download>.
----------------------------
-Funci0namient0 de Heartbeat.
=============================
Bien ya que hablo tanto de Hearbeat, pasare a explicaros el funcionamiento de
este chiquillo... como os habia dicho anteriormente esta aplicacion automatiza
y optimiza el clustering de alta disponibilidad, es decir, en pocas palabras
lo que vuestro soft hace es checar mediante envios de señales, especialmente
pings, las cuales verifican si el server principal esta activo, es decir estos
pings enviados por hearbeat requieren una respuesta por parte del server
principal, si al cabo de un cierto tiempo el sever no responde dichos pings,
heartbeat determina que ese server se encuentra inactivo, y automaticamente
activa el otro server para que asuma el control de la red. Con este
funcionamiento tenemos que el administrador de red o tu mismo, pueden estar
tranquilos, ya que en caso de acontecer un problema con tu server principal el
server secundario asumira el control automaticamente, luego tu o el
administrador, trabajarian en resolver dicho problema para colocar en
actividad el verdadero server. y por que yo precisaria de hacer todo esto???
pues como ya he dicho para redes importantes, y servers que deben estar las 24
hs activos, seria una gran perdida para la empresa u organizacion que el
server por cualquier problema se caiga de la red. y eso ocasionaria grandes
perdidas..., y como se puede "caer" mi server??? pues simple, por muchas
causas, fallas en Hardware, soft, sistema, etc. pero especialmente si dicho
server, se encuentra conectado a Internet, es factible a recibir ataques DoS
(denegacion de servicio), etc. no entrare en detalles sobre ese tipo de
ataques, p¢rque se sale del objetivo del articulo.
- Bien finalmente, una vez que ya habeis entendido el funcionamiento y el
concepto del clustering y alta disponibilidad y ya teneis vuestros servers
conectados en red y teneis el heartbeat en vuestras manitos... vayamos al
grano con la configuracion de este clustering !!
-----------------------------------------------------------------------------
<>-C0nfiguraci0n-<>
===================
bien creo que ya teneis vuestro linux en ambos servers, pues entonces
empezemos ;)
-descompactas en cualquier directorio de tu preferencia el heartbeat:
# tar -xvzf heartbeat-0.4.9-tar.gz
- luego os vais a este directorio para iniciar luego la instalacion del soft.
# cd hearbeat-0.4.9
# make install
- pues alli esperais a que heartbeat sea instalado, y HARAS EXACTAMENTE LO
MISMO EN EL OTRO SERVER, O SEA EL SERVER SECUNDARIO O DE EMERGENCIA, AMBOS
DEBEN TENER HEARBEAT PARA QUE EL CLUSTERING FUNCIONE.
-Nota: como he dicho anteriormente es recomendable que ambos servers usen el
mismo SO, mismo Hardware, etc. para evitar posibles conflictos.Para modificar
e incluir las respectivas lineas que comentaremos posteriormente podeis usar
cualquier editor, en tal caso emacs o vi.
luego una vez hecho la instalacion debemos configurar tres ficheros que son
esenciales para el funcionamiento del Heartbeat, dichos ficheros se encuentran
en: /etc/hd.d/. El primer fichero es ha.cf, justamente es alli donde
configuraremos el modo de conexion de ambos equipos:
-En caso que hayas conectado los servers por el puerto serial COM1, debes
incluir estas lineas en el file ya nombrado (ha.cf):
serial /dev/ttySO
baud 19200
- En caso que hayas conectado tus servers con tarjetas de red, simplemente
mandas estas lineas:
udp eth1
udp port 694
en lo referente a "eth1", puedes colocarlo como "eth0", en caso que la placa
de red que hayas insertado sea la unica, lo dejas en "eth0", si la tarjeta de
red que colocaste es secundaria, lo dejas en "eth1", es opcional. luego el
puerto que heartbeat utlizara para hacer sus checks, y monitoreo sera el 694
para udp, o sea el puerto padron que usa el soft.
-luego, en el mismo fichero (ha.cf) seguiremos colocando lineas, en este caso
configuraremos la frecuencia de envio de las señales y pings que indicaran si
el sistema esta activo o no, esto es opcional, claro. si por ejemplo quereis
que el checkeo y la monitarizacion, se haga durante 2 seg. dicha linea seria
asi:
keepalive 2
-luego, incluiremos otra linea con la cual determinaremos el intervalo de
tiempo en que la maquina seria considerada inactiva. es decir a partir de ese
tiempo es que sera considerada la situacion de emergencia, en este caso,
podriamos poner que si en 20 segundos, el equipo no responde, sera considerado
inactivo y a partir de alli entrara en juego heartbeat y por consiguiente el
servidor secundario. Dicha linea, es opcional, pero podriamos colocar algo
como esto:
deadtime 20
-luego, tenemos que informar los nombres de ambos servers:
node servidor1
node servidor2
donde servidor1 y servidor2 deben ser reemplazados justamente, por el
verdadero nombre de vuestros ordenatas. en este caso "servidor1", seria el
nombre del server principal, luego "servidor2", seria el nombre del server
secundario o de emergencia. para aquellos que estais verdes en linux los
nombres de sus servers, los determinan con: hostname -s, como asi para darle
un nombre al ordenata mandas: hostname -s tu.nombre.com, puede ser que tengas
que modificar el nombre del equipo, en el fichero: /etc/rc.d/rc.local,
simplemente edita ese fichero y busca los parametros, del nombre que hayas
definido y guarda los cambios.
-luego, debes REPETIR EXACTAMENTE LOS MISMOS PASOS EN EL OTRO SERVER SECUNDARIO.
-----------------------------------------------------------------
-El segundo fichero a configurar se llama: haresources. Justamente es con
aquel fichero que configuraremos los servicios que seran activados en el
server secundario en caso que el server principal sufra algun conflicto. por
ejemplo en caso que queramos que el Apache y el samba continuen activos,
deberiamos incluir esta linea en el haresources del server primario:
servidor2 190.123.123.10 httpd smb
-luego, en el haresources del server secundario incluimos esta linea:
servidor1 190.123.123.10 httpd smb
Nota: los datos, como direcciones ips, y hosts, son de ejemplo, os debeis
---- reemplazar, logico por vuestra informacion propia. otra cosa,
en caso de que querais habilitar mas servicios, es solo ir incluyendolos
del mismo modo que lo hemos hecho con Apache y Samba. ;)
- Despues de haber includido dichas lineas, y haber ajustado la configuracion
a vuestras necesidades, ya hemos garantizado el clustering de alta
disponibiliad y el monitoreo de los servers, en caso que el servidor primario
presente conflictos o problemas, el servidor secundario asumira el control de
la red. Pero cabe destacar que si el server principal fuese reiniciado, el
pasaria a controlar y monitorear el server secundario, cosa que no tiene nada
que ver con nuestro objetivo, para ello simplemente incluiremos otra linea en
el fichero ha.cf que ya lo hemos tratado anteriormente. esto seria aplicado al
server secundario, entonces dicha linea seria:
nice_failback on
-con esto le determinamos que esta maquina actuará siempre como el server
secundario.
- Bien para finalizar, nos queda el tercer fichero a configurar, dicho fichero
es: authkeys. Justamente el mismo es el encargado por la seguridad del
sistema, en lo referente a encriptacion de los packets transmitidos, como
tambien del sistema en si, verificacion de ficheros alterados, etc.
Basicamente tenemos tres formas de autentificado: CRC, MD5, y SHA1. el crc, es
el mas simple y veloz recomendable para la mayoria de clusterings basicos.
Luego esta el el SHA1, el mas seguro pero por otro lado el mas lento. en caso
que querais configurar ambos servers con CRC, simplemente incluyes esta linea
en el file authkeys:
auth 1
1 crc
-luego, para configurar el SHA1, esta linea:
auth 1
1 sha1 textoparaelpass
-claro esta, que esto se debe hacerse en ambos servidores, ya sea si usas, CRC
o SHA1.
Bien, luego de haber hecho todos estos pasos, ya teneis
vuestro clustering de alta disponibilidad y Heartbeat configurado. :)
-para finalizar el proceso, simplemente para activar el Heartbeat, es solo
tipear en ambos servers este comando:
# /etc/rc.d/init.d/heartbeat start
-A partir de alli el Heartbeat ya esta activo y funcionando, os recomiendo que
este comando sea ejecutado automaticamente cada vez que alguno de los
ordenadores sea reiniciado, para ello podemos colocar una entrada en el
fichero /etc/rc.d/rc.local o bien usando este otro comando: ntsysv. claro está
que esto del clustering de alta disponibilidad no termina aqui, proximamente
desarrollaremos como trabajar con aquellos servers, los cuales trabajan con
beses de datos por ejemplo, y que la informacion se actualiza constantemente,
en ese caso a parte de usar Heartbeat que seria suficiente para sites y
servicios fijos, tendriamos que hacer uso de una tecnica de "reflejo de
datos", en este caso en el server secundario, para que los datos que se
modifican y se actualizan constantemente en el servidor primario sean
actualizados y copiados al mismo tiempo al server secundario, para ello
combinaremos Heartbeat con aplicaciones como: DRBD, GFS Y CODA, por ejemplo.
Pero como ya os he dicho estos y mas temas seran desarrollados en proximas
ediciones, jaja que no se libraran de mi...xDD
-----------------------------------------------------------------------------
DESPEDIDA
+-+-+-+-+
Bien hemos llegado al fin de este articulo, espero que os haya servido de
algo, queria aclarar tambien que a parte del valor que este articulo tiene me
refiero a que ampliarias tus conocimientos, esto podria ser explotado mas que
nada en el campo laboral, ya que ofreciendo estos servicios, os podriais hacer
unos buenos $$$, bien eso pasa por cada uno, si os decidis comenzar con el
manteniento de servers, y clusterings de alta disponibilidad, que mejor que
ofrecerlo a las empresas, fabricas, etc. Bien queda a vuestra imaginacion,
pero principalmente el objetivo de esto, es que cada vez sepais mas y
alimentes tus neuronas, que es una de las cosas fundamentales en nuestra vida.
claro este tema tiene mas aspectos a ser desarrollados los cuales seran
tratados en posteiores ediciones, de todos modos aquellos que esten
interesados en el tema ya sabeis es solo mandarme un mail, que al instante me
pondre en contacto con vosotros. Ya sabeis criticas, comentarios, preguntas,
etc. me los enviais al mail.
)( Con esto me despido... hasta la proxima..., y desde aqui salu2 de
argentina, a la gente del I.H.T (Intrusos Hackers Team) y de L.U.T (Linux
Users team).)(
Wena suerte..., y a vivir que el mundo se acaba!!! :)))
" I´d see you on the dark side of the moon... "
<< Así habló zaratustra >>
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
))))))))))))))S)i)e)n)t)e))l)o))p)r)o)h)i)b)i)d)o)))))))))))))))))))
((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
http://kshezine.org