Está en la página 1de 50

Alta Disponibilidad

y
Balanceo de Carga
en Linux

---------
Cursos GUL Marzo::2008

Javier Turégano Molina

Andago 2008 1
Indice

INDICE
Introducción
Heartbeat
IPVS
Keepalived
Almacenamiento Compartido
Casos de Éxito
Preguntas

Andago 2008 2
Introducción

¿Qué es eso de la alta disponibilidad?

Andago 2008 3
Introducción

¿Qué es el balanceo de carga?

Andago 2008 4
Introducción

¿Qué tipos de crecimiento hay?

VERTICAL HORIZONTAL

Andago 2008 5
Introducción

¿Es importante la compartición de datos entre nodos?

Andago 2008 6
Introducción

¿Tenemos disponibles todas esas herramientas con


Software Libre?

-Alta disponibilidad: Heartbeat


- Balanceo de carga: IPVS + Keepalived
- Almacenamiento compartido:
DRBD, JFS, OCFS, iSCSI, AoE

Andago 2008 7
Introducción

Pero, ¿quién está utilizando esto?

Andago 2008 8
Introducción

Alguna pega debe de tener ¿no?

Andago 2008 9
HEARTBEAT

:: HEARTBEAT ::

http://www.linux-ha.org/HeartbeatProgram

Andago 2008 10
HEARTBEAT

Heartbeat es uno de los componentes principales del


proyecto Linux-HA (Linux Hight Availability).

Multiplataforma: Linux ,FreeBSD y Solaris.

Nos ofrece detección de nodos caidos, comunicación y


gestión de cluster en un solo proceso.

Andago 2008 11
¿Cómo funciona Heartbeat?

Heartbeat utiliza un sistema de latidos.

Recomendaciones:

- Comunicación dedicada

- Comunicación redundante

Andago 2008 12
¿Cómo funciona Heartbeat?

Asignamos los recursos

Dirección IP de servicio
Servidores activos
Maestro de almacenamiento

Andago 2008 13
Heartbeat (Activo - Pasivo)

ALTA DISPONIBILIDAD ACTIVO-PASIVO

Andago 2008 14
Heartbeat (Activo - Pasivo)

IP IP

ZZZ

Web Web

Andago 2008 15
Heartbeat (Activo – Pasivo Multiservicio)

ALTA DISPONIBILIDAD ACTIVO-PASIVO MULTISERVICIO

Andago 2008 16
Heartbeat (Activo – Pasivo Multiservicio)

Web BDD

Smtp Web

Smtp

Andago 2008 17
Heartbeat (Failover)

Opciones de recuperación del nodo caido:

Autofailback on/off

Andago 2008 18
Hearbeat (Autofailback on)

Web BDD

Smtp Web

Smtp

Andago 2008 19
Configuración de Heartbeat

Hearbeat se configura a través de dos ficheros de


configuración principales:

/etc/ha.d/ha.cf

/etc/ha.d/haresources

Andago 2008 20
Configuración de Heartbeat

/etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0

keepalive 2
warntime 3
deadtime 12
initdead 30

auto_failback off

udpport 694
bcast eth1
ping 192.168.17.2 192.168.17.1

node constantinopla
node alejandria

Andago 2008 21
Configuración de Heartbeat

Ejemplo Activo – Pasivo

/etc/ha.d/haresources
constantinopla 192.168.1.1 apache postfix
alejandria

Ejemplo Activo – Pasivo Multiservicio

/etc/ha.d/haresources
constantinopla 192.168.1.1 apache postfix
alejandria 192.168.1.2 mysql

Andago 2008 22
Hearbeat 2

¿Qué ventajas nos aporta la versión 2 de hearbeat?

Andago 2008 23
Heartbeat 2 Configuration

<?xml version="1.0" ?>


<cib>
<configuration>
<crm_config>
<nvpair id="transition_idle_timeout"
name="transition_idle_timeout" value="120s"/>
<nvpair id="symmetric_cluster" name="symmetric_cluster"
value="true"/>
<nvpair id="no_quorum_policy" name="no_quorum_policy"
value="stop"/>
</crm_config>
<nodes/>

Andago 2008 24
Hearbeat 2 Configuration

<resources>
<group id="group_1">
<primitive class="ocf" id="IPaddr_1" provider="heartbeat"
type="IPaddr">
<operations>
<op id="1" interval="5s" name="monitor" timeout="5s"/>
</operations>
<instance_attributes>
<attributes>
<nvpair name="ip" value="10.0.200.30"/>
<nvpair name="netmask" value="16"/>
<nvpair name="nic" value="eth0"/>
</attributes>
</instance_attributes>
</primitive>

Andago 2008 25
Hearbeat 2 Configuration

<primitive class="ocf" id="apache2id" provider="heartbeat"


type="apache2">
<operations>
<op id="3" name="monitor" interval="10s" timeout="10s"/
>
</operations>
</primitive>
</group>
</resources>
<constraints>
<rsc_location id="rsc_location_group_1" rsc="group_1">
<rule id="prefered_location_group_1" score="100">
<expression attribute="#uname" operation="eq"
value="mars"/>
</rule>
</rsc_location>
</constraints>
</configuration> <status/> </cib>

Andago 2008 26
IPVS

:: IPVS (IP Virtual Server) ::


http://www.linuxvirtualserver.org/software/ipvs.html

IPVS implementa balanceo de carga a nivel de la


capa de transporte dentro del kernel de Linux (layer4-
switching).

IPVS actua como un balanceador de carga.

Puede redirigir conexiones a servicios TCP/UDP a


los servidores reales, y así hacer parecer que estos
servicios de varios servidores como un único servicio
virtual para una IP.

Andago 2008 27
IPVS

IPVS

Andago 2008 28
IPVS - Caracteristicas

Caracteristicas:

Soporte para protocolos UDP y TCP

Tres métodos de reenvio de paquetes:

NAT
Tunneling
Direct Routing

Ocho algoritmos de balanceo de carga:


Round robin, weighted round robin, least-connec-tion, weighted
least-connection, locality-based least-connection, locality-based
least-connection with replication, destination-hashing, and source-
hashing

Andago 2008 29
IPVS

Versiones:

La versión estable actual es ipvs 1.2.1 y está incluida de


serie en los kernel de linux a partir de la versión 2.6.10.

Para los kernels 2.4 también tenemos disponible la versión


de ipvs 1.0.12 a partir del kernel 2.4.28.

Aparte del módulo del kernel disponemos de una


aplicación en línea de comandos para administrarlo:
ipvsadm

Andago 2008 30
Ejemplo - IPVS

Ejemplo:

Configuración de un balanceador con IPVS para que


distribuya el tráfico que reciba por el puerto 80 a 5
servidores reales.

Andago 2008 31
Ejemplo - IPVS

Añadimos un servicio virtual para 207.175.44.110:

$ ipvsadm -A -t 207.175.44.110:80 -s rr

Añadimos los servidores al servicio virtual:

$ ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.1:80 -


m
$ ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.2:80 -
m
$ ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.3:80 -
m
$ ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.4:80 -
m
$ ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.5:80 -
m
Andago 2008 32
Ejemplo - IPVS

Necesitaremos activar el reenvio ip:

$ echo "1" > /proc/sys/net/ipv4/ip_forward

Listado de rutas existentes y activas:

$ ipvsadm -l

Nos va a ser muy útil para paradas programadas y


mantemiento.

Andago 2008 33
Failover en IPVS

¿Qué ocurre si uno de los equipos del balanceo cae?

Para solucionarlo podemos utilizar:


Keepalived

Andago 2008 34
Keepalived

:: KEEPALIVED ::

http://www.keepalived.org/

Andago 2008 35
Keepalived

El objetivo principal de Keepalived es añadir una utilidad


fuerte y robusta de recuperación ante fallos en el proyecto
de Linux Virtual Server.

Está escrito en C y nos provee de un sistema de chequeos


multicapa sobre la pila TCP/IP.

Nos permite trabajar en 3 capas:


3, 4 y 5/7.

Andago 2008 36
Keepalived

¿Cómo funciona keepalived?

Andago 2008 37
Keepalived

Andago 2008 38
Configuración de Keepalived

/etc/keepalived/keepalived

global_defs {
notification_email {
admin@midominio.com
}
notification_email_from balanceador@miservidor.net
smtp_server 192.168.18.2
smtp_connect_timeout 30
lvs_id BALANCEADOR1_LVS
}

Andago 2008 39
Configuración de Keepalived

vrrp_instance VI_EXTERNA {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 150
advert_int 1
smtp_alert
authentication {
auth_type PASS
auth_pass example
}
virtual_ipaddress {
192.168.17.115}
}

Andago 2008 40
Configuración de Keepalived

virtual_server 192.168.17.115 110 {


delay_loop 6
lb_algo wlc
lb_kind NAT
nat_mask 255.255.255.0
protocol TCP

real_server 192.168.5.1 110 {


weight 1
TCP_CHECK {
connect_timeout 3
connect_port 110
}}

real_server 192.168.5.2 110 {


weight 1
TCP_CHECK {
connect_timeout 3
connect_port 110
}}}

Andago 2008 41
Almacenamiento compartido

Andago 2008 42
Almacenamiento compartido

¿En qué casos necesitamos almacenamiento compartido?

Andago 2008 43
Almacenamiento compartido

Soluciones Software

Acitvo/Pasivo

DRBD + Ext3/Reiserfs

Activo/Activo

DRBD 8 + GFS/OCFS2

iSCSI/AoE + GFS/OCFS2

Andago 2008 44
Almacenamiento Compartido

Soluciones Hardware

Storage Area Network (SAN) + GFS/OCFS2

Network Attached Storage (NAS) + NFS/SMB-CIFS

Andago 2008 45
GFS2 vs OCFS2

Podemos encontrar una extensa comparativa de sistemas de


ficheros en:

http://en.wikipedia.org/wiki/Comparison_of_file_systems

Andago 2008 46
DRBD

:: DRBD ::

http://www.drbd.org/

Drbd es un dispositivo de bloques que está diseñado para


construir "clusters" de alta disponibilidad.

Se realiza por medio de una copia idéntica de todo un


dispositivo de bloques através de una red (dedicada).

Lo podemos ver como un RAID-1 en red.

Andago 2008 47
DRBD 8

Ventajas de DRBD Version 8

Andago 2008 48
Casos de Exito

Veamos algunos casos de éxito.

Andago 2008 49
Preguntas y Contacto

¿?
www.turegano.net
www.twitter.com/setoide

Licencia Creative Commons Reconocimiento


Andago 2008 2.5 de España 50

También podría gustarte