HeartBeat – Web server com Alta Disponibilidade (HA)

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.

Rolar para cima