Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Balanceo de Carga en Centos PDF
Balanceo de Carga en Centos PDF
UNAP
PROYECTO DE GRADO
TEMA:
DISEO DE UNA SOLUCIN PARA SERVIDORES DE
ALTA DISPONIBILIDAD Y BALANCEO DE CARGA CON
OPEN SOURCE
Seor:
Coordinador de Tesis y Proyectos de Grado UNAP
Presente.-
De nuestras consideraciones:
Por medio de la presente CERTIFICAMOS, que el seor estudiante egresado
Flavio Mauricio Gallardo Padilla, identificado con el nmero de cdula
1710049139 estudiante de la carrera de Ingeniera en Sistemas y Networking
de la UNAP, una vez realizada la direccin y las evaluaciones correspondientes
segn la normativa de la universidad, ha concluido satisfactoriamente con el
trabajo de grado Titulado DISEO DE UNA SOLUCIN PARA SERVIDORES
DE ALTA DISPONIBILIDAD Y BALANCEO DE CARGA CON OPEN SOURCE.
Por consiguiente, otorgamos la aptitud para la presentacin del grado oral del
mencionado estudiante.
Agradeciendo su atencin
Seores:
Universidad Alfredo Prez Guerrero UNAP
Presente.-
De mis consideraciones:
de
Grado
titulado:
DISEO
DE
UNA
SOLUCIN
PARA
Agradeciendo su atencin
Mauricio Gallardo
C.I. 1710049139
Estudiante Egresado de la UNAP
AGRADECIMIENTO
A mi esposa, por ser el pilar y soporte en todo lo que hago en mi vida, por ser
la persona que me ha brindado su apoyo y comprensin incondicional en la
culminacin de mi carrera, sin lugar a duda es parte esencial para haber
terminado mis estudios universitarios, gracias por todo lo que has hecho para
alcanzar esta meta, este logro tambin es tuyo.
DEDICATORIA
A mis hijas, quienes comprendieron que el tiempo que deba entregarles a ellas
lo ocupaba en culminar mi carrera, quiero que este logro sea para ellas un
ejemplo de perseverancia y sacrificio y que sea tambin un ejemplo para la
culminacin de sus carreras profesionales en su momento, entiendan que todo
lo que uno se propone en la vida es posible con dedicacin y esfuerzo.
INDICE
INTRODUCCION ................................................................................................. i
CAPITULO 1 ....................................................................................................... 1
GENERALIDADES ............................................................................................. 1
1.1. PLANEAMIENTO DEL PROBLEMA ............................................................ 1
1.2. FORMULACION DEL PROBLEMA .............................................................. 2
1.3. SISTEMATIZACION .................................................................................... 2
1.4. OBJETIVO GENERAL ................................................................................. 2
1.5. OBJETIVOS ESPECIFICOS ........................................................................ 3
1.6. JUSTIFICACIN .......................................................................................... 3
1.7. ALCANCE .................................................................................................... 4
CAPITULO 2 ....................................................................................................... 6
INTRODUCCION ................................................................................................ 6
FUNDAMENTACION TEORICA ......................................................................... 6
MARCOS DE REFERENCIA (Terico, Conceptual) ........................................... 6
2.1. MARCO TEORICO ...................................................................................... 6
2.1.1. Clustering .................................................................................................. 6
2.1.1.1. Antecedentes ......................................................................................... 6
2.1.1.2 Que es el clustering? .............................................................................. 7
2.1.1.3. Tipos de clster ...................................................................................... 8
2.1.1.4. High Performance .................................................................................. 8
2.1.1.5. Clster Activo/Pasivo ........................................................................... 14
2.1.1.6. Clster Activo/Activo ............................................................................ 14
2.1.2. Arquitectura de Clustering....................................................................... 15
2.1.2.1. Alta disponibilidad ................................................................................ 16
2.1.2.2. Escalabilidad ........................................................................................ 20
2.1.3. Funcionamiento de un clster ................................................................. 22
2.1.3.1. Balanceador de carga .......................................................................... 22
2.1.3.2. Sistema para la deteccin de fallos en los nodos del clster ............... 24
2.1.3.3. Recursos del clster ............................................................................ 25
2.1.3.4. Servicio a clusterizar ............................................................................ 25
INDICE DE FIGURAS
INDICE DE TABLAS
INTRODUCCION
Para que un servicio sea eficiente es necesario que se mantenga en
funcionamiento constante y que no ocurran retardos en la entrega de la
informacin. As pues se da paso a la investigacin y desarrollo de nuevas
tecnologas que garanticen tales sucesos; en este trabajo se presentarn las
soluciones para tales problemas y se expondrn sus caractersticas as como
las herramientas que hacen posible la construccin de dichas soluciones de
software con open source.
ii
de los servicios y pasa a ser el activo para que los servicios ofrecidos estn
siempre disponibles.
CAPITULO 1
GENERALIDADES
Actualmente en el pas existen pocas empresas que han optado por instalar
open source en sus servidores debido al poco personal tcnico capacitado,
pese a que el gobierno nacional promueve el uso de open source en las
entidades pblicas. Este trabajo se enfoca en el uso de software libre para la
implementacin de la solucin planteada.
1.3. SISTEMATIZACION
Qu herramientas open source nos permiten aplicar alta disponibilidad y
balanceo de carga?
Qu herramientas open souce se utilizarn para la implementacin de la
solucin?
Qu necesitan las empresas para solucionar su problema de alta
disponibilidad y balanceo de carga?
1.6. JUSTIFICACIN
Con el actual ritmo de crecimiento del comercio y el movimiento de datos de
todo tipo en Internet, web 2.0, con el establecimiento no formal de un protocolo
mundial IP generalizo y la incuestionable importancia de las tecnologas de la
informacin en las empresas actuales de cualquier tamao, es cada da ms
importante que los servicios puedan funcionar con un alto nivel de SLA (calidad
de servicio) , ya sea para dar soporte interno, como para ofrecer servicios a
travs de Internet e Intranet (http, correo, ftp, etc). A esta necesidad de un
servicio ininterrumpido y fiable se le conoce como alta disponibilidad, de igual
forma evitar la sobre carga existente en los servidores debido al gran nmero
de usuarios y que estos no sean saturados, compartiendo con otros la
responsabilidad de dar los servicios conocemos como balanceo de carga.
el
punto
de
vista
metodolgico,
esta
investigacin
generar
conocimiento vlido y confiable dentro del rea de las TICS , para futuras
implementaciones. Esta investigacin abrir nuevos caminos en empresas que
presenten situaciones similares sirviendo a estas como marco referencial.
1.7. ALCANCE
El proyecto abarcar la investigacin sobre las herramientas de clster que nos
ofrece el software libre, para de esta manera analizar la mejor opcin para ser
implementada, esta investigacin permitir adems adquirir conocimiento para
futuras implementaciones.
Despus de conocer las opciones de cluster con open source, se realizar un
diagnostico sobre las herramientas disponibles para proponer una solucin que
permita de forma adecuada implementar la tecnologa elegida, tomando en
cuenta siempre la mejor alternativa.
CAPITULO 2
INTRODUCCION
Este captulo contiene conceptos fundamentales que son necesarios conocer
para la elaboracin del proyecto como: clustering, tipos de clster, arquitectura
de clustering, alta disponibilidad, balanceo de carga.
Adicionalmente se relata una breve historia del inicio, desarrollo y evolucin de
la tecnologa relacionada con los clster.
FUNDAMENTACION TEORICA
En este sentido para que una empresa pueda contar con un clster
es necesario considerar los diferentes tipos existentes dependiendo
de la tarea que se quiera realizar con este, como lo muestra la tabla
2.1.
High Performance
High Availability
Load Balancing
Tipo de Clster
Descripcin
Alto rendimiento
(High Performance)
Alta disponibilidad
(High Availability)
Balanceo de carga
(Load Balancing)
Subtipo
Homogneo
Descripcin
Es donde todos los nodos poseen una
configuracin de hardware y software iguales.
Semi-
homogneo
Heterogneo
10
Componente
Descripcin
Estas son las conexiones de los nodos a la red de trabajo
Conexiones de red.
Protocolos de
comunicacin y
Aqu
normalmente
se
cuenta
con
el
protocolo
de
servicios.
Son simples computadoras o sistemas multiprocesador; en
Nodos.
Sistema Operativo.
Middleware.
Aplicaciones.
11
normalmente
en
los
sistemas
multiprocesadores
Cuando
los
nuevos
dispositivos,
incluyendo
normalmente
en
los
sistemas
multiprocesadores
12
Clculos matemticos.
Compilacin de programas.
Compresin de datos.
Descifrado de cdigos.
13
14
Configuracin
Descripcin
Las aplicaciones se ejecutan sobre un conjunto de nodos
Activo
Pasivo
Activo
Activo
15
Elemento
Descripcin
Consiste en componentes de software que cooperan
entre s para permitir que el clster parezca como un
sistema nico. Entre sus funciones se encuentran:
Infraestructura de
alta disponibilidad. Esta puede ser parte del ncleo del sistema operativo o
una capa situada sobre ste, las ventajas de dichas
integraciones son:
En forma de capa, una solucin independiente del
sistema operativo.
En el sistema operativo, una eficiencia y facilidad
de uso.
Son clientes de la infraestructura y usan las facilidades
Servicios de alta
disponibilidad.
16
http://www.eurogaran.com/index.php/es/servidores-linux/clusteres/de-alta-disponibilidad
17
En el otro extremo, tenemos otra posible configuracin, activo activo: en este caso, todos los nodos actan como servidores activos
de una o ms aplicaciones y potencialmente como backups para las
aplicaciones que se ejecutan en otros nodos. Cuando un nodo falla,
las aplicaciones que se ejecutaba en l se migran a uno de sus
nodos backup. Esta situacin podra producir una sobrecarga de los
nodos de respaldo, con lo que se ejecutaran las aplicaciones con
ms retardo.
Sin embargo es aceptable una degradacin del servicio y tambin
suele ser preferible a una cada total del sistema. Otro caso particular
de clster de alta disponibilidad sera el de un clster de un solo
nodo, tratndose en este caso, simplemente, de evitar los puntos
nicos de fallo.
18
relacionados
ya
que
el
concepto
de
alta
http://www.seccperu.org/files/Clustering%20and%20Grid%20Computing.pdf
19
20
2.1.2.2. Escalabilidad
http://www.redes-linux.com/manuales/cluster/clustering.pdf
21
22
Importante
En un clster activo / pasivo el incrementar el nmero de nodos
disponibles en el clster no incrementa la potencia del clster ya que
nicamente un nodo estar ofreciendo el servicio.
de
capacidades
no
necesariamente
altas.
Las
Balanceador de carga.
Servicio a clusterizar.
23
24
de
los
resultados
(redundancia
temporal),
25
Filesystems.
Scripts para arrancar el servicio
26
27
28
29
alta
para
mantener
una
gestin
segura,
la
30
31
32
2.1.5.1. Heartbeat
33
Para implementar esta tcnica los nodos tiene lneas dedicadas, bien
sea por red o conexiones serie por las que se comunican de forma
continua para verificar el correcto funcionamiento de los nodos.
Una vez que el esclavo vuelva a escuchar los latidos del maestro,
este tomar el control nuevamente, a menos que dentro de la
configuracin
de
Heartbeat
se
haya
colocado
la
directiva
34
Importante
El disco de quorum no es una tcnica que sustituya al heartbeat es
una tcnica que debe usarse como complemento al heartbeat.
35
36
CAPITULO 3
INTRODUCCION
En este captulo se presentarn las soluciones de software libre para
mitigar el problema de alta disponibilidad y balanceo de carga, se
expondrn sus caractersticas as como las herramientas que hacen
posible la construccin de dichas soluciones.
DIAGNOSTICO
openMosix.
Oscar.
Piranha.
Ultramonkey.
37
Herramienta.
Caractersticas.
openMosix
OSCAR
Piranha
38
presente
esta
comparativa
para
hacer
una
primera
Herramienta.
Ventaja.
openMosix
Desventaja.
No se requieren paquetes
adicionales.
No son necesarias
modificaciones en el
procesos siempre.
cdigo de openMosix.
Problemas con
memoria compartida.
Migracin de procesos.
Falla la deteccin de
algunos componentes
de hardware en
instalable.
versiones anteriores a
Infraestructura de software
la 3.
Soporte para
un clster.
distribuciones basadas
Posee bibliotecas y
en RPMs solamente
39
para versiones
clsters.
anteriores a la 5.
Piranha
Al momento solo
Hat Inc.
disponible para
versiones
formato de distribucin.
empresariales de Red
Administracin y manejo
Hat.
Dependiente del
Monitorizacin de
servidores reales.
Hat Enterprise.
Fcil comprensin de
Algunos esquemas se
funcionamiento.
Amplia gama de
cantidad de servidores
configuraciones.
- LVS
Cuando el nmero de
servidores reales es
elevado se genera
mucho trfico en la red
de trabajo.
Mltiples esquemas de
configuracin.
instalacin.
estrictamente el
Amplia documentacin
sistema operativo
GNU/Linux.
40
Ultramonkey
Instrucciones de
Segn el esquema de
configuracin puede
distribuciones de
GNU/Linux ms comunes
en servidores.
Se apoya en el proyecto
dicho proyecto.
componentes.
No es dependiente de una
distribucin de GNU/Linux
en particular.
Formato
Distribucione
Balanceo de
Herramient
de
s Soportadas
carga y Alta
Distribuci
Ventajas
Desventajas
disponibilidad
n
No requiere
Dependiente
Balanceo de
paquetes
del kernel y
carga de
adicionales y
posee
Cdigo
procesos sin
hace
problemas con
fuente.
alta
migracin de
memoria
disponibilidad.
procesos.
compartida.
openMosix RPM,
Todas.
En versiones
anteriores a la
tercera falla la
Auto instalable deteccin de
41
OSCAR
RPM,
Red Hat y
Balanceo de
Cdigo
basadas en
carga de
permite usar la
fuente.
esta.
procesos sin
compiladores
red interna
alta
disponibilidad.
paralelo.
instalacin de
software.
Red Hat
Piranha
RPM.
Posee
Soporte de
Actualmente
Red Hat,
disponible solo
Enterprise 4 o herramientas
administracin en formato
posteriores.
propias para
y manejo
RPM y para
ambos
mediante
versiones
aspectos.
interfaz web.
empresariales.
Instalacin por
Amplia gama
segmentos;
Incluye
de
con un gran
Linux
herramientas
configuracione nmero de
Virtual
Cdigo
de cdigo
s, funcin a
Server
fuente.
abierto para
ambos
manejo de
trfico crece
aspectos.
distintos
de manera
protocolos.
significativa.
servidores
Los nodos de
Mltiples
Basadas en
Uso de
Debian, Red
componentes
s, manejo de
ejecutar el
distintos
sistema
ambos
protocolos,
operativo
compilacin
aspectos
de cdigo
aadiendo
TCP/IP,
dependiendo
fuente.
algunas
marcas de
del esquema
mejoras y
firewall y
llega a ser
fuente.
balance de
42
herramientas.
ampliacin de complejo de
LVS.
configurar.
de
dicha
empresa
brinda
satisfaccin
al
hacer
una
43
sea
GNU/Linux
siendo
este
uno
de
sus
pocos
44
Piranha.
Ultramonkey.
45
46
en
que
el
nodo
de
balanceo
retransmitir
las
47
3.2.1.3. Ultramonkey
Es un proyecto que integra diferentes herramientas de software libre
para conseguir alta disponibilidad y balanceo de carga en redes LAN
redes de rea local. Estas herramientas son: LVS, Heartbeat,
Ldirectord y MON como lo muestra la figura 3.3.
3.2.1.3.1.1. Heartbeat
Funciona enviando peridicamente un paquete, que si no llegara,
indicara que un servidor no est disponible, por lo tanto se sabe que
el servidor ha cado y se toman las medidas necesarias. Se
recomienda el uso de puertos serie puesto que estn aislados de las
tarjetas de red. Soporta mltiples direcciones IP y un modelo
servidor primario/secundario.
48
3.2.1.3.1.2. Ldirectord
Se encarga de monitorizar que los servidores reales permanezcan
funcionando peridicamente, enviando una peticin a una direccin
URL (Uniform Resource Locator) conocida y comprobando que la
respuesta contenga una cadena concreta. Si un servidor real falla,
entonces el servidor es quitado del conjunto de servidores reales y
ser reinsertado cuando vuelva a funcionar correctamente. Si todos
los servidores fallan, se insertar un servidor de fallos, que ser
quitado una vez que los servidores vuelvan a funcionar.
49
50
CAPITULO 4
INTRODUCCION
En este captulo se llevar a cabo un anlisis de los mtodos
existentes de balanceo de carga, dado que estos llegan a ser
complejos solamente se tratar la teora ms bsica de operacin;
adicionalmente se realizar la toma de decisin de una herramienta
para su implementacin.
DISEO
Mtodo
Ventajas
Desventajas
El
DNS
Round
Robin.
cache
de
la
informacin
en
la
Distribucin de la carga
jerarqua
servidores DNS y la
de
forma
forma
pseudo-
de
simple
de
aleatoria.
Es el ms simple de
parte
implementar.
DNS restringen su
del
servidor
utilidad.
Los servidores no
pueden
ser
51
seleccionados segn
el URL solicitado.4
Este nodo distribuye las
Llega a convertirse
conexiones.
en cuello de botella.
Se
aumenta
Uso de nodo
sensacin
de balanceo
del clster.
de carga.
nica
de
la
unidad
para
proveer el balanceo
direccin
IP
de carga.
Al
existir
las peticiones.
nodo
Es sencillo enmascarar
este se convierte en
un punto nico de
de
solo
un
balanceo
fallo.
Modo de
Ventajas
Desventajas
balanceo
Aprovecha
Balanceo
mediante NAT.
la
El
nodo
balanceo se llega a
de Linux de funcionar
convertir en cuello
de botella.
pueden
ejecutar
(Network
4
de
http://www.wikilearning.com/monografia/balance_de_carga-la_aproximacion_via_dns/20837-2
52
Address
cualquier
Translation).
sistema
TCP/IP.
Nmero
TCP/IP.
servidores
Uso
de
una
solamente
direccin
IP
pblica.
de
reales
dependiente de la
velocidad
de
Escalado
los
hasta
sistemas operativos
Balanceo
mediante
este modo.
de
Los
encapsulado IP
(IP Tunneling)
de
todos
balanceo
se
convierta en cuello de
reales
botella.
tener
servidores
necesitan
una
IP
pblica.
Todos
los
servidores
poseer
deben
una
IP
Balanceo
El nodo de balanceo
pblica en el mismo
mediante
no
segmento de
es
cuello
de
red
enrutamiento
botella.
del
directo (Direct
No se sobrecarga al
balanceo.
Routing)
nodo de balanceo en
No
reescribir
sistemas operativos
TCP/IP.
paquetes
nodo
todos
de
los
permiten configurar
una IP o dispositivo
para responder a
comandos ARP.
53
entre
dos
redes
que
se
asignan
mutuamente
http://www.adslfaqs.com.ar/que-es-nat-network-address-translation/
54
2.
3.
4.
5.
55
56
NAT
Servidor
Red de
servidores
Cualquiera
Red Privada
Encapsulamiento IP
Necesita
Encapsulamiento
LAN/WAN
Enrutamiento
Directo
Dispositivo no-ARP
LAN
57
Escalabilidad
Baja (10~20)
Salida hacia
Nodo
Internet
de
balanceo
Alta
Alta
Router
Router
Algoritmo
Funcionamiento
Cada peticin se enva a un servidor y la siguiente
Round Robin
Round Robin
Ponderado
Servidor con
menos
conexiones
activas.
Servidor con
58
menos
conexiones
activas
Ponderado.
Este algoritmo dirige todas las peticiones a un mismo
Menos
conectado
basado en
servicio.
origen y destino.
Conexiones
Persistentes.
59
60
61
62
Piranha:
Esta herramienta solamente requiere el uso de un navegador web
para configurarse pero una de sus crticas es el hecho de estar
fuertemente ligada a las versiones empresariales de Red Hat y
por tal motivo los mnimos en hardware dependern de la versin
de dicha distribucin que se utilice. Como un punto a favor,
Piranha posee esa extrema sencillez de configuracin brindada
por su interfaz que se basa en web. Para implementarse se tiene
que poseer una licencia de uso del sistema operativo de Red Hat
63
Procesador
Memoria RAM
64 MB
+2 GB recomendado
Interfaz de Red
10 Mbps
Procesador
Memoria RAM
64 MB
Interfaz de Red
10 Mbps
64
Ultramonkey:
Ultramonkey est pensado como una solucin muy econmica
tanto a nivel de software como en hardware y por tal motivo su
crecimiento se ha dado en gran medida por las contribuciones de
los usuarios de este proyecto dado que es un requisitos dentro de
la comunidad de software libre el compartir sus conocimientos y
estos aportes vienen desde programadores aficionados hasta los
gures de la informtica. En la tabla 4.7 siguiente se aprecian los
mnimos de hardware para ultramonkey.
Procesador
Memoria RAM
64 MB
Interfaz de Red
10 Mbps
Herramienta.
Procesador.
Memori
Espacio
Interfaz
a RAM.
en
de Red.
Disco
Duro.
Piranha.
Pentium II 300MHz
64 MB
+2GB
10
Mbps
65
LVS.
Pentium MMX
64 MB
+1GB
166MHz
Ultramonkey.
Pentium MMX
10
Mbps
64 MB
+512MB
166MHz
10
Mbps
Ultramonkey:
Esta es la herramienta ms simple de instalacin de las 3, no es
necesario revisar dependencias o instalar paquetes adicionales
manualmente,
es
un
proceso
totalmente
automatizado
Piranha:
Esta herramienta es sencilla de instalar si se posee una licencia
del sistema operativo Red Hat Enterprise utilizado, su instalacin
puede realizarme mediante un administrador de paquetes grfico
propio del sistema operativo o bien, mediante la lnea de
comandos con el administrador indicado (en este caso yum). De
66
LVS:
Para llevar a cabo la instalacin de LVS es necesario activar los
mdulos de LVS en el kernel de la distribucin utilizada,
posteriormente se debe instalar la aplicacin ipvsadm pues esta
ser nuestra interfaz de comunicacin con LVS. Una vez activado
el soporte y la interfaz con LVS se procede a su configuracin y
pruebas pertinentes. Es importante notar que de no contar con un
kernel con soporte activado las alternativas existentes son una
recompilacin del mismo kernel o la compilacin de uno
totalmente nuevo habilitando dicho soporte en ambos casos; si la
distribucin utilizada posee mecanismos para instalar un kernel
con soporte incluido esto facilita la tarea, de otra manera el
proceso de configuracin, activacin del soporte, compilacin e
instalacin deber realizarse de forma manual.
67
Ultramonkey:
Este proyecto es de fcil adquisicin puesto que se encuentra
empaquetado en diversos formatos, basta con agregar un
repositorio al archivo y actualizar dichos repositorios para tener
acceso a los paquetes que conforman Ultramonkey, el sistema de
gestin de paquetes har notar que debe instalar otros paquetes
que son dependencias y ubicar los archivos en los sitios
correspondientes; esta es la manera ms fcil de instalar
Ultramonkey, es limpia, rpida y muy eficiente. Si se desea
instalar sobre una distribucin como Red Hat se cuenta con los
paquetes necesarios en formato RPM y se deben de descargar
todos los paquetes y llevar a cabo la instalacin de forma manual,
en caso de usar una distribucin distinta a estas dos, se
proceder a descargar los paquetes en formato GZIP o BZIP2
dependiendo de las necesidades.
Se concluye de lo anterior que la herramienta Ultramonkey posee
una amplia variedad de medios de distribucin y adquisicin para
varios sistemas operativos GNU/Linux eliminando la restriccin de
dependencia de una distribucin en especial. Aunque LVS se
distribuye como cdigo fuente y Piranha en paquetes RPM o
cdigo fuente, la herramienta Ultramonkey brinda una mejor
variedad de formatos y medios de adquisicin siendo este punto
el que le brinda ventaja sobre las anteriores y siendo esta la mejor
eleccin.
queda
establecido
que
la
mejor
opcin
para
68
69
CAPITULO 5
INTRODUCCION
Este captulo tiene como finalidad describir la manera de cmo se lleva a
cabo el proceso de construccin del clster, as como tambin de hacer
notar cuales aspectos se debern tomar en cuenta para su
configuracin.
70
71
72
Tipo de Nodo
Herramientas Utilizadas
Sistema Operativo (Windows, etc.)
Navegador Web.
Cliente
Carga
Sistema Operativo GNU/Linux CentOs 5.3.
Aplicaciones IPROUTE, IP RULE e IPTABLES.
Editor de textos VIM.
Servidor Real
Herramienta.
Caractersticas.
Caractersticas Principales.
Balanceo de carga.
Escalabilidad.
Bajo consumo de recursos.
Suite
Diversos esquemas de
Balanceo de carga.
configuracin.
Alta disponibilidad.
73
Ultramonkey
Escalabilidad.
Editor de textos
VIM.
de texto.
documento.
Uso de nmeros de
lnea.
del editor.
Bsqueda de patrones
dentro del documento.
Soporte de lenguajes de
programacin mediante mdulos.
Soporte para HTTPS.
Servidor de
Pginas web
Apache2.
Soporte de mdulos
para lenguajes y otras
aplicaciones.
Soporte de SSL.
Creacin de host
virtuales.
Calidad de servicio.
Mantenimiento de varias tablas de
ruteo.
Aplicacin
Balanceo de carga.
IPROUTE.
Definicin de tneles.
Balanceo de carga.
Mantenimiento de varias
tablas de ruteo.
Aplicacin
Intercepcin y manejo
procesamiento.
de paquetes de red.
Construccin de
en GNU/Linux.
firewalls basados en
74
IPTABLES.
GNU/Linux.
(NAT).
Traduccin de
direcciones (NAT).
TCPDUMP.
computadoras.
usuarios o
computadoras.
75
Medios de Instalacin.
Aspecto.
Descripcin.
Debe especificarse a qu zona horaria pertenece el
Zona Horaria.
Contrasea de
administrador y
usuario(s).
76
77
manera directa (ver figura 5.1). Para ello el servidor real deber contar
con la aplicacin iproute (sta aplicacin se compone de un conjunto de
herramientas muy potentes para administrar interfaces de red y
conexiones en sistemas GNU/Linux).
Las caractersticas que brinda esta configuracin de balanceo de carga
(ver figura 5.2) en primera instancia son brindar un equilibrio de la carga
de trabajo en cuanto a las conexiones que puede atender cada servidor
real haciendo posible, dependiendo del algoritmo de balanceo, el asignar
ms trabajo a un servidor con mayor capacidad que otro, repartir el total
de conexiones si todos los servidores son iguales en caractersticas para
no saturar ninguno y poder atender de manera eficiente al usuario final.
Despus permite que al incorporarse nuevos nodos servidores con
mayores prestaciones estos sean quienes atiendan las peticiones con
mayores prioridades y consumo de recursos dejando al resto libre para
atender a otros usuarios finales. Las aplicaciones IPROUTE e
IPTABLES son necesarios de configurar, pues las configuraciones que
posee por defecto al instalarse no son suficientes.
En lo que respecta a la alta disponibilidad cabe sealar que esta se
brinda mediante la redundancia de nodos de balanceo pues es aqu
donde reside el balanceo de la carga ya que tales nodos son los
encargados de distribuir las conexiones. Esta alta disponibilidad requiere
que no solo exista la redundancia en los nodos de balanceo sino
tambin cierto grado en los servidores reales pues aunque con solo un
servidor real se puede todava brindar el servicio, en realidad no existe
ningn balanceo de esta manera, siendo primordial la existencia de por
lo menos dos nodos para tal efecto.
Como las conexiones son redirigidas a los servidores reales usando NAT
es importante que la ruta de regreso para tales conexiones sea a travs
del nodo de balanceo. Esto es as porque NAT puede revertir el proceso,
de otra forma el paquete de retorno que es recibido por el usuario final
ser del servidor real y no del nodo de balanceo y por lo tanto la
conexin ser abandonada.
78
79
http://www.ultramonkey.org/download/3/
80
81
82
5.6.2. Heartbeat
Para configurar el Heartbeat, deben estar instalados los archivos
/etc/ha.d/ha.cf, /etc/ha.d/haresources y /etc/ha.d/authkeys.
Para visualizar el archivo /etc/ha.d/ha.cf se debe ejecutar el siguiente
comando:
vim /etc/ha.d/ha.cf
El monitoreo de los servidores reales y su insercin y eliminacin del
conjunto de servidores disponibles es controlado por ldirectord, el cual
es ejecutado por Heartbeat. Para configurar ldirectord, el archivo
/etc/ha.d/ldirectord.cf debe estar instalado.
83
vim /etc/ha.d/ldirectord.cf
Al recibir una peticin de conexin desde un cliente, el nodo de balanceo
asigna un servidor real al cliente basado en un algoritmo. El tipo del
algoritmo se define en este archivo. Algunos de los algoritmos
disponibles son:
RR, WRR: round robin, weighted round robin (con manejo de pesos).
LC, WLC: least connection (menos conexiones), weighted least
connection (el director tiene una tabla con el nmero de conexiones para
cada servidor real).
Los algoritmos RR, WRR, LC y WLC deberan todos funcionar de forma
similar cuando el nodo de balanceo est dirigiendo servidores reales
idnticos con servicios idnticos. El algoritmo LC ser mejor manejando
situaciones donde las mquinas son dadas de baja y activadas
nuevamente. Si los servidores reales estn ofreciendo diferentes
servicios y algunos tienen usuarios conectados por un largo tiempo
mientras otros estn conectados por un corto periodo, entonces ninguno
de los algoritmos va a hacer un buen trabajo distribuyendo la carga entre
los servidores reales.
Como el clster a implementar posee servidores reales idnticos con
servicios idnticos, se opt por implementarlo con un algoritmo RR
(round robin).
84
85
86
87
Ipvsadm
Ipvsadm se utiliza para establecer, mantener o inspeccionar la tabla del
servidor virtual en el kernel de Linux. El Servidor Virtual Linux puede ser
utilizado para construir los servicios de red escalable basada en un conjunto
de dos o ms nodos. El nodo activo del clster redirecciona las peticiones
de servicio a un nodo del clster, un servidor que va a entregar los
servicios. Entre sus caractersticas soportadas incluyen dos protocolos
(TCP y UDP), tres mtodos de reenvo de paquetes (NAT, tneles, y el
encaminamiento directo), y ocho algoritmos de balanceo.
El comando tiene dos formatos bsicos para la ejecucin:
ipvsadm COMMAND [protocol] service-address
[scheduling-method] [persistence options]
ipvsadm command [protocol] service-address
server-address [packet-forwarding-method]
[weight options]
88
Tcpdump
Tcpdump es una excelente herramienta que nos permite monitorear a
travs de la consola de Linux todos los paquetes que atraviesen una
interfaz indicada. A su vez, los mltiples filtros, parmetros y opciones que
tcpdump nos ofrece, nos permite infinidades de combinaciones, al punto de
poder monitorear todo el trfico completo que pase por la interfaz, como el
trfico que ingrese de una ip, un host o una pgina especfica, podemos
solicitar el trfico de un puerto especfico o pedirle a la herramienta que nos
muestre todos los paquetes cuyo destino sea una direccin MAC especfica.
Ejemplos:
tcpdump i eth0 port 80
Muestra todo el trfico por la interface de red eth0 y el puerto 80.
De las pruebas obtenidas con estas herramientas podemos verificar el
estado de los servidores asi:
89
90
91
CONCLUSIONES
Una vez instalado todo el conjunto de paquetes necesario, (paquetes RPM, tipo
de paquete utilizado en distribuciones Centos), la configuracin resulta sencilla
y solo se tienen que ejecutar comandos para especificar el algoritmo a utilizar
para el balanceo de carga, datos sobre los servidores reales y nodos de
balanceo como tambin los servicios que proporcionan y las pginas para
control esperadas (servicio en este caso particular de pginas web o HTTP
solamente).
Para las pruebas de funcionamiento se utiliz configuraciones generales del
clster que incluye los nodos de balanceo, los algoritmos para balanceo de
carga, instalacin y configuracin del servidor de pginas web Apache, pruebas
simples para nodos de balanceo e instalacin y configuracin del paquete
iproute en los nodos servidores.
Sobre las pruebas realizadas, estas me ofrecen un panorama muy general,
puesto que la mayora de ellas son bien controladas y se esperan ciertos
resultados, la mejor parte de las pruebas se pudo explorar esos aspectos no
previstos e investigar el comportamiento del clster en dichos casos; en las
pruebas llevadas a cabo se contaba con un cliente con un sistema operativo
distinto al utilizado para la construccin del clster (recurdese que el cliente
solamente necesita un navegador web) el cual realiza las peticiones de la
pgina web principal alojada en el clster, de esta manera se pudo observar
cual servidor real es el que atiende la peticin (en un sistema en produccin
esto no deber ser as ya que la intencin es que los usuarios vean al sitio web
como un solo equipo). La pgina web solicitada en las pruebas solamente
contiene una cadena indicando a que nodo servidor real pertenece. Es
importante aclarar que debido a las caractersticas de los nodos de balanceo
empleados, estos no pueden procesar miles de peticiones sin embargo las
pruebas realizadas demuestran que son suficientemente competentes para el
92
BIBLIOGRAFIA
http://linuxmanpages.com/man8/ipvsadm.8.php
http://bulma.net/body.phtml?nIdNoticia=1615&nIdPage=3
http://www.adslfaqs.com.ar/que-es-nat-network-address-translation/
http://wiki.itlinux.cl/doku.php?id=cluster:ultramonkey-lbs
http://mmc.geofisica.unam.mx/LuCAS/Manuales-LuCAS/doc-cursosalamanca-clustering/html/ch03s04.html
http://www.wikilearning.com/tutorial/el_manual_para_el_clustering_con_
openmosix-clusters_ha_ii/9756-15
http://www.estrellateyarde.org/discover/cluster-ultramonkey-en-linux
http://www.tcpdump.com/
http://linuxmanpages.com/man8/ipvsadm.8.php
http://www.ultramonkey.org
http://www.centos.org