What is Citrix Provisioning Services (PVS) and why should you use it?

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 PVS basic architecture

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

25 Comments

  1. MK

    Hi
    ” The imported vDisk image usually sits on locally attached storage on each PVS server (other options are available)”. I would like to know details about the other options.

    Please share the details.

    • Jason Poyner

      The VHD file, or VHDX file, is the actual virtual disk.
      The PVP file a properties file which contains info about the vDisk (VHD).
      LOK is a lock file which is generated when the VHD is in use.

  2. Raghavendra H

    so its the Persnoal vDisk which is the base for PVS ..am i correct here? if yes, then naming PVS – Personal VDisk Services could have made bit less confusing

    • Jason Poyner

      There is no technical minimum size, however, the infrastructure required for PVS doesn’t lend itself to very small deployments of say 3-4 XenApp servers. I recommend looking at MCS for these types of very small deployments.

  3. taken

    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 from a computer which has been built up with all patches, 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!

  4. John Wu

    Thank you so much. I was struggling to understand the whole PVS concept and your article is well presented and easy to follow.

  5. Tony

    Thanks for the article, very easy to follow. I have one question regarding vDisks and the rollback feature. What is the best practice for the number of vDisk “snapshots” to keep at any given time? Is it ok to keep multiple versions or should only one vDisk copy exist at any given time with all changes “commited” once testing has finished?

    • Jason Poyner

      Hi Tony, I’ll need a little more info before I can answer your question.
      Back in the “old days” (pre PVS 6) you had to make a copy of the vDisk which you then updated and deployed. Since PVS 6, the concept of versioning has made the update process oh so much easier.
      What version of PVS are you using? And if it’s PVS 6 or newer, are you using the versioning feature?

  6. staffing services

    I’m keen on the dear information and facts you provide in your posts. Let me take note of your blog post and also examine yet again here frequently. Now i’m reasonably convinced I’m going to master an abundance of completely new stuff listed here! Good luck for the following!

Subscribe to our Newsletter



Please leave this field empty.