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: 57.861 ]

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


Os Softwares Corosync, Pacemaker e Distributed Replicated Block Device (DRBD)



Os softwares livres Corosync Cluster Engine, Pacemaker e DRBD são instalados e configurados no Sistema Operacional Debian 7.1 para criar e gerenciar o cluster de forma adequada.

Explicado por Dake (2008), o Corosync Cluster Engine foi formalizado na conferência Ottawa Linux Symposium e foi uma redução do OpenAIS, sendo um sistema de comunicação de grupo para a implementação de alta disponibilidade dentro de servidores Linux.

Grupo de processos utilizam um modelo de comunicação fechado, com sincronia, tendo a capacidade de recuperar e receber notificações de alteração de informações de nós conectados.

A API (Application Programming Interface) interna do Corosync fornece os serviços através de uma implementação de um Totem - Single Ring Ordering and Membership Protocol - fornecendo o modelo virtual para troca de mensagens e membros do cluster, que confiabiliza a criação de réplicas de estado, reinício da aplicação em caso de falhas e sistema de quorum, que notifica sempre que a aplicação ou máquina venha a falhar.

Assim, o Corosync é considerado a evolução do Software Heartbeat, que possui recursos adicionais e mais suporte. Este software instalado e configurado cria o cluster preparado para ter várias funcionalidades, utiliza o tunelamento SSH para seu funcionamento e não mais o comando ping do Heartbeat.

O software Pacemaker, segundo Haas (2012), é um gerenciador de recursos de Cluster ou Cluster Resource Manager (CRM), sua função é oferecer uma interface para que o administrador possa gerenciar o Cluster. Possui muitas funcionalidades como capacidade de replicar as informações do Cluster entre os nós de maneira transparente e eficiente.

Depois de iniciado, o Pacemaker elege um nó coordenador designado entre os nós disponíveis e inicia as operações de cluster, desta forma, todas as tarefas de configuração precisam ser executadas em um nó somente e já são replicadas para todo o cluster automaticamente.

Através da linha de comando do Pacemaker, é possível criar tipos básicos e avançados de regras, nós de failover (é a capacidade de determinado serviço ser migrado automaticamente para um outro servidor), failback (é o processo de restauração de um serviço que se encontra em um estado de failover), monitoramento, migração e muitos outros recursos de Open Cluster Framework (OCF).

As configurações do Pacamaker são armazenadas em um arquivo XML, que é excelente para as máquinas e terrível para humanos, assim foram desenvolvidas algumas interfaces amigáveis para configuração adequada ocultando o XML.

O Software LCMC - Linux Cluster Management Console é uma interface gráfica construída em JAVA, que aborda uma forma nova de representar o estado e relações entre os serviços de um cluster. Utiliza SSH para instalar, configurar e gerenciar os clusters a partir de um terminal que contenha a interface gráfica instalada.

Distributed Replicated Block Device (DRBD) segundo Pla (2006), nada mais é que um módulo para espelhamento de armazenamento distribuídos, geralmente utilizado em clusters de alta disponibilidade - HA, isto é feito espelhando as partições do disco rígido via rede. O DRBD funciona como um sistema RAID baseado em rede.

O DRBD cria em todos os nós, um dispositivo virtual inacessível diretamente e toda a escrita é realizada no nodo primário, que irá transferir os dados para a partição e propagá-los para os restantes dos nós secundários.

Se o nó primário falhar, é realizada uma troca do nó secundário para primário e os dados são acessados normalmente e replicados aos outros nós, mas se o nó que falhou retornar, o DRBD, mediante as configurações, devolverá ou não o modo primário ao nó original, que ficará como secundário até o serviço ser encerrado nessa máquina.

Vale lembrar que DRBD não trabalha ao nível do sistema de arquivos, mas sim ao nível de blocos do disco rígido.

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

Montagem de Cluster Beowulf

MikroTik RouterOS 5.20 para provedores - Tutorial completo

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

Leitura recomendada

Instalando Cacti no Debian 5.0

Ubuntu 7.10 "levinho" para PCs antigos

Instalando um servidor LAMP no OpenSuSE

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

Montando um Servidor de FTP

  
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