Architecting a vCloud Director Solution : vCloud Director Design : 7.5 Storage : 7.5.2 Fast Provisioning
   
7.5.2 Fast Provisioning
Fast provisioning saves time by using linked clones for virtual machine provisioning operations.
A linked clone is a duplicate of a virtual machine that uses the same base disk as the original, with a chain of delta disks to keep track of the differences between the original and the clone. If fast provisioning is disabled, all provisioning operations result in full clones.
It is possible to offload creation of linked clones during fast provisioning copy or clone operations to the storage array:
Only NFS arrays are supported.
NAS Agent must be installed on each ESXi host in the resource group.
vSphere Storage APIs – Array Integration (VAAI) must be enabled on the storage array. The array might need additional licensing for creation of fast clones.
VAAI must be enabled in vCloud Director on each datastore or datastore cluster.
The following are fast provisioning design considerations:
A linked clone cannot exist on a different datastore than the original virtual machine. vCloud Director creates shadow virtual machines to support linked clone creation across vCenter Server instances and datastores for virtual machines associated with a vApp template. A shadow virtual machine is an exact copy of the original virtual machine created on the datastore where the linked clone is created. You can view a list of shadow virtual machines associated with a template virtual machine.
Automatic pre-creation of shadow VMs to different storage policies or to different vCenter Server environments can be configured by adding the following row into the vCloud Director database config table: valc.catalog.fastProvisioning=true. This setting applies to all catalog VMs in all organizations, which means it could have large storage capacity overhead. The pre-creation is performed when the VM is inserted into a catalog and after a day is re-checked if the datastore status has changed.
When a maximum chain length (full clone > linked clone > linked clone > …) is reached, the next clone results in a full clone. The default vSphere linked clone chain length is 30. The default VAAI chain length is 256. If storage arrays support VAAI offloaded fast clone operations with a shorter chain length, the VAAI chain length must be adjusted in the vCloud Director database in the config table, row VirtualMachine.AllowedMaxVAAIChainLength.
Note The number of clones from the same full clone is not limited (the chain length is only 2).
When the yellow threshold is reached on a particular datastore, fast provisioned clones are no longer created. Instead, a full clone is provisioned to another datastore.
Manual (vSphere triggered) use of Storage vMotion of a linked clone creates a full clone.
VAAI fast provisioning leverages VAAI native snapshots. Storage vMotion cannot be used on a virtual machine with native snapshot. Any relocations to different storage must be done from within vCloud Director with the VM in powered-off state.
While creation of a vSphere linked clone is very fast, its I/O performance depends on the chain length. Writes go into a delta file, which is misaligned at the storage level and can create backend I/O overhead. Reads might traverse the entire chain to find the correct block and multiply needed I/O on the backend.
Storage DRS supports vSphere linked clones both for placement and balancing. Only placement works with VAAI fast provisioning.
Disks of fast provisioned VMs cannot be resized. If needed, the tenant can add fast provisioned VMs to its catalog and deploy them back. The Add vApp from Catalog action allows disk resizing.
If an Org VDC is enabled for Fast Provisioning, it is not possible to create VMs with disks on different storage policies.
The vCloud system administrator can create a full clone from a fast provisioned VM with the Consolidate action.