HeartBeat - Web server com Alta Disponibilidade (HA)

Publicado por Michel Pereira em 23/02/2009

[ Hits: 32.909 ]

 


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

Listando árvore de processos

Configuração de VPN PPTP no Ubuntu 10.04 - passo-a-passo

Instalando agente do Zabbix no Windows

Instalando Wine 1.7 e PlayOnLinux no Ubuntu 14.04 LTS

Configurando um servidor para atender duas ou mais conexões com a internet

  

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