Introduction
Upgrading vCenter Server is a critical operation that requires careful planning. Unlike ESXi upgrades, vCenter manages all your hosts and VMs — if something goes wrong, you lose management plane visibility. This guide covers upgrade planning, execution, and rollback.
Upgrade Path Considerations
- Always check VMware Interoperability Matrix before upgrading
- vCenter must be same version or newer than ESXi hosts
- Upgrade vCenter first, then ESXi hosts
- You cannot skip major versions (e.g., 6.7 → 8.0 requires going through 7.0)
Pre-Upgrade Checklist
BASH
# 1. Take a snapshot of vCenter VM (if running as VM)
# VMs can be snapshotted without stopping management
# 2. Backup vCenter
# Method 1: File-based backup via vCenter UI
# VAMI → Backup → Schedule/Trigger backup to NFS/SMB/FTP
# 3. Note current version
# vCenter UI → Menu → Administration → Deployment → System Configuration → Nodes
# 4. Check disk space
# VAMI (port 5480) → Monitor → Disk
# Need 50%+ free on /storage/db, /storage/log
# 5. Check services are healthy
# VAMI → Services → Verify all are running
# 6. Export certificates if using custom certs
# vCenter → Administration → Certificate Management → ExportvCenter Upgrade (VCSA)
vCenter Server Appliance (VCSA) upgrades differently from install — it's a "stage and upgrade" process.
Method 1: ISO-based upgrade
- Mount vCenter ISO
- Open
vcsa-ui-installer/lin64/installer(or win32 for Windows) - Select "Upgrade"
- Connect to existing vCenter (source)
- Wizard guides you through deploying the new appliance alongside the old one
- At the end, data is migrated and old vCenter is shut down
Method 2: GUI Upgrade
BASH
# Run from the VCSA ISO
./vcsa-deploy upgrade --accept-eula --precheck-only /path/to/upgrade-config.json
# Then run actual upgrade
./vcsa-deploy upgrade --accept-eula --no-esx-ssl-verify /path/to/upgrade-config.jsonUpgrade config JSON:
JSON
{
"__version": "2.13.0",
"new_vcsa": {
"esxi": {
"hostname": "esxi-host.company.com",
"username": "root",
"password": "esxi_password",
"deployment_network": "VM Network",
"datastore": "local_datastore"
},
"appliance": {
"thin_disk_mode": true,
"deployment_option": "small",
"name": "vcenter-new"
},
"network": {
"ip_family": "ipv4",
"mode": "static",
"ip": "10.0.0.11",
"dns_servers": ["8.8.8.8"],
"prefix": "24",
"gateway": "10.0.0.1",
"system_name": "vcenter.company.com"
},
"os": {
"password": "new_root_password",
"ssh_enable": true
},
"sso": {
"first_instance": true,
"site_name": "Default"
}
},
"source_vcsa": {
"hostname": "old-vcenter.company.com",
"username": "administrator@vsphere.local",
"password": "old_password",
"ssl_certificate_verification": false
},
"ceip": {
"settings": {
"ceip_enabled": false
}
}
}Post-Upgrade Verification
POWERSHELL
# Connect to new vCenter
Connect-VIServer -Server vcenter.company.com
# Check all hosts are connected
Get-VMHost | Select-Object Name, ConnectionState, Version
# Check all VMs are accessible
Get-VM | Where-Object {$_.PowerState -ne "PoweredOn"} | Select-Object Name, PowerState
# Verify vSAN status
Get-VsanClusterConfiguration
# Check DRS/HA
Get-Cluster | Select-Object Name, DrsEnabled, HaEnabled
# Verify vCenter build number
$si = Get-View ServiceInstance
$si.Content.AboutRollback Options
If upgrade fails during Stage 1 (before data migration), original vCenter is unaffected — just remove the new appliance.
If upgrade fails during Stage 2 (data migration), you have limited options:
- If vCenter VM was snapshotted — revert snapshot
- If file-based backup exists — restore from backup
- Contact VMware support
Common Upgrade Issues
BASH
# Issue: Disk space insufficient
df -h /storage/db
df -h /storage/log
# Clean old logs
/usr/lib/vmware-vpx/scripts/cleanupdb.sh
# Issue: Services not starting post-upgrade
# Check VAMI → Services → start failed service
# Issue: Certificate errors after upgrade
# Reset machine SSL certificate
/usr/lib/vmware-vmafd/bin/vecs-cli
# Issue: Linked mode vCenter upgrade order
# Must upgrade all vCenters in Enhanced Linked Mode simultaneously