Sei sulla pagina 1di 18

Implementando Cluster de Alta Disponibilidade

no CentOS

Hlio Marques Sobrinho

Programao
Introduo

Distribuio CentOS
Clusters

Alta Disponibilidade

Planejamento do cluster HA
Configurao do cluster HA
Ativao do cluster

Implementando Cluster de Alta Disponibilidade no CentOS

A distribuio CentOS
CentOS = Community Enterprise Operating System
uma distribuio open-source baseada no RedHat Enterprise
disponvel para download em http://www.centos.org
adequada para solues corporativas
Utiliza pacotes RPM Red Hat Package Management
contm informaes sobre o pacote
nome do pacote, tamanho, permisses, ...
descrio
distribuio
verso (version e release)
dependncias de pacotes
arquivos a serem instalados
scripts p/ instalao, atualizao, remoo
forma de licenciamento
data de gerao e instalao
assinatura do empacotador

Implementando Cluster de Alta Disponibilidade no CentOS

Clusters
Aglomerado de computadores
Alto desempenho HPC = High Performance Cluster
objetivo de manter a melhor taxa de tratamento da informao
Alta disponibilidade - HA = High Availability
objetivo de manter a disponibilidade dos recursos
Cluster HA
redundncia de recursos
Processamento, armazenamento, memria, rede, fonte de alimentao, ...
Software: aplicaes, servios, ...
tolerncia a falha

Implementando Cluster de Alta Disponibilidade no CentOS

Cluster HA
Conceitos
Rede de sincronizao
Nodo ativo
Nodo em hot standby

Rede de acesso
Implementando Cluster de Alta Disponibilidade no CentOS

Planejamento do cluster HA
Estrutura do cluster
nmero de nodos
forma de conexo
elementos redundates
hardware
software / servios
Aplicaes e informaes
servios ativos nos nodos
servios ativos no nodo ativo
volumes crticos (replicados)
replicao dos dados
tratamento de falhas

Implementando Cluster de Alta Disponibilidade no CentOS

Escolha dos aplicativos do cluster HA


Aplicaes para o fucionamento do cluster HA
DRBD = Distributed Replicated Block Device
Replicao automtica bloco a bloco nos volumes definidos
Heartbeat
Monitoramento dos nodos e deteco da falha dos nodos
Pacemaker
Gerenciamento dos recursos, ativao e desativao dos servios
Instalao dos pacotes necessrios
mdulos do kernel
kmod-drbd
aplicativos do cluster HA
drbd
hearbeat, hearbeat-pils
heartbeat-stonith, heartbeat-ldirectord, heartbeat-gui
servios do cluster
servidor Web, Mail, Proxy, Samba, DNS, DHCP, ...
banco de dados, aplicaes especficas, ...

Implementando Cluster de Alta Disponibilidade no CentOS

Instalao e configurao dos nodos


Particionamento dos discos
volumes que NO replicados
falhas no sistema
remoo acidental de arquivos crticos do sistema
atualizaes no adequadas ou no corretas
boot, kernel e seus mdulos
aplicativos bsicos
diretrios temporrios
volumes que sero replicados
dados e configuraes de servios do cluster
dados e configuraes de servios essenciais dos nodos

Replicao

Os volumes corespondentes nos discos dos nodos devem ser idnticos !


Implementando Cluster de Alta Disponibilidade no CentOS

Configurao do DRBD
Arquivo de configurao /etc/drbd.conf

resource nomedorecurso {
protocol { A | B | C };
# Use C para aplicaes crticas
incon-degr-cmd "comando shell"
startup { wfc-timeout timeout de conexo; degr-wfc-timeout timeout; }
disk { on-io-error { pass_on | panic | detach }; size tamanho }
net { on-disconnect { reconnect | stand_alone | freeze_io } };
syncer { rate MBytesps }
on node {
device /dev/drdbi;
disk volume;
address ip_do_nodo;
metadisk { internal | disco };
}

Implementando Cluster de Alta Disponibilidade no CentOS

Exemplo de configurao do DRBD


# arquivo /etc/drbd.conf
resource data1 {
protocol B;
incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
startup { wft-timeout 10; degr-wfc-timeout 120;}
disk { on-io-error panic; size 10GB; }
net { on-disconnect reconnect };
syncet { rate 10M; }
on nodo1 {
device
/dev/drbd0;
disk
/dev/sda4;
address 192.168.1.1:7788;
meta-disk internal;
}
on nodo2 {
device /dev/drbd0;
disk
/dev/sda4;
address 192.168.1.2:7788;
meta-disk internal;
}
}
Implementando Cluster de Alta Disponibilidade no CentOS

10

Criao e ativao dos volumes


Utilitrios do drbd
drbdsetup
Usado para criar e definir parmetros dos dispositivos DRBD
# drbdsetup help
USAGE: drbdsetup device command arguments options
Device is usually /dev/drbdX or /dev/drbd/X.
General options: --create-device, --set-defaults
Commands are:
primary [opts...]
secondary
disk [args...] [opts...]
detach
net [args...] [opts...]
disconnect
resize [opts...]
syncer [opts...]
new-current-uuid [opts...]
invalidate
invalidate-remote
pause-sync
resume-sync
suspend-io
resume-io
outdate
verify [opts...]
down
role
status
sh-status
cstate
dstate
show-gi
get-gi
show
events [opts...]
wait-connect [opts...]
wait-sync [opts...]
To get more details about a command issue 'drbdsetup help cmd'.

Implementando Cluster de Alta Disponibilidade no CentOS

11

Criao e ativao dos volumes


drbdadm
Usado para administrar os recursos do DRBD
node1:/etc # drbdadm help
USAGE: drbdadm [OPTION...] [-- DRBDSETUP-OPTION...] COMMAND {all|RESOURCE...}
OPTIONS:
{--stacked|-S}
{--dry-run|-d}
{--verbose|-v}
{--config-file|-c} val
{--drbdsetup|-s} val
{--drbdmeta|-m} val
{--drbd-proxy-ctl|-p} val
{--sh-varname|-n} val
{--force|-f}
{--peer|-P} val
{--version|-V}
COMMANDS:
attach
connect
up
primary
invalidate
outdate
syncer
pause-sync
adjust

detach
disconnect
down
secondary
invalidate-remote
resize
erify
resume-sync
wait-connect

Implementando Cluster de Alta Disponibilidade no CentOS

adjust
wait-con-int
cstate
dump
create-md
get-gi
wipe-md

wait-connect
role
dstate
dump-xml
show-gi
dump-md
hidden-commands

12

Configurao do Heartbeat
Arquivo de configurao /etc/ha.d/ha.fc
Logs
debugfile /var/log/ha-debug
logfile /var/log/ha-log
localfacility local7
Temporizaes em segundos
keepalive 2
deadtime 30
warntime 10
initdead 120
Opes principais
autofailback { on | off | legacy }
autofailback on
Interface de sincronismo (serial ou ethernet)
eth1
serial dispositivo
bcast iface
mcast [ iface ] [ mcastgroup ] [ port ] [ ttl ] [ loop ]
ucast [ iface ] [ peerip ]
bcast eth0
mcast eth0 225.0.0.1 694 1 0
Nodos do cluster
node nodo1 nodo2 ...
obtido de uname -n
node nodo1 nodo2
Implementando Cluster de Alta Disponibilidade no CentOS

eth0

eth0

eth1

eth1:1

13

Configurao do Heartbeat
Arquivo /etc/ha.d/authkeys
auth methodid
methodid { crc | sha1 senha | md5 senha }
auth 3
3 md5 senha
Arquivo /etc/ha.d/haresources
Servios do cluster
nodoprimrio { lista de recursos }
recurso[::parmetros]
Recursos
Tratados pelos scripts em /etc/ha.d/resource.d
IpAddr::ipv4
ou
ipv4
drbddisk
Filesystem::device::mountpoint::filesystem
servio

Implementando Cluster de Alta Disponibilidade no CentOS

14

Configurao do Heartbeat
nodo1

nodo2

192.168.1.5
Uma nica linha em /etc/ha.d/haresources
nodo1 192.168.1.5 drbddisk Filesystem::/dev/drbd0::/home::ext3
Filesystem::/dev/drbd1::/data1::ext3 Filesystem::/dev/drbd2::/data2::ext3
apache2 named mysql sendmail ntp
Os servios no podem ser configurados no init ou inittab ! Eles sero controlados
pelo hearbeat !
Implementando Cluster de Alta Disponibilidade no CentOS

15

Ativao do Cluster HA
Iniciar o processo drbd em todos os nodos
/etc/init.d/drbd start
habilite no init quando estiver OK
Verificar a conexo e o sincronismo inicial de todos os volumes
Ao final do sincronismo, os nodos devero estar atualizados

node1:/etc # /etc/init.d/drbd status


drbd driver loaded OK; device status:
version: 8.3.4 (api:88/proto:86-91)
GIT-hash: 70a645ae080411c87b4482a135847d69dc90a6a2 build by phil@fat-tyre, 2009-10-06
m:res
cs
ro
ds
p mounted fstype
0:home Connected Primary/Secondary UpToDate/UpToDate B /home ext3
1:data1 Connected Primary/Secondary UpToDate/UpToDate B /data1 ext3
2:data2 Connected Primary/Secondary UpToDate/UpToDate B /data2 ext3
Iniciar o heartbeat em todos os nodos
/etc/init.d/hearbeat start
habilite no init quando estiver OK
Pode-se testar o cluster inibindo o heartbeat no nodo ativo (inicialmente primary)
em poucos segundos os recursos so transferidos para o nodo em stand by
Implementando Cluster de Alta Disponibilidade no CentOS

16

Dvidas
Curiosidades

Implementando Cluster de Alta Disponibilidade no CentOS

17

Obrigado

Implementando Cluster de Alta Disponibilidade no CentOS

18

Potrebbero piacerti anche