Outils pour utilisateurs

Outils du site


admin:procedures:basculer_cluster

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
admin:procedures:basculer_cluster [2026/03/18 07:55] – supprimée - modification externe (Date inconnue) 127.0.0.1admin:procedures:basculer_cluster [2026/03/18 07:55] (Version actuelle) – ↷ Page déplacée de admin_obsolete:procedures:basculer_cluster à admin:procedures:basculer_cluster pitchum
Ligne 1: Ligne 1:
 +====== Basculer le cluster d'un noeud à l'autre ======
 +
 +Avant d'effectuer une telle manipulation, relire [[:admin|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 ([[admin:procedures:redemarrer-persan]] ou [[admin:procedures: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 =====
 +
 +<note important>Documentation obsolète à adapter.
 +Il n'y a plus de DRBD entre les hyperviseurs, il faut donc décrire une procédure pour transférer les volumes LVM de VMs d'un hyperviseur à l'autre.
 +</note>
 +
 +Arrêter //maine// le cas échéant.
 +
 +Basculer la FIP vers //coon//, soit par la console Hetzner soit par le script suivant:
 +
 +<code>
 +curl -u LOGIN https://robot-ws.your-server.de/failover/88.99.233.240 \
 +     -d active_server_ip=94.130.8.3
 +</code>
 +
 +//LOGIN// étant l'identifiant de Hetzner, le mot de passe sera demandé en interactif (voir la procédure concernant [[:admin:procedures:configuration_password_store|Pass]]). Le serveur met plusieurs secondes à répondre.
 +
 +Sur coon, ajouter les IP virtuelles:
 +
 +<code>
 +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
 +</code>
 +
 +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:
 +
 +<code>
 +# drbd-overview 
 + 0:maine/ Connected Secondary/Primary UpToDate/UpToDate 
 + 1:coon/  Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/coon ext4 1007G 48G 909G 5%</code>
 +
 +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:
 +
 +<code>
 +# drbdadm primary maine
 +# drbd-overview 
 + 0:maine/ Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 48G 909G 5%
 + 1:coon/  Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/coon ext4 1007G 48G 909G 5%</code>
 +
 +Si on est en Primary, effectuer le montage:
 +
 +<code>
 +# mount /var/lib/libvirt/maine
 +</code>
 +
 +Régler les hooks pour l'IPv6 sur //coon// :
 +
 +<code>
 +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
 +</code>
 +
 +Puis activer les VM:
 +
 +<code>
 +# cd /etc/libvirt/qemu
 +# for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh start $host ; done
 +</code>
 +
 +**Note:** cette boucle //for// doit être faite pour toutes les VM à basculer.  
 +
 +Aller sur dns.cluster.chapril.org :
 +<code>
 +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
 +</code>
 +
 +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:
 +
 +<code>
 +# for host in admin bastion pouet ... ; do virsh shutdown $host ; done; sleep 20;
 +# for host in admin bastion pouet ... ; do virsh destroy $host ; done
 +</code>
 +
 +Redémarrer maine par la console Hetzner (ça peut prendre 2mn).
 +
 +Sur coon:
 +
 +<code>
 +# umount /var/lib/libvirt/maine
 +</code>
 +
 +Sur maine:
 +
 +<code>
 +# drbd-overview 
 + 0:maine/ Connected Secondary/Primary UpToDate/UpToDate
 + 1:coon/  Connected Secondary/Primary UpToDate/UpToDate
 +</code>
 +
 +On doit être en Secondary/Primary pour le partage //maine// Sur coon, passer le partage //maine// en secondaire et supprimer les interfaces de FIP:
 +
 +<code>
 +# 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
 +</code>
 +
 +Sur //coon//, recommenter la ligne //fip=// dans /etc/firehol/firehol.conf et lancer //firehol start//
 +
 +<code>
 +cd /etc/libvirt/hooks
 +ln -sf /etc/libvirt/hooks/network-maine-coon-running network
 +/etc/libvirt/hooks/network default started begin
 +</code>
 +
 +Sur //maine//, passer le partage en primaire, le monter et remettre les interfaces FIP en ligne:
 +
 +<code>
 +# 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
 +</code>
 +
 +Basculer la FIP à nouveau sur maine: 
 +
 +<code>
 +curl -u LOGIN https://robot-ws.your-server.de/failover/88.99.233.240 \
 +     -d active_server_ip=94.130.8.2
 +</code>
 +
 +Aller sur dns.cluster.chapril.org :
 +<code>
 +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
 +</code>
 +
 +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 ([[admin:procedures:redemarrer-persan]] ou [[admin:procedures: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:
 +
 +<code>
 +# drbd-overview 
 + 0:maine/ Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 63G 893G 7% 
 + 1:coon/  Connected Secondary/Primary UpToDate/UpToDate
 +</code>
 +
 +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:
 +
 +<code>
 +# drbdadm primary coon
 +# drbd-overview 
 + 0:maine/ Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 63G 893G 7% 
 + 1:coon/  Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 63G 893G 7% 
 +</code>
 +
 +Si on est en Primary, effectuer le montage:
 +
 +<code>
 +# mount /var/lib/libvirt/coon
 +</code>
 +
 +<code>
 +cd /etc/libvirt/hooks
 +/etc/libvirt/hooks/network default stopped begin
 +ln -sf /etc/libvirt/hooks/network-only-maine-running network
 +</code>
 +
 +Puis activer les VM:
 +
 +<code>
 +# cd /etc/libvirt/qemu
 +# for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh start $host ; done
 +</code>
 +
 +**Note:** cette boucle //for// doit être faite pour toutes les VM à basculer.  
 +
 +
 +Aller sur dns.cluster.chapril.org :
 +<code>
 +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
 +</code>
 +
 +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:
 +
 +<code>
 +# 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
 +</code>
 +
 +Redémarrer coon par la console Hetzner (ça peut prendre 2mn).
 +
 +Sur maine
 +
 +<code>
 +# umount /var/lib/libvirt/coon
 +</code>
 +
 +Sur coon:
 +
 +<code>
 +# drbd-overview 
 + 0:maine/ Connected Secondary/Primary UpToDate/UpToDate 
 + 1:coon/  Connected Secondary/Primary UpToDate/UpToDate
 +
 +Attendre que ce soit UpToDate, il est possible qu'il synchronise
 +</code>
 +
 +On doit être en Secondary/Primary pour le partage //coon// Sur maine, passer le partage //coon// en secondaire:
 +
 +<code>
 +# drbdadm secondary coon
 +</code>
 +
 +<code>
 +cd /etc/libvirt/hooks
 +ln -sf /etc/libvirt/hooks/network-maine-coon-running network
 +/etc/libvirt/hooks/network default started begin
 +</code>
 +
 +Sur //coon//, passer le partage en primaire, le monter et remettre l'interfaces FIP en ligne:
 +
 +<code>
 +# drbdadm primary coon
 +# mount /var/lib/libvirt/coon
 +# for machine in adl ... ; do virsh start $machine ; done
 +</code>
 +
 +
 +Aller sur dns.cluster.chapril.org :
 +<code>
 +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
 +</code>
 +
 +Ne pas oublier d'incrémenter le serial sur chapril.org et chapril.org-int et de lancer un //rndc reload//.