Jason Poyner, Technical Director, Deptive
Citrix Provisioning Services (PVS) allows you to have a single instance image management of your XenApp and/or XenDesktop VMs – otherwise known as desktop management nirvana! This means you only have to update a single image which is then streamed to hundreds, or thousands of desktops. No more unreliable software deployments across your desktop fleet, just install the new software once on the master image and when the PVS clients (‘target devices’ in PVS speak) reboot, they get the updated image with the new software.
Easy roll-backs and troubleshooting
Every update to a PVS image (vDisk) creates a new version of the vDisk which provides some version control. Having versioned vDisks allows changes to be rolled-back as easily as they were rolled-out. Rather than an unreliable software uninstall, a roll-back with PVS uses the previous version of the vDisk from BEFORE the updates were made, which guarantees a successful roll-back. The other key benefit to PVS is that troubleshooting is greatly reduced; have an issue with a desktop? Just reboot it and the desktop will stream the vDisk like the first time it booted (I’ll explain this further below).
Citrix Provisioning Services basic architecture
How to set it up
A production PVS environment consists of at least two PVS servers for HA which have been sized correctly for your environment (memory being the most important consideration). A disk image is taken from a computer which has been built up with all patches, applications etc installed and configured, and the vDisk image is imported into PVS. The imported vDisk image usually sits on locally attached storage on each PVS server (other options are available). ‘Target device’ VMs are created without a C: drive and set to boot from network. The MAC addresses of the VMs are added to the PVS database so that when the VMs PXE boot the PVS server knows which vDisk to provide. The first time a vDisk is streamed to a target device the vDisk is cached in memory on the PVS server. Now when another 10 or 1,000 VMs boot they stream the vDisk from the PVS server memory – your read IOPS are now served from memory!
Since we are streaming a single vDisk to multiple computers, the vDisk must be read-only to avoid corruption. But Windows can’t run off a read-only disk, so where do the writes go? PVS has a ‘write cache’ which, as the name suggests, is a location for the disk writes. Again, there are several options for the location of the write cache, however DO NOT use the default option of using the PVS server for the write cache (it’s too slow and breaks PVS HA). Attaching a small (10GB) disk to each VM for the write cache is a good approach – this disk can reside on local host storage, the SAN, or if you really want some performance, use Atlantis ILIO (see my blog on the desktop virtualisation ‘secret sauce‘). When the PVS target device reboots, the write cache is cleared so each boot is a ‘first boot’. To ensure there is no data loss, use redirected folders and a good profile management system. Since PVS 7.1, Citrix introduced a new and awesome write cache option called ‘Cache in device RAM with overflow on hard disk’. The option takes a chunk of VM memory and uses it as a disk cache which provides a massive performance boost over other write cache options – for more info see 30 x IOPS with Provisioning Services RAM cache.
Love for PVS
What I have found is that IT managers love the concept of PVS due to the consistency to brings to virtual desktop environments. IT staff take some time to adjust to the new way of managing a PVS environment, but again they love it once the new process has been adopted.
An alternative for smaller deployments
Since 2009, most of our Citrix projects have included Provisioning Services – some smaller deployments have not used PVS, as there is a moderate amount of infrastructure that is required. With the release of Citrix XenDesktop 7, Machine Creation Services (MCS) can now also be used for XenApp (or should I say XenDesktop Apps Edition….) which will be great for smaller deployments. MCS provides most of the benefits of PVS without the infrastructure. That sounds like the topic of another blog.
But wait, there’s more!
To further your desktop management nirvana, Citrix has released AppDisk with XenApp/XenDesktop 7.8. With AppDisk, applications are installed into a virtual disk (VHD/VHDK) which is then attached to VMs at boot. This allows an application, or group of applications, to be installed once, and used across multiple ‘silos’. For larger, or more complex environments, AppDisk can be used with PVS to reduce the number of unique PVS vDisks. I’m not really doing AppDisk justice (again it sounds like another blog topic), so take a look at Daniel Feller’s blog AppDisk Episode 1: Create and Deploy
Note: This blog post is the 2016 updated version of a post by the same name published on 22 Oct 2013.