I encountered an interesting issue while attempting to upgrade a vCenter 6.5 Update 2 appliance to 6.7 Update 3. I started by mounting the 6.7U3 iso, executing the installer and selecting the upgrade option. The first step was to connect to the source vCenter appliance that I was upgrading and the vCenter that was managing it.
Continuing through the wizard, I got to the Select Deployment Size step, not all deployment sizes were available and I was unable to select Tiny. The only options that appeared were Medium, Large and X-Large. This was very strange.
Looking a little closer, I noticed the storage for the source machine was showing as 475GB. I knew this wasn’t possible as the appliance was deployed as Tiny. After checking via the vSphere web client, I confirmed that the 12 disks allocated only totalled just under 230GB. So was this a bug with the 6.7 Update 3 installer?
I decided to check the VM provisioned size via PowerCLI to see what it reported, and sure enough, it also reported the inflated size of 475GB.
$VM = Get-VM -Name "VCSA-01" [math]::Round($VM.ProvisionedSpaceGB,0)
I had taken a VM snapshot before attempting the upgrade, and I wondered whether the snapshot was the reason it was reporting the inflated provisioned size. So I took another snapshot and rechecked via PowerCLI. Bingo! It increased by another 229GB to 704GB.
I restarted the vCenter Upgrade installer and confirmed is also detected the increased size.
I decided to see if this behaviour was present in a previous vCenter version upgrade, so I mounted the VSCA 6.7 GA iso and proceeded with upgrade wizard using the exact same steps. Interestingly it detected the inflated storage of the source VM; however, it is still allowed me to select all deployment size options, so the behaviour has definitely changed between versions.
I figured the behaviour exhibited with the update 3 installer was implemented as a safeguard to prevent upgrading to a smaller appliance, in fact, if you click the info icon ⓘ it states…
Depending on the overall size, sizes of individual partitions, number of VMs, and number of hosts on your source machine, some deployment sizes may be unavailable.
At this point, I needed to find a workaround. Of course, I could just remove the snapshots as the upgrade will actually deploy a new appliance and migrate the data, but I wanted to keep the snapshot. I deleted all snapshots then restarted the upgrade wizard which allowed me to select “Tiny” as the deployment size. Just before pressing Finish on step 11, I took a new snapshot, pressed FINISH and completed the upgrade successfully.
Limiting the deployment size options is great to prevent human error, but I think the installer should have a better way of detecting the actual size of the deployment rather than calculating the ProvisionedGB.