1 Alta Disponibilidad (HA) em servidores Linux Sérgio Antônio Pohlmann Abril 2010 CI3 – Universidad Nacional de Itapúa Encarnación - Paraguay
2 Presentación Inicial Autor: –Sérgio Antônio Pohlmann.·. –[email protected] [email protected] –[email protected] [email protected] –(0995) 368260
3 (des) Conocimientos RedesLinux Sistema de Archivos Shell Script Puertos y servicios estándares Unix
4
5
6 High Availability – HA Definición –Servicios –Servidores –Fallas Tipos –Básica –Alta Disponibilidad –Disponibilidade Constante
7 Observaciones RAID (Redundand Array of Independend Disks)
8 Observaciones Sincronismo Local o remoto PrincipalCopia Proceso
9 Observaciones... Definiciones de fallas informáticas Costos en los principales CPDs –Menor Costo - Hardware –Costo Mediano - Peopleware –Costo Alto - Software –MUY ALTO - Dados
10 Observaciones… % uptime x Tiempo Inoperante (al año) 99 %+- 3,5 días99 %+- 3,5 días 99.9 %+- 9 h99.9 %+- 9 h 99.99 %+- 52 min99.99 %+- 52 min 99.999 %+- 5 min99.999 %+- 5 min 99.9999 %+- 30 seg99.9999 %+- 30 seg
11 Observaciones: Debilidades –RAID –Sincronismo Local –Sincronismo Remoto –Alta Disponibilidad
12 Alta Disponibilidad - HA Clusters –Cluster Computacional –Alta Disponibilidad
13 Cluster Computacional Cluster para alta performance Cluster para alta performance Conexión externa CLUSTER Controlador
14 Alta Disponibilidad Replicación de dados Servicio Prestado LAN / WAN Servidor principal Servidor backup
15 HA mas utilizados en Linux Replicación: –DRBD Monitoreo –Heartbeat Servicio –Scripts diversos
16 Solución empregada en ycube.net Replicación: –DRBD Monitoreo –Script y_ha de ycube.net Servicios
17 Estructura DRBD www.drbd.org
18 Script y_ha de ycube.net Motivos del uso –Open Source –Fácil de configurar –Configuración replicable –Control interno de servicios –Buen nivel de eficiencia
19 Como funciona
20 Situación Normal (PC/SC) Sincronismo
21 Falla en el Primario (PU/SC) Servicios e interfaces inexistentes en la red
22 Primario vuelve a funcionar (PI/SC) Inconsistente Sincronismo
23 Primario vuelve a la Consistencia (PC/SC) Sincronismo
24 Configuración Obtener DRBD Configuración del Disco Configuración DRBD Configuración de los Scripts
25 Obtener DRBD Download de www.drbd.org www.drbd.org Compilar el código (conforme documentación) Algunas distribuciones ya disponen del binario DRBD pre instalado.
26 Configuración del disco Determinar la partición (no montar) en los dos servidores
27 Configurar DRBD - /etc/drbd.conf global { usage-count yes; } common { syncer { rate 100M; } } resource r0 { protocol C; startup { wfc-timeout 2; degr-wfc-timeout 2; } disk { on-io-error detach; } Primeira Parte
28 Configurar DRBD - /etc/drbd.conf on server { device/dev/drbd0; disk /dev/sda1; address172.30.30.10:7788; meta-disk internal; } on backup { device /dev/drbd0; disk /dev/sda1; address 172.30.30.20:7788; meta-disk internal; } Segunda Parte
29 Levantar el servicio DRBD service drbd start drbdsetup /dev/drbd0 primary –do-what-I-say mkfs /dev/drbd0 mount /dev/drbd0 /data
30 Configurar script /etc/y_ha/y_ha // Servers Definitions // =================== $masterName = "server"; $masterLAN = "192.168.0.239"; $masterSync = "172.30.30.10"; $slaveName = "backup"; $slaveLAN = "192.168.0.220"; $slaveSync = "172.30.30.20"; $timeSync = 3; $timeCons = 3; // Common Definitions // ================== $syncPort = "80";// Synchronize Port $consPort = "53";// Consistence Port
31 Configurar serviços - /etc/y_ha/_forcePrimary #!/bin/sh echo "Making this server Primary...“ drbdsetup /dev/drbd0 primary echo "Starting a Network Interface..." ifconfig eth0:1 192.168.0.240 netmask 255.255.255.0 echo "Mounting a device..." mount /dev/drbd0 /data echo "Mounting a samba server..." service samba start
32 Configurar servicios - /etc/y_ha/_forceSecondary #!/bin/sh echo "Stopping a Network Interface..." ifconfig eth0:1 down echo "Stopping a samba server..." service samba stop echo "Unmounting a device..." umount -l /dev/drbd0 echo "Turning this server a secondary..." drbdsetup /dev/drbd0 secondary
33 Comandos básicos para el DRBD cat /proc/drbd drbdsetup /dev/drbd0 primary drbdsetup /dev/drbd0 primary –do-what-I-say drbdsetup /dev/drbd0 secondary
34 Comandos básicos para el DRBD drbdadm disconnect all drbdadm connect all drbdadm -- --discard-my-data connect all
35 Referencias http://drbd.org e-mail: –[email protected] [email protected] –[email protected]
36 That’s All, Folks!!! Questions?
37 Gracias por su atención, participación y paciencia! Sérgio A. Pohlmann CI3 2010