Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
1
Alta Disponibilidad
y
Balanceo de Carga
en Linux
---------
Andago Ingeniera S.L.
Javier Turgano Molina
Andago 2006
2
2
Indice
INDICE
Introduccin
Heartbeat
IPVS
Keealived
!"#!
Pregunta$
Andago 2006
%
%
Introduccin
Un cluster de alta disponibilidad es un conjunto de dos o
ms mquinas, que se caracterizan porque el fallo en una de
las mquinas no hace detenerse el servicio que ofrecen en
conjunto.
Si se produce un fallo del hardware o de las aplicaciones de
alguna de las mquinas del cluster, el software de alta
disponibilidad es capaz de rearrancar automticamente los
servicios que han fallado en cualquiera de las otras mquinas
del cluster.
Esta capacidad de recuperacin automtica de servicios nos
garantiza la integridad de la informacin, a que no ha
p!rdida de datos, adems evita molestias a los usuarios,
que no tienen por qu! notar que se ha producido un
problema.
Andago 2006
&
&
Introduccin
"tra capacidad deseable en un cluster de servicio es la de
balanceo de carga.
Esto nos permite compartir las tareas de servicio entre varios
nodos de forma transparente para el usuario, redirigiendo las
peticiones entre ellos atendiendolas en paralelo.
Esto nos permite un crecimiento de tipo horizontal,
a#adiendo nuevos nodos al servicio en caso de que sean
necesarios.
$l igual que en el caso de la alta disponibilidad habremos de
vigilar el caso de que alg%n nodo quede fuera de servicio
mantenerlo fuera del balanceo hasta que vuelva a estar
operativo.
Andago 2006
'
'
Introduccin
"tro de los elementos importantes a la hora de dise#ar un
cluster es la posibilidad de comparticin de datos entre los
nodos.
&ependiendo del tipo de aplicaciones que vaamos a utilizar
podremos utilizar las caraceristicas de un sistema de base de
datos o un almacenamiento compartido.
Una de las alternativas ms usuales para el almacenamiento
compartido es el uso de dispositivos conectables a varios
nodos 'como cabinas S(S) o S$*s de fibra ptica+. "tra ms
econmica es utilizar el propio almacenamiento de los nodos
de forma compartida entre ellos.
Andago 2006
6
6
Introduccin
En ,inu- disponemos de todas las herramientas para poder
crear nuestro propio cluster de servicio con !-ito.
.amos a ver algunas de ellas/
0$lta disponibilidad/ Heartbeat
0 1alanceo de carga/ IPVS 2 Keepalived
0 $lmacenamiento compartido/ DRBD
3or %ltimo se presentarn algunos casos de ito llevados a
cabo por $ndago donde se han utilizado estas t!cnologias.
Andago 2006
(
(
EA!"BEA"
// 4E$561E$6 //
http/77www.linu-0ha.org74eartbeat3rogram
Andago 2006
)
)
EA!"BEA"
4eartbeat es uno de los componentes principales del proecto
,inu-04$ ',inu- 4ight $vailabilit+.
Es altamente portable, funciona sobre cualquier plataforma
,inu- tambi!n sobre 8ree1S& Solaris.
*os ofrece deteccin de nodos caidos, comunicacin gestin
de cluster en un solo proceso.
Andago 2006
*
*
#C$o %unciona eartbeat&
(omo su propio nombre indica 4eartbeat utiliza un sistema de
latidos para que los nodos chequeen si el resto de nodos
estn en funcionamiento.
Es mu recomendable utilizar uno o varios recursos dedicados
para la comprobacin del estado de los otros nodos.
3odemos utilizar una tarjeta de red dedicada un cable serie0
serie para asegurar la redundancia que el fallo en el medio
de transmisin del latido no nos haga equivocarnos.
Andago 2006
10
10
#C$o %unciona eartbeat&
,a primera tarea es asignar una serie de recursos a cada nodo
del cluster. Estos pueden incluir/
9 &ireccin )3 de servicio
9 Servidores activos
9:aestro de almacenamiento
Estas tareas o paquetes de tareas se ejecutarn en el nodo
predefinido inicialmente. En caso de fallo otro elemento del
cluster ser el encargado de ejecutar sus tareas. $s; el
servicio continua ininterrumpido.
Andago 2006
11
11
eartbeat 'Acti(o - )asi(o*
$,6$ &)S3"*)1),)&$& $(6)."03$S)."
Una configuracin de alta disponibilidad es de modo $ctivo0
3asivo, cuando un servidor realiza las tareas de servicio
mientras disponemos otro servidor de respaldo en caso de
fallo.
Andago 2006
12
12
eartbeat 'Acti(o - )asi(o*
<eb
<eb
<eb
<eb
= = =
= = =
)3
)3
)3
)3
Andago 2006
1%
1%
eartbeat 'Acti(o + )asi(o ,ultiser(icio*
$,6$ &)S3"*)1),)&$& $(6)."03$S)." :U,6)SE5.)()"
6ambi!n podemos tener una configuracin en que todos los
nodos estn activos con una determinada tarea, pero en caso
de que uno de los nodos falle, el resto pueden asumir sus
tareas.
Andago 2006
1&
1&
eartbeat 'Acti(o + )asi(o ,ultiser(icio*
<eb
<eb
Smtp
Smtp
1&&
1&&
<eb
<eb
Smtp
Smtp
Andago 2006
1'
1'
eartbeat '-ailo(er*
(uando el nodo que fall vuelve a estar activo podemos
definir dos modos de actuacin/
9 !uto"ailbac# on/ El nodo original recuperar sus servicios.
9 !uto"ailbac# o""/ El poseedor actual de los servicios los
mantendr hasta que se produzca un reinicio o caida del
mismo.
Andago 2006
16
16
earbeat 'Auto%ailbac. on*
<eb
<eb
Smtp
Smtp
1&&
1&&
<eb
<eb
Smtp
Smtp
Andago 2006
1(
1(
Con%iguracin de eartbeat
4earbeat se configura a trav!s de dos ficheros de
configuracin principales/
7etc7ha.d7ha.cf > En el que se encuentra la configuracin
general de heartbeat.
7etc7ha.d7haresources > &onde se definen que servicios
corresponden a qu! nodos dentro del cluster. Este fichero ha
de ser igual en todos los nodos del cluster.
Andago 2006
1)
1)
Con%iguracin de eartbeat
7etc7ha.d7ha.cf
logfile 7var7log7ha0log
logfacilit local?
@eepalive A
warntime B
deadtime CA
initdead B?
autoDfailbac@ off
udpport EFG
bcast ethC
ping CFA.CEH.CI.A CFA.CEH.CI.C
node constantinopla
node alejandria
respawn hacluster 7usr7lib7heartbeat7ipfail
Andago 2006
1*
1*
Con%iguracin de eartbeat
Ejemplo $ctivo > 3asivo
7etc7ha.d7haresources
constantinopla CFA.CEH.C.C apache postfi-
alejandria
Ejemplo $ctivo > 3asivo :ultiservicio
7etc7ha.d7haresources
constantinopla CFA.CEH.C.C apache postfi-
alejandria CFA.CEH.C.A msql
Andago 2006
20
20
I)/S
$$ IPVS %IP Virtual Server& $$
http/77www.linu-virtualserver.org7software7ipvs.html
)3.S implementa balanceo de carga a nivel de la capa
de transporte dentro del @ernel de ,inu- 'laerG0switching+.
)3.S corriendo en un servidor al frente de un cluster
de servidores actua como un balanceador de carga.
3uede redirigir cone-iones a servicios 6(37U&3 a los
servidores reales, as; hacer parecer que estos servicios de
varios servidores como un %nico servicio virtual para una )3.
Andago 2006
21
21
I)/S
)3.S
)3.S
Andago 2006
22
22
I)/S - Caracteristicas
+aracteri$tica$,
1AT
Tunneling
!irect "outing