33
Alta Disponibilidade (HA) em Alta Disponibilidade (HA) em servidores Linux servidores Linux Sérgio Antônio Pohlmann Sérgio Antônio Pohlmann Outubro – 2009 Outubro – 2009 C3N – Foz do Iguaçu – Paraná - Brasil C3N – Foz do Iguaçu – Paraná - Brasil

Ha pohlmann

Embed Size (px)

Citation preview

Page 1: Ha pohlmann

Alta Disponibilidade (HA) em Alta Disponibilidade (HA) em servidores Linuxservidores Linux

Sérgio Antônio PohlmannSérgio Antônio PohlmannOutubro – 2009Outubro – 2009

C3N – Foz do Iguaçu – Paraná - BrasilC3N – Foz do Iguaçu – Paraná - Brasil

Page 2: Ha pohlmann

Apresentação InicialApresentação 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

Page 3: Ha pohlmann

High Availability – HAHigh Availability – HA

DefiniçãoDefinição– ServiçosServiços

– ServidoresServidores

– FalhasFalhas

TiposTipos– BásicaBásica

– Alta DisponibilidadeAlta Disponibilidade

– Disponibilidade ContínuaDisponibilidade Contínua

Page 4: Ha pohlmann

ObservaçõesObservações

RAID RAID (Redundand Array of Independend Disks)(Redundand Array of Independend Disks)

Page 5: Ha pohlmann

ObservaçõesObservações

Sincronismo Local ou remotoSincronismo Local ou remoto

Principal Copia

Proceso

Page 6: Ha pohlmann

Observações…Observações…

Definições de falhas informáticasDefinições de falhas informáticas

Custos nos principais CPDsCustos nos principais CPDs

– Menor Custo Menor Custo – Hardware– Hardware– Custo Médio Custo Médio – Peopleware– Peopleware– Custo Alto Custo Alto – Software– Software– MUITO ALTO MUITO ALTO - Dados- Dados

Page 7: Ha pohlmann

Observações…Observações…

% uptime x Tempo Inoperante (anual)% uptime x Tempo Inoperante (anual)

• 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

Page 8: Ha pohlmann

Observações:Observações:

Debilidades Debilidades

– RAIDRAID

– Sincronismo LocalSincronismo Local

– Sincronismo RemotoSincronismo Remoto

– Alta DisponibilidadeAlta Disponibilidade

Page 9: Ha pohlmann

Alta Disponibilidade - HAAlta Disponibilidade - HA

ClustersClusters

– Cluster ComputacionalCluster Computacional

– Alta DisponibilidadeAlta Disponibilidade

Page 10: Ha pohlmann

Cluster ComputacionalCluster Computacional

Cluster para alta performanceCluster para alta performance

Conexão externa CLUSTER

Controlador

Page 11: Ha pohlmann

Alta DisponibilidadeAlta Disponibilidade

Replicação de dadosReplicação de dados

Serviço Prestado LAN / WAN

Servidor principal

Servidor backup

Page 12: Ha pohlmann

HA mais utilizados en LinuxHA mais utilizados en Linux

Replicação:Replicação:– DRBDDRBD

MonitoraçãoMonitoração– HeartbeatHeartbeat

ServiçosServiços– Scripts diversosScripts diversos

Page 13: Ha pohlmann

Solução empregada em ycube.netSolução empregada em ycube.net

Replicação:Replicação:– DRBDDRBD

MonitoraçãoMonitoração– Script y_Script y_haha de ycube.net de ycube.net

ServiçosServiços– Script y_Script y_haha de ycube.net de ycube.net

Page 14: Ha pohlmann

Script y_ha de Script y_ha de ycube.netycube.net

Motivos de usoMotivos de uso

– Open SourceOpen Source– Fácil de configurarFácil de configurar– Configuração replicavelConfiguração replicavel– Controle interno de serviciosControle interno de servicios– Bom nivel de eficienciaBom nivel de eficiencia

Page 15: Ha pohlmann

Como funcionaComo funciona

Page 16: Ha pohlmann

Situação Normal (PC/SC)Situação Normal (PC/SC)

Sincronismo

Page 17: Ha pohlmann

Falha no Primario (PU/SC)Falha no Primario (PU/SC)

Servicios e interfaces

Inexistentes na rede

Page 18: Ha pohlmann

Primario volta a funcionar (PI/SC)Primario volta a funcionar (PI/SC)

Inconsistente

Sincronismo

Page 19: Ha pohlmann

Primario volta a Consistencia (PC/SC) Primario volta a Consistencia (PC/SC)

Sincronismo

Page 20: Ha pohlmann

Configuração Configuração

Obter DRBDObter DRBD

Configuração do DiscoConfiguração do Disco

Configuração DRBDConfiguração DRBD

Configuração dos ScriptsConfiguração dos Scripts

Page 21: Ha pohlmann

Obter DRBDObter DRBD

Download de Download de www.drbd.orgwww.drbd.org

Compilar o código (conforme Compilar o código (conforme documentação)documentação)

Algumas distribuições já dispõem do Algumas distribuições já dispõem do DRBD pré-instalado.DRBD pré-instalado.

Page 22: Ha pohlmann

Configuração do discoConfiguração do disco

Determinar a partição (não montar) nos dois Determinar a partição (não montar) nos dois servidoresservidores

Page 23: Ha pohlmann

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

Page 24: Ha pohlmann

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

Page 25: Ha pohlmann

Levantar o serviço DRBDLevantar o serviço 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

Page 26: Ha pohlmann

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

Page 27: Ha pohlmann

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

Page 28: Ha pohlmann

Configurar serviços - /etc/y_ha/_forceSecondaryConfigurar serviços - /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

Page 29: Ha pohlmann

Comandos básicos para o DRBDComandos básicos para o 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

Page 30: Ha pohlmann

Comandos básicos para o DRBD

drbdadm disconnect all

drbdadm connect all

drbdadm -- --discard-my-data connect all

Page 31: Ha pohlmann

Referencias Referencias

httphttp://drbd.org://drbd.org

Correio Electrônico:Correio Electrônico:

[email protected]@ycube.net – [email protected]@gmail.com

Page 32: Ha pohlmann

That’s All, Folks!!!That’s All, Folks!!!

Questions?Questions?

Page 33: Ha pohlmann

Muito Obrigado pela sua Muito Obrigado pela sua Atenção e paciencia!Atenção e paciencia!

Sérgio A. PohlmannSérgio A. Pohlmann

C3N 2009C3N 2009

www.spohlmann.com/c3n/www.spohlmann.com/c3n/