Alta Disponibilidad (HA) em Alta Disponibilidad (HA) em servidores Linuxservidores Linux
Sérgio Antônio PohlmannSérgio Antônio PohlmannAbril 2010Abril 2010
CI3 – Universidad Nacional de Itapúa CI3 – Universidad Nacional de Itapúa Encarnación - ParaguayEncarnación - Paraguay
Presentación InicialPresentación Inicial
Autor:Autor:– Sérgio Antônio Pohlmann .Sérgio Antônio Pohlmann .·.·.– [email protected]@ycube.net– [email protected]@gmail.com– (0995) 368260(0995) 368260
(des) Conocimientos(des) Conocimientos
RedesRedes
LinuxLinux
Sistema de ArchivosSistema de Archivos
Shell ScriptShell Script
Puertos y servicios estándares UnixPuertos y servicios estándares Unix
High Availability – HAHigh Availability – HA
DefiniciónDefinición– ServiciosServicios– ServidoresServidores– FallasFallas
TiposTipos– BásicaBásica– Alta DisponibilidadAlta Disponibilidad– Disponibilidade ConstanteDisponibilidade Constante
ObservacionesObservaciones
RAID RAID (Redundand Array of Independend Disks)(Redundand Array of Independend Disks)
ObservacionesObservaciones
Sincronismo Local o remotoSincronismo Local o remoto
Principal Copia
Proceso
Observaciones...Observaciones...
Definiciones de fallas informáticasDefiniciones de fallas informáticas
Costos en los principales CPDsCostos en los principales CPDs
– Menor Costo Menor Costo - Hardware- Hardware– Costo Mediano Costo Mediano - Peopleware- Peopleware– Costo Alto Costo Alto - Software- Software– MUY ALTO MUY ALTO - Dados- Dados
Observaciones…Observaciones…
% uptime x Tiempo Inoperante (al año)% uptime x Tiempo Inoperante (al año)
• 99 %99 % +- 3,5 días+- 3,5 días• 99.9 %99.9 % +- 9 h+- 9 h• 99.99 %99.99 % +- 52 min+- 52 min• 99.999 %99.999 % +- 5 min+- 5 min• 99.9999 %99.9999 % +- 30 seg+- 30 seg
Observaciones:Observaciones:
Debilidades Debilidades
– RAIDRAID
– Sincronismo LocalSincronismo Local
– Sincronismo RemotoSincronismo Remoto
– Alta DisponibilidadAlta Disponibilidad
Alta Disponibilidad - HAAlta Disponibilidad - HA
ClustersClusters
– Cluster ComputacionalCluster Computacional
– Alta DisponibilidadAlta Disponibilidad
Cluster ComputacionalCluster Computacional
Cluster para alta performanceCluster para alta performance
Conexión externa CLUSTER
Controlador
Alta DisponibilidadAlta Disponibilidad
Replicación de dadosReplicación de dados
Servicio Prestado
LAN / WAN
Servidor principal
Servidor backup
HA mas utilizados en LinuxHA mas utilizados en Linux
Replicación:Replicación:– DRBDDRBD
MonitoreoMonitoreo– HeartbeatHeartbeat
ServicioServicio– Scripts diversosScripts diversos
Solución empregada en ycube.netSolución empregada en ycube.net
Replicación:Replicación:– DRBDDRBD
MonitoreoMonitoreo– Script y_ha de ycube.netScript y_ha de ycube.net
ServiciosServicios– Script y_ha de ycube.netScript y_ha de ycube.net
Estructura DRBD Estructura DRBD www.drbd.orgwww.drbd.org
Script y_ha de Script y_ha de ycube.netycube.net
Motivos del usoMotivos del uso
– Open SourceOpen Source– Fácil de configurarFácil de configurar– Configuración replicableConfiguración replicable– Control interno de serviciosControl interno de servicios– Buen nivel de eficienciaBuen nivel de eficiencia
Como funcionaComo funciona
Situación Normal (PC/SC)Situación Normal (PC/SC)
Sincronismo
Falla en el Primario (PU/SC)Falla en el Primario (PU/SC)
Servicios e interfaces
inexistentes en la red
Primario vuelve a funcionar (PI/SC)Primario vuelve a funcionar (PI/SC)
Inconsistente
Sincronismo
Primario vuelve a la Consistencia Primario vuelve a la Consistencia (PC/SC) (PC/SC)
Sincronismo
Configuración Configuración
Obtener DRBDObtener DRBD
Configuración del DiscoConfiguración del Disco
Configuración DRBDConfiguración DRBD
Configuración de los ScriptsConfiguración de los Scripts
Obtener DRBDObtener DRBD
Download de Download de www.drbd.orgwww.drbd.org
Compilar el código (conforme Compilar el código (conforme documentación)documentación)
Algunas distribuciones ya disponen Algunas distribuciones ya disponen del binario DRBD pre instalado.del binario DRBD pre instalado.
Configuración del discoConfiguración del disco
Determinar la partición (no montar) en los Determinar la partición (no montar) en los dos servidoresdos servidores
Configurar DRBD - /etc/drbd.confConfigurar DRBD - /etc/drbd.conf
global { global { usage-count yes; usage-count yes;
}}common { common {
syncer { rate 100M; }syncer { rate 100M; } }}resource r0 { resource r0 {
protocol C;protocol C; startup { startup {
wfc-timeout 2; wfc-timeout 2; degr-wfc-timeout 2; degr-wfc-timeout 2;
} } disk { disk {
on-io-error detach; on-io-error detach; } }
Primeira Parte
Configurar DRBD - /etc/drbd.confConfigurar DRBD - /etc/drbd.conf
on server { device /dev/drbd0;
disk /dev/sda1; address 172.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 ParteSegunda Parte
Levantar el servicio DRBDLevantar el servicio DRBD
service drbd startservice drbd start
drbdsetup /dev/drbd0 primary –do-what-I-saydrbdsetup /dev/drbd0 primary –do-what-I-say
mkfs /dev/drbd0mkfs /dev/drbd0
mount /dev/drbd0 /datamount /dev/drbd0 /data
Configurar script /etc/y_ha/y_ha Configurar script /etc/y_ha/y_ha // Servers Definitions// Servers Definitions// ===================// ===================$masterName = "server";$masterName = "server";$masterLAN = "192.168.0.239";$masterLAN = "192.168.0.239";$masterSync = "172.30.30.10";$masterSync = "172.30.30.10";$slaveName = "backup";$slaveName = "backup";$slaveLAN = "192.168.0.220";$slaveLAN = "192.168.0.220";$slaveSync = "172.30.30.20";$slaveSync = "172.30.30.20";$timeSync = 3;$timeSync = 3;$timeCons = 3;$timeCons = 3;
// Common Definitions// Common Definitions// ==================// ==================$syncPort = "80";$syncPort = "80"; // Synchronize Port// Synchronize Port$consPort = "53";$consPort = "53"; // Consistence Port// Consistence Port
Configurar serviços - /etc/y_ha/_forcePrimaryConfigurar serviços - /etc/y_ha/_forcePrimary
#!/bin/sh#!/bin/sh
echo "Making this server Primary...“echo "Making this server Primary...“
drbdsetup /dev/drbd0 primary drbdsetup /dev/drbd0 primary
echo "Starting a Network Interface..." echo "Starting a Network Interface..."
ifconfig eth0:1 192.168.0.240 netmask 255.255.255.0ifconfig eth0:1 192.168.0.240 netmask 255.255.255.0
echo "Mounting a device..." echo "Mounting a device..."
mount /dev/drbd0 /datamount /dev/drbd0 /data
echo "Mounting a samba server..." echo "Mounting a samba server..."
service samba startservice samba start
Configurar servicios - /etc/y_ha/_forceSecondaryConfigurar servicios - /etc/y_ha/_forceSecondary
#!/bin/sh#!/bin/sh
echo "Stopping a Network Interface..." echo "Stopping a Network Interface..." ifconfig eth0:1 downifconfig eth0:1 down
echo "Stopping a samba server..." echo "Stopping a samba server..." service samba stopservice samba stop
echo "Unmounting a device..." echo "Unmounting a device..." umount -l /dev/drbd0 umount -l /dev/drbd0
echo "Turning this server a secondary..." echo "Turning this server a secondary..." drbdsetup /dev/drbd0 secondarydrbdsetup /dev/drbd0 secondary
Comandos básicos para el DRBDComandos básicos para el DRBD
cat /proc/drbdcat /proc/drbd
drbdsetup /dev/drbd0 primarydrbdsetup /dev/drbd0 primary
drbdsetup /dev/drbd0 primary –do-what-I-saydrbdsetup /dev/drbd0 primary –do-what-I-say
drbdsetup /dev/drbd0 secondarydrbdsetup /dev/drbd0 secondary
Comandos básicos para el DRBD
drbdadm disconnect all
drbdadm connect all
drbdadm -- --discard-my-data connect all
Referencias Referencias
httphttp://drbd.org://drbd.org
e-mail:e-mail:
– [email protected]@ycube.net – [email protected]@gmail.com
That’s All, Folks!!!That’s All, Folks!!!
Questions?Questions?
Gracias por su atención, Gracias por su atención, participación y paciencia!participación y paciencia!
Sérgio A. PohlmannSérgio A. Pohlmann
CI3 2010CI3 2010
Top Related