Clusters de alta disponibilidade (HA - High Availability)

Nesse artigo tratarei sobre a configuração de clusters de alta disponibilidade. Os computadores dessa classe possuem uma disponibilidade de 99,99% a 99,999%, isso significa que em um ano de operação o servidor ficará indisponível por um período de pouco mais de 5 minutos (se ficar).

[ Hits: 72.953 ]

Por: Smurf em 06/10/2009


Heartbeat



Heartbeat significa batimento cardíaco. Esse termo é usado para definir os pulso enviados entre dois computadores que indicam que estão vivos, ou seja, estão funcionando e disponíveis para executar tarefas.

O Heartbeat trabalha enviando pulso entre dois servidores através de uma porta serial, um placa de rede ou ambas. Se o pulso falhar, o servidor secundário irá assumir que o servidor primário falhou e tomar os serviços que estavam rodando no servidor primário.

O Heartbeat define um endereço IP para o cluster, que deve ser diferente dos endereços IP dos servidores primário e secundário, e que será o endereço IP procurado pelos clientes. O servidor que esta ativo, não importa se for o primário ou o secundário assumirá o endereço do cluster.

Fonte: http://www.opens.com.br/documentacao/HA/Portugues/heartbeat.html

Configuração do Heartbeat

Edite o arquivo /etc/ha.d/ha.cf em ambos os servidores do cluster (se por pela porta serial):

serial /dev/ttys1 # porta serial usada pelo heartbeat.
baud 19600 # taxa de transferência da porta serial
debugfile /var/log/ha-debug
logfile /var/log/ha-log # arquivo de log
logacility local0
keepalive 2 # define o tempo entre os heartbeats
deadtime 10 # o nó será declarado como indisponível depois de 10 segundos

node ha-1.talmeida.com.br
node ha-2.talmeida.com.br

Para testar a comunicação da porta serial, execute os seguintes comandos.

No servidor ha-1.talmeida.com.br:

# cat < /dev/ttyS1

No servidor ha-2.talmeida.com.br:

# echo teste > /dev/ttyS1

A palavra teste irá aparecer no servidor ha-1.talmeida.com.br.

Edite o arquivo /etc/ha.d/ha.cf em ambos os servidores do cluster (se for usada a placa de rede):

udpport 694 # porta usada pelo protocolo udp.
Udp eth1 # placa de rede usada pelo heartbeat.
debugfile /var/log/ha-debug
logfile /var/log/ha-log # arquivo de log
logfacility local0
keepalive 2 # define o tempo entre os heartbeat
deadtime 10 # o nó será declarado como indisponível depois de 10 segundos

node ha-1.talmeida.com.br
node ha-2.talmeida.com.br

Edite o arquivo /etc/ha.d/haresources em ambos os servidores do cluster, da seguinte forma:

ha-1.talmeida.com.br 192.168.1.53 datadisk www

Essa linha indica que o endereço do cluster é 192.168.1.53 e inicializa o script datadisk, que negocia a troca do dispositivo drbd de secundário para o primário, monta as partições drbd especificadas no fstab e inicializa o servidor WWW. Ao desligar, Heartbeat irá primeiro parar o servidor WWW, o drbd e depois liberar o endereço IP para que o outro servidor do cluster possa assumí-lo.

Edite o arquivo /etc/ha.d/authkeys em ambos os servidores do cluster, da seguinte forma:

auth 1
1 crc

Esse arquivo define o tipo de autenticação utilizado pelo Heartbeat. Existem três métodos de autenticação disponíveis: crc, md5, sha1. O crc é o mais simples, recomendável na maioria das situações. O md5 tem um nível de segurança médio. Já o sha1 é o mais seguro de todos, mas também o mais lento. O formato desse arquivo é o seguinte:

auth <number>
<number> <authmethod> [authkey]

Obs.: O crc não usa chave de autenticação.

# chmod 600 /etc/ha.d/authkeys

Execute o programa ntsysv em ambos os servidores do cluster e selecione o serviço heartbeat.

Página anterior    

Páginas do artigo
   1. Configurando um cluster de alta disponibilidade para servidor WWW
   2. DRBD (Data Replicator Block Device)
   3. Configurando o RSync
   4. Heartbeat
Outros artigos deste autor

Ferramentas de monitoria de tráfego

Leitura recomendada

Configuração do modem ADSL Siemens Santis

Explorando as possibilidades do XFree86

Iniciando seu Linux através do NTLoader do Windows 2000/XP

BIND 9 - DNS Master e Slave CentOS 6.4 Minimal

O que fazer após instalação do elementary OS Luna

  
Comentários
[1] Comentário enviado por cleysinhonv em 06/10/2009 - 15:36h

Olá talmeida,

Gostei do artigo, trata-se de um assunto que estamos debatendo aqui no trabalho. Parabéns.

[2] Comentário enviado por diegofsouza em 06/10/2009 - 20:15h

Ótimo artigo... é um assunto muito interessante.

[3] Comentário enviado por Wakky em 09/10/2009 - 09:09h

Cara...
bom artigo...
Tive pensando... a tempo, precisei de implementar uma solução de um servidor de correio, em que haviam 2 sites remotos em diferentes países.
o problema, é que quando o mail no server tentasse ser acedido por um user no SiteB (ligação 512KB partilhada), e se o mail fosse grandinho e a conexão desse um timeout, o cara da direção pegava logo no telefone e desancava aqui no pessoal...
Tive pensando num cluster, e cada mail era acedido localmente,ficando todo o "trabalho" para os servidores.

Penso que essa solução vai ajudar a resolver esse problema.

[]'s

Wakky

[4] Comentário enviado por removido em 18/10/2009 - 21:28h

Bem Explicado.
Continue Assim.

[5] Comentário enviado por removido em 20/10/2009 - 17:22h

O Artigo ficou bom.

Porém posso resaltar que ficaria melhor se fosse implementado o OCFS2 junto do DRBD, com isso poderia trabalhar no esquema master/master sem precisar ficar fazendo a sincronização por script.

O OCFS2 é um sistema de arquivos da Oracle para Cluster ele trabalha muito bem com o DRBD e o HeartBeat e é Livre.

Quando um dos servidores do DRBD parar tem que passar a função de master para o secundário no seu caso.

Se tiver o OCFS2 se um deles parar e o cluster do Heartbeat estiver utilizando o Stonith, o Stonith vai reiniciar o Nodo que estiver com problemas. E o nodo que estiver trabalhando não vai precisar receber a função de primário pois já vai ser.

Para aumentar ainda mais a disponibilidade poderia ser Utilizado o LVS para fazer o balanceamento da carga que serão entregues para os servidores.

E por fim utilizar o Monit para monitorar tudo e mais ele mesmo.

Quando se fala em disponibilidade.

HeartBeat+LVS+MONIT+DRBD+OCFS2

A Melhor solução com Software.


Douglas Q. dos Santos

[6] Comentário enviado por elsonjunior em 24/11/2009 - 09:22h

Opa,

Muito bom artigo.

Estou aprendendo a trabalhar com linux e estou de encarregado de fazer testes para montar um sistema de alta disponibilidade.

Fiquei com dúvida na hora de editar o arquivo /etc/drbd.conf, pois o arquivo é bem mais extenso.
Devo apagar as outras informações dele? Ou adicionar essas daí no final?

Desde já agradeço.

Abraço.

--
Elson Júnior


[7] Comentário enviado por jhugor em 03/05/2010 - 21:56h

caro talmeida

parabens pelo excelente post

nota 10

gostaria de te perguntar o seguinte:

tenho um micro com debian 5.04 e nele instalei o virtualbox, criei uma maquina virtual com 2003 server onde dentro vao softwares
de automacao comercial

as estacoes acessam via terminal service

gostaria de colocar uma segunda maquina com o debian tambem e nela o virtualbox com outro 2003 server dentro

a ideia era replicar os dados da maquina 1 para a 2

voce ve possibilidade

apreciaria muito tua ajuda parceiro!

outra coisa, nao precisa ser exatamente como eu disse, poderia haver no meio, se necessario uma intervencao tecnica, tipo, desligar
o primeiro que deu pau e mudar um ip no segundo, sei la, algo do tipo

agradeco novamente!



abaixo uma pergunta que fiz no forum, talvez eu tenha sido mais completo la!

http://www.vivaolinux.com.br/topico/Virtual-Box-1/Usando-VirtualBox-para-Servidor-e-Cluster-HA


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts