Fast Provisioning Enhancement in vCloud Director 5.5

Fast provisioning was introduced with vCloud Director 1.5 and enables speeding up a cloning process when deploying vApps from catalog or copying VMs. It utilizes vSphere linked clones where the base image is not cloned, instead a delta disk is created to record changed blocks.

vCloud Director 5.1 enabled fast provisioning support of VAAI accelerated hardware clones with NFS arrays that offered this feature. I described in detail how the feature works with NetApp flex clones here. Where linked clones bring performance impact on reads due to the need of traversing the chain of delta disks to find the right block and also due to problem that the delta disk is not properly aligned, hardware clones (depending on storage array implementation) might have no such performance impact.

One of the main characteristic of linked clones (vSphere native or hardware accelerated) is the need to have the base disk on the same datastore as the delta disks. vCloud Director placement engine always prefers to place the fast provisioned clone on the datastore with base image, however there might be situations when it is not possible. The datastore might be full (red threshold), the target VM should be placed to different storage profile (renamed to storage policy in 5.5), to a cluster that does not have access to the base image catalog or to a different vCenter Server. In such cases if the original VM was a catalog template, a shadow VM was fully cloned on the target datastore first and then linked clone was created.

Catalog

The problem with this approach is that where linked clone creation takes seconds, shadow VM creation could take minutes. This leads to inconsistent quality of service to the end-users. I have always recommended to service providers to ‘pre-warm’ datastores by manually forcing creation of shadow VMs for their catalog images. The good news is that now in vCloud Director 5.5 there is a hidden advanced config which will do this for you automatically.

Following entry must be added to the config table in vCloud Director database: valc.catalog.fastProvisioning=true. This can be accomplished with this SQL statement:

INSERT into [vcloud].[dbo].[config] (cat,name,value)
VALUES (‘vcloud’,’valc.catalog.fastProvisioning’,’true’);

From now on vCloud Director will once a day (every 24 hours from its first start) check status of all catalog templates and will proactively create shadow VMs for each combination of storage policy and cluster. It will make sure that there is at least one datastore with enough space (below yellow threshold) with the shadow VM in each possible storage policy and cluster combination so any provisioning operation will be very fast.

Shadow VMs created on two additional datastores which are members of two different storage policies
Shadow VMs created on two additional datastores which are members of two different storage policies

Some additional notes:

  • It is all or nothing feature. It is not possible to selectively enable only for certain templates.
  • To use this feature, database editing is required. Generally unless a database edit is documented in official VMware source (documentation, KB or support request) such action should be considered as unsupported.
Advertisements

7 thoughts on “Fast Provisioning Enhancement in vCloud Director 5.5

  1. Good news, any idea of when this might be officially supported, maybe added as a configuration option via the vCD UI?

  2. You stated above “I have always recommended to service providers to ‘pre-warm’ datastores by manually forcing creation of shadow VMs for their catalog images.”. Can you give any insight on how to ‘force’ shadow copies of catalog images? We are trying to test out some theories with our environment and that would be helpful for our tests…

    1. Disable the original datastore and deploy the Catalog VM from it. Another datastore will be picked for the placement. You can delete the deployed VM, the shadow VM will stay. Disable again and repeat.

  3. Did you test vCloud Director 5.5 Fast Provisioning with Netapp VAAI ?
    I have an issue with NetApp VAAI, when I copy a vApp using Fast Provisioning, vCloud Director fails with the error:
    com.vmware.ssdc.util.LMException: Internal Server Error
    at com.vmware.ssdc.util.LMException.wrap(LMException.java:123)
    at com.vmware.ssdc.library.ExceptionFactory.createFromMultiple(ExceptionFactory.java:32)
    at com.vmware.vcloud.vdc.impl.AbstractVdcService.waitForFabricVmFutures(AbstractVdcService.java:902)
    at com.vmware.vcloud.vdc.impl.AbstractVdcService.copyVAppContents(AbstractVdcService.java:638)
    at com.vmware.vcloud.vdc.impl.AbstractVdcService.copyVAppContents(AbstractVdcService.java:291)
    at com.vmware.vcloud.vdc.impl.ResourceEntityServiceImpl.copyResourceEntityTask(ResourceEntityServiceImpl.java:249)

    Thanks.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s