Compatibility is one of the most important topics in VMware environments (and any other environment for that matter). VMware places a lot of resources into certifying Firmware and Drivers versions with ESXi releases by maintaining the VMware HCL (Hardware Compatibility List).

Checking the HCL is an unspoken rule of thumb when troubleshooting a problem, installing new hardware or upgrading a host. It is important to keep your servers in compliance with the HCL otherwise you run the risk of having issues due to incompatibility.

In this article, we will see how to verify that your network cards and storage HBAs are compliant with the HCL. We are doing it old school with the cli so you can do it even if the host is goosed and you only have the ESXi shell at your disposal.

Obtain the driver of an HBA

  • You can start by listing the SCSI devices installed on the host with:
  • Esxcfg-scsidevs -a

    The output will show the different HBAs and what driver they are using.

    In this case, vmhba3 is an Avago MegaRaid SAS controller using the lsi_mr3 driver (module).

    Vembu BDR Suite

    Backup your Virtual & Physical Machines
    Free Forever
    Agentless Backups, Flexible Scheduling, Multiple Recovery Options

    I/O devices compliance

  • Find the version of the driver by running (adapt the module name to your request):
  • Vmkload_mod -s lsi_mr3

    Here you can see that it is running version 7.701.14.00.

    I/O devices compliance

Obtain de firmware of an HBA

To obtain the firmware version run the following command:

/usr/lib/vmware/vmkmgmt_keyval/vmkmgmt_keyval -a

The output should be similar to this:

I/O devices compliance

We find the driver version again along with the Hardware IDs and the Firmware version: 24.13.0-0105.

Note that if you cannot retrieve the firmware information about all your IO devices using this method, you can try the following. For example, if you have Emulex or QLogic hardware installed, you will need to

  • change directory to /proc/scsi/qla## or lpfc
  • ls to list the files in the directory
  • head -5 # (where #is the HBA number)

If you still can’t find the firmware I suggest you look into the Out of band management card (iDrac, iLO, iRMC, …) and see if you find it there.

Check for HBA compatibility

  • We saw them in the previous command but just for the sake of using yet another one, find the hardware IDs of the card with:
  • Vmkchdev -l | grep vmhba3

    The output should be as follows and gives you the IDs that you need to use in the VMware HCL.

    I/O devices compliance

  • Go to the VMware HCL website
  • Select IO Devices in the VMware HCL and search for the ID fields we just gathered then click on Update and View Results. It should propose the hardware you are looking for. You can then click on your ESXi version
  • I/O devices compliance

  • Verify the supported driver and firmware versions of the HCL against the ones you found earlier. Here we can see that our driver version is on the list and our firmware version is slightly higher than the associated one which shouldn’t be a problem
  • I/O devices compliance

Obtain the driver and Firmware for the Network card

Network cards are a little bit easier to work with than HBAs as you can get a lot of info with esxcli.

Note that you can also use localcli if esxcli is unavailable for some reason (yes it can happen).

  • You can use esxcli network nic list to get a list of all your uplinks
  • Use the following command to gather information about a particular NIC:
Esxcli network nic get -n vmnic0

The output should be similar as the following one. We get the driver installed, its version as well as the Firmware version.

I/O devices compliance

Check for NIC compatibility

  • Just like we did for the HBA, find the hardware IDs using the same command:
  • Vmkchdev -l | grep vmhba3

    I/O devices compliance

  • Again, move on to VMware HCL and search the IDs, select your version of ESXi
  • I/O devices compliance

  • Then verify that your versions are correct

I/O devices compliance

In this case, we can see that our driver is certified but has no firmware associated. This means that VMware didn’t capture this information during the certification process. You may be able to find this information on the website of the hardware vendor (though unlikely).

Follow our Twitter and Facebook feeds for new releases, updates, insightful posts and more.

Like what you read? Rate us
How to verify your I/O devices compliance in ESXi
Rate this post