Dando partida ao Heartbeat e Testando-o :: Admirável Mundo Novo




Muito Bem Vindo

Prezado Leitor, a proposta desse Blog é compartilhar conhecimento com as pessoas que trabalham com Linux, Asterisk, OpenSER, e com tecnologia de voz sobre a rede IP em geral, através de tutoriais, dicas, howto, notícias entre outros assuntos.

Atente para termo de uso do conteúdo do blog no rodapé da página.

segunda-feira, 30 de junho de 2008

Dando partida ao Heartbeat e Testando-o


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 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 ...











Nenhum comentário:




Creative Commons License
Admirável Mundo Novo: Tudo Sobre Asterisk, OpenSER, Linux e Tecnologias de Voz sobre IP
by Cléviton Mendes de Araújo is licensed under a Creative Commons Atribuição 2.5 Brasil License.