Forum Français

Reply
Highlighted

Mise à jour d'un cluster VSX : Nouvelle fonction "vsx software-update"

Avec l'arrivée de la 10.02, une nouvelle fonction liée au mécanisme VSX est également apparu : "vsx software-update"

 

Cette fonction permet de mettre à jour un cluster VSX en initiant l'operation uniquement à partir du switch primaire, ce dernier orchestrant l'ensemble de l'opération, de manière à réaliser une mise globale avec le minimum d'impact possible.

 

Le principe est le suivant :

 

L'administrateur passe une commande très simple sur le VSX Primary, permettant de télécharger le nouveau code a partir d'un serveur distant, et d'initier le process de mise à jour du cluster:

 

Switch(config)#vsx software-update <remote_server>/<version_firmware_cible> vrf <votre_vrf>

A partir de ce moment, le process de mise à jour du cluster est lancé :

 

Le primaire demande si vous souhaitez sauvegarder la configuration. Si vous repondez "Yes", un "write memory" est effectué sur les 2 peers du cluster.

 

Ensuite, l'image est téléchargée par les 2 équipements :

 

Screenshot 2019-02-01 at 06.34.26.png

 

Ce n'est pas le primaire qui télécharge et fait une copie sur le secondaire. Ce sont bien les 2 équipements qui téléchargent le code de manière simultanée.

 

Screenshot 2019-02-01 at 06.36.18.png

 

La nouvelle image est toujours installée dans l'image alternative a celle utilisée. Par exemple, si vous avez booté en Primary, alors l'image sera installée sur la Secondary.

 

Une fois le code téléchargé sur les 2 équipements, le primaire envoie l'instruction au secondaire de redémarrer :

Screenshot 2019-02-01 at 06.40.47.png

Le statut de l'ISL passe donc à "Down", et si on regarde de plus près les évènements :

- Redemarrage du secondaire, vu du Primaire :

Screenshot 2019-02-01 at 06.45.22.png

 

- Redemarrage du secondaire, vu du Secondaire :

Screenshot 2019-02-01 at 06.47.51.png

- ISL status passant a "Down"

Screenshot 2019-02-01 at 06.45.13.png

 

Dans l'hypothèse où la mise à jour du secondaire venait à mal se passer, alors tout le process de mise à jour du cluster serait interrompu.

 

Une fois la mise à jour sur le secondaire réalisée, que son statut est opérationnel et que VSX est correctement remonté, une synchronisation VSX est réalisée, de manière à garantir que le secondaire, lorsqu'il va reprendre son rôle, est bien à jour en termes de configuration, mais également de tables (ARP, MAC, etc...), permettant alors de garantir le niveau de résilience attendue d'un cluster VSX.

Lorsque cette synchronisation est terminée, alors le primaire redémarre à son tour - Tant que le secondaire n'a pas retrouvé un état "forwarding", alors le primaire ne redémarre pas.

 

Screenshot 2019-02-01 at 06.45.34.png

Cette copie d'écran montre le dernier état avant le redémarrage du primaire lorsque l'on est connecté via SSH.

Si on est connecté en console, on trouve un autre type d'information :

Screenshot 2019-02-01 at 19.09.06.png

Si on regarde de plus près les évènements :

Screenshot 2019-02-01 at 06.51.51.png

 

Nous voyons bien ici le statut du primaire à : "Reboot started"

Le secondaire reprend donc la main pour l'ensemble des rôles, et traite l'ensemble du trafic, en attendant que le primaire ait fini de redémarrer et soit à jour.

 

Une fois le primaire redémarré, le process de mise à jour est terminé et le cluster VSX reformé et opérationnel.

 

Voici un schema recapitulatif de l'ensemble de phases :

Screenshot 2019-02-04 at 06.40.21.png

(Merci à Vincent Giles)

 

Nous avons donc maintenant une procédure de mise à jour d'un cluster VSX extrêmement simple à utiliser, permettant au switch primaire d'orchestrer l'ensemble du process, et sans impact majeur sur l'environnement réseau, puisque ce mécanisme permet d'attendre les bascules avant de redémarrer un des équipements, garantissant ainsi une mise à jour encore plus transparente, et le tout en conservant toujours cette très haute résilience liée aux 2 plans de contrôle distincts d'un cluster VSX.

 

Search Airheads
cancel
Showing results for 
Search instead for 
Did you mean: