Recently we have been upgrading some VMware host from ESXi 6.0 to ESXi 6.7, We where applying the image using VMware update manager and a HPE custom ESXi image.
When applying the image we where getting incompatible warring and where not able to apply the image to upgrade ESXi on some hosts.
The issues was related to VIBS but they where not showing in the html 5 client.
To find the missing VIBS we ended up having to mount the ISO through HPE ILO and try a manual upgrade which did show the conflicting VIBS.
In our case the VIBS causing issue was the below.
Mellanox_bootbank_net-mlx4-core_1.9.9.8-10EM.510.0.0.799733
Mellanox_bootbank_net-mlx4-en_1.9.9.0-10EM.510.0.0.799733
Emulex_bootbank_scsi-lpfc820_10.5.55.0-10EM.500.0.0.472560
Mellanox_bootbank_net-mst_2.0.0.0-10EM.500.0.0.472560
The issue seem to be related to older hosts that where previously upgraded from ESXi 5.5.
VMware recommends doing a fresh install if possible but in this case that was not possible, but if you get this error and can do a fresh install that would be the better option. If you can’t do a fresh install below is how I checked to see if the VIBS where in use and how to remove them.
Next we needed to find out if the VIBS where in use by either the storage or network adapters,
below is the VMware KB that explain how to do this.
https://kb.vmware.com/s/article/1027206
To get the list of storage and network adapter use the esxcli commands
esxcli storage core adapter list
esxcli network nic list
To get check the VIBS version we can use
esxcli software vib list | grep Mel
esxcli software vib list | grep scsi-lpfc820
Once we know the version numbers of the VIBS, we just need to confirm they are not used and if not used remove them.
If they where in use we would need to look at creating a custom image or wipe and reload the ESXi host.
We use esxcli to view if the drivers are in use and what version each is
esxcli system module list | grep lpfc820, esxcli network nic get -n vmnic0
Once we confirm that none of the VIBS are required the last step is to remove each one. Below is the KB from VMware on removing VIBS.
There might be some VIBS that have dependency’s on others in our case the net-mlx4-core needed to be removed after the net-mlx4-en as it was dependent on it.
To remove we use esxcli software vib remove -n ‘vibname’
Reboot the ESXi host if required,
After the reboot, scan the host again from updates tab in VMware vSphere web client and it should now show as non-complaint and not incompatible.
The host should now upgrade as normal.