Checking VMware ESXi I/O adapter driver/firmware Part 1: Network adapters
So, you want to verify you are running compatible I/O adapter driver and firmware code? After all, this is a critical component of maintaining a healthy infrastructure and for ensuring optimal host performance. I have seen several network and storage issues related to not running compatible driver and firmware code.
In this two-part blog series, I will walk you through verifying the I/O adapter driver and firmware code is VMware compatible and supported. The first thing you need to know is the brand of adapter you have installed in the hosts. Up first, we are going to look at the network adapters.
Login to the vSphere Client and select a host from the Host and Clusters view. Click on the Configure tab, then click on Physical adapters under the Networking section, and finally select one of the Physical adapters. Below, you will see the brand of adapter, model information, as well as the connected speed.
Now, it is time to head on over to the VMware Compatibility Guide which can be found at the following URL.
https://www.vmware.com/resources/compatibility/search.php
Since we are concerned with the network adapter, you will want to select IO Devices from the “What are you looking for:” dropdown menu.
Finding the proper data for the adapter most of the time is straightforward. Simply supply the Product Release Version (ESXi version), Brand Name (of the Network adapter), and the I/O Device Type (in this example, there is just one). Also supplying a Keyword can further filter the results and aid in pinpointing the exact adapter. Finally, click on Update and View Results.
But sometimes, searching by make and supplying the model as a keyword is not enough to pinpoint the exact adapter installed in the host. As you can see below, there are 49 results. We know that the adapter in the host is 25 Gb, so that can help narrow down the list.
But even then, after reviewing only the 25 Gb adapters, there are still 9 results. This can be frustrating and make identifying the exact adapter feel like an impossible task.
There is a better and more straightforward way to looking up the exact adapter installed in the host!!! Have you ever noticed the drop-down menus to the far-right labeled VID, DID, SVID, and Max SSID? Clicking on any of those drop-down menus would reveal many mysterious values.
Well, those mysterious values are the key to identifying the EXACT network adapter that is installed in the host!!! But what are those values and where do you find them?
VID = Vendor ID
DID = Device ID
SVID = Sub-Vendor ID
SSID = Sub-Device ID
These values can be found within the vSphere Client. With the same host selected as earlier, click on the Configure tab, then click on PCI Devices under the Hardware section. Select All PCI devices and then scroll through the list and find Mellanox Technologies under the Vendor Name column and select it. Below under General Information, you will find the VID, DID, SVID, and SSID.
Back to the VMware Compatibility Guide. Go ahead and Reset the previous search first. Now, select the ESXi version and then plug in the values:
VID (Vendor ID): 15B3
DID (Device ID): 1015
SVID (Sub-Vendor ID): 15B3
SSID (Sub-Device ID): 0116
Bingo, one result! You can now click on the hyperlink of the network adapter from the results.
Now, there is no doubt you will be reviewing compatible driver/firmware code of the EXACT adapter installed in the host. One thing to note here is that the manufacturer shows to be Dell and not Mellanox like what was searched for earlier. This is why it is important to search for the adapter by VID, DID, SVID, and SSID.
Now, it is time to find the driver and firmware versions currently running on the host. For your reference, here is the link to the VMware KB article that outlines this procedure for both the network and storage adapters. Please note in this example, I am working with ESXi 7.x and the commands/process could be different on previous versions. Those commands and processes are well documented in the VMware KB for each ESXi version.
https://kb.vmware.com/s/article/1027206
First, SSH to the host. Once logged in, you will run the following command:
# /usr/lib/vmware/vm-support/bin/nicinfo.sh | less
The output of this command is very verbose and provides a ton of information! The first thing you will see at the top of the output is the listing of network adapters. This is the same data we saw earlier in the vSphere Client.
Fortunately, the network adapter driver and firmware versions are close to the top of the output as well.
Firmware Version: 14.27.6122
Version (Driver): 4.19.70.1
Comparing these versions to the output from the VMware Compatibility Guide search earlier, we can see that compatible network adapter driver and firmware versions are installed.
If you are not running compatible driver and firmware versions, you should work to remediate during the next maintenance window. Running compatible driver and firmware versions is an important aspect of maintaining a healthy infrastructure and helps ensure optimal performance as well. Thanks for reading!