Você está na página 1de 26

FredericoMadeira LPIC1,LPIC2,CCNA fred@madeira.eng.br www.madeira.eng.

br

Sistemas Distribudos
Alta Disponibilidade utilizando Heartbeat + drbd

Definio Alta Disponibilidade


Um sistema de alta disponibilidade aquele que utiliza mecanismos de deteco, recuperao e mascaramento de falhas, visando manter o funcionamento dos servios durante o mximo de tempo possvel, inclusive no decurso de manutenes programadas

Definio Disponibilidade
Disponibilidade refere-se a capacidade de um usurio de determinado sistema acessar, incluir ou modificar os dados existentes em qualquer intervalo de tempo. Caso, por qualquer que seja o motivo, um usurio no tenha acesso, dito ento que ele est indisponvel, sendo o tempo total de indisponibilidade conhecido pelo termo downtime.

Nveis de Disponibilidade Geralmente, quanto maior a disponibilidade, maior a redundncia e custo das solues: tudo depende do tipo de servio que se pretende disponibilizar

Definio - Heartbeat
Heartbeat um deamon que prov uma infraestrutura de servio de cluster (comunicao e associao de membros) para seus clientes. Ele permite que os clientes tomem conhecimento sobre a presena (ou desaparecimento) dos processos em outras mquinas (peers/nodes) e de forma fcil, trocar mensagens com ele. - http://www.linux-ha.org/doc/ch-fundamentals.html

Funcionamento
Atravs de um meio de comunicao, que pode ser Ethernet ou Serial, um servidor redundante verifica a disponibilidade do servidor em produo. Essa checagem feita entre as duas instncias do Heartbeat instaladas nos dois servidores. Se o servidor em produo no responder, ele ser considerado indisponvel, e ento o Heartbeat do servidor redundante providencia a configurao e inicializao dos servios locais, alm de outros recursos, como o endereo IP, parties de disco, etc.

Funcionamento
IPs FIXOS IP VIRTUAL

Consideraes

Evita qualquer tipo de conflito que possa afetar o correto funcionamento do sistema. No seu objetivo garantir a sincronia e a integridade dos dados entre os servidores. Necessrio atuar em conjunto com algum software que se encarregue de manter os mesmos arquivos do servidor em produo tambm no servidor redundante. Essa ser justamente a funo do DRBD.

Instalao

Para instalar o heartbeat utilizando o yum, basta executar o comando abaixo: yum install heartbeat Ir instalar os pacotes abaixo:

heartbeat-2.1.3-3.el5.centos heartbeat-pils-2.1.3-3.el5.centos heartbeat-stonith-2.1.3-3.el5.centos

Configurao

Toda instalao do heartbeat deve conter os seguintes arquivos de configurao:

/etc/ha.d/ha.cf Arquivo global de configurao do cluster /etc/ha.d/authkeys Arquivo que contem chaves para autenticao mtua entre os nodos da rede /etc/ha.d/haresources Arquivo que contem os recursos que queremos habilitar no cluster

Configurao ha.cf

Uma configurao bsica para ha.cf :

logfile /var/log/ha-log logfacility local0 Keepalive 2 # Intervalo entre os heartbeats Deadtime 30 # Define quando um n est offline Initdead 120 # Declara que o node est offline aps #o startup. Deve ser alto bcast bond0 # Qual interface os heartbeats sero # enviados Udpport 694 # porta UDP utilizada para intra-cluster # communication auto_failback on # Retorna servio para master node server3 # nome das mquinas do cluster node server4 # nome das mquinas do cluster

Configurao authkeys

Este arquivo possui as chaves de autenticao a serem utilizadas pelos nodes. Abaixo est um exemplo deste arquivo:

auth 1 1 sha1 8499ffe31ca6edc6998ec54ac99c009b

Este arquivo dever ser legvel apenas pelo root, para tanto:

chmod 600 /etc/ha.d/authkeys

Configurao haresources

Este arquivo possui a lista dos recursos que sero movidos de um n para o outro quando um n entra no status de falha ou quando ele se recupera Este arquivo deve ser igual para todos os ns do cluster Cada linha indica um grupo de recursos que estar ativo.

Exemplo: server3 Server4 192.168.15.50 192.168.15.51 httpd vsftpd

Testando
No N 1: echo "Apache ativo no node01" > /var/www/html/index.html No N 2: echo "Apache ativo no node02" > /var/www/html/index.html\ Forando a Falha do n 1: /etc/init.d/heartbeat start ou ainda: [root@server3 ha.d]# /usr/share/heartbeat/hb_standby 2010/04/18_14:09:14 Going standby [all]. Automaticamente ser detectada a falha do n 1 e o heartbeat ativar os servios no n2. Recuperando a Falha do n 1: [root@server3 ha.d]# /usr/share/heartbeat/hb_takeover

Definio -DRBD
O DRBD (Distributed Replicated Block Device) consiste em um mdulo para o kernel Linux que faz o espelhamento dos dados de um dispositivo de bloco (parties de disco) entre diferentes servidores, interligados geralmente atravs de uma rede Ethernet. DRBD = RAID 1 via Rede

Funcionamento

Cada dispositivo de bloco envolvido na configurao do DRBD tem um estado, que pode ser primrio ou secundrio. Operaes de escrita feitas no primrio so replicadas para o secundrio O protocolo padro de replicao garante a sincronia e a integridade dos dados replicados. Operaes de leitura, so sempre realizadas localmente.

Funcionamento

Escrita

Instalao

Para instalar o drbd utilizando o yum, basta executar o comando abaixo: yum install kmod-drbd drbd Ir instalar o pacote abaixo:

kmod-drbd-8.0.16-5.el5_3.i686.rpm drbd-8.0.16-5.el5.centos.i386.rpm

Configurao

Toda instalao do drbd deve conter o seguinte arquivo de configurao: /etc/drbd.conf Usando o exemplo anterior, teramos:

resource web { protocol C; on webserver1 { device /dev/drbd0; disk /dev/sdb1; address 9.8.7.1:7788; meta-disk internal; } on webserver-bkp { device /dev/drbd0; disk /dev/sdb1; address 9.8.7.2:7788; meta-disk internal; }

Configurao

Toda instalao do drbd deve conter o seguinte arquivo de configurao: /etc/drbd.conf Usando o exemplo anterior, teramos:

resource web { protocol C; on webserver1 { device /dev/drbd0; disk /dev/sdb1; address 9.8.7.1:7788; meta-disk internal; } on webserver-bkp { device /dev/drbd0; disk /dev/sdb1; address 9.8.7.2:7788; meta-disk internal; }

Configurao

Criando o device a ser compartilhado (deve ser feito nas duas mquinas): [root@server3 etc]# drbdadm create-md web Iniciando o servio nas duas mquinas: [root@server3 etc]# /etc/init.d/drbd start Definindo o n primrio: [root@server3 etc]# drbdadm -- -o primary web Criando um sistema de arquivos [root@server3 etc]# mkfs.ext3 /dev/drbd0 Montando o device [root@server3 etc]# mount /dev/drbd0 /opt/web/ Checando Status [root@server3 opt]# cat /proc/drbd

Testando

Copie alguns dados para o device do DRBD Faa um switch over do device no n 1 para secundrio: [root@server3 opt]# drbdadm secondary web Faa um switch over do device no n 2 para primrio: [root@server4 ~]# drbdadm primary web Montando o device [root@server4 etc]# mount /dev/drbd0 /opt/web/ Verifique o contedo do diretrio, deve ser igual ao que existia em server3 [root@server4 opt]# ls /opt/web

Integrando o drbd ao heartbeat

Edite o arquivo haresources e modifique a linha abaixo: server3 192.168.15.50 httpd para: server3 192.168.15.50 drbddisk Filesystem::/dev/drbd0::/opt/web::ext3 httpd

Reinicie o heartbeat nas duas mquinas [root@server3 opt]# /etc/init.d/heartbeat restart

Testando

No n 1, o device /dev/drbd0 deve estar como primary e no n 2 como secondary

Testando

Coloque o n 1 em standby e observe que o a pasa /opt/web est vazia. No n 2 ela ser montada com todo o contedo apresentado no n 1 antes do standby.

[root@server3 opt]# /usr/share/heartbeat/hb_standby

Faa com que o n 1 reassuma. Verifique o status do device /dev/drbd0 e dos dados na pasta /opt/web

[root@server3 opt]# /usr/share/heartbeat/hb_takeover

FredericoMadeira LPIC1,LPIC2,CCNA fred@madeira.eng.br www.madeira.eng.br

Sistemas Distribudos
Alta Disponibilidade utilizando Heartbeat + drbd

Você também pode gostar