Home > Communication Service Provider Solutions > Telecom Multicloud Foundation > Ironic > Guides > Technical Guide—Managing Dell EMC PowerEdge Servers with the OpenStack Ironic (Xena) iDRAC Driver > Firmware management
The iDRAC driver and the Redfish driver now support firmware management. This support enables you to update firmware for the various hardware components of a server to selected versions.
Dell Technologies has tested firmware updates for iDRAC, BIOS, NIC, PERC storage controllers, and power supplies. Firmware management is compatible with all firmware updates that are available at Dell Technologies Support in the “Dell Update Packages in native Microsoft Windows 64-bit format” (also known as “DUP format”).
For detailed instructions for using firmware management, see the following OpenStack Ironic iDRAC driver documentation:
When downloading firmware from Dell Technologies Support, select Windows Server 2016 as the Operating system and Update Package for MS Windows 64-Bit as the Format.
As with all Ironic cleaning steps, run the update_firmware cleaning step only against nodes that are in the “manageable” state in Ironic.
When running a cleaning step to update the iDRAC firmware, always specify a wait time of 300 seconds for that firmware image. Specifying the wait time gives the iDRAC time to restart before Ironic begins using it again. Not specifying this wait time may cause the update_firmware cleaning step to fail.
Rolling back a firmware update consists of updating the firmware to the prior version. Accordingly, the prior version of the firmware must be staged on the web server. Updating to the same version of firmware that a node is already running causes that firmware to be reinstalled.
CAUTION: If a server loses power while it is in the process of updating firmware, devices within the server or the server itself may be rendered inoperable. Ensure that you take the necessary precautions to ensure that power loss does not occur.
To monitor the progress of the update_firmware cleaning step, you can:
When the update_firmware cleaning step finishes, the state of the node in Ironic changes from “clean wait” to “manageable” or, in the event of a failure, “clean failed.”
If there is a failure, look for the reason for the failure by examining the last_error property on the node in Ironic. To do this, run the following command:
openstack baremetal node show <uuid> | grep last_error
Further details about an error are generally available in the Ironic conductor log. Additional information may be available in the job queue or event log of the iDRAC. Examining the virtual console of the node may also provide more information.
Note: Loss of network connectivity to an iDRAC is normal and expected when you update the iDRAC/Lifecycle controller firmware. Connectivity loss is reflected in the Ironic conductor log.
A common error is specifying an incorrect URL in the update_firmware cleaning step. To avoid this error, use a browser, curl, wget, or a similar tool to validate the URLs before performing the update_firmware cleaning step.
Ironic allows a fixed time period for a single cleaning step to complete. Configure this time period in ironic.conf by changing the value of the clean_callback_timeout setting in the [conductor] group. This setting defaults to 1800 seconds (30 minutes), which means that if the firmware updates in a single cleaning step take longer than 30 minutes, Ironic will fail the cleaning step. If this happens, any firmware update in progress on the server will continue to completion and may succeed or fail. To avoid timeout errors, when performing a number of firmware updates that may take longer than 30 minutes in total to apply, split the updates into separate cleaning steps. Each update will then have 30 minutes to complete instead of a 30-minute timeout for all the updates combined. The following table shows these configuration settings:
Group |
Setting |
Description |
redfish |
firmware_update_status_interval. |
The interval in seconds that the BMC is polled for firmware update status Defaults to 60 seconds 0 disables polling |
redfish |
firmware_update_fail_interval |
The interval in seconds between checking for failed firmware updates Defaults to 60 seconds 0 disables polling The associated task cleans up temporary state on the node in Ironic, preparing it for further use |
conductor |
clean_callback_timeout |
The amount of time in seconds to allow a cleaning step to run before timing out Defaults to 1800 seconds 0 means no timeout |