Instalando DRBD + Heartbeat no Debian 6

Depois de meses de pesquisas e algumas noites em claro, desenvolvi com ajuda de alguns amigos, este material que trata a Alta
Disponibilidade.

[ Hits: 67.744 ]

Por: Leandro Paulo em 24/12/2011


Notas de erro



Caso aconteça dos recursos não serem migrados durante o reinício do Heartbeat, checar se os serviços foram iniciados.

Caso o Apache2 esteja parado e ao iniciar receber a seguinte mensagem:
Starting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.254.15 for ServerName

Basta editar o arquivo "etc/apache2/apache2" e adicionar seguinte linha:

ServerName Ipdoservidor


É possível ao iniciar o Heartbeat no nó primário,os recursos não iniciarem e o ip de serviço ou virtual não está disponível onde pode ser visto no log a mensagem semelhante a:

# tail if /var/log/messages

No local resources [/usr/share/heartbeat/ResourceManager listkeys node2] to acquire.
Nov  6 17:47:26 node2 heartbeat: [1200]: info: node1 wants to go standby [foreign]
Nov  6 17:47:27 node2 heartbeat: [1200]: info: standby: acquire [foreign] resources from node1
Nov  6 17:47:27 node2 heartbeat: [1306]: info: acquire local HA resources (standby).
Nov  6 17:47:27 node2 heartbeat: [1306]: info: local HA resource acquisition completed (standby).
Nov  6 17:47:27 node2 heartbeat: [1200]: info: Standby resource acquisition done [foreign].


Para corrigir isso faça o seguinte, no nó primário entre com os comandos:

# modprobe drbd
# drbdadm secondary r0
# drbdadm primary r0
# drbdadm disconnect r0
# rbdadm connect r0
# /etc/init.d/heartbeat restart


Já no nó secundário entre com os comandos:

# modprobe drbd
# drbdadm -- --discard-my-data connect r0
# /etc/init.d/heartbeat restart


Como o nó primário apresentou erros, ao executar os comandos acima, o Heartbeat criará o IP de serviço e irá mudar para o servidor secundário que a partir de agora passa a ser primário. Para conferir se os recursos foram migrados verifique ser a interface virtual foi criada digitando:

# ifconfig

a saída deve ser algo semelhante a imagem:
Linux: Instalando DRBD + Heartbeat no Debian 6

É possível ocorrer outro erro ao reiniciar o Heartbeat:

# cat /proc/drbd

Conforme mostra a imagem:
Linux: Instalando DRBD + Heartbeat no Debian 6

Se isto ocorrer, proceda da seguinte forma nos dois nós:

# modprobe drbd
# drbdadm attach r0
# drbdadm syncer r0
# drbdadm connect r0
# drbdadm disconnect r0
# drbdadm -- --discard-my-data connect r0
# drbdadm get-gi r0


Verifique a saída dos logs em ambos os nós, deverá ser algo semelhante a:

# cat /proc/drbd

Conforme mostra a figura:
Linux: Instalando DRBD + Heartbeat no Debian 6

Defina um dos nós como primário:

# drbdadm primary all

No nó secundário digite:

# drbdadm secondary all

Reinicie o Heartbeat nos dois nós

# /etc/init.d/heartbeat restart

Verifique se o IP virtual foi iniciado conforme mostra imagem:
Linux: Instalando DRBD + Heartbeat no Debian 6

# ifconfig

Referências


Agradecimentos

Agradeço ao Evandro Couto, Douglas Quintiliano, Roosevelt e ao Victor Sartori, pela grande ajuda para criar este material.
Página anterior    

Páginas do artigo
   1. Acertar repositórios
   2. Criar os meta-dados e a partição
   3. Instalando Heartbeat ( executar nos dois nós )
   4. Notas de erro
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Como instalar o Trac no Ubuntu 10.10

OpenVZ: Virtualização para servidores Linux

Deixando aplicativos do Wine com a aparência melhor

Encapsulamento de Apache com chroot

Programando para um servidor IIS e administrando o Microsoft SQL Server via Linux

  
Comentários
[1] Comentário enviado por removido em 24/12/2011 - 12:52h

Bem legal o artigo !

[2] Comentário enviado por hideoux em 25/12/2011 - 19:02h

LEGAL demais!!!
ainda bem que TODO MUNDO sabe que software é esse e para que serve!!!!
porque seu artigo não dá nenhuma explicação!
E logo virão ovadas para cima de mim: "procura no GOOGLE"... "vai você e escreve o artigo, então..."

[3] Comentário enviado por tosko em 26/12/2011 - 02:30h

é vverdade o comentario do amigo... pra que serve esse trem? é di cume ou de passa no cabelo?

[4] Comentário enviado por leandrojpg em 26/12/2011 - 09:05h

Seguinte não me importo a mínima com os comentários que mais dão ovadas, acredito que ao contrário de ficar reclamando é so perguntar, não tenho problema nenhum em responder, mas agora ficar reclamando só para diminuir o trabalho dos outros aí não dá.

[5] Comentário enviado por ejales em 26/12/2011 - 10:10h

Muito bom o seu artigo Leandro. Já conhecia essa dupla em outras versões. Para ficar um pouco mais completo acho que você deveria ter acrescentado o mon. Nas versões que eu usava o heartbeat não verificava se o serviço estava ou não no ar, apenas se a máquina estava "ligada". O mon poderia verficar os serviços ativos e dar essa resposta ao heartbeat. Parabéns pelo artigo.

[6] Comentário enviado por vandocouto em 26/12/2011 - 16:46h

Galera,

vamos pegar leve com o colega, tenho certeza que foi feito com muito esforço o trabalho desenvolvido.
Não podemos esquecer da Liberdade de Conhecimento.

Abs,

Evandro Couto
https://tutoriaisgnulinux.com

[7] Comentário enviado por edgaroliveirace em 26/12/2011 - 17:07h

http://ha-mc.org/node/15
achei esse site explicando. muito bem explicado!

[8] Comentário enviado por rodrigom em 26/12/2011 - 23:03h

Parabéns ao amigo que escreveu o artigo, "Alta disponibilidade" que esta no título do artigo, já diz para que serve tudo isso...

[9] Comentário enviado por gdtec em 26/12/2011 - 23:30h

Parabéns pelo artigo Leandro,

Já enfrentei a mesma dificuldade a tempos atrás a procura de um bom artigo que realmente fosse esclarecedor. Todas as ferramentas citadas no artigos são excelentes, mais infelizmente quando se quer fazer algo de qualidade se tratando de HA, pesquisas e mais pesquisas são fundamentais. Aproveitando o gancho dos amigos acima, vejo que os comentários não estão sendo sob o contexto profissional, e sim no intuito de reduzir a valia do conteúdo. Creio que a galera deve gostar é de RWINDOWS....

Abraços,,

[10] Comentário enviado por leandrojpg em 27/12/2011 - 10:13h

Agradeço imensamente todos os comentários dos amigos realmente, esse material foi feito com muito esforço para comunidade, sempre haverá os pessimistas, mas para os que gostaram agradeço de coração e ainda que existam críticas sejam ela construtivas ou não, ja aviso vou continuar postando. obrigado.

Heartbeat

O Heartbeat pode ser considerado o núcleo do ambiente de alta disponibilidade, pois é sua a responsabilidade de monitorar os servidores em produção e, em caso de falha, realizar automaticamente os procedimentos para preservar o funcionamento do sistema como um todo.

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 enviando-lhe uma mensagem e exigindo a resposta. Essa checagem é feita entre as instâncias do Heartbeat instaladas nos dois servidores. Se por algum motivo o servidor em produção não responder, ele será considerado indisponível, e então o Heartbeat do servidor redundante automaticamente providencia a configuração e inicilialização dos serviços locais, além de outros recursos, como o endereço IP, partições de disco, etc.

Um ponto importante de observação é que o próprio Heartbeat controla a inicilialização de determinados serviços e recursos dos servidores, como o Apache e o endereço IP virtual. Logo, eles não devem ser configurados para inicializar durante o boot do sistema operacional, apenas no Heartbeat.

Heartbeat é um software que provê Alta Disponibilidade para as mais variadas aplicações, como DHCP, HTTP, DB2 além de muitas outras.


O que é DRBD ?

É a acrónimo para o nome inglês Distributed Replicated Block Device. O DRBD consiste num módulo para o núcleo Linux que, juntamente com alguns scripts, oferece um dispositivo de bloco projectado para disponibilizar dispositivos de armazenamento distribuídos, geralmente utilizado em clusters de alta disponibilidade. Isto é feito espelhando conjuntos de blocos via rede (dedicada). O DRBD funciona, portanto, como um sistema RAID baseado em rede.
Como trabalha

Cada dispositivo envolvido (tratados localmente como partições) tem um estatuto, que pode ser primário ou secundário. O DRBD cria, em todos os nós, um vínculo entre um dispositivo virtual (/dev/nbX) e uma partição local, inacessível diretamente. Toda a escrita é realizada no nodo primário, que irá transferir os dados para o “dispositivo de bloco do nível mais baixo” (a partição) e propagá-los para os restantes nodos, de estatuto “secundário”. O secundário simplesmente transfere os dados no “dispositivo de bloco do nível mais baixo”. As leituras são sempre realizadas localmente.

Fonte: http://tutoriaisgnulinux.com

[11] Comentário enviado por manoserpa em 22/04/2012 - 10:55h

Opa!

Muito bom o artigo, parabéns!

Sabe se existe o HACient disponível nessa versão do Debian, no Lenny utilizava para configurar os serviços e tals.

Valeu.

[12] Comentário enviado por Tacioandrade em 14/07/2012 - 09:48h

Amigo eu estou com uma duvida aqui no seu artigo. Estou tentando implementar um Cluster de HA aqui no VirtualBox com 2 VMs rodando Debian Squeeze, até ai normal, porem eu gostaria de sincronizar não um diretório qualquer, gostaria de montar uma maquina espelho nos nós filhos.

Tentei montar compartilhando o /dev/sda2 que é a partição / (onde para testes está todo o disco).

Será que existe a opção de fazer desta forma?

Outra duvida minha, se eu tiver 2 ou mais partições para sincronizar, como devo proceder?



Att. Tácio Andrade.

[13] Comentário enviado por leandrojpg em 14/07/2012 - 10:19h

E ai Tácio tranquilo né, então cara a ideia do DRBD é replicar partição e não um disco como um todo, e a resposta diretamente ja foi dada pois o procedimento é o mesmo utilizado para a replicacao da primeira particao.
Ou seja particao /var voce vai monta-la em um disco sdba( disco deve estar vazio) ai entao ela sera replicada e o processo se repete para quais particoes voce quere replicar. se nao ficou claro me adicione nos meios de comunicacao gtalk. leandrojpg@gmail.com msn leandrojpg@hotmail.com, grande abraco vai ser um prazer contribuir com voce

[14] Comentário enviado por Tacioandrade em 14/07/2012 - 10:36h

Compreendi agora, para "resolver" esse problema então pelo visto o rsync a cada x segundos pode ser uma solução. Vou lhe adicionar no GTalk sim, porem hoje só estou "brincando com a tecnologia" de Alta Disponibilidade, para implementar realmente só terei tempo após o FISL.


Mais obrigado mesmo pela dica.


Abraço.

[15] Comentário enviado por leandrojpg em 14/07/2012 - 10:39h

Entao cara que bom que compreendeu, mas nao é necessario rsync nao o proprio drbd usa metodos de replicação, pode entender o drbd como um raid 1 via rede ele mesmo trata de replicar isso pela rede.

[16] Comentário enviado por Tacioandrade em 14/07/2012 - 10:50h

No caso eu sitei o rsync, pois posso fazer de todo o / excluindo apenas os diretórios que não quiser sincronizar como /etc/network, /dev, etc. =)

[17] Comentário enviado por cardoso_29 em 29/10/2013 - 21:52h

Oi Boa Noite estou Precisando montar um cluster mais so rodar o heartbeat em 2 maquinas virtuais, segui estat tutorial mais só a parte do heartbeat mais da um erro authkeys [r=6] alguem poderia me ajudar ??

[18] Comentário enviado por leandrojpg em 30/10/2013 - 07:40h

Cara sugirio voce revisar os passos contidos no tutorial pois o mesmo foi testado e aplicado com sucesso. tente senao consegui volte a me chamar

[19] Comentário enviado por mbrainiac em 31/10/2013 - 00:03h


[17] Comentário enviado por cardoso_29 em 29/10/2013 - 21:52h:

Oi Boa Noite estou Precisando montar um cluster mais so rodar o heartbeat em 2 maquinas virtuais, segui estat tutorial mais só a parte do heartbeat mais da um erro authkeys [r=6] alguem poderia me ajudar ??



Fala meu amigo, estou no circuito.

Vou mexer amanhã com DEbian 7 LXDE.

Abração

[20] Comentário enviado por mbrainiac em 01/11/2013 - 11:06h

Caro Leandro,

Estou com uma pequena dúvida.

em /etc/drbd.d/r0.res

r(ZEro) ou r(Letra "O" maiúscula)?


valeu

[21] Comentário enviado por mbrainiac em 01/11/2013 - 16:31h

Caro leandro,

Não ligue para as critícas idiotas, é gente querendo aparecer.

Configurou em nat ou bridge as MV's?

na segunda página após executar os primeiro comandos aparece:

'r0' ignored since this host (<hostname>)is not mentioned with an 'on' keyword.


Minhas interfaces

node1
auto eth0
iface eth0 inet static
address 192.168.254.14
netmask 255.255.255.0
network 192.168.254.0

node2
auto eth0
iface eth0 inet static
address 192.168.254.15
netmask 255.255.255.0
network 192.168.254.0

Agradeço qualquer ajuda


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts