Alta Disponibilidad (HA) em servidores Linux Sérgio Antônio Pohlmann Abril 2010 CI3 – Universidad Nacional de Itapúa Encarnación - Paraguay
Presentación Inicial Autor: –Sérgio Antônio Pohlmann.·. –(0995)
(des) Conocimientos RedesLinux Sistema de Archivos Shell Script Puertos y servicios estándares Unix
High Availability – HA Definición –Servicios –Servidores –Fallas Tipos –Básica –Alta Disponibilidad –Disponibilidade Constante
Observaciones RAID (Redundand Array of Independend Disks)
Observaciones Sincronismo Local o remoto PrincipalCopia Proceso
Observaciones... Definiciones de fallas informáticas Costos en los principales CPDs –Menor Costo - Hardware –Costo Mediano - Peopleware –Costo Alto - Software –MUY ALTO - Dados
Observaciones… % uptime x Tiempo Inoperante (al año) 99 %+- 3,5 días99 %+- 3,5 días 99.9 %+- 9 h99.9 %+- 9 h %+- 52 min99.99 %+- 52 min %+- 5 min %+- 5 min %+- 30 seg %+- 30 seg
Observaciones: Debilidades –RAID –Sincronismo Local –Sincronismo Remoto –Alta Disponibilidad
Alta Disponibilidad - HA Clusters –Cluster Computacional –Alta Disponibilidad
Cluster Computacional Cluster para alta performance Cluster para alta performance Conexión externa CLUSTER Controlador
Alta Disponibilidad Replicación de dados Servicio Prestado LAN / WAN Servidor principal Servidor backup
HA mas utilizados en Linux Replicación: –DRBD Monitoreo –Heartbeat Servicio –Scripts diversos
Solución empregada en ycube.net Replicación: –DRBD Monitoreo –Script y_ha de ycube.net Servicios
Estructura DRBD
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
Como funciona
Situación Normal (PC/SC) Sincronismo
Falla en el Primario (PU/SC) Servicios e interfaces inexistentes en la red
Primario vuelve a funcionar (PI/SC) Inconsistente Sincronismo
Primario vuelve a la Consistencia (PC/SC) Sincronismo
Configuración Obtener DRBD Configuración del Disco Configuración DRBD Configuración de los Scripts
Obtener DRBD Download de Compilar el código (conforme documentación) Algunas distribuciones ya disponen del binario DRBD pre instalado.
Configuración del disco Determinar la partición (no montar) en los dos servidores
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
Configurar DRBD - /etc/drbd.conf on server { device/dev/drbd0; disk /dev/sda1; address :7788; meta-disk internal; } on backup { device /dev/drbd0; disk /dev/sda1; address :7788; meta-disk internal; } Segunda Parte
Levantar el servicio DRBD service drbd start drbdsetup /dev/drbd0 primary –do-what-I-say mkfs /dev/drbd0 mount /dev/drbd0 /data
Configurar script /etc/y_ha/y_ha // Servers Definitions // =================== $masterName = "server"; $masterLAN = " "; $masterSync = " "; $slaveName = "backup"; $slaveLAN = " "; $slaveSync = " "; $timeSync = 3; $timeCons = 3; // Common Definitions // ================== $syncPort = "80";// Synchronize Port $consPort = "53";// Consistence Port
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: netmask echo "Mounting a device..." mount /dev/drbd0 /data echo "Mounting a samba server..." service samba start
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
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
Comandos básicos para el DRBD drbdadm disconnect all drbdadm connect all drbdadm -- --discard-my-data connect all
Referencias
That’s All, Folks!!! Questions?
Gracias por su atención, participación y paciencia! Sérgio A. Pohlmann CI3 2010