Your SlideShare is downloading. ×
Alta Disponibilidade em Linux com Heartbeat e Drbd
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Alta Disponibilidade em Linux com Heartbeat e Drbd

13,535
views

Published on

Alta Disponibilidade em Linux com Heartbeat e Drbd

Alta Disponibilidade em Linux com Heartbeat e Drbd

Published in: Technology

3 Comments
4 Likes
Statistics
Notes
  • ótimo, muito bom mesmo..
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Rafael, tudo bom. Posso te ajudar com esta solução:
    http://saolabs.com/products/ha-server/

    Por favor entre em contato conosco:
    team@saolabs.com
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • olá amigo, gostaria de saber quanto você me cobraria para configurar uma infra estrutura dessas aqui em minha empresa. Estamos interessados em aplicar isso em nossos servidores.
    favor entrar em contato
    rafael_0015@yahoo.com.br
    61 81332935
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
13,535
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
442
Comments
3
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br Sistemas Distribuídos Alta Disponibilidade utilizando Heartbeat + drbd
  • 2. Definição – Alta Disponibilidade “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”
  • 3. Definição – Disponibilidade “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.”
  • 4. •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
  • 5. Definição - Heartbeat “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
  • 6. Funcionamento “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.
  • 7. Funcionamento IP VIRTUAL IP’s FIXOS
  • 8. 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.
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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 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
  • 15. Definição -DRBD 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
  • 16. Funcionamento ➔ 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.
  • 17. Funcionamento Escrita
  • 18. 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
  • 19. 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; } }
  • 20. 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; } }
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. Testando ➔ No nó 1, o device /dev/drbd0 deve estar como primary e no nó 2 como secondary
  • 25. 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
  • 26. Frederico Madeira LPIC­1, LPIC­2, CCNA fred@madeira.eng.br www.madeira.eng.br Sistemas Distribuídos Alta Disponibilidade utilizando Heartbeat + drbd