Table des matières
Basculer le cluster d'un noeud à l'autre
Avant d'effectuer une telle manipulation, relire la page d'architecture du cluster pour être sûr de comprendre l'architecture en place.
Arrêt propre d'un hyperviseur
Suivre les procédures de redémarrage (redemarrer-persan ou redemarrer-korat) en s'arrêtant à la partie reboot. Au lieu de redémarrer le serveur, passez-le en mode rescue dans la console Hetzner.
Basculer de maine à coon
Arrêter maine le cas échéant.
Basculer la FIP vers coon, soit par la console Hetzner soit par le script suivant:
curl -u LOGIN https://robot-ws.your-server.de/failover/88.99.233.240 \ -d active_server_ip=94.130.8.3
LOGIN étant l'identifiant de Hetzner, le mot de passe sera demandé en interactif (voir la procédure concernant Pass). Le serveur met plusieurs secondes à répondre.
Sur coon, ajouter les IP virtuelles:
ip addr add 88.99.233.240/32 dev enp0s31f6 ip addr add 192.168.1.254/32 dev virbr0 ip route replace 94.130.8.1 dev enp0s31f6 proto kernel scope link src 88.99.233.240 ip route replace default via 94.130.8.1 dev enp0s31f6 src 88.99.233.240
Toujours sur coon, éditer /etc/firehol/firehol.conf et décommenter la ligne “fip=” et lancer un firehol start
Vérifier l'état de drbd:
# drbd-overview 0:maine/0 Connected Secondary/Primary UpToDate/UpToDate 1:coon/0 Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/coon ext4 1007G 48G 909G 5%
Le partage maine doit être en secondary. Si maine est en panne, l'état est Secondary/Unknown
. Sinon, il doit être Secondary/Primary
.
Passer le partage maine en primaire:
# drbdadm primary maine # drbd-overview 0:maine/0 Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 48G 909G 5% 1:coon/0 Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/coon ext4 1007G 48G 909G 5%
Si on est en Primary, effectuer le montage:
# mount /var/lib/libvirt/maine
Régler les hooks pour l'IPv6 sur coon :
cd /etc/libvirt/hooks # Nettoyage des règles ipv6 avant bascule : /etc/libvirt/hooks/network default stopped end # Changement de script network ln -sf /etc/libvirt/hooks/network-only-coon-running network
Puis activer les VM:
# cd /etc/libvirt/qemu # for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh start $host ; done
Note: cette boucle for doit être faite pour toutes les VM à basculer.
Aller sur dns.cluster.chapril.org :
cd /etc/bind/zones/masters ln -fs /etc/bind/zones/masters/coon-running.include ipv6 ln -fs /etc/bind/zones/masters/coon-running.include-int ipv6-int
Ne pas oublier d'incrémenter le serial sur chapril.org et chapril.org-int et de lancer un rndc reload.
Retour à la normale
Sur coon:
# for host in admin bastion pouet ... ; do virsh shutdown $host ; done; sleep 20; # for host in admin bastion pouet ... ; do virsh destroy $host ; done
Redémarrer maine par la console Hetzner (ça peut prendre 2mn).
Sur coon:
# umount /var/lib/libvirt/maine
Sur maine:
# drbd-overview 0:maine/0 Connected Secondary/Primary UpToDate/UpToDate 1:coon/0 Connected Secondary/Primary UpToDate/UpToDate
On doit être en Secondary/Primary pour le partage maine. Sur coon, passer le partage maine en secondaire et supprimer les interfaces de FIP:
# drbdadm secondary maine # ip addr del 88.99.233.240/32 dev enp0s31f6 # ip addr del 192.168.1.254/32 dev virbr0 # ip route replace default via 94.130.8.1 dev enp0s31f6 src 94.130.8.3 # ip route replace 94.130.8.1 dev enp0s31f6 proto kernel scope link src 94.130.8.3
Sur coon, recommenter la ligne fip= dans /etc/firehol/firehol.conf et lancer firehol start
cd /etc/libvirt/hooks ln -sf /etc/libvirt/hooks/network-maine-coon-running network /etc/libvirt/hooks/network default started begin
Sur maine, passer le partage en primaire, le monter et remettre les interfaces FIP en ligne:
# drbdadm primary maine # mount /var/lib/libvirt/maine # cd /etc/libvirt/qemu # for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh start $host ; done
Basculer la FIP à nouveau sur maine:
curl -u LOGIN https://robot-ws.your-server.de/failover/88.99.233.240 \ -d active_server_ip=94.130.8.2
Aller sur dns.cluster.chapril.org :
cd /etc/bind/zones/masters ln -fs /etc/bind/zones/masters/maine-coon-running.include ipv6 ln -fs /etc/bind/zones/masters/maine-coon-running.include-int ipv6-int
Ne pas oublier d'incrémenter le serial sur chapril.org et chapril.org-int et de lancer un rndc reload.
Arrêt propre d'un hyperviseur
Suivre les procédures de redémarrage (redemarrer-persan ou redemarrer-korat) en s'arrêtant à la partie reboot ici remplacé par halt.
Basculer de coon à maine
Arrêter coon le cas échéant (voir début de cette page).
En théorie, la bascule et l'ajout de la FIP n'est pas nécessaire car maine possède par défaut la FIP.
Vérifier sur maine l'état de drbd:
# drbd-overview 0:maine/0 Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 63G 893G 7% 1:coon/0 Connected Secondary/Primary UpToDate/UpToDate
Le partage coon doit être en secondary. Si coon est en panne, l'état est Secondary/Unknown
. Sinon, il doit être Secondary/Primary
.
Passer le partage coon en primaire:
# drbdadm primary coon # drbd-overview 0:maine/0 Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 63G 893G 7% 1:coon/0 Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 63G 893G 7%
Si on est en Primary, effectuer le montage:
# mount /var/lib/libvirt/coon
cd /etc/libvirt/hooks /etc/libvirt/hooks/network default stopped begin ln -sf /etc/libvirt/hooks/network-only-maine-running network
Puis activer les VM:
# cd /etc/libvirt/qemu # for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh start $host ; done
Note: cette boucle for doit être faite pour toutes les VM à basculer.
Aller sur dns.cluster.chapril.org :
cd /etc/bind/zones/masters ln -fs /etc/bind/zones/masters/maine-running.include ipv6 ln -fs /etc/bind/zones/masters/maine-running.include-int ipv6-int
Ne pas oublier d'incrémenter le serial sur chapril.org et chapril.org-int et de lancer un rndc reload.
Retour à la normale
Sur maine:
# for host in dns lamp mail sympa ... ; do virsh shutdown $host ; done; sleep 20; # for host in dns lamp mail sympa ... ; do virsh destroy $host ; done
Redémarrer coon par la console Hetzner (ça peut prendre 2mn).
Sur maine
# umount /var/lib/libvirt/coon
Sur coon:
# drbd-overview 0:maine/0 Connected Secondary/Primary UpToDate/UpToDate 1:coon/0 Connected Secondary/Primary UpToDate/UpToDate Attendre que ce soit UpToDate, il est possible qu'il synchronise
On doit être en Secondary/Primary pour le partage coon. Sur maine, passer le partage coon en secondaire:
# drbdadm secondary coon
cd /etc/libvirt/hooks ln -sf /etc/libvirt/hooks/network-maine-coon-running network /etc/libvirt/hooks/network default started begin
Sur coon, passer le partage en primaire, le monter et remettre l'interfaces FIP en ligne:
# drbdadm primary coon # mount /var/lib/libvirt/coon # for machine in adl ... ; do virsh start $machine ; done
Aller sur dns.cluster.chapril.org :
cd /etc/bind/zones/masters ln -fs /etc/bind/zones/masters/maine-coon-running.include ipv6 ln -fs /etc/bind/zones/masters/maine-coon-running.include-int ipv6-int
Ne pas oublier d'incrémenter le serial sur chapril.org et chapril.org-int et de lancer un rndc reload.