VMware e Debian · 4 min read · Dec 01, 2025

Replicação e Failover de Máquina Virtual com VMWare Server e Debian Etch (4.0) - Página 3

4. Configurando o pacote Heartbeat

Instalar o pacote Heartbeat permitirá failover automático e gerenciamento de recursos em caso de falha de recurso e/ou hardware.

Neste tutorial, usarei o Heartbeat pela rede, mas também é possível usar o Heartbeat com um cabo serial e outros métodos. O Heartbeat verificará atualizações de ambos os servidores e, ao não receber mais atualizações, iniciará um failover e a tomada de controle dos recursos especificados (neste caso, DRBD e VMWare).

SALVO INDICAÇÃO EM CONTRÁRIO, TODOS OS COMANDOS SÃO FEITOS EM AMBOS OS SERVIDORES

OK, vamos para a configuração. Para sua conveniência, você pode usar os seguintes arquivos de configuração, pois estão adaptados a este tutorial. O Heartbeat precisa de 3 arquivos para ser configurado, a saber: “ha.cf”, “haresources” e “authkeys”. Edite-os de acordo com seu editor favorito:

nano /etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0
keepalive 1
deadtime 10
warntime 10
udpport 694
bcast
eth1
auto_failback off
node    server1  ## certifique-se de que ambos os nomes sejam acessíveis - verifique /etc/hosts
node    server2
ping 192.168.0.254  ## Insira um endereço IP que seja pingável da rede ETH0 !!
respawn hacluster /usr/lib/heartbeat/ipfail

NOTA: Este arquivo ha.cf permitirá failover em caso de falha de Conexão de Rede no ETH0 e/ou falha geral do servidor. Problemas com ETH1 NÃO causarão um failover!

Agora editamos o arquivo “authkeys”:

nano /etc/ha.d/authkeys
auth 3
3 md5 failover  ## isso é apenas uma string, insira o que você quiser! auth 3 md5 usa criptografia md5

Mas também precisamos mudar as permissões deste arquivo para que seja legível apenas por “root”:

chmod 600 /etc/ha.d/authkeys

E por último, editamos o arquivo “haresources” que contém os recursos de failover.

nano /etc/ha.d/haresources
server1 192.168.0.10 drbddisk::vm1 Filesystem::/dev/drbd0::/var/vm::ext3 vmstart
# Explicação:
# Nome do Servidor Primário --> endereço IP virtual a ser usado --> recurso DRBD conforme configurado em /etc/drbd.conf
# --> onde montar o recurso DRBD e o tipo de sistema de arquivos --> recurso a ser iniciado/parado em caso de failover
# o recurso "vmstart" é um script personalizado necessário para o VMWare Server, pois você não pode deixar o heartbeat controlar
# os serviços do vmware ou você encontrará os temidos erros "não configurado para esta máquina"!

Antes de prosseguir, precisaremos criar o script personalizado “vmstart” para garantir que as Máquinas Virtuais sejam iniciadas automaticamente no servidor em caso de failover. Com outros recursos como Apache, Mysql, NFS … poderíamos simplesmente ter removido os scripts de inicialização deles dos diretórios rc.d, mas com o VMWare isso não é possível, pois eles são necessários para o bom funcionamento dos serviços. Portanto, precisamos de um script personalizado para iniciar as Máquinas Virtuais em caso de failover, uma vez que os serviços do VMWare já estarão em execução antes do failover!

O “vmstart” precisará residir na pasta “/etc/ha.d/resource.d/“, pois é onde o heartbeat irá procurá-lo.

nano /etc/ha.d/resource.d/vmstart
#!/bin/bash 
case "$1" in 
start) 
/usr/bin/vmware-cmd -s register "/var/vm/'nome da máquina virtual'/'arquivo de configuração da vm'.vmx" 2>/dev/null
/usr/bin/vmware-cmd "/var/vm/'nome da máquina virtual'/'arquivo de configuração da vm'.vmx" start 2>/dev/null 
;;
stop) 
/usr/bin/vmware-cmd "/var/vm/'nome da máquina virtual'/'arquivo de configuração da vm'.vmx" stop trysoft 2> /dev/null 
;;
status) 
if `/usr/bin/vmware-cmd "/var/vm/'nome da máquina virtual'/'arquivo de configuração da vm'.vmx" getstate 2>/dev/null | grep -q "getstate() = on"` 
then 
echo "running" 
else 
echo "stopped" 
fi
;;
*) 
echo "Uso: `basename $0` 'arquivo da máquina virtual' {start|stop|status}" 
echo "Onde 'arquivo da máquina virtual' é como /var/vm/'nome da máquina virtual'/'arquivo de configuração da vm'.vmx"
;;
esac 
exit 0

Preencha as diretrizes ‘nome da máquina virtual’ e ‘arquivo de configuração da vm’ com as informações necessárias (verifique o diretório /var/vm). Se você tiver várias Máquinas Virtuais, basta copiar as linhas.

Este script personalizado primeiro registrará a Máquina Virtual (necessário ao usar um servidor recém-instalado!) e, em seguida, iniciará elas. Isso deve ser feito dessa forma, uma vez que o VMWare Server só tem a opção de iniciar automaticamente as VMs na inicialização do sistema.
Agora que você configurou tudo, é hora de testar se tudo está OK. Inicie o serviço Heartbeat, primeiro no Server1, depois no Server2.

/etc/init.d/heartbeat start

Se tudo estiver OK, você deve ver o novo IP virtual aparecendo no seu servidor mestre.

ifconfig |more

Saída:

eth0 Link encap:Ethernet  HWaddr 00:11:09:00:BB:5D  
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0  
          inet6 addr: fe80::211:9ff:fe00:bb5d/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:1025774 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:227653 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:281072399 (268.0 MiB)  TX bytes:56403081 (53.7 MiB)  
eth0:0    Link encap:Ethernet  HWaddr 00:11:09:00:BB:5D  
          inet addr:192.168.0.10  Bcast:192.168.0.255  Mask:255.255.255.0  
          ...

Ok, se você está se sentindo sortudo e seguiu este tutorial com um pouco de bom senso, então agora é hora de puxar aquele cabo de energia, segurar sua xícara de café e assistir a Máquina Virtual entrar online no seu segundo servidor.

5. Links

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.