“VMware Horizon™ (with View) delivers virtualized and remote desktops and applications through a single platform and supports end users with access to all of their Windows and online resources through one unified workspace.”
we will be discussing linked clones!!
So, what is a linked clone?
It’s the weekend and you're out at a dinner party with several new friends. The conversation goes around the table from person to person and everyone talks about who they are and what they do for a living. The conversation gets around to you and you say, “I'm a VMware View Administrator”. If your friends are like mine, you will get blank, questioning stares in return. As a VMware View Administrator, what do you tell people what you do when they ask and how do you explain it?
I tell them I'm a tree tender.
To most people, the concept of virtualization is foreign, but a simple explanation is normally enough to understand what a virtual machine is and provide a basic idea of how it works. But what about a linked clone? This is where we use our tree analogy.
Simplifying things, if you were to describe a tree to someone, how would you do it?
A tree has a central core or trunk, several leaf-covered branches coming off at the top, and at the base in the ground it has roots. A linked clone can be thought of in a similar way.
The Tree Trunk
This can be known as the template, golden image, or base image. It is a virtual machine (VM) that is installed with all of the appropriate Windows updates, applications and patches that your users require. This is setup and configured to be a generic VM from which our linked clones will branch.
This is the linked clone replica. This is a duplicate copy of the snapshot taken of the base image. The replica is used as the “base” for all linked clones attached to it, for the terms of space saving and efficiency. Each linked clone pool will have at least one replica, one per snapshot in use.
Each linked clone VM within a pool is a leaf. Each leaf is attached to a branch which is attached to a trunk. The linked clone VM is not a standalone VM, but is a combination of the replica and a difference disk. The difference disk contains every disk write made after the replica is created.
This is your vCenter. View Connection Server provides access, View Composer creates requests for cloning and customization, but your vCenter runs the whole show and makes things happen. Everything hooks into your vCenter.
How does it all work?
First, you need to create the template and prepare it for use. This includes installing VMware tools and the View Agent. Once you have all Operating System and application installed and updates complete, the template is ready, to be shut down and it’s snapshot is taken.
Within the View administrator, you will configure the pool to point at the specific base image and select the appropriate snapshot. Multiple pools can point to different images, the same image and snapshot, or the same image and different snapshots.
Once the pool is created, Composer will then request that vCenter clone a replica machine for use by the pool, and create the number of VMs needed to satisfy its pool requirements. This is where the linked clone machine is different than a standard VM. The replica contains everything that is needed to run Windows. It has all of the OS files, boot files and applications. The linked clone VM attaches to this so every linked clone shares the same Windows installation. A disk is created that contains the changes made for an individual VM. This checkpoint contains the domain and naming information and other basic information (the customization information) required to differentiate it from other linked clones attached to the same replica.
The linked clone can be customized in one of 2 ways. Sysprep (a Microsoft tool) uses a vCenter customization template that can be utilized to provide information on customizations to be performed. The second option is to use Quickprep which is Composer’s built in customization tool, and is generally recommended unless a Sysprep-specific customization is required.
At this point, the difference disk is created and all disk writes from that point on are saved to the difference disk. The replica is not modified, and the checkpoint contains all of the customization information that would be needed in the event the linked clone needs to be refreshed.
we covered the basics of what a linked clone is, the basic structure, and how a linked clone is provisioned. In this follow-up piece, we'll look at the 3 major operations performed on a linked clone. Refresh, recompose, and re-balance.
As mentioned a checkpoint is created containing the individual customizations to the VM that differentiates it from the replica. This checkpoint contains things like the machine password, domain information, Windows name, etc. This checkpoint is a snapshot of the VM post customization. The refresh operation reverts the VM to this checkpoint snapshot.
View Connection Server changes the status of the VM to Maintenance to tag it as unusable, reverts to the previous checkpoint snapshot, and after start-up, the View Composer agent updates the machine account password if needed. View Connection Server then sets the machine back to Provisioned, or Available to meet the pool requirements.
The Desktop is now ready for use.
A recompose lets you redeploy an existing View desktop while preserving any persistent or user data disks that may be attached to the VM.
When a recompose is performed with no configuration change (no new snapshot), no recompose will occur because Composer will detect that no changes will be made. The difference between using an existing template/snapshot and a new template/snapshot is a new replica is needed with a new snapshot. The new replica is cloned from the snapshot, and a new checkpoint and difference disk are created.
View changes the status of the desktop to Maintenance and creates the new snapshot if needed. Though the VM hardware is not replaced, this is a new VM and is customized using the same process as a newly provisioned desktop with a new checkpoint and difference disk. View then sets the machine back to Provisioned, or Available to meet the pool requirements.
The difference between using an existing template/snapshot and a new template/snapshot is a new replica is needed with a new snapshot. The new replica is cloned from the snapshot, and a new checkpoint and difference disk are created.
View Connection Server changes the status of the desktop to Maintenance and creates the new snapshot if needed. Though the VM hardware is not replaced, this is a new VM and is customized using the same process as a newly provisioned desktop with a new checkpoint and difference disk. View then sets the machine back to Provisioned, or Available to meet the pool requirements.
A re-balance serves 2 purposes-
It will redistribute linked clones to use available free storage space.
It is the only supported method to migrate linked clones between datastores. Storage vMotion will break a linked clone.
A re-balance will try to ensure all configured datastores are equally used based on the amount of available free space. I will not be discussing the algorithm used here because it is dependent on the version of View and the storage over commit settings. View will investigate each datastore the pool is configured to use, and determine which linked clones to migrate. It is possible during a re-balance that no desktops will be migrated. A refresh operation will also occur on all affected desktops.
When a re-balance occurs, the VM status is changed to Maintenance. View will then detach any persistent disks and move them and the VM to the new datastore. The persistent disks are attached to the VM at the new location. If a replica for the pool does not exist at the new location, Composer will request a new replica to be cloned by vCenter to be placed on that datastore. Composer will then attach the linked clone to the replica and customization occurs with a new checkpoint and difference disk. View will then set the machine back to Provisioned, or Available to meet the pool requirements.
A re-balance can also be used to vacate a datastore. Deselecting a datastore from a linked clone pool settings and then performing a re-balance on the pool will cause all associated linked clones from the pool to be migrating to another datastore (when possible). This is often used to migrate a linked clone pool from one datastore to another.
This covers the basics of what a linked clone is, and what maintenance and administrative options are available.
Horizon View has a few different types of desktop pools. Each pool handles desktops in different ways, and they each have different purposes. The type of pool that you select will be determined by a number of factors including the use case, the storage infrastructure and application requirements.
The type of desktop pools are
Full Clone Pools – Each virtual desktop is a full virtual machine cloned from a template in vCenter. The virtual machines are managed by View Connection Servers.
Linked Clone Pools – Each virtual desktop is based on a snapshot and shares its disk with the parent virtual machine. Changes to the linked clone are written to a delta disk. The virtual machines are managed by View Composer.
Manual Pools – The machines that make up the manual pool consist of virtual and/or physical machines that have had the View Agent installed. These machines are not managed by View.
Terminal Services Pool – The machines that make up these pools are Windows Servers with the Remote Desktop Services Role installed.
There is one other choice that needs to be selected when creating a desktop pool, and that is the desktop assignment type. There are two desktop assignment types:
Floating Assignment – Desktops are assigned to users at login and are returned to the pool of available desktops when the user signs out.
Dedicated Assignment – Desktops are assigned to a user, and the user gets the same desktop at each login. Desktops can be assigned automatically at first login or manually by an administrator.