Dando partida ao Heartbeat e Testando-o
Usando Red Hat, ou outras distribuições que usa os arquivos de startup /etc/init.d, simplesmente digite /etc/init.d/heartbeat start em ambos os nós. Eu recomendaria começar no sistema master (no nosso exemplo linuxha1) primeiro.
Se você desejar que o Heartbeat rode no startup, o que fazer vai diferir na sua distribuição. Você pode necessitar colocar links no script de startup nos diretórios apropriados de nível de init, mas as versões do RPM vai fazer isso para você. Eu faço o start do Heartbeat em sua seqüência de prioridade padrão (75, que significa que ele starta depois dos serviços 74 e inferiores e antes dos serviços com prioridade 76-99), termina em sua seqüência de prioridade padrão (05), e somente cuida sobre o 0(halt), 6(reboot), 3(text-only), 5(X) níveis de execução.
Assim, se eu tivesse de fazer isso na mão, eu precisaria digitar na seqüência (como root, é claro):
cd /etc/rc.d/rc0.d ; ln -s ../init.d/heartbeat K05heartbeat
cd /etc/rc.d/rc3.d ; ln -s ../init.d/heartbeat S75heartbeat
cd /etc/rc.d/rc5.d ; ln -s ../init.d/heartbeat S75heartbeat
cd /etc/rc.d/rc6.d ; ln -s ../init.d/heartbeat K05heartbeat
A última vez que Eu rodei o Slackware, não havia o diretório /etc/rc.d/init.d (pode ter mudado por agora) e fazer a mesma coisa, Eu colocaria no diretório /etc/rc.d/rc.local:
/etc/init.d/heartbeat start
***Isso assume que você copiou o arquivo ‘ha.rc’ para /etc/ha.d/heartbeat. Se você não conseguir encontrar /etc/rc.d/init.d na sua distribuição e você está inseguro de como processar o start, você pode usar o método rc.local. Mas você está no seu domínio para fazer o shutdown, eu apenas não me lembrava...
Nota: Se você usa a função watchdog, você vai precisar carregar seu módulo no bootup também. Você pode colocar o comando seguinte na final do arquivo /etc/rc.d/rc.sysinit:
/sbin/insmod softdog
Para o método rc.local, apenas coloque a mesma linha igual acima onde você starta o Heartbeat.
Uma vez você tenha startado o Heartbeat, dê uma olhada no seu arquivo de log (o padrão é /var/log/ha-log) antes de fazer testes com ele. Se tudo estiver simpático, o log do serviço do dono (linuxha1 em nosso exemplo) deve parece alguma coisa igual a isso:
heartbeat: 2003/02/10_13:52:22 info: Neither logfile nor logfacility found.
heartbeat: 2003/02/10_13:52:22 info: Logging defaulting to /var/log/ha-log
heartbeat: 2003/02/10_13:52:22 info: **************************
heartbeat: 2003/02/10_13:52:22 info: Configuration validated. Starting heartbeat 0.4.9f
heartbeat: 2003/02/10_13:52:22 info: nice_failback is in effect.
heartbeat: 2003/02/10_13:52:22 info: heartbeat: version 0.4.9f
heartbeat: 2003/02/10_13:52:22 info: Heartbeat generation: 17
heartbeat: 2003/02/10_13:52:22 info: Starting serial heartbeat on tty /dev/ttyS0 (19200 baud)
heartbeat: 2003/02/10_13:52:22 info: UDP Broadcast heartbeat started on port 694 (694) interface eth1
heartbeat: 2003/02/10_13:52:23 info: pid 28140 locked in memory.
heartbeat: 2003/02/10_13:52:23 info: pid 28137 locked in memory.
heartbeat: 2003/02/10_13:52:23 info: pid 28139 locked in memory.
heartbeat: 2003/02/10_13:52:23 notice: Using watchdog device: /dev/watchdog
heartbeat: 2003/02/10_13:52:23 info: pid 28141 locked in memory.
heartbeat: 2003/02/10_13:52:23 info: Local status now set to: 'up'
heartbeat: 2003/02/10_13:52:23 info: pid 28138 locked in memory.
heartbeat: 2003/02/10_13:52:23 info: pid 28134 locked in memory.
heartbeat: 2003/02/10_13:52:25 info: Link linuxha1.linux-ha.org:eth1 up.
heartbeat: 2003/02/10_13:53:23 WARN: node linuxha2.linux-ha.org: is dead
heartbeat: 2003/02/10_13:53:23 info: Dead node linuxha2.linux-ha.org held no resources.
heartbeat: 2003/02/10_13:53:23 info: Resources being acquired from linuxha2.linux-ha.org.
heartbeat: 2003/02/10_13:53:23 info: Local status now set to: 'active'
heartbeat: 2003/02/10_13:53:23 info: Running /etc/ha.d/rc.d/status status
heartbeat: 2003/02/10_13:53:23 info: /usr/lib/heartbeat/mach_down: nice_failback: acquiring foreign resources
heartbeat: 2003/02/10_13:53:23 info: mach_down takeover complete.
heartbeat: 2003/02/10_13:53:23 info: mach_down takeover complete for node linuxha2.linux-ha.org.
heartbeat: 2003/02/10_13:53:23 info: Acquiring resource group: linuxha1.linux-ha.org 192.168.85.3 datadisk::drbd0 datadisk::drbd1 mirror
heartbeat: 2003/02/10_13:53:23 info: Running /etc/ha.d/resource.d/IPaddr 192.168.85.3 start
heartbeat: 2003/02/10_13:53:23 info: /sbin/ifconfig eth0:0 192.168.85.3 netmask 255.255.255.0 broadcast 192.168.85.255
heartbeat: 2003/02/10_13:53:23 info: Sending Gratuitous Arp for 192.168.85.3 on eth0:0 [eth0]
heartbeat: 2003/02/10_13:53:23 /usr/lib/heartbeat/send_arp eth0 192.168.85.3 00304823BD48 192.168.85.3 ffffffffffff
heartbeat: 2003/02/10_13:53:24 info: Running /etc/ha.d/resource.d/datadisk drbd0 start
heartbeat: 2003/02/10_13:53:24 info: Running /etc/ha.d/resource.d/datadisk drbd1 start
heartbeat: 2003/02/10_13:53:25 info: Running /etc/ha.d/resource.d/mirror start
heartbeat: 2003/02/10_13:53:25 /usr/lib/heartbeat/send_arp eth0 192.168.85.3 00304823BD48 192.168.85.3 ffffffffffff
heartbeat: 2003/02/10_13:53:26 info: Resource acquisition completed.
heartbeat: 2003/02/10_13:53:28 /usr/lib/heartbeat/send_arp eth0 192.168.85.3 00304823BD48 192.168.85.3 ffffffffffff
heartbeat: 2003/02/10_13:53:30 /usr/lib/heartbeat/send_arp eth0 192.168.85.3 00304823BD48 192.168.85.3 ffffffffffff
heartbeat: 2003/02/10_13:53:32 /usr/lib/heartbeat/send_arp eth0 192.168.85.3 00304823BD48 192.168.85.3 ffffffffffff
heartbeat: 2003/02/10_13:53:33 info: Local Resource acquisition completed. (none)
heartbeat: 2003/02/10_13:53:33 info: local resource transition completed.
heartbeat: 2003/02/10_13:56:30 info: Link linuxha2.linux-ha.org:eth1 up.
heartbeat: 2003/02/10_13:56:30 info: Status update for node linuxha2.linux-ha.org: status up
heartbeat: 2003/02/10_13:56:30 info: Running /etc/ha.d/rc.d/status status
heartbeat: 2003/02/10_13:56:30 info: Status update for node linuxha2.linux-ha.org: status active
heartbeat: 2003/02/10_13:56:30 info: remote resource transition completed.
heartbeat: 2003/02/10_13:56:30 info: Running /etc/ha.d/rc.d/status status
heartbeat: 2003/02/10_13:56:31 info: Link linuxha2.linux-ha.org:/dev/ttyS0 up.
NOTA: Seu log pode diferir dependendo de quando você startou o Heartbeat no linuxha2!!! Eu startei o Heartbeat na máquina linuxha2 @13:56:30...
OK, agora tente pingar seu IP do cluster (192.168.85.3 no exemplo). Se isso funcionar, conecte com o ssh nele e verifique se você está na máquina linuxha1. A seguir, assegure que seus serviços estão vinculados ao endereço .3. Abra o Netscape e digite 192.168.85.3 para a URL. Para o Samba, tente mapear o "\\192.168.85.3\test" assumindo que você definiu um compartilhamento chamado "test". Veja os documentos do Samba para avançar. Como um aparte, contudo, você vai desejar usar o parâmetro "netbios name" para ter seu compartilhamento Samba listado sob o nome do cluster e não sob o hostname do membro do seu cluster!
NOTA: Se você não consegue abrir o serviço do endereço IP correspondente e você tem entradas no ha-log similar a isso:
SIOCSIFADDR: No such device
SIOCSIFFLAGS: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBRDADDR: No such device
SIOCSIFFLAGS: No such device
SIOCADDRT: No such device
· Isso pode significar que você precisa ativar o aliasing IP no seu kernel build. Verifique no arquivo /usr/src/linux/.config por "CONFIG_IP_ALIAS=y" se você não tem isso, você terá a linha "CONFIG_IP_ALIAS is not set". Recompile seu kernel com IP aliasing ativado.
Se isso tudo funcionar, você conseguiu disponibilidade. Agora nos deixe ver se nós temos Alta Disponibilidade.
Desligue o linuxha1. Corte a alimentação, mate o Heartbeat, não importa qual seja o apetite que você tem, mas não arranque apenas os cabos serial e eth1 do heartbeat. Se você fizer assim, você terá os serviços rodando em ambos os nós e quando você re-conecta o heartbeat, um grande caos.... Agora pingue no endereço IP do cluster. Aproximadamente entre 5-10 segundos depois ele deve começar a responder novamente. Dê um Telnet novamente e verifique se você está no linuxha2. Se isso acontecer, porém se levar mais de 30 segundos, alguma coisa está errado.
Se você chegar até esse ponto, está funcionando provavelmente, mas você deve verificar provavelmente tudo no seu heartbeats, também. Primeiro, verifique sua serial heartbeat. Retire o cabo crossover da sua NIC eth1 que você está usando para o seu bcast heartbeat. Aguarde em torno de 10 segundos. Agora, olhe no arquivo /var/log/ha-log na maquina linuxha2 e se certifique que não existe uma linha igual a essa:
1999/08/16_12:40:58 node linuxha1.linux-ha.org: is dead
Se você vê isso, sua serial heartbeat não está funcionando e o seu segundo nó deve está assumindo. Para evitar quaisquer problemas, dê um shutdown no Heartbeat no primeiro nó, então teste seu cabo modem nulo. Execute testes na serial acima novamente.
Se seu log está limpo, beleza. Reconecte o cabo crossover. Uma vez isso esteja funcionado, desconecte o cabo serial, aguarde 10 segundos e verifique o log da máquina linuxha2 novamente. Se estiver limpo, congratulações! Se não estiver, você pode verificar o arquivo /var/log/ha-log e /var/log/ha-debug para mais pistas.
Leia aqui documentos complementares:
http://clevitonmendes.blogspot.com/2008/07/um-exemplo-de-alta-disponibilidade-do_7870.html
http://clevitonmendes.blogspot.com/2008/07/alta-disponibilidade-ao-modo-fonebridge.html
> Apêndice A - Construção de Cabo Crossover Ethernet ...