Download - 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
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
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
ObservaçõesObservações
RAID RAID (Redundand Array of Independend Disks)(Redundand Array of Independend Disks)
ObservaçõesObservações
Sincronismo Local ou remotoSincronismo Local ou remoto
Principal Copia
Proceso
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
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
Observações:Observações:
Debilidades Debilidades
– RAIDRAID
– Sincronismo LocalSincronismo Local
– Sincronismo RemotoSincronismo Remoto
– Alta DisponibilidadeAlta Disponibilidade
Alta Disponibilidade - HAAlta Disponibilidade - HA
ClustersClusters
– Cluster ComputacionalCluster Computacional
– Alta DisponibilidadeAlta Disponibilidade
Cluster ComputacionalCluster Computacional
Cluster para alta performanceCluster para alta performance
Conexão externa CLUSTER
Controlador
Alta DisponibilidadeAlta Disponibilidade
Replicação de dadosReplicação de dados
Serviço Prestado LAN / WAN
Servidor principal
Servidor backup
HA mais utilizados en LinuxHA mais utilizados en Linux
Replicação:Replicação:– DRBDDRBD
MonitoraçãoMonitoração– HeartbeatHeartbeat
ServiçosServiços– Scripts diversosScripts diversos
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
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
Como funcionaComo funciona
Situação Normal (PC/SC)Situação Normal (PC/SC)
Sincronismo
Falha no Primario (PU/SC)Falha no Primario (PU/SC)
Servicios e interfaces
Inexistentes na rede
Primario volta a funcionar (PI/SC)Primario volta a funcionar (PI/SC)
Inconsistente
Sincronismo
Primario volta a Consistencia (PC/SC) Primario volta a Consistencia (PC/SC)
Sincronismo
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
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.
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
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 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
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 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
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
Comandos básicos para o DRBD
drbdadm disconnect all
drbdadm connect all
drbdadm -- --discard-my-data connect all
Referencias Referencias
httphttp://drbd.org://drbd.org
Correio Electrônico:Correio Electrônico:
– [email protected]@ycube.net – [email protected]@gmail.com
That’s All, Folks!!!That’s All, Folks!!!
Questions?Questions?
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/