INSTITUTO TECNOLÓGICO DE PACHUCA
INGENIERÍA EN SISTEMAS COMPUTACIONALES
8º SEMESTRE
SISTEMAS DISTRIBUIDOS I
PROFESOR: M. EN C. JAVIER HERNANDEZ OROZCO
ALUMNOS:
- CORNEJO GONZALEZ VICTOR HUGO
- JIMENEZ MONTIEL JORGE
- MARTINEZ DOMINGUEZ SERGIO IVAN
- VARGAS PERALTA NALLELY
Cluster de alta disponibilidad con Heartbeat en LinuxMint
1.
Clúster de alta
disponibilidad con
Hertbeat en LinuxMint
Instituto Tecnológico de Pachuca
Ingeniería en Sistemas Computacionales
Sistemas Distribuidos I
M. en C.: Javier Hernández Orosco
Cornejo González Víctor Hugo
Jiménez Montiel Jorge
Martínez Domínguez Sergio Iván
Vargas Peralta Nallely
DICIEMBRE
2013
2.
CONTENIDO
CLÚSTER
................................................................................................................................
3
CLASIFICACIÓN
DE
LOS
CLÚSTERES
.....................................................................................
3
CLÚSTER
DE
ALTA
DISPONIBILIDAD
...................................................................................
4
Alta
disponibilidad
de
infraestructura
...........................................................................................
4
Alta
disponibilidad
de
aplicación
.....................................................................................................
4
LINUX
MINT
.........................................................................................................................
5
HEARTBEAT
.........................................................................................................................
5
APACHE2
...............................................................................................................................
5
DESARROLLO
.......................................................................................................................
6
CONCLUSIONES
................................................................................................................
14
REFERENCIAS
...................................................................................................................
15
3. CLÚSTER
Los
clúster
son
un
tipo
de
arquitectura
paralela
distribuida
que
consiste
de
un
conjunto
de
computadoras
independientes
interconectadas
entre
si
operando
de
forma
conjunta
como
un
único
recurso
computacional,
sin
embargo
cada
computadora
puede
utilizarse
de
forma
independiente
o
separada.
Se
aplica
a
los
conjuntos
o
conglomerados
de
computadoras
construidos
mediante
la
utilización
de
hardwares
comunes
y
que
se
comportan
como
si
fuesen
una
única
computadora.
La
tecnología
de
clústeres
ha
evolucionado
en
apoyo
de
actividades
que
van
desde
aplicaciones
de
supercómputo
y
software
de
misiones
críticas,
servidores
web
y
comercio
electrónico,
hasta
bases
de
datos
de
alto
rendimiento,
entre
otros
usos.
Los
clústeres
son
usualmente
empleados
para
mejorar
el
rendimiento
y/o
la
disponibilidad
por
encima
de
la
que
es
provista
por
un
solo
computador
típicamente
siendo
más
económico
que
computadores
individuales
de
rapidez
y
disponibilidad
comparables.
De
un
clúster
se
espera
que
presente
combinaciones
de
los
siguientes
servicios:
1. Alto
rendimiento
2. Alta
disponibilidad
3. Balanceo
de
carga
4. Escalabilidad
CLASIFICACIÓN
DE
LOS
CLÚSTERES
Alto
rendimiento:
Son
clústeres
en
los
cuales
se
ejecutan
tareas
que
requieren
de
gran
capacidad
computacional,
grandes
cantidades
de
memoria,
o
ambos
a
la
vez.
El
llevar
a
cabo
estas
tareas
puede
comprometer
los
recursos
del
clúster
por
largos
periodos
de
tiempo.
Alta
disponibilidad:
Son
clústeres
cuyo
objetivo
de
diseño
es
el
de
proveer
disponibilidad
y
confiabilidad.
Estos
clústeres
tratan
de
brindar
la
máxima
disponibilidad
de
los
servicios
que
ofrecen.
La
confiabilidad
se
provee
mediante
software
que
detecta
fallos
y
permite
recuperarse
frente
a
los
mismos,
mientras
que
en
hardware
se
evita
tener
un
único
punto
de
fallos.
Alta
eficiencia:
Son
clústeres
cuyo
objetivo
de
diseño
es
el
ejecutar
la
mayor
cantidad
de
tareas
en
el
menor
tiempo
posible.
Existe
independencia
de
datos
entre
las
tareas
individuales.
El
retardo
entre
los
nodos
del
clúster
no
es
considerado
un
gran
problema.
Los
clústeres
pueden
también
clasificar
en:
• clústeres
de
IT
comerciales
(de
alta
disponibilidad
y
alta
eficiencia)
y
• clústeres
científicos
(de
alto
rendimiento).
A
pesar
de
las
discrepancias
a
nivel
de
requisitos
de
las
aplicaciones,
muchas
de
las
características
de
las
arquitecturas
de
hardware
y
software,
que
están
por
4. debajo
de
las
aplicaciones
en
todos
estos
clústeres,
son
las
mismas.
Más
aún,
un
clúster
de
determinado
tipo,
puede
también
presentar
características
de
los
otros.
CLÚSTER
DE
ALTA
DISPONIBILIDAD
Es
un
conjunto
de
dos
o
más
máquinas
que
se
caracterizan
por
mantener
una
serie
de
servicios
compartidos
y
por
estar
constantemente
monitorizándose
entre
sí.
Podemos
dividirlo
en
dos
clases:
Alta
disponibilidad
de
infraestructura
Si
se
produce
un
fallo
de
hardware
en
alguna
de
las
máquinas
del
clúster,
el
software
de
alta
disponibilidad
es
capaz
de
arrancar
automáticamente
los
servicios
en
cualquiera
de
las
otras
máquinas
del
clúster.
Y
cuando
la
máquina
que
ha
fallado
se
recupera,
los
servicios
son
nuevamente
migrados
a
la
máquina
original.
Esta
capacidad
de
recuperación
automática
de
servicios
nos
garantiza
la
alta
disponibilidad
de
los
servicios
ofrecidos
por
el
clúster,
minimizando
así
la
percepción
del
fallo
por
parte
de
los
usuarios.
Alta
disponibilidad
de
aplicación
Si
se
produce
un
fallo
del
hardware
o
de
las
aplicaciones
de
alguna
de
las
máquinas
del
clúster,
el
software
de
alta
disponibilidad
es
capaz
de
arrancar
automáticamente
los
servicios
que
han
fallado
en
cualquiera
de
las
otras
máquinas
del
clúster.
Y
cuando
la
máquina
que
ha
fallado
se
recupera,
los
servicios
son
nuevamente
migrados
a
la
máquina
original.
Esta
capacidad
de
recuperación
automática
de
servicios
nos
garantiza
la
integridad
de
la
información,
ya
que
no
hay
pérdida
de
datos,
y
además
evita
molestias
a
los
usuarios,
que
no
tienen
por
qué
notar
que
se
ha
producido
un
problema.
No
hay
que
confundir
un
clúster
de
alta
disponibilidad
con
un
clúster
de
alto
rendimiento.
El
segundo
es
una
configuración
de
equipos
diseñado
para
proporcionar
capacidades
de
cálculo
mucho
mayores
que
la
que
proporcionan
los
equipos
individuales
mientras
que
el
primer
tipo
de
clúster
está
diseñado
para
garantizar
el
funcionamiento
ininterrumpido
de
ciertas
aplicaciones.
5. LINUX
MINT
Linux
Mint
mantiene
un
inventario
actualizado,
un
sistema
operativo
estable
para
el
usuario
medio,
con
un
fuerte
énfasis
en
la
usabilidad
y
facilidad
de
instalación.
Es
reconocido
por
ser
fácil
de
usar,
especialmente
para
los
usuarios
sin
experiencia
previa
en
Linux.
Linux
Mint
se
compone
de
muchos
paquetes
de
software,
los
cuales
se
distribuyen
la
mayor
parte
bajo
una
licencia
de
software
libre.
La
principal
licencia
utilizada
es
la
GNU
General
Public
License
(GNU
GPL)
que,
junto
con
la
GNU
Lesser
General
Public
License
(GNU
LGPL),
declara
explícitamente
que
los
usuarios
tienen
libertad
para
ejecutar,
copiar,
distribuir,
estudiar,
cambiar,
desarrollar
y
mejorar
el
software.
Linux
Mint
es
financiada
por
su
comunidad
de
usuarios.
Los
usuarios
individuales
y
empresas
que
utilizan
el
sistema
operativo
pueden
actuar
como
donantes,
patrocinadores
y
socios
de
la
distribución.
El
apoyo
financiero
de
la
comunidad
y
la
publicidad
en
el
sitio
web
ayuda
a
mantener
Linux
Mint
libre
y
abierta.
HEARTBEAT
Es
un
dominio
que
proporciona
servicios
de
infraestructura
de
clúster
(comunicación
y
pertenencia)
a
sus
clientes.
Esto
permite
a
los
clientes
tener
conocimiento
de
la
presencia
(o
desaparición)
de
los
procesos
en
otras
maquinas
e
intercambiar
fácilmente
mensajes
entre
ellos.
Para
resultar
útil
a
los
usuarios
el
dominio
HEARTBEAT
necesita
emplearse
en
combinación
con
un
gestor
de
recursos
del
clúster
(cluster
resource
manager
(CRM))
el
cual
posee
la
tarea
de
iniciar
y
parar
los
servicios
(Direcciones
IP,
servidores
web...)
a
los
cuales
el
clúster
aportará
alta
disponibilidad.
Pacemaker
es
el
gestor
de
recursos
de
clúster
preferido
para
los
clúster
basados
en
Heartbeat.
APACHE2
Es
un
servidor
Web
de
código
abierto
multiplataforma,
Apache
presenta
entre
otras
características
altamente
configurables,
bases
de
datos
de
autenticación
y
negociado
de
contenido.
La
mayor
parte
de
la
configuración
se
realiza
en
el
fichero
apache2.conf
o
httpd.conf,
según
el
sistema
donde
esté
corriendo.
Cualquier
cambio
en
este
archivo
requiere
reiniciar
el
servidor,
o
forzar
la
lectura
de
los
archivos
de
configuración
nuevamente.
6. DESARROLLO
Se
implemento
un
clúster
de
alta
disponibilidad
con
4
computadoras
con
Sistema
Operativo
Linux
Mint
utilizando
Heartbeat.
Configuración
de
la
ip
estática
en
cada
computadora
en
el
archivo
interfaces
nano
/etc/network/interfaces
7. Se
asigna
el
servidor
DNS
en
cada
computadora
para
la
salida
a
internet
nano
/etc/resolv.conf
Cada
reinicio
de
PC
se
elimina
el
contenido
por
lo
que
es
necesario
reescribirlo
#crontab
-‐e
Después
de
establecer
las
ip
se
reinicia
el
servicio
de
red.
8. Ya
configurada
la
ip,
descargamos
lo
paquetes
a
utilizar
Descarga
de
Heartbeat
Descarga
de
Apache2
9. Para
identificar
mas
fácil
a
las
computadoras
se
modifica
el
nombre
del
host
nano
/etc/hostname
En
el
archivo
hosts
se
agregan
los
nodos
y
el
servidor
principal
incluyendo
nuestro
equipo
y
la
ip
virtual
que
será
la
que
direccionara
a
la
pagina
web
10. Ya
que
tenemos
los
nodos
y
las
direcciones
ip
nos
movemos
al
directorio
de
heartbeat
donde
se
descomprimen
los
archivos
.tar.gz
Una
vez
descomprimidos
se
copian
al
directorio
/etc/ha.d
y
creamos
un
archivo
llamado
authkeys
el
cual
contiene
la
clave
que
se
utilizara
para
la
autenticación
mutua,
el
cual
se
copio
en
todas
las
computadoras
con
el
comando
scp
usuario_login@ip:/etc/ha.d
En
el
archivo
authkeys
se
escribió
el
siguiente
script
nano
authkeys
11. Se
asignan
permisos
al
archivo
authkeys
Agregado
el
archivo
authkeys
se
configura
el
archivo
global
de
clusters
ha.cf
agregando
los
nodos
del
cluster
nano
ha.cf
Donde:
Autojoin None: Desactiva la opción auto-descubrimiento de nodos y requiere
que los nodos del clúster sean listados explícitamente, esto acelera la
velocidad de carga de los clúster cuando se usa una pequeña cantidad de
nodos fijos.
12. Bcast eth0: Transmite a todos los dispositivos a través de la interfaz eth0,
pudiendo usar también wlan0.
KeepAlive: Determina el intervalo entre paquetes del latido. P. ej el latido se
manda cada 2 segundos.
Udpport: Especifica que puerto usara Heartbeat para la comunicación UDP
Warntime: Establece el tiempo en que Heartbeat envía una advertencia en
que un nodo vecino no disponible puede estar muerto.
DeadTime: Tiempo que considera Heartbeat a un nodo como muerto.
Finalmente
se
edita
el
archivo
haresources
el
cual
registra
los
servicios
que
se
atenderán
a
través
de
la
ip
virtual
nano
haresources
Al
final
del
archivo
se
agrega
el
hostname
del
servidor
y
la
ip
virtual,
además
del
servicio
que
atenderá,
en
este
caso
apache2
ya
que
se
montara
una
pagina
web.
13. Una
vez
configurados
los
nodos
y
el
servidor
se
monta
la
pagina
web
en
el
directorio
del
servidor
nano
/var/www/index.html
Ingresando
la
dirección
ip
192.168.1.10
tenemos
como
resultado
14. CONCLUSIONES
HUGO:
Existen diferentes tipos de clúster, que van desde el máximo desempeño al
momento de ejecutar tareas que exigen el máximo rendimiento de la
computadora, hasta la máxima disponibilidad de los datos. La creación de un
clúster de alta disponibilidad en varios nodos como fue el caso permite la
disponibilidad de la información en cualquier computadora, sin importar el
orden de restablecimiento de la misma, siempre y cuando el servicio
solicitado atienda las peticiones del cliente. Cabe mencionar que un clúster
de alta disponibilidad no es lo mismo que una replicación, ya que solo provee
de la información almacenada y no efectúa cambios sobre esta.
JORGE:
Esta práctica me ayudo a comprender como era posible que muchas páginas
como google siempre estuvieran disponibles sin importar si algún servidor se
caía, después de investigar entendí que el tema de clúster puede llegar a ser
muy complejo, ya que es posible administrar la carga de trabajo de cada
nodo y es posible a la vez realizar mecanismos de auto replicación con el
objetivo de tener siempre la misma información en todos los nodos y en todo
momento.
NALLELY:
Los sistemas distribuidos son hoy en día parte fundamental para la
tecnología, un clúster de alta disponibilidad es un claro ejemplo de este tipo
de sistemas y las ventajas que proporciona, pues gracias a su
implementación en por lo menos dos equipos monitorizados entre sí, se logra
que de manera automática que uno o varios servicios compartidos se
encuentren siempre disponibles.
SERGIO:
Con esta practica entendí como es que las paginas de internet por lo regular
siempre están disponibles ya que con la realización de un clúster podemos
ver como es esto posible.
Aprendí que el sistema mas seguro para montar un clúster es un Linux por su
alto potencial.
Se aplicaron los conocimientos adquiridos en el semestre sobre el manejo de
sistemas operativos seguros en sistemas distribuidos.