PDF de programación - CLUSTER DE ALTA DISPONIBILIDAD CON HAPROXY Y KEEPALIVED

Imágen de pdf CLUSTER DE ALTA DISPONIBILIDAD CON HAPROXY Y KEEPALIVED

CLUSTER DE ALTA DISPONIBILIDAD CON HAPROXY Y KEEPALIVEDgráfica de visualizaciones

Publicado el 25 de Junio del 2017
1.606 visualizaciones desde el 25 de Junio del 2017
565,0 KB
16 paginas
Creado hace 11a (16/12/2012)
I.E.S. Gonzalo Nazareno

Antonio Madrena Lucenilla

PROYECTO INTEGRADO

CLUSTER DE ALTA DISPONIBILIDAD CON HAPROXY Y KEEPALIVED

Obra bajo licencia Creative Commons

1

21 de Diciembre de 2012

I.E.S. Gonzalo Nazareno

Antonio Madrena Lucenilla

Índice de contenido
Introducción..................................................................................................3
Topología de red...........................................................................................4
Instalación de máquinas...............................................................................5
Software a utilizar........................................................................................6
Instalación y configuración de HAProx.......................................................6
Instalación y configuración de Keepalived..................................................8
Configuración de sysctl..............................................................................10
Configuración de servidores web...............................................................11
Inicio de servicios.......................................................................................13
Comprobaciones.........................................................................................14
Estadísticas con HAProxy..........................................................................15
Referencias web.........................................................................................16

Obra bajo licencia Creative Commons

2

21 de Diciembre de 2012

I.E.S. Gonzalo Nazareno

Introducción

Antonio Madrena Lucenilla

Cada día es más importante y necesario montar nuestros servicios fundamentales en Alta
Disponibilidad de manera que si algo falla por causas ajenas, éste siga ofreciendo su función.

Cuando hablamos de Alta Disponibilidad, enumeramos servidores que intentan ofrecer servicios
sin que éstos dejen de ofrecer su función. Todo el servicio que no se pueda ofrecer se le llama
“Tiempo de Inactividad”.

La disponibilidad de un servicio se suele representar como un porcentaje tiempo/año que lleva
prestando servicio ininterrumpidamente.

Normalmente, éste tiempo se expresa según el número de nueves. Lo más común es:







99,9% (tres nueves) => 8,76 horas/año inactivo.

99,99 % (cuatro nueves) => 52,6 minutos/año inactivo.

99,999% (cinco nueves) => 5,26 minutos/año inactivo.

En este Proyecto Integrado se redactan los pasos necesarios para montar un Cluster de Alta
Disponibilidad utilizando software como HAProxy y Keepalived, los cuales consisten en
herramientas para montar un proxy inverso, por el cual, y a través de él conectarnos a los servidores
web (backend).

Implementa soporte de un solo proceso que mantiene un gran número de conexiones simultaneas y
a velocidades muy altas.

He elegido éste tema para mi proyecto ya que ha incitado en mi un interés creciente desde el
conocimiento proporcionado en clase. Investigando, conocí varias formas de montar los servicios en
Alta Disponibilidad, por lo que me pareció importante seguir avanzando en la materia.

Tras varios estudios, elegí montarlo con LVS (Linux Virtual Servers). Éste dispone de mucha
cantidad de software para responder a éste fin.

He probado varios como:

Obra bajo licencia Creative Commons

3

21 de Diciembre de 2012

I.E.S. Gonzalo Nazareno

Antonio Madrena Lucenilla



Piranha

• UltraMonkey

• HeartBeat

• Keepalived

Tras familiarizarme con parte de éstos, seleccioné Keepalived. El resto de software hay que
compilarlo para cada Kernel y esto supone un problema; cada vez que haya una actualización, cada
vez que salga un bug en el código, etc. Por lo que, habría que recompilar el código.

Keepalived, al estar compilado y empaquetado en los repositorios de Debian hacen más amena y a
la vez menos problemática la instalación de dicho software.

Topología de red

En total, he utilizado cuatro máquinas para mi proyecto. Dos de ellas son las encargadas de ejercer
la Alta Disponibilidad y el Balanceo de Carga por Round Robin. Las otras dos son servidores
web/backend cuyo contenido está replicado entre las dos máquinas, que de una forma menos directa
también aportan Alta Disponibilidad a las web.

Los dos servidores principales comparten una ip Virtual (VIP). Ésta VIP es por la que accederemos
a los servicios web. Cada uno de los backend tienen una ip propia y mediante el software utilizado
accederemos a uno u otro dependiendo de la carga que estén soportando.

Máquinas utilizadas:

HOSTNAME
Server1
Server2
Web1
Web2

IP
10.0.0.1
10.0.0.2
10.0.0.100
10.0.0.200

Las conexiones de las máquinas quedarían así:

VIP
10.0.0.10
10.0.0.10

FUNCIÓN
HAProxy – Keepalived
HAProxy – Keepalived
Apache
Apache

Obra bajo licencia Creative Commons

4

21 de Diciembre de 2012

I.E.S. Gonzalo Nazareno

Antonio Madrena Lucenilla

Instalación de máquinas

Las máquinas utilizadas están virtualizadas con KVM y libvirt. Éstas están tras otra red usando ips
del rango 10.0.0.0/24 saliendo hacia mi máquina con NAT.

Su puerta de enlace es la 10.0.0.254, que es la que utiliza mi interfaz virtual virbr1 por la que me
conecto a dicha red.

Todas las máquinas que se utilizan son instaladas con Debian Squeeze 2.6.32-5-amd64. Sus
características Hardware principales son:

• CPU: 1 core

• Memoria RAM: 256 Mb

• Dos discos duros SATA. 8 Gb

• Tarjeta de red Virtual usando NAT. Modelo Virtio.

En la instalación cabe recordar que he configurado los dos discos como RAID 1, creando así una
copia exacta de los dos discos por si uno falla, el otro pueda seguir dando servicio. Éste tipo de
configuración también resulta útil cuando el rendimiento en la lectura es más importante que su

Obra bajo licencia Creative Commons

5

21 de Diciembre de 2012

I.E.S. Gonzalo Nazareno

capacidad de almacenamiento.

Antonio Madrena Lucenilla

Las máquinas server1 y server2 comparten una IP Virtual (VIP) [10.0.0.10]. La configuración para
tener ambas ésta ip es la siguiente:

Ésta configuración se hace en los servidores principales [server1 y server2].

Software a utilizar

El software que voy a utilizar son HAproxy como balanceador de carga multiprotocolo y
Keepalived para manejar el cluster con una sola herramienta. Los backend al ser servidores web
usan Apache.

• HAproxy versión 1.4.8-1, actualmente estable.

• Keepalived versión 1:1.1.20-1+squeeze1

• Apache2 versión 2.2.16-6+squeeze8

Instalación y configuración de HAProx

Haproxy es un proxy inverso TCP/HTTP adecuado para entornos con Alta Disponibilidad. Cuenta
con conexión persistente de cookies y balanceador de carga.

Haproxy se instala desde los repositorios oficiales de Debian.

# aptitude install haproxy

Ésta instalación se hace en los dos servidores principales [server1 y server2].

Para su configuración tenemos los ficheros en /etc/haproxy. Solo tiene un fichero donde se
configura todo, y un directorio donde se guardan los diferentes errores que se pueden producir; 400,

Obra bajo licencia Creative Commons

6

21 de Diciembre de 2012

I.E.S. Gonzalo Nazareno

Antonio Madrena Lucenilla

403, 408,500... y cada uno de ellos con unos parámetros donde se describe el error y unas pautas
html que utilizamos para mostrar el error por un navegador.

El fichero de configuración de haproxy (/etc/haproxy/haproxy.cfg) tiene ésta estructura.

El fichero de configuración del server2 es exactamente igual.

Otros ficheros de configuración son los del directorio errors, que contienen los errores http que se
pueden dar al fallar la aplicación. Entre ellos están los errores 400 (cuando el servidor no da
respuesta), 403 (no se encuentra el servidor), 500 (Internal Server Error), etc.

Obra bajo licencia Creative Commons

7

21 de Diciembre de 2012

I.E.S. Gonzalo Nazareno

Antonio Madrena Lucenilla

La estructura de éstos ficheros es la siguiente:

Otro fichero que hay que modificar es el /etc/default/haproxy. Éste hay que modificarlo en los dos
servidores principales [server1 y server2]. La configuración quedaría así, solo cambiar el
ENABLED a 1.

Instalación y configuración de Keepalived

Keepalived se utiliza para monitorizar servidores dentro de un entorno de cluster LVS (Linux
Virtual Server). Se puede configurar para eliminar servidores de la cola del cluster si éste deja de
responder. También puede configurarse para en el momento que keepalived detecte una máquina
con un funcionamiento erróneo éste envíe un correo electrónico al administrador advirtiendo que se
ha salido un servidor del cluster.

Además, implementa mediante protocolo VRRPv2 un módulo para recoger información adicional
del cluster.

Su instalación se hace desde los repositorios oficiales de Debian.

# aptitude install keepalived

Ésta instalación se hace en los dos servidores principales [server1 y server2].

Obra bajo licencia Creative Commons

8

21 de Diciembre de 2012

I.E.S. Gonzalo Nazareno

Antonio Madrena Lucenilla

Su configuración varía en ambos. Existen dos modos de trabajo en los servidores:

• MASTER: Mientras todo esté correcto éste es el que ofrece servicio.

• BACKUP: Si el servidor maestro cae, éste se convierte en maestro hasta que el MASTER
esté recuperado totalmente. Es en éste momento cuando se convierte de nuevo en BACKUP.

En mi configuración he elegido que solo haya un servidor MASTER y uno BACKUP por el simple
hecho de que solo van a haber dos, así podremos comprobar cómo al caerse el maestro sigue dando
servicio el backup.

La configuración del MASTER [10.0.0.1] es la siguiente (/etc/keepalived/keepalived.conf):

Y la configuración del BACKUP [10.0.0.2] es la siguiente (/etc/keepalived/keepalived.conf):

Como se observa en las imágenes, la configuración de los dos estados es muy similar. Lo único que
cambia en ésta configuración son el estado
  • Links de descarga
http://lwp-l.com/pdf4645

Comentarios de: CLUSTER DE ALTA DISPONIBILIDAD CON HAPROXY Y KEEPALIVED (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad