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
BOOTPROTO=static
IPADDR=192.168.10.100
NETMASK=255.255.255.0
ONBOOT=yes
HEARTBEAT: arquivo /etc/sysconfig/network-scripts/ifcfg-eth1
BOOTPROTO=static
IPADDR=10.0.0.1 #Servidor Master
NETMASK=255.0.0.0
ONBOOT=yes
Arquivo /etc/sysconfig/network-scripts/ifcfg-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
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
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
1 md5 <insira uma palavra-frase>
Todas as configurações definidas acima devem ser feitas nos dois servidores que compõem o cluster.