In XenDesktop, MCS is one of the options for provisioning virtual desktops on the underlying Hypervisor, Host Infrastructure. The other method is PVS. Before XenDesktop 7 these virtual machines were based on client operating systems. From XenDesktop 7, MCS can also provision virtual machines based on server operating systems. However, Personal vDisks are only applied in VDI, i.e., client OS.
When creating virtual client OS based desktops using MCS, we could either create Pooled (Random or Static) or Dedicated desktops:
Pooled-Random: Desktops are assigned randomly. Each time when a user logs on he could possibly get a different desktop in a pool. When rebooted, any changes made are deleted.
Pooled-Static: Desktops are permanently assigned to a single user. Once a user logs on a desktop is assigned to that specific user. Each the time when a user logs on he will get the same machine. When rebooted, any changes made are deleted.
Dedicated Desktop: As with Pooled-Static, desktops are permanently assigned to a single user. During reboots, any changes made will persist across subsequent start-ups.
In Pooled desktops users can not install or update applications themselves and their changes will not be save when rebooting or logging off. But the management is easy and storage requirements low. In dedicated desktops, users are happy but costs per user rise because of increased storage size and management become more complicated.
The first step in provisioning a Pooled (random or static), or Dedicated desktop is to create the base (master), or golden image and this is used as a ‘Template’ for future VM provisioning. Then we will start creating a VM and assign vCPU, memory and Disk space. Install the OS, applications, AV and the XenDesktop Virtual Agent etc.Next thing is to create a Machine Catalog from XenDesktop Studio which will launch MCS in the background or we can start the MCS wizard manually. We need to decide what type of Catalog we want to create, and select the ‘Machine Type’. If we select ‘Pooled desktop’ then we have to select random or statically assigned desktop to users when they log on.
Then we need to select the base (master) image and decide how many VM’s we would like to provision and the desktop’s base resources like the amount of vCPU, memory and the hard disk size need to assign per VM. Choose either new AD computer accounts need to be created automatically, or we will use existing ones instead.
On the ‘Create accounts’ page, the next step, we can select the OU where these VM’s to be created in Active Directory and we need Administrative permissions to do this. Finally we click ‘Finish’ on the summary screen. Now MCS will create the number of machines specified, it will add two disks to each machine: an identity disk (16 MB) which provides the VM with a unique identity, also used for Active Directory, and a differencing disk used to store all writes made to the virtual machine, which is linked to the read only copy of the master VM or otherwise, the snapshot taken from it. If it is supported by the storage solution then this disk can be thin provisioned, otherwise it will be as big as the base (master) virtual machine mentioned before. Note that each VM provisioned by MCS will get its own ID and differencing disk.
During the process MCS will take a snapshot of the base (master) VM, unless you manually created and selected a snapshot while doing one of the previous steps. Doing it this way, gives you the option to give it a name, otherwise XD will name it automatically.
Next, MCS creates a full copy (or clone) of the snapshot and places this in storage repository. This is a ‘read only’ copy shared by all VM’s. If we have multiple storage repositories then each repository used by the catalog will receive its own copy. In short, these are the steps needed to set up your Pooled or Dedicated desktop catalog. We might have left out some smaller steps in between, for example, the machines will also get registered in Active Directory, and this gives us the big picture.
Storage and Management
When managing hundreds of Pooled desktops, used at the same time, all these can potentially grow as big as the base (master) image, that’s a lot of storage. In practice this probably won’t happen that much, because when a Pooled desktop gets rebooted all changes made to the VM (stored on the underlying differencing disk) will get deleted. So we need to make sure that we have enough free space available.
When we use dedicated desktops, we start out the exact same way, but when the VM gets a reboot all the writes to the underlying differencing disk won’t get deleted. The user re-logs in everyday, again and again making changes to the underlying base (master) image (written to the differencing disk) and updating regularly it won’t get deleted. When VM gets rebooted, the underlying differencing disk will keep expanding and consume more free space. So these dedicated machines will consume more storage than their Pooled machines.
We need to manage these dedicated desktops on an individual basis, because with dedicated desktops will not update the underlying base (master) image without destroying the accompanying differencing disk.
Updating the Base Image
For Pooled desktop when we update the base image, we need to point the (new) updated image to the Pooled desktops and reboot the machines.
When we update the base image of the dedicated desktops it works a bit differently. Once a differencing disk is pointing to one of the master or the base (clone) image, it cannot be changed. So when we update the base image, it will create a complete new copy or clone. The newly provisioned dedicated desktops will use this new or updated base image. The other dedicated desktops will continue to use the ‘old’ base image. So for dedicated desktops, management is not easier like pooled desktops.
Pooled desktops: Management is easy and the need for storage is less, but users will only get what is on the base image and can’t make any changes. In dedicated desktops users can save their work and changes as they want but the management is harder and can consume more storage. So most of the companies prefer Pooled desktops for overall use and only offer dedicated desktops when really needed.