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.152 ]

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

Prevenindo acidentes com o comando RM

Configurando um servidor de email com Postfix, MySQL, SASL, MailScanner e MailWatch no CentOS 4.2

Exherbo Linux: sacrificando a cabra

Modem PCTEL AMR PCI no Slackware 10.1

[Finalmente] Movendo o lançador Unity para o fundo da tela

  
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