If you’ve used Horizon View over the last few years, then you would’ve almost certainly come across linked-clones. Linked-clones use a parent image, called a “replica” that serves read requests to multiple VMs and writes in each desktops are captured into their own delta disk. They can also be used to change desktop update methodology, instead of updating every desktop you can update the parent image and recompose the rest of the desktops.
Horizon 7 has introduced a new method of provisioning with Instant Clones. Instant Clones are similar to Linked-Clones in that all desktops read from a replica disk and write to their own disk, but Instant Clone takes it one step further by doing the same with the memory. Instant Clones utilize a new feature of vSphere 6 where the desktop VMs are forked off a running VM instead of cloning a power off VM, which has savings for provisioning, updates and memory utilisation.
Just like with linked-clones, with Instant Clones you start with your Golden Image. This is the VM you install the operating system on, join to the domain and install any applications you want for all users. Follow the same OS optimisations you would for Instant Clones. When you’re done, release it’s IP address, shut it down and create a snapshot. Now you are ready to create your Instant Clone pool. This VM should have VM Tools installed, and the Horizon Agent with the Instant Clone module. It is NOT possible to have the Instant Clone and Composer modules co-installed, so you will always need different snapshots if using Instant Clones and Linked Clones from the same golden image. Reservations can be set on the Golden Image and they will be copied to the Instant Clones, reducing the VSWAP file. An important thing to note is the Golden Image must be on storage accessible to the host you are creating your Instant Clone desktop pool on.
When you create your pool, Horizon will create a Template. A template is a linked-clone from your Golden Image created on the same datastore as the Golden Image. It will have the name cp-template and will be in the folder ClonePrepInternalTemplateFolder. The disk usage of these are quite small, about 60MB. There will be an initial power on after the Template is created but it will then be shutoff.
Next Horizon will create a Replica. This is the same as the Linked-Clone replica. It is a thin-provisioned, full clone of the template VM. This will serve as the common read disk for all of your instant clones, so it can be tiered onto appropriate storage through the Horizon Administrator console the same way it was done with Linked Clones. Of course if you are using VSAN there is only one datastore so tiering is done automatically. Horizon will also create a CBRC Digest file for the replica. The replica will be call cp-replica-GUID and will be in the folder ClonePrepReplicaVmFolder. The disk usage of the replica will be depend on how big your Gold Master is, but remember it’s thin provisioned and is not powered on, so will have no VSWAP.
Now Horizon will create the final copy of the original VM, called a Parent. The parent is what is going to be used to fork the running VMs. The parent is created on every host in the cluster (remember we are forking running VMs here, so every host needs to have a running VM). These will be placed on the same datastore as the desktop VMs, there will be one per host, per datastore. Because these are powered on, they have a VSWAP file the size of the allocated vMEM. In additional there will be a small delta disk to capture the writes booting the parent VM and the VMX Overhead VSWAP file, but this is and the sum of the other disks is relatively small at about 500MB. These will be placed in the ClonePrepReplicaVMFolder.
Something you’ll notice with the parent VM is that it will use 100% of it’s allocated memory which all also cause a vCenter alarm.
We are finally ready to fork! Horizon will create the Instant Clones based on the provisioning settings, which can be all up front or on-demand. Instant Clones will have a VSWAP file equal to the size of the vMEM minus any reservations set on the Gold Master, plus a differencing disk. The amount of growth for the differencing disk will depend in how much is written to the local VM during the user’s session but is deleted on logoff. When running View Planner tests this grew to about 500MB, which was the same as when using View Planner for Linked Clones. The provisioning of Instant Clones will be FAST and you’ll see MUCH MUCH lower resource utilisation of your vCenter Server and less IO on your disk subsystem as there is no boot storm from the VMs powering on.
Instant Clones are a great new feature in Horizon 7 that take the concept of Linked-Clones on-step further. They bring the advantageous of reducing boot storms, decreasing provisioning times and change windows as well as bringing savings to store utilisation. Instant Clones introduce a number of new objects called Replicas, Parents and Templates so it is important to understand how these are structured and their relationships to plan your environment accordingly.