Publicado el 25 de Junio del 2017
1.643 visualizaciones desde el 25 de Junio del 2017
562,0 KB
29 paginas
Creado hace 12a (19/12/2012)
PROYECTO INTEGRADO
PROYECTO INTEGRADO
CLUSTER DE ALTA DISPONIBILIDAD CON
CLUSTER DE ALTA DISPONIBILIDAD CON
HAPROXY Y KEEPALIVED
HAPROXY Y KEEPALIVED
Obra bajo licencia Creative Commons
Antonio Madrena Lucenilla
21 de Diciembre de 2012
I.E.S. Gonzalo Nazareno
INDICE DE CONTENIDO
INDICE DE CONTENIDO
● Introducción
● Topología de red
● Instalación de máquinas
● Software a utilizar
● Instalación y configuración de HAProxy
● Instalación y configuración de Keepalived
● Configuración de Sysctl
INDICE DE CONTENIDO
INDICE DE CONTENIDO
● Configuración de servidores web
● Inicio de servicios
● Comprobaciones
● Estadísticas con HAProxy
● Referencias web
INTRODUCCION
INTRODUCCION
● Alta Disponibilidad (Wikipedia): protocolo de
diseño del sistema y su implementación asociada
que asegura un cierto grado absoluto de
continuidad operacional durante un período de
medición dado.
● Cada día es más importante y necesario montar
fundamentales en Alta
nuestros
Disponibilidad de manera que si algo falla por
causas ajenas, éste siga ofreciendo su función.
servicios
INTRODUCCIÓN (II)
INTRODUCCIÓN (II)
● Todo el servicio que no se pueda ofrecer se le
llama “Tiempo de Inactividad”.
● Disponibilidad de un servicio: porcentaje
lleva prestando servicio
tiempo/año que
ininterrumpidamente.
– 99,9%: tres nueves → 8,76 horas/año inact.
– 99,99%: cuatro nueves → 52,6 min/año inact.
– 99,999%: cinco nueves → 5,26 min/año inact.
INTRODUCCION (III)
INTRODUCCION (III)
● Se ven a redactar los pasos necesarios para
montar un Cluster de Alta Disponibilidad usando
HAProxy y Keepalived.
● HAProxy básicamente consiste en un Proxy
Inverso y un balanceador de carga.
● Keepalived es la herramienta que nos permite
los dos
tener conectados e
servidores para ofrecer Alta Disponibilidad.
identificados
● Ésto nos ofrece un servicio capaz de mantener un
gran número de conexiones simultáneas.
TOPOLOGÍA DE RED
TOPOLOGÍA DE RED
● Cuatro máquinas:
– Dos donde se encuentra HAProxy y Keepalived
– Dos con un apache para ejercer el servicio web
HOSTNAME
server1
server2
web1
web2
IP
10.0.0.1
10.0.0.2
10.0.0.100
10.0.0.200
VIP
10.0.0.10
10.0.0.10
FUNCIÓN
HAProxy-Keepalived
HAProxy-Keepalived
Apache
Apache
TOPOLOGÍA DE RED (II)
TOPOLOGÍA DE RED (II)
Server1 actúa como MASTER y Server2 como BACKUP. Esto se explica más
adelante.
Web1 y Web2 sirven el mismo contenido, que de una forma u otra también ofrece
Alta Disponibilidad.
INSTALACION DE MÁQUINAS
INSTALACION DE MÁQUINAS
● Características Hardware:
– CPU: 1 core
– RAM: 256 Mb
– HDD: Dos de 8 GB (RAID 1)
– Tarjeta de red: Virtio
● Server1 y Server2 tienen una VIP configurada,
de manera que se aloja en la máquina que se
encuentre como MASTER.
SOFTWARE A UTILIZAR
SOFTWARE A UTILIZAR
● HAProxy: balanceador de carga multiprotocolo
– Versión 1.4.8-1 (Actualmente estable)
● Keepalived: manejo del Cluster
– Versión 1:1.1.20-1+squeeze1
● Apache2: servidor web
– Versión 2.2.16-6+squeeze8
● Varnish: caché web
– Versión 2.1.3-8
INSTALACIÓN DE HAPROXY
INSTALACIÓN DE HAPROXY
● HAProxy es un Proxy inverso TCP/HTTP
Alta
entornos
con
adecuado
Disponibilidad.
para
● Cuenta con conexión persistente de Cookies
y balanceador de carga.
● Se hace en los servidores principales [Server1
y Server2] desde repositorios:
# aptitude install haproxy
CONFIDURACIÓN DE HAPROXY
CONFIDURACIÓN DE HAPROXY
● Al instalar el paquete crea los siguientes
archivos para su configuración:
– Crea el directorio
/etc/haproxy donde se
encuentra la configuración principal:
● Fichero de configuración general: haproxy.cfg
● Directorio con errores html: errors/
– También crea dentro del directorio /etc/default el
archivo haproxy, donde tenemos que cambiar el
parámetro ENABLED a 1, para activarlo.
CONFIGURACIÓN DE HAPROXY
CONFIGURACIÓN DE HAPROXY
(II)(II)
“La configuración de
HAProxy no varía entre
Server1 y Server2.”
INSTALACIÓN DE KEEPALIVED
INSTALACIÓN DE KEEPALIVED
● Keepalived se utiliza para monitorizar
servidores dentro de Cluster LVS (Linux
Virtual Server).
● Se puede configurar para eliminar servidores
de la cola del Cluster si éste deja de
responder.
● Implementa mediante protocolo VRRPv2 un
módulo para recoger información adicional
del Cluster.
INSTALACION DE KEEPALIVED
INSTALACION DE KEEPALIVED
(II)(II)
● La instalación de Keepalived se hace desde
los repositorios oficiales de Debian.
# aptitude install keepalived
● Se instala en ambos servidores principales
[Server1 y Server2]
CONFIGURACIÓN DE KEEPALIVED
CONFIGURACIÓN DE KEEPALIVED
● Su configuración varía en ambos, ya que uno
actúa como MASTER y otro como BACKUP.
– MASTER: mientras todo sea correcto es el que va
a ofrecer el servicio completo. Si éste falla el
BACKUP empieza a ofrecer el servicio.
– BACKUP: Si falla el MASTER, éste ofrece el
servicio hasta que el Maestro esté totalmente
recuperado del fallo. Entonces toma de nuevo la
función de BACKUP y sigue a la espera por si se
produce otro fallo.
CONFIGURACION DE KEEPALIVED
CONFIGURACION DE KEEPALIVED
(II)
(II)
● El fichero de configuración se encuentra en el
directorio /etc/keepalived.
● Tanto en el MASTER como en el BACKUP, el
fichero keepalived.conf son idénticos, salvo
por el estado y la prioridad.
– Estado: MASTER y BACKUP
– Prioridad:
● MASTER: priority 101
● BACKUP: priority 100
CONFIGURACION DE KEEPALIVED
CONFIGURACION DE KEEPALIVED
(III)
(III)
[…]
state MASTER
[…]
priority 101
[...]
[…]
state MASTER
[…]
priority 101
[...]
CONFIGURACION DE SYSCTL
CONFIGURACION DE SYSCTL
● Sysctl es una interfaz para examinar y
cambiar los parámetros de forma dinámica
en los sistemas operativos Linux y BSD.
● Tenemos que modificar el “bit de forwarding”
y el “non local bind”.
● Últimamente he aprendido a usar sysctl, así
que lo uso en mi Proyecto Integrado para
hacerlo de manera diferente a la que estamos
acostumbrados en el ciclo.
CONFIGURACION DE SYSCTL
CONFIGURACION DE SYSCTL
(II)(II)
● Para modificar el fichero /etc/sysctl.conf se
puede hacer con un “echo” o modificando
el propio fichero con un editor.
# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
# echo "net.ipv4.ip_nonlocal_bind = 1" >> /etc/sysctl.conf
● Una vez añadidos al fichero ejecutamos el
siguiente comando para que cargue los
cambios y nos los muestre por pantalla.
# sysctl p
INSTALACIÓN Y CONFIGURACIÓN DE
INSTALACIÓN Y CONFIGURACIÓN DE
SERVIDORES WEB
SERVIDORES WEB
● Los servidores web simplemente son un
Apache corriendo en el puerto 80.
● Estos se instalan desde repositorios oficiales.
# aptitude install apache2
● Para hacer
la búsqueda más rápida he
instalado también una simple caché web.
Ésta también se instala desde repositorios.
# aptitude install varnish
● Ambos se dejan con la configuración por
defecto.
INSTALACIÓN Y CONFIGURACIÓN DE
INSTALACIÓN Y CONFIGURACIÓN DE
SERVIDORES WEB (II)
SERVIDORES WEB (II)
● Como página web he creado una simple con
código html y css, y que luego he replicado
entre los dos servidores web.
INICIO DE SERVICIOS
INICIO DE SERVICIOS
● Tenemos que iniciar los servicios de HAProxy
y Keepalived en las dos máquinas.
● Esto hay que hacerlo primero en el MASTER
y segundo en el BACKUP, de lo contrario
daría fallos al no poder sincronizar archivos.
# /etc/init.d/haproxy start
# /etc/init.d/keepalived start
COMPROBACIONES
COMPROBACIONES
● Antes que nada tenemos que comprobar que
HAProxy y Keepalived estén funcionando. Lo
hacemos con el siguiente comando:
# ip addr sh eth0
● Este nos presenta quien es MASTER y quien
BACKUP, y cual de ellos tiene la IP virtual.
COMPROBACIONES (II)
COMPROBACIONES (II)
● Podemos provocar la caida del MASTER y
observaremos como el BACKUP comienza a
prestar el servicio y adquiere la IP virtual.
COMPROBACIONES (III)
COMPROBACIONES (III)
● Otra forma es mirando los logs.
ESTADÍSTICAS CON HAPROXY
ESTADÍSTICAS CON HAPROXY
● Una de las funcionalidades de HAProxy es
hacer estadísticas y mostrarlas por el
navegador.
● Para ello accedemos mediante la dirección
http://10.0.0.10/haproxy?stats
REFERENCIAS WEB
REFERENCIAS WEB
● Páginas Oficiales:
– LVS:
● http://www.linuxvirtualserver.org/
– Keepalived:
● http://www.keepalived.org/
– HAProxy:
● http://haproxy.1wt.eu/
REFERENCIAS WEB (II)
REFERENCIAS WEB (II)
● HOWTO y manuales:
– LinuxVirtualServer.org:
● http://www.linuxvirtualserver.org/docs/ha/keepalived.html
– DanielDeMichele.com:
● http://www.danieldemichele.com.ar/alta-disponibilidad-load-
balancer-con-haproxy/
– HowToForge.com:
● http://www.howtoforge.com/setting-up-haproxy-keepalived-
on-debian-lenny-p2
Comentarios de: CLUSTER DE ALTA DISPONIBILIDAD CON HAPROXY Y KEEPALIVED (0)
No hay comentarios