The upgrade process of VCD allows two different paths:

  1. Upgrade by using an update package
  2. Upgrade by using the VMware update repository

In this post, we’ll walk though the update using an update package. In particular, we’ll upgrade VCD from version 10.4.2 to 10.5.1.1 in a multi-cell setup. In this setup we have one primary appliance and two standby appliances.

During the upgrade of the VCD appliance deployment, the Cloud Director service stops working and some downtime can be expected. The downtime depends on the time we need to upgrade each VCD appliance and to run the VCD database upgrade script. The number of working cells in the VMware Cloud Director server group reduces until we stop the VCD service on the last VCD appliance. A properly configured load balancer in front of the Cloud Director HTTP endpoints should stop routing traffic to the cells that are stopped.

Prequisites

Before we start installing the update package on the VCD appliances, we must take care about some prerequisites:

  1. Get the update package from the Broadcom download portal
  2. Copy the update package to all VCD
  3. Set database automatic failover mode
  4. Take an offline snapshot of the primary appliance

First step is to grab the update package from the Broadcom download portal, and to copy them over to the VCD cells using SCP.

Then, we set the automatic failover mode of the database to MANUAL. See this blog post how to do that.

Next, we must identify the primary VCD appliance of the server group. Login to the VAMI portal of any of the three VCD cells at https://cell_eth1_ip_address:5480 and click on Embedded DB Availabilty.

The last preparation step is to create an offline snapshot of the primary VCD cell: In the vCenter Server on which the primary VCD appliance resides, navigate to the primary VCD appliance, right-click it, and click Power > Shut Down Guest OS. Then take a snapshot of the VCD appliance, e.g. right-click the appliance and click Snapshots > Take Snapshot. Then right-click the VCD appliance and click Power > Power On.

Once the primary appliance is up again, verify that all nodes in the database high availability configuration are in a good state. Log in as again root to the appliance management UI at https://primary_eth1_ip_address:5480. In the left panel, select Embedded DB Availability. Make sure that the cluster health is in status HEALTHY and that failover mode is set to MANUAL.

Upgrade procedure

1. SSH to all VCD appliances and shutdown VMware Cloud Director by running the following command (in this setup, the administrative username for the cell management tool ist “administrator“):

/opt/vmware/vcloud-director/bin/cell-management-tool -u administrator cell --shutdown

2. Create the local-update-package directory in which to extract the update package.

mkdir /tmp/local-update-package

3. Extract the update package in the newly created directory.

tar -zxf VMware_Cloud_Director_10.5.1.11019-23401219_update.tar.gz -C /tmp/local-update-package/

4. Set the local-update-package directory as the update repository.

vamicli update --repo file:///tmp/local-update-package

5. Check for updates to verify that you established correctly the repository. The upgrade release appears as an Available Update.

vamicli update --check

6. Now, apply the available upgrade.

vamicli update --install latest

Repeat the above steps 2- 6 on the remaining cells.

After the application has been updated on all availabe cells in the server group, we run the VCD database upgrade utility from any of the cells:

/opt/vmware/vcloud-director/bin/upgrade

Once the database schema upgrade has been successfully completed, we reboot each VCD appliance. After the reboot, we can monitor the application startup in the cell logfile at /opt/vmware/vcloud-director/logs/cell.log.

Post upgrade tasks

After the application startup has been completed on all cells, we can log in to the VCD Service Provider Admin portal and verify that the upgrade is successful.

A second verification step is to log in to the VCD appliance management UI as root and to confirm that all the appliances appear with a HEALTHY status (in Embedded DB Availability).

The final step is to set the database failover mode to AUTOMATIC again using the appliance API (see this blog post).