1 Andago 2008 1 1 Alta Disponibilidad y Balanceo de Carga en Linux --------- Cursos GUL Marzo::2008 Javier Turégano Molina
2 Andago 2008 2 2 Indice INDICE – Introducción – Heartbeat – IPVS – Keepalived – Almacenamiento Compartido – Casos de Éxito – Preguntas
3 Andago 2008 3 3 Introducción ¿Qué es eso de la alta disponibilidad?
4 Andago 2008 4 4 Introducción ¿Qué es el balanceo de carga?
5 Andago 2008 5 5 Introducción ¿Qué tipos de crecimiento hay? VERTICAL HORIZONTAL
6 Andago 2008 6 6 Introducción ¿Es importante la compartición de datos entre nodos?
7 Andago 2008 7 7 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
8 Andago 2008 8 8 Introducción Pero, ¿quién está utilizando esto?
9 Andago 2008 9 9 Introducción Alguna pega debe de tener ¿no?
10 Andago 2008 10 HEARTBEAT :: HEARTBEAT :: http://www.linux-ha.org/HeartbeatProgram
11 Andago 2008 11 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.
12 Andago 2008 12 ¿Cómo funciona Heartbeat? Heartbeat utiliza un sistema de latidos. Recomendaciones: - Comunicación dedicada - Comunicación redundante
13 Andago 2008 13 ¿Cómo funciona Heartbeat? Asignamos los recursos – Dirección IP de servicio – Servidores activos Maestro de almacenamiento
14 Andago 2008 14 Heartbeat (Activo - Pasivo) ALTA DISPONIBILIDAD ACTIVO-PASIVO
15 Andago 2008 15 Heartbeat (Activo - Pasivo) Web Z Z Z IP
16 Andago 2008 16 Heartbeat (Activo – Pasivo Multiservicio) ALTA DISPONIBILIDAD ACTIVO-PASIVO MULTISERVICIO
17 Andago 2008 17 Heartbeat (Activo – Pasivo Multiservicio) Web Smtp BDD Web Smtp
18 Andago 2008 18 Heartbeat (Failover) Opciones de recuperación del nodo caido: Autofailback on/off
19 Andago 2008 19 Hearbeat (Autofailback on) Web Smtp BDD Web Smtp
20 Andago 2008 20 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
21 Andago 2008 21 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
22 Andago 2008 22 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
23 Andago 2008 23 Hearbeat 2 ¿Qué ventajas nos aporta la versión 2 de hearbeat?
24 Andago 2008 24 Heartbeat 2 Configuration
25 Andago 2008 25 Hearbeat 2 Configuration
26 Andago 2008 26 Hearbeat 2 Configuration
27 Andago 2008 27 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.
28 Andago 2008 28 IPVS
29 Andago 2008 29 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
30 Andago 2008 30 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
31 Andago 2008 31 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.
32 Andago 2008 32 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
33 Andago 2008 33 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.
34 Andago 2008 34 Failover en IPVS ¿Qué ocurre si uno de los equipos del balanceo cae? Para solucionarlo podemos utilizar: Keepalived
35 Andago 2008 35 Keepalived :: KEEPALIVED :: http://www.keepalived.org/
36 Andago 2008 36 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.
37 Andago 2008 37 Keepalived ¿Cómo funciona keepalived?
38 Andago 2008 38 Keepalived
39 Andago 2008 39 Configuración de Keepalived /etc/keepalived/keepalived global_defs { notification_email { [email protected] } notification_email_from [email protected] smtp_server 192.168.18.2 smtp_connect_timeout 30 lvs_id BALANCEADOR1_LVS }
40 Andago 2008 40 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} }
41 Andago 2008 41 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 } } }
42 Andago 2008 42 Almacenamiento compartido
43 Andago 2008 43 Almacenamiento compartido ¿En qué casos necesitamos almacenamiento compartido?
44 Andago 2008 44 Almacenamiento compartido Soluciones Software Acitvo/Pasivo DRBD + Ext3/Reiserfs Activo/Activo DRBD 8 + GFS/OCFS2 iSCSI/AoE + GFS/OCFS2
45 Andago 2008 45 Almacenamiento Compartido Soluciones Hardware Storage Area Network (SAN) + GFS/OCFS2 Network Attached Storage (NAS) + NFS/SMB-CIFS
46 Andago 2008 46 GFS2 vs OCFS2 Podemos encontrar una extensa comparativa de sistemas de ficheros en: http://en.wikipedia.org/wiki/Comparison_of_file_systems
47 Andago 2008 47 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.
48 Andago 2008 48 DRBD 8 Ventajas de DRBD Version 8
49 Andago 2008 49 Casos de Exito Veamos algunos casos de éxito.
50 Andago 2008 50 Preguntas y Contacto ¿?¿? ¿?¿? www.turegano.net www.twitter.com/setoid e www.turegano.net www.twitter.com/setoid e Licencia Creative Commons Reconocimiento 2.5 de España