Alta Disponibilidad (HA) em servidores Linux Sérgio Antônio Pohlmann Abril 2010 CI3 –...

Post on 24-Jan-2016

219 views 0 download

Transcript of Alta Disponibilidad (HA) em servidores Linux Sérgio Antônio Pohlmann Abril 2010 CI3 –...

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 .·.·.– sergio@ycube.netsergio@ycube.net– sergio.pohlmann@gmail.comsergio.pohlmann@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:

– sergio@ycube.netsergio@ycube.net – sergio.pohlmann@gmail.comsergio.pohlmann@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