Cluster de alta disponibilidade para servidores web com Debian 7.1 + Corosync + Pacemaker + DRBD

Tutorial completo sobre Cluster de Alta Disponibilidade (HA) Debian Wheezy 7.1 + Corosync + Pacemaker + DRBD.

[ Hits: 58.683 ]

Por: Danilo Menzanoti Fugi em 09/03/2015 | Blog: http://www.drmusical.vai.la


Configuração do DRBD



Podemos notar que o Cluster está ativo e em funcionamento, no entanto, nas requisições de acesso estão mudando apenas o recurso alocado em um nó para outro nó e os arquivos acessados são diferentes como demonstrado no teste acima. A partir daí, utilizaremos o DRBD, que é um replicador de blocos, que faz a replicação dos dados para outro nó.

Como o HD tem uma partição exclusiva para replicação, o qual servirá para alocar o diretório /var, podemos fazer a configuração de replicação e depois alterar de lugar o diretório /var, ou alterar o arquivo do Apache2 para buscar os arquivos html na nossa partição replicada, primeiramente, instalar o DRBD em cada um dos nós, farei no nó no01:

# aptitude install drbd8-utils

Depois de instalado, vamos carregar os módulos:

# modprobe cn
# modprobe drbd

Configurar o DRBD e inserir o seguinte parâmetro:

# nano /etc/drbd.d/global_common.conf

Altere a seguinte linha:

usage-count no;

Alterar o arquivo /etc/drbd.d/ro.res:

# nano /etc/drbd.d/r0.res

A alteração pretendida neste arquivo é configurar as partições do HD onde estão o diretório /var, que no meu caso, é /dev/hdb1:

on hachi {
   device   /dev/drbd0;
   disk     /dev/hdb1;
   address  192.168.0.1:7793;
   meta-disk internal;
}

on narnia {
   device    /dev/drbd0;
   disk      /dev/hdb1;
   address   192.168.0.1:7793;
   meta-disk internal;
}

Zerando as partições dos nós do cluster:

# dd if=/dev/zero of=/dev/hdb1 bs=1M count=128

Inicializando os recursos executando em todos os nós:

# drbdadm create-md r0
# modprobe drbd
# drbdadm up r0

Sincronizando pela primeira vez, fazendo apenas no nó no01:

# drbdadm -- --overwrite-data-of-peer primary r0

Aguardar a finalização do sincronismo, o tempo depende do tamanho do recurso e velocidade da conexão entre os nó. Iniciando o serviço do DRBD:

# service drbd restart

Formatando o dispositivos criados nos passos anteriores, fazendo apenas no primeiro nó:

# mkfs.ext4 /dev/drbd0

Nome do diretório opcional, caso queira configurar o Apache2 para buscar os arquivos aqui:

# mkdir /dados

Montando o dispositivo:

# mount -t ext4 /dev/drbd0 /dados

Testes com DRBD

Vamos criar um arquivo no diretório onde foi montado o drbd:

# nano /dados/teste

Vamos desmontar o dispositivo, lembre-se que é necessário sair do dispositivo:

# umount /dados

Mudando o nó primário para secundário:

# drbdadm secondary all

Mudando outro nó do Cluster em primário, neste caso, nó no02 ou no03:

# drbdadm primary all

Montando o dispositivo no nó que se tornou primário:

# mount -t ext4 /dev/drbd0 /dados

Assim o arquivo foi replicado com sucesso.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Arquitetura do Cluster de Alta Disponibilidade
   3. Os Softwares Corosync, Pacemaker e Distributed Replicated Block Device (DRBD)
   4. Implementação
   5. Configurações
   6. Configuração do DRBD
   7. Conclusão
Outros artigos deste autor

Configurando servidores DHCP, BIND, Squid, Sarg, Samba e algumas regras IPtables

Montagem de Cluster Beowulf

MikroTik RouterOS 5.20 para provedores - Tutorial completo

Leitura recomendada

A pós-instalação do Arch Linux

Arch BSD - Instalação em VirtualBox

Mais sobre terminais leves....

Arch Linux - Repositório offline

Instalando o CVS no Ubuntu Linux

  
Comentários
[1] Comentário enviado por fabio em 09/03/2015 - 10:16h

Excelente artigo, meus parabéns pelo trabalho!

[2] Comentário enviado por thyagobrasileiro em 10/03/2015 - 18:07h


Favoritado!

Irei tentar recriar no CentOS

[3] Comentário enviado por danilofugi em 10/03/2015 - 19:06h


[1] Comentário enviado por fabio em 09/03/2015 - 10:16h

Excelente artigo, meus parabéns pelo trabalho!


Obrigado!
ajudando a comunidade!

[4] Comentário enviado por danilofugi em 10/03/2015 - 19:07h


[2] Comentário enviado por thyagobrasileiro em 10/03/2015 - 18:07h


Favoritado!

Irei tentar recriar no CentOS


Obrigado, depois posta ai os resultados!

[5] Comentário enviado por rodrigo.kiyoshi em 10/03/2015 - 21:33h

Olá,
Vale ressaltar que, para este cenário, o uso de 3 interfaces de rede é o recomendável, em virtude do ip virtual.
O fato de não estar utilizando o recurso stonith, em caso de split brain (drbd), a intervenção manual se faz necessária.
Do mais, o artigo tá show de bola!

[6] Comentário enviado por danilofugi em 10/03/2015 - 21:49h


[5] Comentário enviado por rodrigo.kiyoshi em 10/03/2015 - 21:33h

Olá,
Vale ressaltar que, para este cenário, o uso de 3 interfaces de rede é o recomendável, em virtude do ip virtual.
O fato de não estar utilizando o recurso stonith, em caso de split brain (drbd), a intervenção manual se faz necessária.
Do mais, o artigo tá show de bola!


Vlw, pelos comentários e considerações!

[7] Comentário enviado por hevilavio em 12/03/2015 - 09:48h

Ótimo Artigo, parabéns!

[8] Comentário enviado por danilofugi em 12/03/2015 - 12:42h


[7] Comentário enviado por hevilavio em 12/03/2015 - 09:48h

Ótimo Artigo, parabéns!


Obrigado Helvilavio!

[9] Comentário enviado por felippem em 21/05/2015 - 15:32h

Olá amigo, estou tentando montar um cluster como esse so que eu queria utilizar o DRBD e o HeartBeat
Será que é possivel me ajudar?

[10] Comentário enviado por danilofugi em 21/05/2015 - 15:44h


[9] Comentário enviado por felippem em 21/05/2015 - 15:32h

Olá amigo, estou tentando montar um cluster como esse so que eu queria utilizar o DRBD e o HeartBeat
Será que é possivel me ajudar?


Olá felippem, com certeza que dá certo sim, tem um tutorial aqui no forum mesmo, vou te passar

http://www.vivaolinux.com.br/artigo/Alta-disponibilidade-com-Debian-Lenny-+-Heartbeat-+-DRBD8-+-OCFS...

único empasse é que deve utilizar o debian Lenny (5.X)

abraços

[11] Comentário enviado por Adonist em 24/03/2016 - 07:57h

Danilo,

Muito bom o seu tutorial. Porem replicando isso nao funcionou para mim na parte do DRBD.
Nao sei se eh por serem versoes diferentes mas na minha configuracao do r0.res eu tive que fazer o seguinte:

resource r0 {
on no01 {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.0.1:7793;
meta-disk internal;
}

on no02 {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.0.2:7793;
meta-disk internal;
}

Sendo que apos a opcao 'on' eh o nome da maquina e no resource eh o nome do arquivo que vc criou (r0.res).
Tambem precisei mudar os IP's pois estava conflitando ter as duas configuracoes no mesmo IP.

Valeu

[12] Comentário enviado por danilofugi em 26/03/2016 - 14:28h


[11] Comentário enviado por Adonist em 24/03/2016 - 07:57h

Danilo,

Muito bom o seu tutorial. Porem replicando isso nao funcionou para mim na parte do DRBD.
Nao sei se eh por serem versoes diferentes mas na minha configuracao do r0.res eu tive que fazer o seguinte:

resource r0 {
on no01 {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.0.1:7793;
meta-disk internal;
}

on no02 {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.0.2:7793;
meta-disk internal;
}

Sendo que apos a opcao 'on' eh o nome da maquina e no resource eh o nome do arquivo que vc criou (r0.res).
Tambem precisei mudar os IP's pois estava conflitando ter as duas configuracoes no mesmo IP.

Valeu


Agradeço pelo comentário, acabei esquecendo de editar o arquivo...
Caso se interesse, tente usar o software LCMC, faz toda a configuração de DRBD e Cluster pela interface Visual
vlw
abraços

[13] Comentário enviado por dalvasb em 05/09/2016 - 11:44h

Danilo,
você já montou dispositivos drbd com o pacemaker?
Eu consigo montar um, por exemplo, o drbd0, mas não consigo montar dois, não estou sabendo se preciso configurar de novo o resource drbd, ou apenas o resource de montar.

Dalva

[14] Comentário enviado por danilofugi em 05/09/2016 - 13:01h


[13] Comentário enviado por dalvasb em 05/09/2016 - 11:44h

Danilo,
você já montou dispositivos drbd com o pacemaker?
Eu consigo montar um, por exemplo, o drbd0, mas não consigo montar dois, não estou sabendo se preciso configurar de novo o resource drbd, ou apenas o resource de montar.

Dalva


Oi Dalva
Já montei sim e funcionam muito bem como a descrição acima, imagino o que deve estar acontecendo.
Tente o seguinte: esqueça a configuração do DRBD acima, monte seu cluster apenas instalando os pacotes e baixe um arquivo de configuração que se chama LCMC (executável em windows ou baixar um para linux) abra em outro terminal também conectado a rede
O LCMC irá buscar seus nós do cluster e você pode configurar os serviços de Apache DRBD Mysql do Cluster com simples cliques, acaba sendo mais fácil.
Poderá te auxiliar dando uma busca de video, Configuração LCMC DRBD, assim o Software LCMC fará todas as alterações listadas acima e funcionará perfeitamente

[15] Comentário enviado por llJllNllRll em 15/03/2018 - 18:24h

Durante a configuração do crm, sempre que eu o digitava no meu Debian 9.4, era emitida uma mensagem dizendo: "crm: comando não encontrado".

Só consegui resolver esse problema com a instalação do pacote: "#apt-get install crmsh"

Após, tudo prosseguiu sem problemas.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts