====== 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 ===== 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 [[:admin:procedures:configuration_password_store|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 ([[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: # 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//.