Scripts de gestion des chemins FC sous ESXi avec VPlex

English sum-up :
Some shell scripts to statically select a preferred path within all FC paths availables on an ESXi connected via VPlex metro.

MAJ 30 Novembre 2014 : quelques corrections de bug dans les scripts (test de connexion notamment).

Je vous en avais parlé il y a quelques mois (voir ce billet), nous n’utilisons pas – encore – PowerPath VE pour nos serveurs ESXi et nous travaillons donc avec le MPIO intégré en mode “Fixed/Preferred” de VMWare. Pour le coup, cela nous oblige à sélectionner “à la main” des chemins préférés correspondant bien au cluster local de chaque ESXi dans notre infra VPlex Metro. Pour plus de précision à ce sujet, je vous renvoie une seconde fois au billet précédent sur ce sujet.

Nos scripts historiques étaient certes très précis et fonctionnaient bien, mais il leur manquait une qualité importante : la vitesse ! En effet, pour parcourir l’ensemble des devices FC d’un ESXi, vérifier les chemins préférés et les modifier éventuellement, cela prenait du temps… beaucoup de temps, via les commandes esxcfg-XXX et esxcli. Désormais, il n’est pas rare d’avoir, pour un ESXi donné, quasiment une centaine de devices différents. Au final, cela représentait des heures de parcours sur l’ensemble de nos machines.

Il fallait accélérer tout cela et c’est désormais chose faite ! Vous allez le voir dans la suite, les nouveaux “turbo-scripts” sont beaucoup plus rapides (une à deux minutes par serveur disposant de plusieurs dizaines de device), mais il a fallut sacrifier un peu les tests préalables et l’inspection de chaque device, l’un après l’autre. La nouvelle méthode traite tous les devices en une seule fois, sans vérifier si toutes les commandes sont couronnées de succès. Ceci étant, l’expérience nous a montré que dans l’ensemble, toute cette mécanique fonctionnait globalement très bien et de manière fiable. La confiance aidant, voici donc le résultat : des scripts simples, efficaces, rapides et directement “publiables” sur ce blog car extrèmement génériques (contrairement aux précédents).

L’objectif est donc de forcer un chemin préféré sur l’ensemble des devices d’un ESXi qui pointent vers un directeur précis de notre VPlex (on peut l’utiliser pour tout autre chose que VPlex ceci dit !). Ces scripts sont exécutés, chez nous, sur une appliance “VMA” 5.5 disposant de toutes les fonctions et commandes nécessaires. Nous n’utilisons que 3 commandes : esxcfg-scsidevs, esxcfg-mpath et esxcli .

Le script principal effectue en une seule passe la modification de l’ensemble des chemins FC du serveur ESXi via 3 étapes. En entrée il faut indiquer l’ip ou le FQDN de la machine cible ainsi que le WWN de la cible SCSI à “préférer”. Pour un VPlex “mono-engine” en Metro-Cluster avec du cross-connect, chaque device FC connecté dispose potentiellement de 8 chemins différents (2 par directeur, donc 4 par engine). Par exemple dans notre cas :

Vous noterez que les 8 cibles se terminent par les WWN des différents directeurs du VPlex :
50001442800c3300
50001442900c3300
50001442900c3301
50001442800c3301
50001442900e2800
50001442800e2800
50001442900e2801
50001442800e2801

Il faut donc indiquer au script quel WWN, parmi cette liste, doit devenir la cible préférée des devices de l’ESXi. Voici donc les 3 étapes en question :
1. On récupère la liste des devices et surtout de leur identifiant unique “naa.XXXXXXXXXXX”
2. On récupère la liste des chemins SCSI détectés par le module MPIO de l’ESXi
3. On parcours l’ensemble des devices (par identifiant) et on isole les chemins correspondants au WWN cible
4. On modifie le chemin par défaut en conséquence

Mais, trève de blabla :

Au final, ce script produit une sortie de ce type :

Vous noterez que le forçage des quelques 47 device s’est fait en moins de 20 secondes. A titre de comparaison, nos précédents scripts réalisaient tout cela en plus de 15 minutes… Bien entendu, le script ne vérifie pas si ses actions on réellement porté leurs fruits, mais par sécurité, on peut passer un script (un peu plus long) qui va vérifier que tous les chemins préférés on bien été modifiés comme il se doit. Le voici (il ressemble beaucoup au premier) :

En sortie, on obtient un listing du style :

A votre disposition pour des détails ou précisions au sujet de ces outils, comme toujours !

4 thoughts on “Scripts de gestion des chemins FC sous ESXi avec VPlex

  1. Gaël says:

    Nous avons le même type de script mais nous utilisons powershell. Il faut que je vérifie le temps d’exécution pour voir la différence entre du powercli et de l’esxcli.

    • Rémy says:

      Bonjour,
      Les scripts ci-dessus sont très intéressant. Je souhaites faire la même chose mais sous Powershell. Peut-être existe t’il déjà une traduction ?
      Merci pour le retour.

      • Bonjour,

        Je réponds un peu en retard mais on ne sait jamais ça pourrai aider d’autres personnes…

        J’ai publié un module powershell pour gérer les chemins préférés entre des ESXi et des datastores présenté par un VPLEX. Les sources sont dispo sur github (https://github.com/equelin/VPLEX-Powershell) et vous trouverez quelques exemples de script là (https://github.com/equelin/VPLEX-Powershell/tree/master/Examples).

        La fonction Set-VPLEXDatastorePreferedPath (désolé pour le nom à rallonge…) permet de spécifier précisément quel chemin préféré choisir. Les critères de choix peuvent êtres le VPLEX (défini par son seed), le director et le port. Dans le cas ou vous ne précisez pas ces infos, un choix aléatoire sera fait.

        N’hesitez pas à me contacter si besoin…

        Erwan

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *