Upgrading firmware on any platform has always been a cumbersome task. When we asked a select group of customers what they expected to be most difficult when migrating to ESXi some answered Hardware Firmware Upgrades. The main reason for this was the fact that agents (some unsupported) were installed in the Service Console and they were used to upgrade the firmware. With ESXi that approach will no longer work due to the absence of a Service Console. Firmware however will still need to upgraded periodically.

When doing a little survey on twitter about how people did their firmware upgrades three methods stood out:

  1. Hardware vendor bootable CD-ROM/DVD
  2. Hardware vendor vCenter Plugin or management application
  3. PXE Boot of small linux distro / vendor's upgrade CD/DVD

The first option, bootable CD-ROM/DVD, is the most cumbersome solution but also fairly simple to use. Every vendor has a free ISOs available for download that contain all the latest and greatest firmware versions. These are usually categorized per server model and can be used to boot a host off. This is however a manual task and is most likely something one would use in SMB type of environments going up to 10 / 15 hosts.

Some hardware vendors also provide management plugin's like for instance Dell. Mike Laverick wrote an extensive article on this topic and it shows that there is a lot of value to be found in these. In the case of Dell the plugin provides more than just firmware upgrades and it is definitely worth investigating. Note that not only Dell offers a plugin for vCenter but many vendors do of which some have the capability of upgrading firmware and others don't but my guess is most will be releasing a version that will include this at some point:

Some vendors also have a centralized management application to manage their hardware end-to-end which also includes the capabilities to upgrade firmware. I personally find these solutions the most elegant as they offer a single pane of glass like for your hardware and it enables you to manage several layers. Cisco with its UCS platform was one of the first to deliver on this and of course there are the likes of IBM who have Systems Director which enables you to manage multiple platforms.

The last option that I wanted to discuss was PXE Booted Linux distro's. I have seen a couple of people mentioning this on twitter. Basically what they do is they use a tiny linux distribution (JeOS) and PXE boot their server with that distribution. This distribution contains the latest versions of the firmware or calls back to a central repository and automatically updates the server. Especially in very large environments a solution like this can be used as a uniform mechanism to deploy new versions of firmware across multiple hardware vendors as HP would not allow you to upgrade Dell servers with their tools. By developing your own tool this is of course possible.

As shown there are many ways to deal with firmware upgrades for your environment. It is difficult to come with a single approach that will work for all environments as the size of the environment and the type of hardware used will dictate which options are available. Based on the type of hardware used, the availability of plugins or a centralized solution and business requirements a decision should be made. We do advise to manage the firmware level consistently and follow the hardware vendor's recommendations to avoid running into any interdependency issues. We also recommend when acquiring new hardware to look into the level of integration and the mechanisms that can be leveraged around managing your hardware as especially in converged shared platforms availability and manageability is key to the success of your IT department.