Saturday, March 9, 2013

“Identify pre-boot environment agent” failure during Cisco UCS firmware upgrade

Overview


We were upgrading the firmware in our Cisco UCS environment from version 1.4.(1j) to 2.1(1a) and ran into an issue when applying the firmware to the servers.  We had previously upgraded two other UCS domains to 2.1 and did not see the error while upgrading them.

Problem


We were getting failures on FSM tab in UCS Manager after applying a 2.1 firmware policy to a service profile.  It would fail when it got to a step labeled "Associate Pnu OS Ident" with a failure description of  "Identify pre-boot environment agent."  You can see the failure in the screenshot below:


We tried several things like rebooting the server, disassociating the services profile, and re-acknowledging the server.  All of which resulted in the same error.  At this point it was time to call Cisco TAC.

Solution


After working with Cisco TAC for a while we determined the problem was a BIOS setting on the server.  According to Cisco TAC, in versions 1.x of UCS Manager the servers would PXE boot from the FI's to enter into the Pnu OS.  (Pnu OS is what the blades boot into to apply their service profile customization)  Starting in version 2.x the servers mounted a USB device presented by the FI's to enter into the Pnu OS.  

There are two fixes for this problem:
  • Individually update the BIOS on a server to enable "Legacy USB Support"
  • Apply or update a BIOS policy to enable "Legacy USB Support"
Below are some screenshots that show how to update the setting in the server BIOS:

Launch the KVM viewer, reset the server, and press F2 to enter the BIOS when you see the prompt


Go to Advanced, USB Configuration


You will then see the Legacy USB Support is Disabled


Change Legacy USB Support to Enabled and hit F10 to Save and Exit


The server will then reboot and be able to enter the Pnu OS to get the firmware updates applied.

Finally, if you wanted to ensure this was applied to all of your server, you can create/modify a BIOS policy that is applied to your service profiles and/or templates in UCS Manager.

Below is a screenshot of where that setting resides.