HeartBeat - Web server com Alta Disponibilidade (HA)

Publicado por Michel Pereira em 23/02/2009

[ Hits: 33.180 ]

 


HeartBeat - Web server com Alta Disponibilidade (HA)



Configuração de um servidor web utilizando H.A. com HeartBeat. O cenário utilizado foi entre dois servidores de hardware e software idênticos.

S.O - CentOS 5.2.

O objetivo deste documento é explicar como é feita a estrutura Alta Disponibilidade entre dois servidores Web.

O software responsável por este cluster é o HeartBeat (Batimento Cardíaco) - http://linux-ha.org

Estrutura básica do cenário:

Cada servidor tem duas placas de rede, onde uma placa trabalha na rede interna e a outra é utilizada pelo HeartBeat através de um cabo crossover.
  • Eth0 - Lan
  • Eth1 - Rede HeartBeat (Cabo Cross)

O funcionamento básico do H.A. é fazer com que o servidor "Slave" assuma o lugar do servidor "Master" quando houver algum problema, esse procedimento ocorre através de uma monitoramento entre os serviços no dois servidores.

Instalando o HeartBeat:

# yum install heartbeat

Configuração de rede:

LAN: arquivo /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.10.100
NETMASK=255.255.255.0
ONBOOT=yes

HEARTBEAT: arquivo /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1
BOOTPROTO=static
IPADDR=10.0.0.1 #Servidor Master
NETMASK=255.0.0.0
ONBOOT=yes

Arquivo /etc/sysconfig/network-scripts/ifcfg-eth1:

DEVICE=eth1
BOOTPROTO=static
IPADDR=10.0.0.2 #Servidor Slave
NETMASK=255.0.0.0
ONBOOT=yes

Após a instalação do HeartBeat será criado o diretório /etc/ha.d (diretório de configurações do sistema).

Basicamente todas as configurações do HeartBeat são definidas no arquivo ha.cf, que deve ser criado no diretório acima.

# vim /etc/ha.d/ha.cf

# Arquivo de log de Debug:
debugfile /var/log/ha-debug

# Arquivo de Log
logfile    /var/log/ha-log

# Usa o próprio heartbeat como daemon de log
logfacility    daemon

# Frequência em segundo de batimentos cardíacos
keepalive 1

# tempo mínimo para declarar o outro servidor como morto
deadtime 10

# Quanto tempo o heartbeat deve esperar por bits atrasados
warntime 5

# Tempo máximo para declarar o outro servidor como morto
initdead 120

# Porta de sincronia do heartbeat
udpport    694

# Endereço de broadcast da rede - usada para setar o endereço primário do servidor
bcast    eth2    

# Determina se o serviço volta para o master caso ele volte a responder.
auto_failback on

# Nós do cluster devem ser escritos conforme a saída do comando #uname -n
node webserver1
node webserver2

# Endereço ip em comum para testes de conectividade
ping (ex. router do servidor web)

# Plugin que auxilia no monitoramento de conexões entre a rede
respawn hacluster /usr/lib/heartbeat/ipfail

# Se usa o syslog ou não
use_logd off

# Compactação de dados
compression    bz2

# Compactação de dados
compression_threshold 2

Ao configurar o ha.cf deve-se criar um arquivo que define qual o servidor master no cluster.

# vim /etc/ha.d/haresources

webserver1    10.0.0.1   apache

Legenda:
  • Webserver1 - Nome do servidor Master;
  • 10.0.0.1 - IP do servidor Master;
  • apache - Serviço monitorado pelo HeartBeat (o script de monitoramento do apache está em: /etc/ha.d/resource.d/).

Ao concluir a configuração do cluster deve-se criar o arquivo de autenticação dos nós.

# vim /etc/ha.d/authkeys

auth 1
1 md5 <insira uma palavra-frase>

Todas as configurações definidas acima devem ser feitas nos dois servidores que compõem o cluster.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Instalação e configuração da Epson CX 3700

Experiência com Sistemas para Servidor NAS Free

Curso de introdução ao estudo de compiladores

Recuperando senhas de root com LILO ou GRUB

DDOS utilizando hubs p2p

  

Comentários
[1] Comentário enviado por hemersonmilano em 25/02/2009 - 10:34h

Nota 10 por esta dica de como configurar um web server com alta disponibilidade.

Estou fazendo um projeto de cluster e com certeza isto já me ajudou bastante.

Valeu pela dica.

[2] Comentário enviado por andre_ramos em 10/09/2010 - 10:38h

kara Blz, estou precisando de uma solução, e o seguinte: preciso de instalar um serviço no linux onde tenho 2 links de internet instalado em um firewall e que quando um link cair o outro entra em ação automaticamente,

alguns colegas do vol me disseram que o serviço heartbeat faz isso,

vc pode me explicar mais sobre este serviço?

pois estou interessado em estudar isso

grato


[3] Comentário enviado por arianevsf em 05/04/2012 - 23:56h

Olá pessoal,

Vocês saberiam me dizer se pra serviços como o Quagga, eu também posso utilizar essa redudância?

Lembrando que na pasta: resource.d, o Quagga não existe. =/

Outra observação, durante a utilização do ipfail a minha versão do heartbeat (2.0), apresenta incompatibilidade, ou seja, nõ consigo usar o ipfail.

Isso aconteceu com algum de vcs?

Agradeço a resposta.

[4] Comentário enviado por tiagobsd em 23/09/2012 - 01:58h

Olá,

Tenho uma solução de HA para Linux.

http://saolabs.com/products/ha-server/

team@saolabs.com


[5] Comentário enviado por Carlos_Cunha em 22/07/2013 - 09:46h

Muito Obrigado!"
Foi muito util!!
Testado em Debian 7 e tudo OK, so fazendo meus ajustes.. :-D

Abraço.

[6] Comentário enviado por dtgfranca em 04/08/2015 - 15:08h





Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts