Dando Início com Alta Disponibilidade Linux (Heartbeat)


Introdução

Deixem-me dar uma introdução sobre este documento dizendo que ele _não_ é um 
trabalho original. Meu propósito para escrever este documento é somente 
tentar contribuir de alguma maneira a fornecer ajuda aqueles que REALMENTE 
utilizam coisas prontas. O "trabalho" que eu estou contribuindo é, na sua 
maioria, um compilado de bits e pedaços de outros documentos sobre Alta 
Disponibilidade (como o Guia de Instalação de Hardware de Volker Wiegand) em 
um documento que pode ajudar novatos a se iniciarem em um ambiente de Alta 
Disponibilidade sem encher a paciência de Alan (como eu fiz!) e diminuir a 
quantidade de questões repetidas nas listas de discussões.


Iniciando

A primeira coisa que iremos precisar são dois computadores. Você não precisa 
ter hardware idêntico em ambas as máquinas (quantidade de memória, etc.), 
mas se você as tem, tornariam a sua vida mais fácil quando um dos 
componentes falhar.
Agora você tem que decidir alguma implementação. Seu "cluster" está 
estabelecido via um "heartbeat" entre os dois computadores (nodos) gerados 
por um software de mesmo nome. Entretanto, este heartbeat necessita de um ou 
mais caminhos para comunicação (serial via um cable modem, ethernet via cabo 
crossover, etc.) entre os nodos.

Neste ponto, você está pronto para iniciar o sistema. É claro, se você está 
trabalhando com um ambiente de Alta Disponibilidade, irá provavelmente 
desejar evitar principalmente um ponto de falha. Neste caso seria cable 
modem/serial ou uma interface de rede (NIC)/cabo crossover. Então, você 
precisa decidir se vai adicionar um segundo modem serial ou uma segunda NIC 
para a conexão para cada nodo. Veja o Apêndice A para instruções de como 
construir um cabo crossover Categoria 5. Minha configuração do heartbeat 
utiliza um porta serial e uma NIC extra porque eu tinha somente um cable 
modem, tinha uma NIC extra na mão e achei que seria bom ter dois tipos de 
caminhos para os heartbeats.

Uma vez em ordem seu equipamento, deve-se instalar o sistema operacional e 
configurar a rede (eu utilizei o Red Hat). Assumindo que você tenha 2 NICs, 
uma deve ser configurada para sua rede "normal" e a outra como uma rede 
privada entre os nodos do cluster (via cabo crossover). Por exemplo, iremos 
assumir que nosso cluster tem os seguintes endereços:


Nodo 1 (linuxha1):   192.168.85.1  (rede normal 192x)
                     10.0.0.1 (rede privada 10x para o heartbeat)
Nodo 2 (linuxha2):   192.168.85.2  (192x)
                     10.0.0.2  (10x)

Obs:  Nenhum desses endereços deve ser utilizado para ser o endereço do seu 
cluster - o endereço controlado pelo heartbeat é "passado" entre os nodos!

Na maioria das distribuições Unix/Linux isto é fácil de fazer durante a 
instalação, entretanto, se você tiver problemas, procure algum Ethernet 
HOWTO ou a documentação da sua distribuição. Confira sua configuração 
através do comando:

	ifconfig

Isto irá mostrar suas interfaces de rede e as suas configurações. Você pode 
obter informação de roteamento de sua rede com o comando "netstat -nr".

Tenha certeza que voce pode "pingar" ambos os nodos em todas as interfaces.

A seguir, se você estiver usando somente a interface serial, precisará 
testar sua conexão. Em um nodo, que será o receptor, entre com o comando:

	cat < /dev/ttyS0

No outro nodo, entre com:

	echo Ola > /dev/ttyS0


Você deverá ver o texto no nodo receptor. Se isso ocorrer, realize o mesmo 
procedimento, invertendo os nodos. Se isso não ocorrer, pode ser um simples 
problema de arquivo de dispositivo errado. O Guia de Hardware de Alta 
Disponibilidade de Volker e o Serial HOWTO são dois bons recursos para 
resolver problemas com sua conexão serial.


Instalando o Heartbeat

Agora você pode instalar o pacote do heartbeat. Se você está lendo isto, 
você já deve possuí-lo, mas por garantia, ele está disponível em:
	http://linux-ha.org/download

Há os binários RPM no website, ou você pode compilar o heartbeat através do 
código-fonte. Use o arquivo no formato tar (ou instale os fontes RPM). 
Descompacte em seu diretório favorito. Na raiz dessa nova pasta entre com 
"./ConfigureMe configure", seguido de "make" e "make install". Se você tiver 
problemas com a instalação dos pacotes RPM localizados no site e deseje 
fazer por conta própria, pode obter ajuda no FAQ.


Configurando o Heartbeat

Configurando ha.cf


Há três arquivos que você precisará configurar antes de iniciar o Heartbeat. 
O Primeiro é ha.cf. Este estará localizado no diretório /etc/ha.d que é 
criado após a instalação. Ele informa ao Heartbeat quais tipos de caminhos a 
serem usados e como configurá-los. O arquivo ha.cf no diretório fonte contém 
todos os vários tipos de opções que você pode usar, eu irei explicar linha 
por linha...

serial /dev/ttyS0

Usa um heartbeat serial - se você não usar heartbeat serial, deve utilizar 
outro meio, como um heartbeat broadcast (ethernet). Substitua /dev/ttyS0 
pelo arquivo do dispositivo apropriado para o heartbeat serial.

watchdog /dev/watchdog

Opcional. A função watchdog fornece uma maneira de ter um sistema que esteja 
funcionando ainda que minimamente, mas não esteja fornecendo o heartbeat, 
reinicia-se sozinho depois de um minuto estando com problemas. Isto pode 
ajudar a evitar um cenário onde a máquina recupere o heartbeat depois de ter 
anunciado estar "morto" (dead). Se isto acontece e um disco montado falhar, 
você pode ter dois nodos montando um disco simultaneamente. Se você deseja 
usar esta característica, então, você precisará carregar o módulo "softdog" 
do kernel e criar um arquivo para o dispositivo. Para fazer isso, primeiro 
entre com o comando "insmod softdog" para carregar o módulo. Então, entre 
com "grep misc | /pro/devices" e veja o número informado (deve ser 10). Em 
seguida entre com "cat /proc/misc | grep watchdog" e veja o número (deve ser 
130). Agora você pode criar o arquivo do dispositivo com "mknod 
/dev/watchdog c 10 130".

bcast eth1
Especificação para usar um heartbeat broadcast através da interface eth1 
(substitua por eth0, eth2 ou qualquer outra que você quiser utilizar).

keepalive 2
Configura o tempo entre os heartbeats em 2 segundos.

warntime 10
Tempo em segundos antes de escrever um aviso de "heartbeat atrasado" nos 
logs.

deadtime 30
O nodo é considerado morto (inativo) depois de 30 segundos.

initdead 120
Em algumas configurações, a rede espera um tempo para iniciar o serviço 
depois de uma reinicialização. Isto é um "deadtime" separado para controlar 
este caso. Ele deve ao menos ser o dobro do tempo do deadtime normal.

hopfudge 1
Opcional. Para topologias em anel, é o número de saltos permitidos em adição 
ao número de nodos no cluster.

baud 19200
Velocidade de transmissão do canal serial (em bps).

udpport 694
Usa a porta 694 para udp. Está a porta padrão, é o número de porta oficial 
registrado.

nice_failback on
Opcional. Para os que estão familiarizado com Tru64 Unix, o heartbeat atua 
como um "se" em um modo "membro favorecido". O mestre retém todos os 
recursos até ocorrer uma falha que o retire de funcionamento (failover), é, 
então, quando o escravo assume os serviços para si. Uma vez o mestre retorne 
a funcionar, ele retoma tudo novamente. Esta opção evitará que o mestre 
retome os serviços quando retornar a funcionar normalmente.

node linuxha1.linux-ha.org
Obrigatório. Hostname da máquina no cluster de acordo com o descrito no 
comando "uname -n".

node linuxha2.linux-ha.org
Obrigatório. Hostname da máquina no cluster de acordo com o descrito no 
comando "uname -n".

respawn userid cmd
Opcional: Lista um comando a ser gerado e monitorado. Exemplo: para gerar o 
daemon "ccm" a seguinte linha tem que ser adicionada:

respawn hacluster /usr/lib/heartbeat/ccm

Informa ao heartbeat para criar o comando com as credenciais daquele userid 
(hacluster, neste exemplo) e monitorar a saúde do processo, recriando se 
morrer (dead). Para "ipfail", a linha seria:

respawn hacluster /usr/lib/heartbeat/ipfail

OBS: Se o processo morre com código de saída 100, o processo não é criado.

ping ping1.linux.-ha.org ping2.linux2.linux-ha.org
Opcional: Especifica nodos para ping. Estes nodos não são considerados como 
nodos do cluster. Eles são utilizados para verificar a conectividade da rede 
para módulos como ipfail.


Configurando o arquivo haresources

Uma vez configurado o arquivo ha.cf, você precisa configurar o arquivo 
haresources. Este arquivo especifica os serviços para o cluster e quem é o 
mestre padrão.

OBS: ESTE ARQUIVO DEVE SER O MESMO EM AMBOS OS NODOS!

Para o nosso exemplo, iremos assumir que os serviços de alta disponibilidade 
são Apache e Samba.
O endereço IP para o cluster é obrigatório, e não pode ser configurado fora 
do arquivo haresources!

O arquivo haresources precisará da linha:

linuxha1-linux-ha.org 192.168.85.3 httpd smb

Então, esta linha informa que na inicialização, linuxha1 tem que servir o 
endereço IP 192.168.85.3 e iniciar o processo do Apache e do Samba.
Quando o sistema for ser desligado, o heartbeat primeiro para o smb, o 
apache e libera o IP. Isso assumindo que o comando "uname -n" deixou 
"linuxha1.linux-ha.org" somente em "linuxha1".

Obs: httpd e smb são os nomes dos scripts de inicialização para o Apache e o 
Samba, respectivamente.

Heartbeat irá procurar por scripts de inicialização de mesmo nome nos 
seguintes diretórios:

/etc/ha.d/resource.d
/etc/rc.d/init.d

Estes scripts devem iniciar os serviços via "nome_do_script start" e parar 
via "nome_do_script stop". Então você pode utilizar quaisquer serviços se 
estes estiverem de acordo com o padrão.

Se você precisar passar argumentos para um script personalizado, o formato 
deve ser:

nome_do_script::argumento

Então, se adicionarmos um serviço "maid" precisando do argumento "vacuum", 
nossa linha no haresources deveria ser modificada para:

linuxha1.linux-ha.org 192.168.85.3 httpd smb maid::vacuum

Isso nos traz alguma flexibilidade com o endereço de serviço IP. Estamos 
atualmente utilizando uma abreviação. A atual linha pode ser escrita (aqui 
retiramos o maid):

linuxha1 IPaddr::192.168.85.3 httpd smb

Onde IPaddr é o mesmo nome do nosso script de serviço, utilizando o 
argumento 192.168.85.3. Se você der uma olhada no diretório 
/etc/ha.d/resource.d, você encontrará um script chamado IPaddr. Este script 
também permitirá manipular a máscara de rede, endereço de broadcast e 
interface básica deste serviço IP. Para especificar uma sub-rede com 32 
endereços, você pode definir o serviço como (deixando IPAddr de fora, porque 
nós podemos!):

  linuxha1 192.168.85.3/27 httpd smb

Isso configura o endereço do serviço IP para 192.168.85.3, a máscara para 
255.255.255.224 e o endereço de broadcast para 192.168.85.31 (que é o 
endereço mais alto na sub-rede). O último parâmetro que você pode configurar 
é o endereço de broadcast. Para sobrescrever o padrão e configurar para 
192.168.85.16, sua entrada deveria ser:

linuxha1 192.168.85.3/27/192.168.85.16 httpd smb

Você pode estar se perguntando se tudo isso é necessário para você. Depende. 
Se você tiver uma rota de rede estabelecida (independente de heartbeat) para 
os endereços IP dos serviços, com a máscara e endereço de broadcast 
corretos, então não, não é necessário para você. Entretanto, este caso pode 
não estar disponível para todos e é por isso que está aí! Em adição, você 
pode ter mais que uma possível interface que possa ser utilizada para o IP 
do serviço. Continue lendo para ver como o heartbeat lida com isso...
Uma vez que você deixe em ordem seu arquivo haresources, copie ha.cf e 
haresources para /etc/ha.d e você está pronto para iniciar!


Escolhendo uma Interface

Um aspecto importante de configuração do arquivo haresources para uma 
máquina que têm múltiplas interfaces ethernet é saber qual interface o 
heartbeat escolhe para suportar os endereços do serviço que estão 
configurados no haresources. Depois de tudo, nenhuma interface foi 
especificada no arquivo haresources.
Heartbeat assume qual interface será utilizada verificando a tabela de 
roteamento. Ele tenta escolher a rota de menor custo para o endereço IP. No 
caso de empate, ele escolhe a primeira rota encontrada. Para a maioria das 
configurações isto significa que a rota escolhida será a menos utilizada.

Se você não especificar uma máscara de rede para o endereço IP no arquivo 
haresources, a máscara de rede associada com a rota escolhida será a 
utilizada. Do mesmo modo, se uma interface não foi especificada, então o 
endereço ip virtual será adicionado na interface associada com a rota 
selecionada. Se o endereço de broadcast é omitido então o endereço mais alto 
na sub-rede é utilizado.


Configurando o Authkeys

O terceiro arquivo para configurar determina suas chaves de autenticação. Há 
três tipos de métodos de autenticação disponíveis: crc, md5 e sha1. "Bem, 
qual eu deveria usar?", você deve estar se perguntando. Como este documento 
é chamado "Dando Início", iremos mantê-lo simples...

Se seu heartbeat estiver rodando sobre uma rede secura, como em uma rede 
crossover, igual ao nosso exemplo, você desejará utilizar o crc. Este é o 
método que exige menos recursos (processamento). Se a rede é insegura, mas 
você não não está muito paranóico ou está interessado em minimizar os 
recursos de CPU, utilize o md5. Finalmente, se você quer a melhor 
autenticação sem se preocupar com os recursos de CPU, use o sha1. É o mais 
difícil de ser quebrado.

O formato do arquivo é o seguinte:

auth <número>
<número> <método_de_autenticação> [<chave_de_autenticação>]

Então, para sha1, um exemplo em /etc/ha.d/authkeys poderia ser:

auth 1
1 sha1 texto-sendo-qualquer-coisa-para-a-chave

Para md5, você poderia usar o mesmo do anterior, mas trocando "sha1" por 
"md5".

Finalmente, para crc, um exemplo poderia ser:

auth 2
2 crc

Qualquer que seja o índice colocado depois da palavra chave de autenticação 
deve estar localizado abaixo nas chaves listadas no arquivo. Se você colocar 
"auth 4", então aqui deve estar uma linha "4 tipo_de_assinatura" listado 
abaixo.

Tenha certeza que as permissões do arquivo estejam seguras, como 600. E o 
"texto sendo qualquer coisa para a chave" não seja fácil de ser descoberto. 
Há um limite para o número de caracteres que você pode utilizar.

É isso!


Iniciando e Testando o Heartbeat


No Red Hat, ou outras distribuições que use /etc/init.d para encontrar os 
arquivos de inicialização, simplesmente entre com "/etc/init.d/heartbeat 
start" em ambos os nodos. Eu recomendaria iniciar o mestre primeiro 
(linuxha1, no nosso exemplo).
Se você desejar que o heartbeat inicie sozinho na inicialização do sistema, 
o que fazer pode ser diferente em sua distribuição. Você pode precisar 
colocar links para o script de inicialização no diretório nível de 
inicialização apropriado, mas as versões RPM irão fazer isso pra você. Eu 
tenho iniciado o heartbeart com sua prioridade sequencial padrão (75, que 
significa iniciar depois dos serviços 74 e menores e depois dos serviços 
76-99), e termine com a prioridade sequencial padrão (05), importando 
somente os níveis 0(halt), 6(reboot), 3(somente_texto), 5(X).

Então, se você quer fazer isso manualmente, precisará digitar o seguinte 
(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

Da última vez que eu rodei o Slackware, não havia o diretório 
/etc/rc.d/init.d (pode ser que agora tenha) e fez a mesma coisa, eu teria 
colocado em /etc/rc.d/rc.local:

/etc/ha.d/heartbeat start

*** Isto assumindo que você copiou ha.rc para /etc/ha.d/heartbeat. Se você 
não encontrar /etc/rc.d/init.d em sua distribuição e estiver incerto sobre 
como os processos iniciam, você pode usar o método rc.local. Mas se você 
está no seu próprio para desligar, eu simplesmente não me recordo...

Obs: Se você usa a função watchdog, você precisará carregá-lo como módulo na 
inicialização. Você pode colocar o seguinte comando no final do arquivo 
/etc/rc.d/rc.sysinit:

/sbin/insmod softdog

Para o método rc.local, simplesmente coloque a mesma linha onde você inicia 
o heartbeat

Uma vez iniciado o heartbeat, de uma olhada em seu arquivo de log (o padrão 
é /var/log/ha-log) antes de testá-lo. Se estiver tudo detalhadamente, no log 
deve estar descrito algo do tipo:

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.

OBS: Seu log pode ser diferente dependendo de quando você iniciou o 
heartbeat em linuxha2!!! Eu inicie o heartbeat em linuxha2 as @13:56:30...


OK, agora tente pingar o IP do cluster (192.168.85.3 no exemplo). Se ele 
responde, entre como Telnet (ssh) e verifique se você está no linuxha1.
Em seguida, tenha certeza que os serviços disponíveis para o endereço .3 . 
Com o netscape, vá ao endereço 192.168.85.3. Para o Samba tente mapear o 
drive "\\192.168.85.3\teste" assumindo que tem um compartilhamento com o 
nome "teste". Veja a documentação do Samba para saber como fazer. Como de um 
lado, entretanto, você desejará utilizar o parâmetro "netbios name" para ter 
seu compartilhamento Samba listado no nome do cluster e não no hostname de 
seu membro do cluster!

OBS: Se você não conseguir acessar o endereço IP do serviço e encontrar no 
log algo similar a:

SIOCSIFADDR: No such device
SIOCSIFFLAGS: No such device
SIOCSIFNETMASK: No such device
SIOCSIFBRDADDR: No such device
SIOCSIFFLAGS: No such device
SIOCADDRT: No such device

Pode ser que voce precise habilitar IP aliasing no seu kernel (e 
recompilar). Verifique /usr/src/linux/.config para "CONFIG_IP_ALIAS=y", se 
você não tiver, encontrará a linha "CONFIG_IP_ALIAS is not set". Recompile 
seu kernel com IP aliasing habilitado.


Se tudo for feito, você tem disponibilidade. Agora vamos ver se você tem 
Alta Disponibilidade :-)
Derrube linuxha1. Desligue a energia, pare o heartbeat se você tiver 
estômago, mas não remova os cabos seriais e da interface eth1. Se você fizer 
isso, você terá serviços rodando em ambas as máquinas e quando reconectar o 
heartbeat, será um verdadeiro caos...
Agora ping o IP do cluster. Aproximadamente 5-10 segundos depois deverá 
voltar a responder novamente. Entre com Telnet (ou ssh) novamente e 
verifique se você está em linuxha2. Se isso acontecer mas levar mais que 30 
segundos, algo está errado.

Se você obter isso longe, ele provavelmente está trabalhando, mas você deve 
verificar todos os seus heartbeat também.
Primeiro, verifique seu heartbeat serial. Desconecte o cabo crossover de sua 
NIC eth1 que está sendo utilizada para o heartbeat udp. Espere em torno de 
10 segundos.
Agora veja em /var/log/ha-log em linuxha2 e tenha certeza que não há a 
linha:

1999/08/16_12:40:58 node linuxha1.linux-ha.org: is dead

Se você encontrou, seu heartbeat serial não está trabalhando e seu segundo 
nodo está tomando posse. Para evitar este problema, desligue o heartbeat no 
primeiro nodo, então teste seu cabo. Rode a serial e teste novamente.

Se seu log estiver limpo, beleza! Reconecte o cabo crossover. Uma vez feito 
isso, desconecte o cabo serial, espere 10 segundos e verifique o log de 
linuxha2 novamente.
Se estiver limpo, parabéns! Se não, você pode verificar /var/log/ha-log e 
/var/log/ha-debug para mais pistas.

Apêndice A - Construção de um Cabo Crossover

Seu diagrama de cabo deve ser o seguinte:

Conector A	Conector B

Pino # 		Pin #
  1 		  3
  2 		  6
  3 		  1
  6 		  2
  4 		  7
  5 		  8
  7 		  4
  8 		  5



---------------------------------------------------
Rev 1.2.0
(c) 2003 Rudy Pawul
rpawul@iso-ne.com

Tradução: Mauro Alexandre Nogueira (Mandcap) <mauronogueira@pop.com.br>

