Alta disponibilidade com SuSE 10 Enterprise Server SP2

Saiba como implementar um cluster de alta disponibilidade do tipo ativo/ativo em ambiente Linux. Tutorial baseado na distribuição SuSE 10 Enterprise Server SP2.

[ Hits: 55.302 ]

Por: Saraiva Digital em 27/03/2009 | Blog: http://altadisponibilidade.awardspace.com/


Preparando o ambiente e configurando DRBD



Preparando o ambiente

Alguns ajustes devem ser feitos para que o cluster funcione perfeitamente. Devemos criar ou alterar algumas configurações, sempre lembrando que tudo deve ser criado igual nos dois servidores.

# mkdir /storage
# mkdir /database
# mkdir /logs
# vi /etc/hosts
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Configure o arquivo hosts como na figura acima.

Configurando DRBD

Antes de configurar o DRBD vamos conferir se as partições estão corretas. Digite:

# fdisk -l
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Conferindo:
  • /dev/sda2 - partição usada para metadados do DRBD;
  • /dev/sdb1 - partição que será usada pelo dispositivo /dev/drbd0 que montar /storage;
  • /dev/sdc1 - partição que será usada pelo dispositivo /dev/drbd1 que montar /database.

Agora vamos configurar o nosso drbd.conf:

# vi /etc/drbd.conf

# <<Configuração do DRBD>>
# [Configuração do Disco /storage]

resource r0 {
   protocol  C;
   incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
   startup { wfc-timeout 0; degr-wfc-timeout     120; }
   disk { on-io-error detach; }
   syncer {
      rate    50M;
      group   1;
   }

   on torrenorte {
      device  /dev/drbd0;
      disk    /dev/sdb1;
      address 10.27.1.101:7791;
      meta-disk     /dev/sda2[0];
   }
   on torresul {
      device  /dev/drbd0;
      disk    /dev/sdb1;
      address 10.27.1.102:7791;
      meta-disk     /dev/sda2[0];
   }
}

# [Configuração do Disco /database]

resource r1 {
   protocol  C;
   incon-degr-cmd "echo '!DRBD! pri on incon-degr' | wall ; sleep 60 ; halt -f";
   startup { wfc-timeout 0; degr-wfc-timeout     120; }
   disk { on-io-error detach; }
   syncer {
      rate    50M;
      group   1;
   }

   on torrenorte {
      device  /dev/drbd1;
      disk    /dev/sdc1;
      address 10.27.1.101:7792;
      meta-disk     /dev/sda2[1];
   }

   on torresul {
      device  /dev/drbd1;
      disk    /dev/sdc1;
      address 10.27.1.102:7792;
      meta-disk     /dev/sda2[1];
   }
}

Terminando de editar o drbd.conf, vamos copiá-lo para o outro servidor digitando o comando:

# scp /etc/drbd.conf 10.27.1.102:/etc/

Vá até o servidor torresul e confira se o drbd.conf está correto. Inicie o drbd nos dois servidores utilizando o comando:

# service drbd start

Assim que iniciar, digite o comando:

# cat /proc/drbd

Se estiver certo deve aparecer como na figura abaixo, onde 0 é o drbd0 e 1 é drbd1. O status inicial vai iniciar como Secondary/Secondary e Inconsistent.
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Agora precisamos setar a primeira replicação. Como nosso servidor torrenorte vai ser o drbd0 primário e o torresul secundário e no servidor torresul o drbd1 será o primário e o torrenorte o secundário, então devemos setar isso através dos comandos:

Servidor torrenorte:

# drbdsetup /dev/drbd0 primary --do-what-I-say

Servidor torresul:

# drbdsetup /dev/drbd1 primary --do-what-I-say

Em seguida digite o comando:

# watch -n 1 cat /proc/drbd

em cada servidor. Neste ponto será mostrado o processo de replicação entre os servidores, como na figura abaixo:
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Na figura acima o drbd0 está primário/secundário e o drbd1 secundário/primário. Assim que terminar a replicação veja que o status dos discos estarão consistentes como na figura abaixo:
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
O próximo passo é formatar a partição drbd:

Servidor torrenorte:

# mkfs.xfs -f /dev/drbd0

Servidor torresul:

# mkfs.xfs -f /dev/drbd1
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Vamos fazer alguns testes manuais para checar se nosso drbd está correto. No servidor torrenorte monte o disco drbd0 em /storage.

Servidor torrenorte:

# mount /dev/drbd0 /storage

Servidor torresul:

# mount /dev/drbd1 /database

Em seguida digite "df -h" nos dois servidores para ver se está corretamente configurado, como na figura abaixo:
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Torrenorte
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Torresul
Para comprovarmos se está replicando, crie um arquivo de teste em cada servidor digitando:

Servidor torrenorte:

# touch /storage/teste1

Servidor torresul:

# touch /database/teste2

Com arquivo criado, vamos transferir o disco /storage para o servidor torresul e o disco /database para o torrenorte. Primeiro temos que desmontar os discos.

Servidor torrenorte:

# umount /storage
# drbdadm secondary r0

Servidor torresul:

# umount /database
# drbdadm secondary r1

Com tudo desmontado digite "cat /proc/drbd" e o status nos dois servidores tem que estar como Secondary/ Secondary. Veja na figura abaixo:
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Vamos inverter as coisas montado /storage em torresul e /database em torrenorte. Digite a sequência de comandos:

Servidor torrenorte:

# drbdadm primary r1
# mount /dev/drbd1 /database


Servidor torresul:

# drbdadm primary r0
# mount /dev/drbd0 /storage


Em seguida digite "df -h" nos dois servidores para verificar a inversão, como na figura abaixo:
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Torrenorte
Linux: Alta Disponibilidade com Suse 10 Enterprise Server SP2
Torresul
Verifique se os arquivos criados foram replicados:

Servidor torrenorte:

# ls -l /database

Servidor torresul:

# ls -l /storage

DRBD pronto e funcional! Agora precisamos configurar o heartbeat, pois ele será responsável em montar e desmontar os discos do DRBD de forma automatizada. Antes de prosseguir, desmonte as partições /database e /storage nos servidores e volte o estado dos dois para Secondary / Secondary. O jeito mais rápido é, após desmontar os discos, parar o serviço de drbd nos dois servidores digitando:

# service drbd stop

Logo em seguida digite:

# service drbd start

Por padrão o serviço iniciar como Secondary / Secondary.

Página anterior     Próxima página

Páginas do artigo
   1. Objetivo / componentes / ambiente
   2. Preparação
   3. Configuração
   4. Preparando o ambiente e configurando DRBD
   6. Configurando Heartbeat
   7. Dicas finais
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Configurando um servidor de DNS

Configurando GUI no Ubuntu WSL (Windows Subsystem for Linux)

Tema com cores vivas para Xfce no Xubuntu 12.04

Linux com cara de Windows para atrair novos usuários

Configurando o X no Slackware

  
Comentários
[1] Comentário enviado por demoncyber em 27/03/2009 - 13:31h

Ótimo artigo, já foi adicionado em favoritos =)

Parabéns!!!



[2] Comentário enviado por doomk em 27/03/2009 - 14:57h

Very Good!

Parabéns saraiva, tutorial muito bem explicado.

[3] Comentário enviado por jefers0n em 27/03/2009 - 19:43h

Muito interessante e bem explicado. Parabéns amigo.

Jeferson.

[4] Comentário enviado por junior em 28/03/2009 - 01:29h

Cara, que ARTIGO hein?!

Muito bem explicado e detalhado, só ficaria mais feliz ainda em ver um assim com Debian.
hehe

Abraço, e sucesso!

[5] Comentário enviado por loverbeck em 06/04/2009 - 19:35h

Beleza de Artigo heim Saraiva!
:)

falow cara abraço... ta na hora da pizza heim !!! hehehe

Fabiano

[6] Comentário enviado por rommelprata em 24/04/2009 - 23:01h

Parabens, eu fiz alguns ajustes para rodar em opensuse 11.1 , existem algumas modificacoes ja que o kernel e mais novo o Hearbeat e Drbd estao na versao 8, algumas ordens e formatacoes devem ser ajustadas, sds.
Rommel

[7] Comentário enviado por okudak em 02/06/2009 - 11:00h

Esse artigo funcionaria em um Servidor de Storage iSCSI... digo... 2 target iSCSI em Cluster?

[8] Comentário enviado por saraivadigital em 02/06/2009 - 13:41h

Opa, nunca testei como iSCSI.

[9] Comentário enviado por okudak em 02/06/2009 - 16:10h

Sim... mas a questão seria, como fazer o Heartbeat startar o serviço de target scsi...
Pois pelo entendi ele que starta o smb e o firebird...
Ele pode iniciar qualquer serviço, ou esses são parametros proprios do heartbeat?

[10] Comentário enviado por saraivadigital em 02/06/2009 - 16:56h

Bem o Teste que vc pode fazer é o seguinte la no haresource por ex: smb e firebird que contem na linha do haresource , o heartbeat processas os scripts que estão em /etc/ha.d/resource.d
ou em /etc/init.d
se o script que inicia o iScsi estiver em alguns desse locais e so colocar no nome do script no haresource.
Beleza!

[11] Comentário enviado por aldoarendt em 25/01/2010 - 22:23h

Em Primeiro Lugar quero te parabenizar pelo tuto, muito bem elavorado e explicado, preciso de uma maozinha estou usando o opensuse 11.1 e me da um erro (Starting DRBD resources: /etc/drbd.conf:9: Parse error: 'protocol | on | disk | net | syncer | startup | handlers' expected,
but got 'incon-degr-cmd' (TK 278)), sera que alguem ai poderia me dar uma maozinha

[12] Comentário enviado por rafaelcosta1984 em 17/12/2010 - 14:00h

Olá Saraiva,

Primeiramente gostaria de te parabenizar pelo excelente artigo. todos os passos estão bem documentados e de fácil leitura.

Eu implementei aqui essa solução mas fiquei com uma dúvida. A autenticação dos meus usuários do samba é feita através de uma base ldap. portanto como faço para que essa base de dados seja replicada também para o servidor que estiver com o serviço desabilitado.

Além disso, como faço para manter os arquivos de configuração do samba sincronizado automaticamente ?

obrigado


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts