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
Prochaine révision
Révision précédente
admin:procedures:basculer_cluster [2018/05/05 13:19] – draft version maine -> coon rhadmin:procedures:basculer_cluster [2025/07/31 07:50] (Version actuelle) – Add warning for obsolesence pitchum
Ligne 1: Ligne 1:
 ====== Basculer le cluster d'un noeud à l'autre ====== ====== Basculer le cluster d'un noeud à l'autre ======
  
-Avant d'effectuer une telle manipulation, relire [[:sysadm:architecture_du_cluster|la page d'architecture du cluster]] pour être sûr de comprendre l'architecture en place.+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 ===== ===== Arrêt propre d'un hyperviseur =====
  
-Arrêter les guests par virt-manager ou virsh.  Par exemple pour arrêter virola:+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.
  
-<code> 
-cd /etc/libvirt/qemu 
-for host in $(ls *xml | sed -e 's/.xml//g') ; do virsh destroy $host ; done 
-</code> 
  
-Déconnecter les volumes DRBD:+===== Basculer de maine à coon =====
  
-<code+<note important>Documentation obsolète à adapter. 
-umount /var/lib/libvirt/virola +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. 
-drbdadm disconnect calamus +</note>
-drbdadm secondary virola +
-drbdadm disconnect virola +
-</code> +
- +
-Puis enfin, arrêter la machine. +
-===== Basculer de maine à coon =====+
  
 Arrêter //maine// le cas échéant. Arrêter //maine// le cas échéant.
Ligne 29: Ligne 19:
  
 <code> <code>
-curl -u LOGIN:PASSWORD https://robot-ws.your-server.de/failover/88.99.233.240 \+curl -u LOGIN https://robot-ws.your-server.de/failover/88.99.233.240 \
      -d active_server_ip=94.130.8.3      -d active_server_ip=94.130.8.3
 </code> </code>
  
-//LOGIN// et //PASSWORD// étant les identifiants de Hetzner (voir la procédure concernant [[:admin:procedures:configuration_password_store|Pass]]).+//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: Sur coon, ajouter les IP virtuelles:
Ligne 39: Ligne 29:
 <code> <code>
 ip addr add  88.99.233.240/32 dev enp0s31f6 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 ip route replace default via 94.130.8.1 dev enp0s31f6 src 88.99.233.240
-ip route replace 94.130.8.1 dev enp0s31f6 proto kernel scope link src 88.99.233.240 
 </code> </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: Vérifier l'état de drbd:
  
 <code> <code>
-cat /proc/drbd +# drbd-overview  
-  version8.4.3 (api:1/proto:86-101) + 0:maine/ Connected Secondary/Primary UpToDate/UpToDate  
-  srcversion: 1A9F77B1CA5FF92235C2213  + 1:coon/0   Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/coon ext4 1007G 48G 909G 5%</code>
-   0: cs:WFConnection ro:Secondary/Unknown ds:UpToDate/DUnknown C r----- +
-      ns:5074552 nr:13482320 dw:563214048 dr:5241965 al:35 bm:32386 lo:0 pe:0 ua:0 ap:0 ep:wo:f oos:0 +
-   1: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r----- +
-      ns:524873904 nr:0 dw:8347412 dr:516529269 al:2162 bm:32000 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0 +
-</code>+
  
 Le partage //maine// doit être en secondary.  Si //maine// est en panne, l'état est ''Secondary/Unknown'' Sinon, il doit être ''Secondary/Primary''. Le partage //maine// doit être en secondary.  Si //maine// est en panne, l'état est ''Secondary/Unknown'' Sinon, il doit être ''Secondary/Primary''.
Ligne 61: Ligne 49:
 <code> <code>
 # drbdadm primary maine # drbdadm primary maine
-cat /proc/drbd +# drbd-overview  
-   version8.4.3 (api:1/proto:86-101) + 0:maine/0  Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 48G 909G 5% 
-   srcversion: 1A9F77B1CA5FF92235C2213  + 1:coon/  Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/coon ext4 1007G 48G 909G 5%</code>
-    0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r----- +
-       ns:5074552 nr:13482320 dw:563214048 dr:5242877 al:35 bm:32386 lo:0 pe:0 ua:0 ap:0 ep:wo:f oos:0 +
-    1: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r----- +
-       ns:524873904 nr:0 dw:8347412 dr:516529269 al:2162 bm:32000 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0 +
-</code>+
  
 Si on est en Primary, effectuer le montage: Si on est en Primary, effectuer le montage:
Ligne 74: Ligne 57:
 <code> <code>
 # mount /var/lib/libvirt/maine # 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> </code>
  
Ligne 84: Ligne 77:
  
 **Note:** cette boucle //for// doit être faite pour toutes les VM à basculer.   **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 ==== ==== Retour à la normale ====
Ligne 90: Ligne 92:
  
 <code> <code>
-# for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh shutdown $host ; done+# 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> </code>
  
Ligne 104: Ligne 107:
  
 <code> <code>
-cat /proc/drbd  +# drbd-overview  
-  version8.4.3 (api:1/proto:86-101) + 0:maine/ Connected Secondary/Primary UpToDate/UpToDate 
-  srcversion: 1A9F77B1CA5FF92235C2213  + 1:coon/0   Connected Secondary/Primary UpToDate/UpToDate
-   0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----- +
-      ns:0 nr:5066780 dw:5066780 dr:0 al:0 bm:407 lo:0 pe:0 ua:0 ap:0 ep:wo:f oos:0 +
-   1: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----- +
-      ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0+
 </code> </code>
  
Ligne 118: Ligne 117:
 # drbdadm secondary maine # drbdadm secondary maine
 # ip addr del  88.99.233.240/32 dev enp0s31f6 # ip addr del  88.99.233.240/32 dev enp0s31f6
-# ip route replace default via 94.130.8.1 dev enp0s31f6 src 94.130.8.2 +# ip addr del  192.168.1.254/32 dev virbr0 
-# ip route replace 94.130.8.1 dev enp0s31f6 proto kernel scope link src 94.130.8.2+# 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.
 +</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> </code>
  
Ligne 126: Ligne 134:
 <code> <code>
 # drbdadm primary maine # drbdadm primary maine
-umount /var/lib/libvirt/maine +mount /var/lib/libvirt/maine 
-# for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh shutdown $host ; done+# cd /etc/libvirt/qemu 
 +# for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh start $host ; done
 </code> </code>
  
-Basculer la VIP à nouveau sur virola+Basculer la FIP à nouveau sur maine
  
 <code> <code>
-curl -u LOGIN:PASSWORD https://robot-ws.your-server.de/failover/88.99.233.240 \+curl -u LOGIN https://robot-ws.your-server.de/failover/88.99.233.240 \
      -d active_server_ip=94.130.8.2      -d active_server_ip=94.130.8.2
 </code> </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>
  
-===== Basculer de calamus à virola =====+Ne pas oublier d'incrémenter le serial sur chapril.org et chapril.org-int et de lancer un //rndc reload//.
  
-Arrêter //calamus// le cas échéant (voir début de cette page).+===== Arrêt propre d'un hyperviseur =====
  
-En théorie, la bascule et l'ajout des VIP n'est pas nécessaire car virola possède par défaut les VIP.+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//.
  
-Vérifier sur //virola// l'état de drbd:+===== 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> <code>
-cat /proc/drbd +# drbd-overview  
-version8.4.3 (api:1/proto:86-101) + 0:maine/0  Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 63G 893G 7%  
-srcversion: 1A9F77B1CA5FF92235C2213  + 1:coon/  Connected Secondary/Primary UpToDate/UpToDate
- 0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r----- +
-    ns:574528 nr:5066780 dw:5646932 dr:2439761 al:168 bm:407 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:3960 +
- 1: cs:WFConnection ro:Secondary/Unknown ds:UpToDate/DUnknown C r----- +
-    ns:0 nr:4950536 dw:4950536 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0+
 </code> </code>
  
-Le partage //1// (//calamus//doit être en secondary.  Si //calamus// est en panne, l'état est ''Secondary/Unknown'' Sinon, il doit être ''Secondary/Primary''.+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 //calamus// en primaire:+Passer le partage //coon// en primaire:
  
 <code> <code>
-# drbdadm primary calamus +# drbdadm primary coon 
-cat /proc/drbd +# drbd-overview  
-version8.4.3 (api:1/proto:86-101) + 0:maine/0  Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 63G 893G 7%  
-srcversion: 1A9F77B1CA5FF92235C2213  + 1:coon/  Connected Primary/Secondary UpToDate/UpToDate /var/lib/libvirt/maine ext4 1007G 63G 893G 7% 
- 0: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r----- +
-    ns:574528 nr:5066780 dw:5647340 dr:2439761 al:168 bm:407 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:4248 +
- 1: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r----- +
-    ns:0 nr:4950536 dw:4950536 dr:912 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0+
 </code> </code>
  
Ligne 174: Ligne 187:
  
 <code> <code>
-# mount /dev/drbd1+# 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> </code>
  
Ligne 181: Ligne 200:
 <code> <code>
 # cd /etc/libvirt/qemu # cd /etc/libvirt/qemu
-# for machine in adl ... +# for host in $(ls *xml | sed -e 's/.xml//g'| grep -v modele) ; do virsh start $host ; done
-do +
-  virsh define $machine.xml +
-  virsh start $machine +
-done+
 </code> </code>
  
 **Note:** cette boucle //for// doit être faite pour toutes les VM à basculer.   **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 ==== ==== Retour à la normale ====
  
-Sur virola:+Sur maine:
  
 <code> <code>
-# for machine in adl ... ; do virsh shutdown $machine ; done+# 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> </code>
  
-Redémarrer calamus par la console Online (ça peut prendre 2mn).+Redémarrer coon par la console Hetzner (ça peut prendre 2mn).
  
-Sur virola:+Sur maine
  
 <code> <code>
-# umount /dev/drbd1+# umount /var/lib/libvirt/coon
 </code> </code>
  
-Sur calamus:+Sur coon:
  
 <code> <code>
-cat /proc/drbd  +# drbd-overview  
-  version8.4.3 (api:1/proto:86-101) + 0:maine/ Connected Secondary/Primary UpToDate/UpToDate  
-  srcversion: 1A9F77B1CA5FF92235C2213  + 1:coon/0   Connected Secondary/Primary UpToDate/UpToDate 
-   0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----- + 
-      ns:0 nr:5066780 dw:5066780 dr:0 al:0 bm:407 lo:0 pe:0 ua:0 ap:0 ep:wo:f oos:0 +Attendre que ce soit UpToDate, il est possible qu'il synchronise
-   1: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r----- +
-      ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0+
 </code> </code>
  
-On doit être en Secondary/Primary pour le partage //1//.  Sur virola, passer le partage //calamus// en secondaire:+On doit être en Secondary/Primary pour le partage //coon//.  Sur maine, passer le partage //coon// en secondaire:
  
 <code> <code>
-# drbdadm secondary calamus+# drbdadm secondary coon
 </code> </code>
- 
-Sur //calamus//, passer le partage en primaire, le monter et remettre les interfaces VIP en ligne: 
  
 <code> <code>
-# drbdadm primary calamus +cd /etc/libvirt/hooks 
-# mount /dev/drbd1 +ln -sf /etc/libvirt/hooks/network-maine-coon-running network 
-# for machine in adl ... ; do virsh start $machine ; done+/etc/libvirt/hooks/network default started begin
 </code> </code>
  
-Et si la VM //bastion// a été migréese rendre sur galanga et relancer le VPN:+Sur //coon//, passer le partage en primaire, le monter et remettre l'interfaces FIP en ligne:
  
 <code> <code>
-# /etc/init.d/openvpn restart+drbdadm primary coon 
 +# mount /var/lib/libvirt/coon 
 +# for machine in adl ... ; do virsh start $machine ; done
 </code> </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//.
  
-===== Autres procédures DRBD ===== 
- 
-Voir [[[:sysadm:procedures:Procédures relatives à DRBD]]. 
admin/procedures/basculer_cluster.1525526341.txt.gz · Dernière modification : 2018/05/05 13:19 de rh