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.cflogfile /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/ipfailNOTA: 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/authkeysauth 3
3 md5 failover ## isso é apenas uma string, insira o que você quiser! auth 3 md5 usa criptografia md5Mas também precisamos mudar as permissões deste arquivo para que seja legível apenas por “root”:
chmod 600 /etc/ha.d/authkeysE por último, editamos o arquivo “haresources” que contém os recursos de failover.
nano /etc/ha.d/haresourcesserver1 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 0Preencha 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 startSe tudo estiver OK, você deve ver o novo IP virtual aparecendo no seu servidor mestre.
ifconfig |moreSaí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
- Debian: http://www.debian.org
- O Projeto de Alta Disponibilidade Linux: http://www.linux-ha.org
- DRBD: http://www.drbd.org
- VMware Server: http://www.vmware.com/products/server
- Diretório de Appliance VMware http://www.vmware.com/vmtn/appliances/
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.