I enjoy playing with a lot of different virtualization technologies. I’ve been using VMware since it was one of the only games in town, back with VMware Workstation, and thoroughly enjoy using various products from VMware’s portfolio. I’ve used Workstation, Player, Server, and Fusion. I’ve also used various other virtualization technologies like Parallels, OpenVZ, VirtualBox, and KVM.

Recently, I had some spare hardware and wanted to give VMware vSphere Hypervisor (formerly known as VMware ESXi) a spin, based on a good friend’s recommendation. vSphere Hypervisor (we’ll call it ESXi for short from this point forward) is the free version of VMWare’s vSphere product. Essentially, if you have hardware that you don’t need to run a host OS on (like Linux or Windows), and only want that hardware to run virtual machines, ESXi may be something to look at.

ESXi is a Linux kernel and some management tools and services to run the virtual infrastructure, so when it boots up, there is nothing to log into aside from a management console used only for trouble-shooting and setting up the remote management console. The major difference between VMware Server, other virtualization solutions, and ESXi are that applications are run on top of a host operating system, whereas with ESXi, the host is the operating system.

Of course, ESXi is the teaser to get you to pay the big bucks for VMware vSphere, and it shows. Unless you really want to learn the ins and outs of what is an overly complex virtualization solution, you almost need to pay for the support and extra tools that the paid solutions offer. I found this out when trying to apply security patches to ESXi.

There are products to pay for that will assist in upgrading the “firmware” of the ESXi hypervisor. Trying to do this on your own is definitely doable, and actually quite easy to do, if you can find the instructions to do it.

How to upgrade the firmware without the paid products

The primary way to manage an ESXi system is via Windows. To this end, you will need the VMware vSphere CLI package (available from the VMware website) installed as well as the vSphere GUI client. Both are available for Windows; however, only the first is also available for Linux. The GUI client will not allow you to upgrade the firmware of ESXi, which is why you need the CLI tools (but you do need the GUI client to manage/shutdown/suspend the virtual machines in order to do the upgrade). So, because the client only runs on Windows, you will either need a Windows system available, or a virtualized Windows install on another machine that is separate from the ESXi host.

While VMware does offer for-pay products to assist in upgrading the “firmware” of the ESXi hypervisor, you don’t really need them (unless you have a large amount of ESXi hosts to manage and want the time-saving convenience). Doing the firmware upgrade on your own is easy enough to do with the freely available GUI and CLI tools. Finding the instructions to make it work, on the other hand, is not nearly as easy as the process itself.

When you have the vSphere CLI installed, you can access the necessary Command Prompt application from Start | All Programs | VMware | VMware vSphere CLI | Command Prompt.

Before proceeding with the patch, you will need to put the ESXi host into Maintenance Mode via the GUI client. Before putting it into Maintenance Mode, you will need to either shut down or suspend the virtual machines running on the host (or migrate them to another host). Once the ESXi host is in Maintenance Mode, in the CLI Command Prompt, type:

> cd bin
> vihostupdate.pl -i -bundle [path_to_patch].zip -url https://[IP_of_ESXi_host]/sdk/webservice

The patch ZIP file is what you would have downloaded from VMware’s site in response to a security patch being made available. This will also work when upgrading from one version to the next, such as 4.0 to 4.1.

When the above two commands are typed in, you will be asked for the administrative account’s username and password. When these are successfully provided, you will see feedback regarding the uploading of the patch, and then it will instruct you to reboot the ESXi host. Your GUI connection to the host should still be active, so at this point you can use the GUI to reboot the system. Once it has rebooted, re-connect the GUI client to the server, and exit Maintenance Mode.

When it comes right down to it, upgrading ESXi is pretty straightforward, but you won’t find that information buried in hundreds of pages of downloadable documentation, nor will you find an easy-to-understand KBase article on VMware’s site providing these simple instructions.

It’s up to you to determine whether or not running ESXi on bare metal with virtual machines is better than running a standard operating system, such as a lightweight Linux distribution with KVM. The management console for ESXi is really quite nice, but I also think it’s overly complex. Having said that, this isn’t a recommendation on what virtualization system to use, but rather an easy tip on how to upgrade ESXi if that is what you have chosen to use.