quinta-feira, 30 de abril de 2009

Confugurando heartbeat no RHEL 5

Iremos configurar um servidor Ativo/Passivo.

baixar os pacotes em http://download.opensuse.org/repositories/server:/ha-clustering/

OBS: É importante salientar que os ip´s fixos servem apenas de comunicação entre o heartbeat.

Cenário:



Exemplo:
Imagine que seu Servidor Activo com o ip fixo 172.16.1.60 esteja respondendo no dns para http://aplicacao.com.br

Agora iremos configurar o heartbeat para que sua aplicacao responda para o ip virtual 172.16.1.63 do Servidor Standby quando o servidor Activo cair.

Os pacotes são:
heartbeat-2.99.2-8.1.x86_64.rpm
heartbeat-common-2.99.2-8.1.x86_64.rpm
heartbeat-resources-2.99.2-8.1.x86_64.rpm
libheartbeat2-2.99.2-8.1.x86_64.rpm

Devemos levar em consideração algumas dependências que serão necessárias:
para instalar use yum install nome do pacote..

Depois de baixar os pacotes no endereço acima vamos instalar com o seguinte comando:
rpm -ivh heartbeat-*, um por um.

OK agora com os pacotes instalados iremos iniciar as configurações.

De acordo com as instruções fornecidas na documentação do heartbeat em http://www.linux-ha.org/, é necessário criar os arquivo abaixo em /etc/ha.d/.

authkeys
ha.cf
haresources

Mas usaremos os arquivos que vem junto da instalação utilizando o seguinte comando:

cp /usr/share/doc/packages/heartbeat/ha.cf /etc/ha.d/
cp /usr/share/doc/packages/heartbeat/authkeys /etc/ha.d/
cp /usr/share/doc/packages/heartbeat/haresources /etc/ha.d/

Agora iremos configurar o HeartBeat:

Abra o arquivo ha.cf, observe que as seguintes linhas devem estar descomentadas:

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 5
udpport 694

Se a máquina tiver uma placa de rede somente utilize
bcast eth0 # Linux
Se a máquina tiver duas placas de rede utilize
bcast eth0 eth1 # Linux
Continuando.......

auto_failback on
node nome_do_servidor_na_rede_activo
node nome_do_servidor_na_rede-standby

Abra o arquivo haresources, adicione no final do arquivo:
nome_do_servidor_na_rede_activo IPaddr::172.16.1.63/24/eth0 nome_do_serviço exemplo: httpd ou tomcat5.

É importante saber que se você colocar o nome_do_serviço o heartbeat que vai gerenciar de inicializa-lo. No meu caso eu já deixei os serviços para ativar na inicialização, assim não utilizando o heartbeat para iniciá-los.

Abra o arquivo authkeys e descomente as seguintes linhas:

auth 1
1 crc

Iremos alterar a permissão do arquivo:
chmod 600 authkeys

Agora iremos adicionar no /etc/hosts a identificação do servidor com o ip fixo:

vim /etc/hosts
172.16.1.60 nome_do_servidor_ativo

Agora iremos instalar o heartbeat da mesma forma que instalamos no primeiro servidor e copiar para o Servidor Standby os mesmos arquivos:

authkeys
ha.cf
haresources

Iremos deixar como está as configurações do arquivo.

Apenas de a permissão para o arquivo chmod 600 authkeys.


Agora iremos adicionar o heartbeat na inicialização do cron dos dois servidores.

adicione com o comando

chkconfig --add heartbeat
chkconfig heartbeat on

Verifique se o serviço está ativo e ligado
chkconfig --list heartbeat
heartbeat 0:não 1:não 2:sim 3:sim 4:sim 5:sim 6:não

Pronto agora é hora de startar os serviços nos dois servidores.

service heartbeat start

a seguinte mensagem será exibida:
[root@projudi-backup ha.d]# service heartbeat start
logd is already running
Starting High-Availability services:
2009/05/04_06:00:16 INFO: Resource is stopped
[ OK ]

Pronto serviço ativo.

Veja no Servidor Standby se o hearbeat levantou o ip virtual da maquina.

[root@servidor_standby ~]# ifconfig
eth0 Link encap:Ethernet Endereço de HW 00:50:56:A2:75:00
inet end.: 172.16.1.60 Bcast:172.16.1.255 Masc:255.255.255.0
endereço inet6: fe80::250:56ff:fea2:7500/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
RX packets:4117 errors:0 dropped:0 overruns:0 frame:0
TX packets:2751 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:1000
RX bytes:705766 (689.2 KiB) TX bytes:1030616 (1006.4 KiB)
Endereço de E/S:0x1400 Memória:f4820000-f4840000

eth0:0 Link encap:Ethernet Endereço de HW 00:50:56:A2:75:00
inet end.: 172.16.1.63 Bcast:172.16.1.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Métrica:1
Endereço de E/S:0x1400 Memória:f4820000-f4840000

lo Link encap:Loopback Local
inet end.: 127.0.0.1 Masc:255.0.0.0
endereço inet6: ::1/128 Escopo:Máquina
UP LOOPBACKRUNNING MTU:16436 Métrica:1
RX packets:2198 errors:0 dropped:0 overruns:0 frame:0
TX packets:2198 errors:0 dropped:0 overruns:0 carrier:0
colisões:0 txqueuelen:0
RX bytes:4078240 (3.8 MiB) TX bytes:4078240 (3.8 MiB)

Parabéns servidores configurado e funcionando.

Agora é só desligar o servidor activo e ver se o standby assumiu o serviço do mesmo.

e bola pra frente....

Para maiores informações, veja o log de saida habilitado no arquivo ha.cf
tail -f /var/log/ha-log



Bibliografia
http://www.linux-ha.org/
http://under-linux.org/f69822-como-utilizar-o-heartbeat

Qualquer dúvida estou a disposição.

Um comentário: