VMware

[VMware] – [ESX] – Identification des versions de Firmwares et drivers HBA

En cas d’instabilités ou lors d’une phase de mises à jour, il est nécessaire de connaitre les informations relatives aux types et versions des différents drivers installés. Cette procédure vous permettra de le faire simplement. Vous pourrez ainsi informer le support éditeur ou procéder vous-même aux différents upgrades.

Méthode Globale : swfw.sh

La version ESXi 5.x et 6.x possède un script “swfw.sh” qui est fournie dans le bundle support “vm-support” qui peut être utilisée pour identifier les versions installées.

Le script se trouve :

# /usr/lib/vmware/vm-support/bin/swfw.sh

Son exécution donne le résultat ci-dessous. Pour plus de lisibilité, vous pouvez envoyer le résultat dans un fichier via un pipe.

Les informations sont nombreuses mais peuvent paraître confuses lorsque l’on recherche un item précis.

Méthode Ciblée en CLI

Si vous souhaitez être plus ciblé dans votre recherche, vous préférerez utiliser la ligne de commande. Nous prendrons l’exemple de la recherche de version de drivers HBA :

  1. Determination du type de driver :

Pour lister les types de drivers utilisés par la HBA:

# esxcfg-scsidevs -a

La seconde colonne représente le type de driver : ici « bfa »

2. Détermination de la version du drivers

La commande vmkload permet de determiner la version de driver :

# vmkload_mod -s HBADrivertype |grep Version 

Ce qui donne dans notre cas avec un driver de type « bfa » :

# vmkload_mod -s bfa |grep Version

Attention: ces commandes sont sensibles à la casse, elles ne retournent rien si vous ne mettez pas de majuscule à “Version”.

Pour obtenir la liste des versions de tous les drivers pour toutes les HBA, on utilisera la commande  :

# for a in $(esxcfg-scsidevs -a |awk ‘{print $2}’) ;do vmkload_mod -s $a |grep -i version;done 

Afin de voir à quelle drivers cela correspond  on peut cumuler le resultat avec cette commande:

# for a in $(esxcfg-scsidevs -a |awk ‘{print $2}’) ;do vmkload_mod -s $a |grep -i input;done

Dans notre exemple : les versions de nos carte vmhba1 et vmhba2 sont donc les suivantes :

Version: Version 3.2.3.0, Build: 1198610, Interface: 9.2 Built on: Sep  6 2013

Téléchargement des drivers :

Il est très fréquent de devoir mettre à jour les drivers de nos serveurs.

Afin d’obtenir le driver adapté à notre matériel et pouvoir le télécharger depuis le site de l’éditeur, nous devons connaitre la valeur des éléments suivants en utilisant la commande « vmkchdev » :

Vendor ID (VID)
Device ID (DID)
SubVendor ID (SVID)
SubDevice ID (SDID)

Ces identifiants sont spécifiques à notre hardware et permettent d’identifier précisément un matériel.

# vmkchdev -l |grep vmhba1
# vmkchdev -l |grep vmhba2

Cela donne dans notre cas :

0000:11:00.0 1657:0023 1657:0024 vmkernel vmhba1
0000:11:00.1 1657:0023 1657:0024 vmkernel vmhba2


Vendor ID (VID) : 1657
Device ID (DID) : 0023
Sub-Vendor ID (SVID): 1657
Sub-Device ID (SDID): 0024

Pour obtenir les informations « vendor » de toute les HBA :
# for a in $(esxcfg-scsidevs -a |awk ‘{print $1}’) ;do vmkchdev -l |grep $a ;done/

Maintenant que nous avons ces informations, nous allons pouvoir nous rendre sur le site de l’éditeur afin de télécharger les drivers :

VMware Compatibility Guide

//www.vmware.com/resources/compatibility/search.php?deviceCategory=io

Après avoir modifier le champs « What are you looking for » à “IO Devices” , rentrez les valeurs VID (1657), DID (0023), SVID (1657) dans les champs appropriés à droite de la page  :

Choisissez la version appropriée pour votre ESX.
Pour la connaitre, taper la commande SSH :
# vmware -vl

Il ne reste plus qu’a télécharger la version désirée en sélectionnant votre version d’ESXi (“VMWare Product Name”) (Attention au type «Partner Async, vmklinux », certains éditeurs ne supporte que des versions « native », ce n’est pas le cas ici)

Téléchargez la vib et conservez-la sur votre poste de travail avant de la transférer sur votre ESX.

Installation/Désinstallation de drivers

Il ne reste plus qu’a faire la mise à jour sur votre ESX afin de bénéficier des dernières versions disponibles. Cela est fait via l’installation/désinstallation de vib.

Désinstallation :

J’ai une préférence pour la désinstallation de vib (je sais, je suis un peu old-school ;)….). Pour retirer l’ancienne vib « scsi-bfa »:

# esxcli software vib remove -n scsi-bfa

Reboot de l’esx par la commande “reboot” :

installation :

Pour installer la nouvelle vib :

  1. Déposez de la nouvelle vib sur un datastore local.

Créez un dossier pour déposer de la vib sur un datastore accessible par l’ESX.

Notre problème se situant sur les cartes HBA, aucune LUN de notre infra SAN ne pouvait être utilisée. j’ai donc utilisé le stockage local de l’ESXi.

2. Installation de la nouvelle vib :

J’ai pour habitude de prendre la vib présente dans le Offlinebundle/vib20/Nom_de_la_Vib
La commande d’installation est la suivante :
# esxcli software vib install -v /vmfs/volumes/Lun_ID/InstallVib/Brocade_bootbank_scsi-bfa_3.2.4.0-1OEM.550.0.0.1331820.vib

3. Reboot du host :

4. Vérification de la bonne installation de la VIB (en fonction de la version) :

# vmkload_mod -s bfa |grep Version

# for a in $(esxcfg-scsidevs -a |awk ‘{print $2}’) ;do vmkload_mod -s $a |grep -i version;done

Avant MAJ :
– Version 3.2.3.0, Build: 1198610, Interface: 9.2 Built on: Sep 6 2013
Après MAJ:
– Version 3.2.4.0, Build: 1331820, Interface: 9.2 Built on: Feb 14 2014

# esxcli software vib list |grep bfa

Laisser un commentaire

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