Zur Gewährleistung von Kompatibilität und bei Supportanfragen ist es gelegentlich notwendig, den aktuellen Firmware Status von Netzwerkadapter oder HBA zu ermitteln. Natürlich kann man theoretisch den Server neu booten und dabei in die BIOS Einstellungen des Adapters gehen, aber dies ist gerade bei ESX Servern mit viel Aufwand verbunden. VM müssen auf andere Hosts im Cluster migriert werden, ein Konsolenzugang oder eine Remotekonsole wird benötigt. Dies alles kostet viel Zeit.
Viel schneller geht es mit ein paar Kommandos auf der ESXi Shell, ohne den Host zu beeinträchtigen. Dazu benötigt man nur einen Zugang per SSH.
Firmware und Treiber des HBA ermitteln
Zunächst kann man die installierten SCSI Komponenten ermitteln.
~ # esxcfg-scsidevs -a
Im obigen Beispiel handelt es sich um einen Emulex LPe12000 8GB FC HBA. Der verwendete Treiber für den Emulex HBA ist “lpfc” (hier: vmhaba3 und vmhba4).
Die Treiberversion ermittelt man mit dem Kommando vmkload_mod.
# vmkload_mod -s <HBADriver> | grep Version
Also im Beispiel hier mit lpfc
# vmkload_mod -s lpfc | grep Version
Vendor ID des HBA ermitteln
Für Recherche in der VMware Hardware Compatibility List (HCL) benötigt man Vendor-ID (VID), Device-ID (DID), Sub-Vendor-ID (SVID) und Sub-Device-ID (SDID).
Die FC HBA haben hier die Nummern vmhba3 und vmhba4.
vmkchdev -l | grep vmhba3
- VID = 10df
- DID = f100
- SVID = 10df
- SDID = f100
Mit diesen Informationen kann man den VMware Compatibility Guide durchsuchen.
ESX Host Version prüfen
Die Abfrage der installierten ESXi Version erfolgt mit dem Befehl:
vmware -v
Firmware und Treiber des NIC ermitteln
Liste aller installierten Netzwerkadapter ausgeben (für ESXi Versionen ab 5.0)
# esxcli network nic list
# ethtool -i <vmnic-name>
Im Beispiel wird gezielt die Information zu vmnic9 untersucht.
~ # ethtool -i vmnic9 driver: igb version: 5.2.5 firmware-version: 1.52, 0x80000778 bus-info: 0000:0d:00.1
Für ESXi Versionen ab 5.0 wird noch ein anderes Kommando empfohlen:
# esxcli network nic get -n <vmnic-name>
~ # esxcli network nic get -n vmnic9 Advertised Auto Negotiation: true Advertised Link Modes: 10baseT/Half, 10baseT/Full, 100baseT/Half, 100baseT/Full, 1000baseT/Full Auto Negotiation: true Cable Type: Twisted Pair Current Message Level: 7 Driver Info: Bus Info: 0000:0d:00.1 Driver: igb Firmware Version: 1.52, 0x80000778 Version: 5.2.5 Link Detected: true Link Status: Up Name: vmnic9 PHYAddress: 1 Pause Autonegotiate: true Pause RX: false Pause TX: false Supported Ports: TP Supports Auto Negotiation: true Supports Pause: true Supports Wakeon: true Transceiver: internal Wakeon: MagicPacket(tm)
Vendor ID des NIC ermitteln
Auch hier kann man die Vendor-ID ermitteln. Das Verfahren ist analog zum oben beschriebenen.
vmkchdev -l | grep vmnic9
Hier wird nur die Information zu vmnic9 gesucht.
~ # vmkchdev -l | grep vmnic9 0000:0d:00.1 8086:1521 1734:11ce vmkernel vmnic9
- VID = 8086
- DID = 1521
- SVID = 1734
- SDID = 11ce
Links
VMware KB 1027206 – Determining Network/Storage firmware and driver version in ESXi/ESX 4.x, ESXi 5.x, and ESXi 6.x