Ha pohlmann

Preview:

Citation preview

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

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

Recommended