VMware · 4 min read · Dec 01, 2025

Réplication et basculement de machines virtuelles avec VMWare Server et Debian Etch (4.0) - Page 3

4. Configuration du paquet Heartbeat

L’installation du paquet Heartbeat permettra un basculement automatique et une gestion des ressources en cas de défaillance des ressources et/ou du matériel.

Dans ce tutoriel, j’utiliserai Heartbeat sur le réseau, mais il est également possible d’utiliser Heartbeat avec un câble série et d’autres méthodes. Heartbeat vérifiera les mises à jour des deux serveurs, et lorsqu’il ne recevra plus de mises à jour, il initiera un basculement et une prise de contrôle des ressources spécifiées (dans notre cas, DRBD et VMWare).

À MOINS D’INDICATION CONTRAIRE, TOUTES LES COMMANDES SONT EFFECTUÉES SUR LES DEUX SERVEURS

OK, passons à la configuration. Pour votre commodité, vous pouvez utiliser les fichiers de configuration suivants car ils sont adaptés à ce tutoriel. Heartbeat a besoin de 3 fichiers à configurer, à savoir : “ha.cf”, “haresources” et “authkeys”. Modifiez-les en conséquence avec votre éditeur préféré :

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  ## assurez-vous que les deux noms sont accessibles - vérifiez /etc/hosts
node    server2
ping 192.168.0.254  ## Entrez une adresse IP qui est pingable depuis le réseau ETH0 !!
respawn hacluster /usr/lib/heartbeat/ipfail

NOTE : Ce fichier ha.cf permettra un basculement en cas de défaillance de la connexion réseau sur ETH0 et/ou de défaillance générale du serveur. Les problèmes avec ETH1 ne provoqueront PAS de basculement !

Maintenant, nous modifions le fichier “authkeys” :

nano /etc/ha.d/authkeys
auth 3
3 md5 failover  ## c'est juste une chaîne, entrez ce que vous voulez ! auth 3 md5 utilise le chiffrement md5

Mais nous devons également changer les permissions de ce fichier pour qu’il ne soit lisible que par “root” :

chmod 600 /etc/ha.d/authkeys

Et enfin, nous modifions le fichier “haresources” qui contient les ressources de basculement.

nano /etc/ha.d/haresources
server1 192.168.0.10 drbddisk::vm1 Filesystem::/dev/drbd0::/var/vm::ext3 vmstart
# Explication :
# Nom du serveur principal --> adresse IP virtuelle à utiliser --> ressource DRBD comme configuré dans /etc/drbd.conf
# --> où monter la ressource DRBD et le type de système de fichiers --> ressource à démarrer/arrêter en cas de basculement
# la ressource "vmstart" est un script personnalisé nécessaire pour VMWare Server car vous ne pouvez pas laisser heartbeat prendre le contrôle des
# services vmware sinon vous rencontrerez les redoutables erreurs "non configuré pour cette machine" !

Avant d’aller plus loin, nous devrons créer le script personnalisé “vmstart” pour nous assurer que les machines virtuelles sont automatiquement démarrées sur le serveur en cas de basculement. Avec d’autres ressources comme Apache, Mysql, NFS … nous aurions simplement pu supprimer les scripts de démarrage pour eux des répertoires rc.d, mais avec VMWare, cela n’est pas possible car ils sont nécessaires au bon fonctionnement des services. Par conséquent, nous avons besoin d’un script personnalisé pour démarrer les machines virtuelles en cas de basculement puisque les services VMWare seront déjà en cours d’exécution avant le basculement !

Le “vmstart” devra résider dans le dossier “/etc/ha.d/resource.d/“ car c’est là que heartbeat le cherchera.

nano /etc/ha.d/resource.d/vmstart
#!/bin/bash 
case "$1" in 
start) 
/usr/bin/vmware-cmd -s register "/var/vm/'nom de la machine virtuelle'/'fichier de config vm'.vmx" 2>/dev/null
/usr/bin/vmware-cmd "/var/vm/'nom de la machine virtuelle'/'fichier de config vm'.vmx" start 2>/dev/null 
;;
stop) 
/usr/bin/vmware-cmd "/var/vm/'nom de la machine virtuelle'/'fichier de config vm'.vmx" stop trysoft 2> /dev/null 
;;
status) 
if `/usr/bin/vmware-cmd "/var/vm/'nom de la machine virtuelle'/'fichier de config vm'.vmx" getstate 2>/dev/null | grep -q "getstate() = on"` 
then 
echo "en cours d'exécution" 
else 
echo "arrêté" 
fi
;;
*) 
echo "Usage: `basename $0` 'fichier de machine virtuelle' {start|stop|status}" 
echo "Où 'fichier de machine virtuelle' est comme /var/vm/'nom de la machine virtuelle'/'fichier de config vm'.vmx"
;;
esac 
exit 0

Remplissez les directives ‘nom de la machine virtuelle’ et ‘fichier de config vm’ avec les informations nécessaires (vérifiez le répertoire /var/vm). Si vous avez plusieurs machines virtuelles, il vous suffit de copier les lignes.

Ce script personnalisé enregistrera d’abord la machine virtuelle (nécessaire lors de l’utilisation d’un serveur nouvellement installé !) puis les démarrera. Cela doit être fait de cette manière, car VMWare Server n’a que l’option de démarrer automatiquement les VM au démarrage du système. Maintenant que vous avez tout configuré, il est temps de tester si tout va bien. Démarrez le service Heartbeat, d’abord sur le Serveur1, puis sur le Serveur2.

/etc/init.d/heartbeat start

Si tout va bien, vous devriez voir la nouvelle IP virtuelle apparaître sur votre serveur principal.

ifconfig |more

Sortie :

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, si vous vous sentez chanceux et avez suivi ce tutoriel avec un peu de bon sens, il est maintenant temps de débrancher ce cordon d’alimentation, de tenir votre tasse de café et de regarder la machine virtuelle se mettre en ligne sur votre deuxième serveur.

5. Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.