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
Prochaine révisionLes deux révisions suivantes
admin:procedures:basculer_cluster [2018/05/05 13:19] – draft version maine -> coon rhadmin:procedures:basculer_cluster [2018/05/06 13:35] qgibeaux
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-maine]] ou [[:admin:procedures:redemarrer-coon]]) en s'arrêtant à la partie //reboot//. Au lieu de redémarrer le serveurpassez-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: +
- +
-<code> +
-umount /var/lib/libvirt/virola +
-drbdadm disconnect calamus +
-drbdadm secondary virola +
-drbdadm disconnect virola +
-</code> +
- +
-Puis enfinarrêter la machine.+
 ===== Basculer de maine à coon ===== ===== Basculer de maine à coon =====
  
Ligne 29: Ligne 13:
  
 <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 23:
 <code> <code>
 ip addr add  88.99.233.240/32 dev enp0s31f6 ip addr add  88.99.233.240/32 dev enp0s31f6
-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 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> </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 42:
 <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 50:
 <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 begin 
 +# Changement de script network
 +ln -sf /etc/libvirt/hooks/network-only-coon-running network
 </code> </code>
  
Ligne 90: Ligne 76:
  
 <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 91:
  
 <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 101:
 # 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.
 +# ip addr add  192.168.1.254/32 dev virbr0 
 +</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 119:
 <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>
  
 +===== Arrêt propre d'un hyperviseur =====
  
-===== Basculer de calamus à virola =====+Suivre les procédures de redémarrage ([[:admin:procedures:redemarrer-maine]] ou [[:admin:procedures:redemarrer-coon]]) en s'arrêtant à la partie //reboot// ici remplacé par //halt//.
  
-Arrêter //calamus// le cas échéant (voir début de cette page).+===== Basculer de coon à maine =====
  
-En théorie, la bascule et l'ajout des VIP n'est pas nécessaire car virola possède par défaut les VIP.+Arrêter //coon// le cas échéant (voir début de cette page).
  
-Vérifier sur //virola// l'état de drbd:+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 163:
  
 <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 176:
 <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>
  
Ligne 193: Ligne 184:
 ==== 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>
  
  
  
- 
-===== Autres procédures DRBD ===== 
- 
-Voir [[[:sysadm:procedures:Procédures relatives à DRBD]]. 
admin/procedures/basculer_cluster.txt · Dernière modification : 2024/03/11 08:43 de 34.70.224.243