Outils pour utilisateurs

Outils du site


admin:procedures:basculer_cluster

Ceci est une ancienne révision du document !


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

Arrêter les guests par virt-manager ou virsh. Par exemple pour arrêter virola:

cd /etc/libvirt/qemu
for host in $(ls *xml | sed -e 's/.xml//g') ; do virsh destroy $host ; done

Déconnecter les volumes DRBD:

umount /var/lib/libvirt/virola
drbdadm disconnect calamus
drbdadm secondary virola
drbdadm disconnect virola

Puis enfin, arrêter la machine.

Basculer de virola à calamus

Arrêter virola le cas échéant.

Basculer la VIP vers calamus, soit par la console online soit par le script suivant:

curl -X POST \
     -H "Authorization: Bearer XXX" \
     -H "X-Pretty-JSON: 1" \
     -d 'source=195.154.56.24&destination=62.210.101.106' \
     "https://api.online.net/api/v1/server/failover/edit"

XXX étant le token de l'API (voir le Keepass).

Sur calamus, ajouter les IP virtuelles:

ip addr add 195.154.56.24/32 dev br0
ip addr add 172.16.0.250/32 dev br1

Vérifier l'état de drbd:

# cat /proc/drbd
  version: 8.4.3 (api:1/proto:86-101)
  srcversion: 1A9F77B1CA5FF92235C2213 
   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:1 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

Le partage 0 (virola) doit être en secondary. Si virola est en panne, l'état est Secondary/Unknown. Sinon, il doit être Secondary/Primary.

Passer le partage virola en primaire:

# drbdadm primary virola
# cat /proc/drbd
   version: 8.4.3 (api:1/proto:86-101)
   srcversion: 1A9F77B1CA5FF92235C2213 
    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:1 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

Si on est en Primary, effectuer le montage:

# mount /dev/drbd0

Puis activer les VM:

# cd /etc/libvirt/qemu
# for machine in bastion admin dns ...
do
  virsh define $machine.xml
  virsh start $machine
done

Note: cette boucle for doit être faite pour toutes les VM à basculer.

Sur galanga, redémarrer le VPN qui doit être perdu si on a migré la VM bastion:

# /etc/init.d/openvpn restart

Retour à la normale

Sur calamus:

# for machine in bastion admin dns ... ; do virsh shutdown $machine ; done

Redémarrer virola par la console Online (ça peut prendre 2mn).

Sur calamus:

# umount /dev/drbd0

Sur virola:

# cat /proc/drbd 
  version: 8.4.3 (api:1/proto:86-101)
  srcversion: 1A9F77B1CA5FF92235C2213 
   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:1 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

On doit être en Secondary/Primary pour le partage 0. Sur calamus, passer le partage virola en secondaire et supprimer les interfaces de VIP:

# drbdadm secondary virola
# ip addr del 195.154.56.24/32 dev br0
# ip addr del 172.16.0.250/32 dev br1

Sur virola, passer le partage en primaire, le monter et remettre les interfaces VIP en ligne:

# drbdadm primary virola
# mount /dev/drbd0
# for machine in bastion admin dns ... ; do virsh start $machine ; done
# ip addr add 195.154.56.24/32 dev br0
# ip addr add 172.16.0.250/32 dev br1

Basculer la VIP à nouveau sur virola:

# curl -X POST \
     -H "Authorization: Bearer xxx" \
     -H "X-Pretty-JSON: 1" \
     -d 'source=195.154.56.24&destination=62.210.101.52' \
     "https://api.online.net/api/v1/server/failover/edit"

Et si la VM bastion a été migrée, se rendre sur galanga et relancer le VPN:

# /etc/init.d/openvpn restart

Basculer de calamus à virola

Arrêter calamus le cas échéant (voir début de cette page).

En théorie, la bascule et l'ajout des VIP n'est pas nécessaire car virola possède par défaut les VIP.

Vérifier sur virola l'état de drbd:

# cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
srcversion: 1A9F77B1CA5FF92235C2213 
 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

Le partage 1 (calamus) doit être en secondary. Si calamus est en panne, l'état est Secondary/Unknown. Sinon, il doit être Secondary/Primary.

Passer le partage calamus en primaire:

# drbdadm primary calamus
# cat /proc/drbd
version: 8.4.3 (api:1/proto:86-101)
srcversion: 1A9F77B1CA5FF92235C2213 
 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

Si on est en Primary, effectuer le montage:

# mount /dev/drbd1

Puis activer les VM:

# cd /etc/libvirt/qemu
# for machine in adl ...
do
  virsh define $machine.xml
  virsh start $machine
done

Note: cette boucle for doit être faite pour toutes les VM à basculer.

Retour à la normale

Sur virola:

# for machine in adl ... ; do virsh shutdown $machine ; done

Redémarrer calamus par la console Online (ça peut prendre 2mn).

Sur virola:

# umount /dev/drbd1

Sur calamus:

# cat /proc/drbd 
  version: 8.4.3 (api:1/proto:86-101)
  srcversion: 1A9F77B1CA5FF92235C2213 
   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:1 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

On doit être en Secondary/Primary pour le partage 1. Sur virola, passer le partage calamus en secondaire:

# drbdadm secondary calamus

Sur calamus, passer le partage en primaire, le monter et remettre les interfaces VIP en ligne:

# drbdadm primary calamus
# mount /dev/drbd1
# for machine in adl ... ; do virsh start $machine ; done

Et si la VM bastion a été migrée, se rendre sur galanga et relancer le VPN:

# /etc/init.d/openvpn restart

Autres procédures DRBD

admin/procedures/basculer_cluster.1525523183.txt.gz · Dernière modification : 2018/05/05 12:26 de rh