I recently experienced an issue within a HPE environment where vSphere Lifecycle Management (vLCM) fails to upgrade the firmware on a HP FlexFabric 534FLR-SFP+ Adapter.
On HPE Gen10 servers it is possible to leverage vSphere LifeCycle Management to manage not only the ESXi version but also the firmware and drivers of the different hardware components. vLCM leverages a vendor tool, in HPE’s case it is either HP OneView or HP Amplifier, to do the lift and shift for the firmware.
Apparently it fails when there are multiple adapters present in the system which have a firmware v7.15.97 or prior. The upgrade would succeed on one adapter but not on the subsequent adapter(s), see here. The KB is specifically mentioning HP OneView but as I experienced it is also affecting HP Amplifier, which makes sense.
The following screenshot shows two hosts out of compliance with the image, because of that specific firmware. Other hosts in that cluster upgraded the firmware on the adapter just fine. It really is due to the version to upgrade from.
Resolution
The article is providing a link to a firmware upgrade utility, which is for ESXi 6.0 / 6.5. You can download the 7.0 version here.
Now that we downloaded the firmware update utility, put the host into Maintenance Mode and copy it onto the ESXi host. Putting it in the /tmp directory gives the (dis)advantage that is tis removed when the machine is rebooted.
1 |
scp CP049023.zip root@host_fqdn:/tmp |
SSH to the host and install the firmware update utility (Smart Component):
1 2 3 4 |
cd /tmp mkdir CP049023 unzip CP049023.zip -d ./CP049023 esxcli software component apply -d /tmp/CP049023/CP049023_VMw.zip |
This should be the output:
1 2 3 4 5 6 |
Installation Result Components Installed: Smart-Component-CP049023_1.28.50.6-7.0.0.15843807 Components Removed: Components Skipped: Message: Operation finished successfully. Reboot Required: false |
Now go to the directory where the firmware update utility is installed and run it:
1 2 |
cd /opt/Smart_Component/CP049023 ./Execute_Component |
This should be the output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Command [ ./Execute_Component ] Number of parameters passed in [ 0 ] The parameters are [ ] OS Version found [7.0.2] Process [7.0.2] with path [./ESXi_7.0] Set Flash Engine files for path [./ESXi_7.0] ... leaving ./determine_which_OS.sh in /opt/Smart_Component/CP049023 ... execute hpsetup with parameters [ ] =============================================================== HPE QLogic NX2 Online Firmware Upgrade Utility for VMware Version: 1.28.50 Performing Discovery operation......Please be patient.. Selecting HP FlexFabric 10Gb 2-port 534FLR-SFP+ Adapter MAC: 1458D041DB10 Update MBI 7.10.72 to 7.18.80 y/n/q (y):y Firmware update in progress......It will take a while....Please be patient.. Please reboot for the firmware flash to complete. ... END [ ./Execute_Component - Return value is 1 ] ... |
If the Return value is 1, that is a good sign. I had to rerun it some times because of return value 0. I also had a return value of 106, which didn’t change after several runs. I rebooted that host, ran it again and then it went ok.
As a final step clean up the actions, so remove the firmware update utility:
1 2 3 4 5 6 7 |
esxcli software component remove -n Smart-Component-CP049023 Removal Result Components Installed: Components Removed: Smart-Component-CP049023_1.28.50.6-7.0.0.15843807 Components Skipped: Message: Operation finished successfully. Reboot Required: false |
Reboot. When the host is back, Check Compliance again and you should be good to go.