Instalação, configuração, utilização e testes do DRBD 0.7

O DRBD implementa o espalhamento de dispositivos de blocos entre dois servidores em rede TCP/IP e é amplamente utilizado para implementação de alta-disponibilidade na camada de armazenamento. Este artigo irá explicar como instalar, configurar, utilizar e testar o DRBD 0.7, que é a versão estável e que permite implementação ativo/passivo.

[ Hits: 118.005 ]

Por: Leonardo Rodrigues de Mello em 27/07/2006


Configuração do DRBD



Configurando a resolução de nomes


Os dois servidores deverão resolver os nomes, uns dos outros, para tornar esta resolução independente do servidor DNS, é recomendada a configuração do /etc/hosts conforme o exemplo abaixo:

# vi /etc/hosts

10.1.1.23    spotlight, server01
10.1.1.26    Lvia, server02

Testando resolução de nomes


Para testar se as duas estão se enxergando na rede, pode-se tentar pingar os respectivos hostnames:

# ping spotlight
# ping lvia


Caso o ping não funcione, deverá ser verificada a configuração de rede lógica e física das máquinas, bem como do /etc/hosts.

O arquivo de configuração do DRBD


O arquivo de configuração utilizado pelo DRBD é o /etc/drbd.conf, caso este arquivo não esteja corretamente configurado, o drbd não irá funcionar corretamente.

Os parâmetros que são obrigatórios de serem alterados são: hostname, device, disk, meta-disk, address and port na seção "on <hostname> {}".

  on spotlight {
      device     /dev/drbd0;
      disk       /dev/hda4;
      address    10.1.1.23:7788;
      meta-disk  internal;
  
  }
  
  on Lvia {
      device    /dev/drbd0;
      disk      /dev/hdc2;
      address   10.1.1.23:7788;
      meta-disk internal;
  }

OBS: O hostname no arquivo de configuração deverá ser idêntico ao no /etc/hosts. Cuidado, o DRBD é case sensitive. Lvia é diferente de lvia.

Carregando o módulo do drbd


Para que o drbd funcione, é necessário que seja carregado o seu módulo nas duas máquinas que irão executar o sistema.

Execute o comando abaixo nas nas duas máquinas:

# modprobe drbd

Caso não apareçam mensagens de erro, o módulo deverá ter sido carregado com sucesso.

Testando se o módulo carregou corretamente


Verifique o conteúdo do arquivo /proc/drbd com o seguinte comando:

# cat /proc/drbd

O resultado deverá ser parecido com:

  version: 0.7.19 (api:78/proto:74)
  SVN Revision: 2212 build by [email protected], 2006-06-22 21:12:58
  0: cs:Unconfigured
  1: cs:Unconfigured

Iniciando e conectando o DRBD


Após a carga dos módulos, será necessário iniciar e conectar o drbd dos dois servidores. Para esta finalidade execute o comando abaixo:

# drbdadm up all

Caso não apareçam mensagens de erro, o drbd deverá ter sido inicializado e conectado corretamente.

Testando se o DRBD iniciou e conectou


Para verificar se o DRBD iniciou e conectou com sucesso, execute o comando:

# cat /proc/drbd

O resultado deverá ser semelhante a:

  version: 0.7.19 (api:78/proto:74)
  SVN Revision: 2212 build by [email protected], 2006-06-22 21:12:58
   0: cs:Connected st:Secondary/Secondary ld:Inconsistent
    ns:0 nr:0 dw:0 dr:0 al:0 bm:656 lo:0 pe:0 ua:0 ap:0
   1: cs:Unconfigured

O importante nessa saída são as a linhas do dispositivo drbd que foi criado (0).

cs:Connected
A chave cs: armazena a informação de conexão do drbd, seu conteúdo sendo Connected significa que o dispositivo drbd está conectado entre as duas máquinas.

st:Secondary/Secondary
A chave st: é responsável por armazenar a informação sobre o estado das máquinas. O seu conteúdo Secondary/Secondary significa que as duas máquinas estão como secundárias.

ld:Inconsistent
A chave ld: é responsável por armazenar a informação sobre a consistência da sincronização entre as máquinas. O seu conteúdo Inconsistent significa que os dados dos discos são diferentes e estão inconsistentes. Isto é normal, neste momento, pois os discos ainda não foram sincronizados.

Tornar uma das máquinas primária


Este procedimento deverá ser realizado cuidadosamente, pois a partir deste momento, o drbd estará sincronizando os dados da máquina que foi definida como primária para a máquina secundária. Isto significa que TODOS os dados na partição usada pelo drbd na máquina secundária, serão apagados, além disso, os dados da máquina primária serão espelhados na máquina secundária.

Em uma das máquinas execute o seguinte comando:

# drbdadm primary all

Se ocorrer um erro, não se preocupe, é normal, isso acontece pois o drbd se recusa a se tornar primário caso o id seja inconsistente.

Para resolver este problema é necessário pedir para o drbd forçar esta sincronização. Isso é feito através do parâmetro --do-what-I-say, esta "funcionalidade" foi criada para evitar que os dados da máquina secundária fossem apagados, sem o real consentimento e consciência do administrador do sistema. Na versão 0.8 do drbd, o parâmetro --do-what-I-say foi substituído por --overwrite-data-of-peer com o objetivo de fazer mais sentido para os usuários do drbd.

Tente tornar uma das máquinas como primária, desta vez com os parâmetros corretos para esta primeira sincronia.

# drbdadm -- --do-what-I-say primary all

Caso não apareça nenhuma mensagem de erro, significa que o comando foi bem sucedido.

Acompanhando o progresso da sincronização


O progresso da sincronização entre os servidores é informado no arquivo /proc/drbd. Iremos utilizar o comando watch para acompanhar este progresso.

# watch -n1 cat /proc/drbd
version: 0.7.19 (api:78/proto:74)
SVN Revision: 2212 build by [email protected], 2006-06-22 21:12:58
0: cs:SyncSource st:Primary/Secondary ld:Consistent
ns:196740 nr:0 dw:0 dr:196876 al:0 bm:668 lo:0 pe:4 ua:34 ap:0
[>...................] sync'ed:  3.8% (5053/5245)M
finish: 0:07:55 speed: 10,848 (10,352) K/sec
1: cs:Unconfigured

Quando a sincronização estiver concluída, o resultado do comando "cat /proc/drbd" deverá ser semelhante ao abaixo:

  version: 0.7.19 (api:78/proto:74)
  SVN Revision: 2212 build by [email protected], 2006-06-22 21:12:58
   0: cs:Connected st:Primary/Secondary ld:Consistent
    ns:5371188 nr:0 dw:0 dr:5371188 al:0 bm:984 lo:0 pe:0 ua:0 ap:0
   1: cs:Unconfigured

Um detalhe importante e que deverá ser reparado é que o estado em uma das máquinas será primário e na outra secundário, além disso é importante reparar que o ld está consistente, demonstrando que os dispositivos das duas máquinas estão sincronizados.

Página anterior     Próxima página

Páginas do artigo
   1. Sobre este artigo
   2. Introdução
   3. Instalação
   4. Configuração do DRBD
   5. Usando o DRBD
   6. Testando se tudo está funcionando corretamente
   7. Conclusão e referências
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

openSUSE 12.1 - Instalando Oracle Java

Atualização do PJeOffice via Terminal no Ubuntu 19.04

NoBreak SMS e GNU/Linux (FC5) - Parte 2 - Criando o serviço

hpfall - Acelerômetro em notebooks HP para evitar perda de dados

Prevenindo acidentes com o comando RM

  
Comentários
[1] Comentário enviado por vhprice em 27/07/2006 - 11:20h

Legal! Muito bem explicado!

[2] Comentário enviado por thelinux em 27/07/2006 - 13:46h

Cara, gostei do teu tuto. Já havia lido sobre isto, mas nunca parei para estudar. Agora tenho como.

Excelente contribuição!

Sinceramente,

thelinux

[3] Comentário enviado por korvoman em 23/11/2006 - 22:02h

Bem explicado e detalhado, parabéns. Implantei o mesmo ambiente no lab da faculdade. Inclui o heartbeat e o apache . Tive um problema, com fstab do nodo primario. A minha pergunta:

http://www.vivaolinux.com.br/perguntas/verPergunta.php?codigo=53214

[4] Comentário enviado por korvoman em 24/11/2006 - 20:32h

Caso alguem tenha o mesmo problema, solucionei acima reconfigurando o Heartbeat, alterando o /etc/ha.d/haresources a conf ficou desta maneira:

nd1 drbddisk::teste Filesystem::/dev/drbd0::/home::ext3 10.0.0.4 apache2

no caso o teste é o nome do resources configurado no /etc/drbd.conf


[5] Comentário enviado por peterpan em 03/01/2007 - 17:05h

Estou começando os estudos sobre o DRBD, e tenho algumas difilcudades, para testes tenho dois pcs com o mandriva 2006 instalado em cada um deles, com apenas a partição hda1 onde esta todos os arquivos. Teria como eu duplicar por completo o hda1 do computador primario no computador segundario. Como ficaria o drbd.conf nesse caso? Nao entendo ql dispositivo é sincronizado com ql... Posso sincronizar com um cabo serial?
Qlqr ajuda agradeço.

[6] Comentário enviado por lipecys em 19/04/2010 - 09:39h

Parabéns pelo artigo!

[7] Comentário enviado por fernando.aviana em 08/07/2010 - 06:44h

Amigos,

Não estou conseguindo fazer funcionar o DRBD no Debian 4...segui esse tuto mas quando vou iniciá-lo me aparece a seguinte mensagem:

Debian:/# drbdadm up all
ioctl(,SET_DISK_CONFIG,) failed: Invalid argument
Lower device is already mounted.
Command 'drbdsetup /dev/drbd0 disk /dev/sda3 internal -1 --on-io-error=detach' terminated with exit code 20

Estou usando a versão 2.6.18-6-686-bigmem do debian com o pacote "drbd0.7-module-2.6.18-6-686-bigmem"

Alguem saberia me ajudar?

[8] Comentário enviado por paulofenano em 07/08/2013 - 15:48h

Boa tarde, parabéns pelo tópico, muito bem explicado. Estou desenvolvendo algumas idéias, por exemplo se houver um servidor principal com o samba instalado nele, configuro o drdb nele e quero colocar um outro server para ser o standby desse, esse segundo teria que estar instalado o samba também? Obrigado


Contribuir com comentário