When it comes time for your vSphere upgrade there are many different approaches to how you perform the upgrades on your ESXi hosts. An administrator who looks after a small cluster may update one way, whereas an administrator who looks after an enterprise with 1000s of hosts may opt to go another. Also, depending on how your environment is deployed you might want to choose one method over another. Factors such as a whether or not your hosts are managed by a vCenter server, whether or not they are members of a cluster – these things all impact the methods in which you chose to update to the latest version of ESXi. Certainly, some methods are much more simplistic than others to perform, some offer more advantages when upgrading at scale, and some are more prone to user error – let’s take a look at each method of upgrading our hosts below and discuss the benefits and drawbacks of each…
The interactive upgrade is essentially the same process as an install from media – so we are actually downloading the ESXi ISO and placing it on a CDROM or USB/Flash disk and physically inserting this into the ESXi host and booting from it. The steps are basically the same as when you are doing an install, however, when selecting the target disk to install ESXi to we select our previous installation. Once we do this instead of performing a clean install the installer will perform an upgrade, preserving your hosts’ configuration and settings as well as maintaining your existing vmfs datastores on which your VMs data lives.
Now you can probably guess that the interactive upgrade is probably not the best route for those who manage a lot of hosts to use – it’s more suitable for those that have less than three hosts to perform upgrades on – also, during this upgrade it is possible to essentially overwrite your existing install and do a clean install of the new version so it’s not necessarily the safest way to do things either. In my opinion, even if you have only one host to upgrade I would probably not use the interactive upgrade options, opting to go with the esxcli upgrade instead.
esxcli is the command line language that ESXi utilizes to perform a number of functions. We can use it to provision vSwitches, create datastores, perform power operations, etc – but we can also use esxcli to perform our host upgrades as well. To do so we need to download a special upgrade package from VMware which differs from the normal ISO we are used to. The package is called a ???? and comes in the form a .zip package. First, we copy this package out to our hosts, storing either on the hosts’ internal storage itself or on a datastore in which the host has access to. After that, we can simply log in to our ESXi host and run the following command.
esxcli software profile update –d /path/to/zipfile –p package_name.
For example, to upgrade to ESXi 6.5 I can use the following command
esxcli software profile update –d /vmfs/volumes/datastore01/VMware-ESXi-6.5.0-4564106-depot.zip -p VMware-ESXi-6.5.0-4564106-standard
After the package has been deployed a listing of all of the vibs installed will be shown. After this, its just a matter of rebooting your host and you should be in the next version.
Again, the esxcli method may not be the best method for those who need to perform upgrades at scale as it requires you to shell into each individual ESXi host.
ESXi can also be installed and upgraded via a pre-configured script – meaning just as we can pxe boot our ESXi and use a kickstart script in order to install ESXi on our host we can also set up our environments in such a way whereas they can be upgraded as well. The kickstart script which contains all the directives and instructions on how we would like the update to complete can sit on either a local CD or flash drive, or for scale, it can be read and pulled down from an FTP, NFS, or web server of any kind.
Scripted upgrades are great for those who wish to completely automate their upgrade experience, having each host booted into a pxe environment and consistently pull down the same settings for the upgrade. They can also enable those large enterprises to save time and update more efficiently as this method can scale to very high numbers. That said there is somewhat an art to getting your environment setup properly to perform scripted upgrades, and knowing all of the syntax and proper directives to put into the configuration file can be a learning exercise for those just getting started. Despite its complexity, for those large environments that do not currently have vCenter and cannot use the AutoDeploy or Update Manager method the scripted install is a great way to scale and automate their ESXi upgrades
AutoDeploy was a feature which was introduced into vSphere with the release of vCenter Server 5.0. Essentially AutoDeploy allows us to pxe boot a host and together with the Host Profiles feature set, vCenter will compare the host to a list of rulesets – if there is a match, the host is automatically loaded with a corresponding ESXi image and optionally a corresponding host profile is attached to the host – in the end we are left with a fully installed and configured ESXi host. AutoDeploy is a great choice for those who are looking to deploy 100s or 1000s of hosts in a consistent manner. All that said AutoDeploy can also be used to perform upgrades to our hosts as well.
To do so, we perform what is called a Host Reprovision – Basically, we take a predefined Image Profile containing the ESXi version we wish to upgrade to and attach it to a host, along with any Host Profile containing configurations we would like to have applied. After the host reboots into the pxe environment, the new Image Profile is attached to the host, the host is configured via the host profile and we have successfully upgraded the host to the newest version of ESXi.
Upgrading via vSphere Auto Deploy is a great solution, especially for those that have already invested the time in getting their host setup into the Auto Deploy environment. Along with Host Profiles, it gives us a complete end to end solution to centrally manage our host images, complete with the ability to add third-party drivers as well. That said there are a lot of requirements to get it setup – and given that there are other easier methods available it might not be the best choice if you are starting with a greenfield environment.
Perhaps one of the easiest and most commonly used ways to upgrade our hosts is through the vSphere Update Manager (VUM). VUM is an application that plugs into our vCenter Server allowing us to scan, patch and remediate hosts based on pre-defined baselines. These baselines are populated with either security patches, or in our case, ESXi images which are then attached to one or more hosts. Hosts then are scanned for compliance and remediated if need be. The nice thing about VUM is that we can attach these baselines to multiple hosts, allowing us to perform upgrades at the same time across our environment.
As I mentioned before upgrading with VUM is probably the most widely used method to move to new vSphere builds. The process is very simple and can be completely performed within the vSphere Web Client. VUM also provides us with the ability to perform what is called an orchestrated upgrade, where upon completion of the host upgrade we are able to automate the upgrade of the VMs VMware Tools and compatibility as well. VUM is a great way to get your hosts up to date, however, requires vCenter – so if you don’t have vCenter licensed you will have to look at either the scripted, interactive, or command line esxcli method.
As you can see we have a wide range of upgrade options to choose from when we make the decision to upgrade. While the VUM method is most widely used you should always evaluate your environment to determine the best method for you to use – for instance, if you don’t have vCenter then the interactive or command line method would probably be best – if you have already set up a pxe environment then you might want to possibly look at the scripted upgrade – for those who have already setup Auto Deploy, then certainly utilizing it for upgrades would be ideal. To learn more about the different upgrade methods, their requirements, and gotchyas be sure to completely read the vSphere Upgrade guide documentation. Thanks for reading!