These days, I am upgrading our VI 3.5 environment to vSphere 4.  Good thing is that there is a lot of information available in form of books and articles on the web for the different scenarios in which you can upgrade.  Two of my favourite books on the subject are:

Mastering VMware VSphere 4 by Scott Lowe

VMware vSphere 4 Implementation by Mike Laverick

That said, VMware’s own vSphere Upgrade Guide is not bad either!

However, I do miss articles that gives you an “end-to-end” process with the right sequence, based on a certain scenario – something that covers upgrade of an entire environment, including non-technical things that one might need to think about.  So, I thought I should write one!

The purpose of this article is to give you just the high-level steps (with some detail) on how to do it and in, hopefully, the right sequence.  I will also mention any important points as I go along.  It follows a certain scenario which I think is quite common and should be applicable to most environments either as is or with some tweaking.  This is not a “graphically-assisted” document and is quite long so apologies in advance for being text-heavy but considering its purpose; I don’t think pictures are needed.  I am also making the assumption that if you’re reading this article and are able to follow it, then you either don’t need step-by-step instructions or will easily find the required information.  So, without further ado, let’s make a start:


You have a VI 3.5 environment (in my case, ESX 3.5 Update 2 hosts managed by VirtualCenter 2.5 Update 2) and want to upgrade it to vSphere 4 (in my case, ESX 4 Update 1 hosts managed by vCenter 4 Update 1).  VirtualCenter is running in a virtual machine hosted on the same environment, on top of Windows Server 2003 SP2 x86 Standard (with SQL 2005 SP2).  This has to be replaced with another virtual machine based vCenter server, running Windows 2008 x64 (with SQL 2008 SP1).  This can’t be an in-place upgrade as vCenter server needs to become 64-bit.  VMware Converter and Update Manager are also required on the same server.  Another requirement is to have minimal downtime for the infrastructure during the upgrade.



  • Make sure that you’ve got licensing covered.  Remember that licensing model changed going from VI 3.x to vSphere 4 – now it’s per CPU socket.  If you bought VI 3.x licenses with Support and Subscription before vSphere was released, then chances are that VMware sent you an equivalent number of vSphere licenses.
  • You’ll need to generate the new license keys to enter into the new vCenter Licensing applet. 
  • Don’t forget Windows 2008 Standard x64 and SQL 2008 Standard x64 licenses for the vCenter server.


  • Microsoft Windows 2008 Standard x64 ISO
  • Microsoft SQL 2008 Standard ISO (contains both x86 and x64 versions)
  • VMware vCenter 4.0 Update 1 ISO
  • VMware ESX 4 Update 1 ISO (preferably burnt to a DVD)
  • Microsoft Powershell 2.0
  • VMware PowerCLI (optional)


  • Allocation of IP address to the new vCenter server
  • Registration into DNS
  • Make sure all VM snapshots are either committed or deleted (snapshots can cause major issues during upgrades)
  • Make sure storage has enough space available for the new vCenter server
  • Removable media is detached from all VMs
  • Virtual Network settings for all ESX hosts are documented
  • Record current location of VMs if your environment requires fixed locations
  • Downtime arrangement with stakeholders (the upgrade itself doesn’t require downtime for VMs.  However, all VMs will require a reboot after VMware Tools upgrade – once moved to the new environment)
  • Confirmation that other hosts in the cluster have enough resource available to temporarily host VMs from other hosts while they get upgraded

This brings us to a point where we are ready to make a start on upgrading the VirtualCenter server, which is the first step towards an upgrade to vSphere 4.  In the next part, I’ll go through the process to upgrade an environment managed by an x86 VirtualCenter 2.5 server to one run by an x64 vCenter 4 server.  See you then!