alta disponibilidade em linux com heartbeat e drbd
DESCRIPTION
Alta Disponibilidade em Linux com Heartbeat e DrbdTRANSCRIPT
![Page 1: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/1.jpg)
Sistemas DistribuídosAlta Disponibilidade utilizando Heartbeat + drbd
Frederico MadeiraLPIC1, LPIC2, [email protected]
![Page 2: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/2.jpg)
“Um sistema de alta disponibilidade é aquele que utiliza mecanismos de detecção, recuperação e mascaramento de falhas, visando manter o funcionamento dos serviços durante o máximo de tempo possível, inclusive no decurso de manutenções programadas”
Definição – Alta Disponibilidade
![Page 3: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/3.jpg)
“Disponibilidade refere-se a capacidade de um usuário de determinado sistema acessar, incluir ou modificar os dados existentes em qualquer intervalo de tempo. Caso, por qualquer que seja o motivo, um usuário não tenha acesso, é dito então que ele está indisponível, sendo o tempo total de indisponibilidade conhecido pelo termo downtime.”
Definição – Disponibilidade
![Page 4: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/4.jpg)
•Níveis de Disponibilidade
Geralmente, quanto maior a disponibilidade, maior a redundância e custo das soluções: tudo depende do tipo de serviço que se pretende disponibilizar
![Page 5: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/5.jpg)
“Heartbeat é um deamon que provê uma infraestrutura de serviço de cluster (comunicação e associação de membros) para seus clientes. Ele permite que os clientes tomem conhecimento sobre a presença (ou desaparecimento) dos processos em outras máquinas (peers/nodes) e de forma fácil, trocar mensagens com ele.
- http://www.linux-ha.org/doc/ch-fundamentals.html
Definição - Heartbeat
![Page 6: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/6.jpg)
“Através de um meio de comunicação, que pode ser Ethernet ou Serial, um servidor redundante verifica a disponibilidade do servidor em produção. Essa checagem é feita entre as duas instâncias do Heartbeat instaladas nos dois servidores. Se o servidor em produção não responder, ele será considerado indisponível, e então o Heartbeat do servidor redundante providencia a configuração e inicialização dos serviços locais, além de outros recursos, como o endereço IP, partições de disco, etc.
Funcionamento
![Page 7: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/7.jpg)
Funcionamento
IP VIRTUALIP’s FIXOS
![Page 8: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/8.jpg)
Considerações
➔ Evita qualquer tipo de conflito que possa afetar o correto funcionamento do sistema.
➔ Não é seu objetivo garantir a sincronia e a integridade dos dados entre os servidores.
➔ Necessário atuar em conjunto com algum software que se encarregue de manter os mesmos arquivos do servidor em produção também no servidor redundante. Essa será justamente a função do DRBD.
![Page 9: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/9.jpg)
Instalação
➔ 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
![Page 10: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/10.jpg)
Configuração
➔ Toda instalação do heartbeat deve conter os seguintes arquivos de configuração:
➔ /etc/ha.d/ha.cf — Arquivo global de configuração do cluster
➔ /etc/ha.d/authkeys — Arquivo que contem chaves para autenticação mútua entre os nodos da rede
➔ /etc/ha.d/haresources — Arquivo que contem os recursos que queremos habilitar no cluster
![Page 11: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/11.jpg)
Configuração ha.cf
➔ Uma configuração básica 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 após #o startup. Deve ser alto
bcast bond0 # Qual interface os heartbeats serão # enviados
Udpport 694 # porta UDP utilizada para intra-cluster # communication
auto_failback on # Retorna serviço para master
node server3 # nome das máquinas do cluster
node server4 # nome das máquinas do cluster
![Page 12: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/12.jpg)
Configuração authkeys
➔ Este arquivo possui as chaves de autenticação a serem utilizadas pelos nodes. Abaixo está um exemplo deste arquivo:
auth 1
1 sha1 8499ffe31ca6edc6998ec54ac99c009b
➔ Este arquivo deverá ser legível apenas pelo root, para tanto:
chmod 600 /etc/ha.d/authkeys
![Page 13: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/13.jpg)
Configuração haresources
➔ Este arquivo possui a lista dos recursos que serão 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 nós do cluster
➔ Cada linha indica um grupo de recursos que estará ativo.
Exemplo:
server3 192.168.15.50 httpd
Server4 192.168.15.51 vsftpd
![Page 14: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/14.jpg)
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\
Forçando 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 serviços no nó2.
Recuperando a Falha do nó 1:
[root@server3 ha.d]# /usr/share/heartbeat/hb_takeover
Testando
![Page 15: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/15.jpg)
O DRBD (Distributed Replicated Block Device) consiste em um módulo para o kernel Linux que faz o espelhamento dos dados de um dispositivo de bloco (partições de disco) entre diferentes servidores, interligados geralmente através de uma rede Ethernet.
DRBD = RAID 1 via Rede
Definição -DRBD
![Page 16: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/16.jpg)
➔ Cada dispositivo de bloco envolvido na configuração do DRBD tem um estado, que pode ser primário ou secundário.
➔ Operações de escrita feitas no primário são replicadas para o secundário
➔ O protocolo padrão de replicação garante a sincronia e a integridade dos dados replicados.
➔ Operações de leitura, são sempre realizadas localmente.
Funcionamento
![Page 17: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/17.jpg)
Funcionamento
Escrita
![Page 18: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/18.jpg)
Instalação
➔ 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
![Page 19: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/19.jpg)
Configuração
➔ Toda instalação do drbd deve conter o seguinte arquivo de configuração: /etc/drbd.conf
Usando o exemplo anterior, teríamos: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; }
}
![Page 20: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/20.jpg)
Configuração
➔ Toda instalação do drbd deve conter o seguinte arquivo de configuração: /etc/drbd.conf
Usando o exemplo anterior, teríamos: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; }
}
![Page 21: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/21.jpg)
Configuração
➔ Criando o device a ser compartilhado (deve ser feito nas duas máquinas):
[root@server3 etc]# drbdadm create-md web➔ Iniciando o serviço nas duas máquinas:
[root@server3 etc]# /etc/init.d/drbd start➔ Definindo o nó primário:
[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
![Page 22: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/22.jpg)
Testando
➔ Copie alguns dados para o device do DRBD➔ Faça um switch over do device no nó 1 para
secundário:
[root@server3 opt]# drbdadm secondary web➔ Faça um switch over do device no nó 2 para
primário:
[root@server4 ~]# drbdadm primary web➔ Montando o device
[root@server4 etc]# mount /dev/drbd0 /opt/web/➔ Verifique o conteúdo do diretório, deve ser
igual ao que existia em server3
[root@server4 opt]# ls /opt/web
![Page 23: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/23.jpg)
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 máquinas
[root@server3 opt]# /etc/init.d/heartbeat restart
![Page 24: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/24.jpg)
Testando
➔ No nó 1, o device /dev/drbd0 deve estar como primary e no nó 2 como secondary
![Page 25: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/25.jpg)
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 conteúdo apresentado no nó 1 antes do standby.
[root@server3 opt]# /usr/share/heartbeat/hb_standby
➔ Faça 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
![Page 26: Alta Disponibilidade em Linux com Heartbeat e Drbd](https://reader034.vdocuments.net/reader034/viewer/2022052212/558902ead8b42a851b8b462f/html5/thumbnails/26.jpg)
Sistemas DistribuídosAlta Disponibilidade utilizando Heartbeat + drbd
Frederico MadeiraLPIC1, LPIC2, [email protected]