[PSH] Modifier les Queue Depth HBA d’un cluster (one shot)

Longtemps nous avons lu avec délectation les posts interposés de Duncan Epping et Frank Denneman au sujet des performances liées aux queue depths QLogic et Emulex. Le maître mot en matière de tuning étant de ne modifier une valeur que pour une raison très très valable ou pour un problème identifié, nous nous sommes toujours abstenu de modifier ces fameuses valeurs (en production du moins).

Heureusement pour nous, le jour tant attendu est enfin arrivé : nous avons identifié une contention d’I/O sur du SAN ! Après avoir vérifié que le problème ne venait pas de l’infrastructure SAN, nous allions pouvoir procéder à l’augmentation des files d’attente sur les ESX.

high_disk_latency

ql2xmaxqdepth_full

Seul petit problème, en powershell/powercli comme en esxcli, cette valeur ne peut être modifiée que connecté directement au serveur.

Pour un cluster il faut donc prévoir un script qui se connecte sur chaque serveur avec les bons credentials pour modifier le bon module.

Nous avons donc écrit un petit script qui fait tout cela, et plus encore puisque le ou les noms des modules sont variabilisés (il peut donc servir pour autre chose que les Queue Depth). Il est possible de gérer une collection de passwords et de modules (si par exemple votre cluster contient des ESX avec passwords diffèrent et cartes SAN différentes).

Il suffit de se connecter au vCenter pour transmettre au script la liste des host à traiter (il est possible de les lui transmettre via une liste de FQDN) pour afficher l’existence du module à traiter ainsi que ses options. Pour la modification, il suffit d’ajouter le paramètre “set” ou “unset” :

ql2xmaxqdepth

Et n’oubliez pas le reboot pour que cette valeur soit prise en compte ;)

download

Tags: , ,

Leave a Reply