PVS (Provisioning Services) or MCS (Machine Creation Services, aka linked clones)? This is a long-standing debate that I’m hoping to have the time to address after Citrix Synergy. But I did appreciate this breakdown since I continue getting this question all the time: Should I choose PVS or MCS for my deployment?

Well, in our debate-obsessed culture (US Elections, Batman vs Superman, Captain America vs Iron Man… the list is endless), this one is heating up. In some ways- it’s like having to chose the less of multiple evils…

Movie Villains in a Political-Style Debate

But in all honesty- how do you make the decision?

Well- of course it depends- but one thing you may want to consider first from Dan Feller’s recent blog- which bottleneck will you be experiencing?

PVS vs MCS – Part 2: Scalability | Ask the Architect

In a nutshell- if your storage is awesome (super fast with good deduplication capability) but your network may not be… MCS is an easy win.

If you plan to deploy to the cloud- MCS is an easy win.

If you need it deployed quick for a POC- MCS is an easy win.


Considering the real network consumption to boot a VM is less than 300 MB, and that PVS makes diskless or near-diskless configurations possible…

PVS is still my reference standard, even for smaller environments. Here’s why:

  • PVS has a proven track record and an ability to deploy a single image to multiple hypervisor pools. MCS struggles with requiring copies of the master VM to each storage. While this has gotten better, PVS is still epic in this regard.
  • Networks have evolved and is barely ever a bottleneck that makes PVS struggle. Even a single 1Gbit connection can boot and maintain several hundred target VMs. Given that most VMs are operating at more than 10Gbit in the enterprise today and the load can be spread to multiple PVS servers… this factor barely exists any longer.
  • PVS has always reduced IOPS requirements overall, but in the past 4 years has seriously jumped forward because of two things:
    • Your .vhdx file is read and cached into RAM, so subsequent reads for target device requests come from RAM. This means you can scale nearly endlessly with virtually no IOPS impact from reading the base vDisk.
    • Write Cache in RAM with Failover to Hard Disk, while the longest description ever is perhaps one of the single most epic bits of Citrix technology to be deployed in the past 10 years. Reducing the amount of storage IOPS for Write, which used to be almost 90% of the overall IOPS required for PVS targets is now lessened because the writes are cached in RAM and in some cases don’t even hit the disk at all!
  • PVS makes a pod-based architecture viable, lowering downtimes significantly. With the right design, you can have an entire rack of servers go offline and your users won’t even know. You can design in ways that allows you to mix storage and hypervisor pools that MCS has trouble maintaining. So when I say it scales “better” I am rarely talking about quantity but operational quality. Of course, it all depends on good design but if you want to hear more about that, I’d love to discuss it!
  • PVS prevents the SAN battle. Nearly every time I go into a deployment of XenDesktop the team managing the SAN storm into the conference room with a unified front ready to say ‘no.’ But I tell them we may not need them at all (local storage really is possible for PVS targets) or that our IOPS will be less than 1 per user…  their shoulders drop down, they smile and tell me to have a nice day. And, I do. Because they said “yes”- because I’ve made their life easier.
  • PVS can track versioning and rollback images with much more speed and efficiency than every other technology out there I have ever seen.

Now, does PVS represent a learning curve- absolutely, which is I think the other thing that needs to be further discussed. I continue to see bad practices out there… but first I want to hear from you: What experiences have you had between MCS and PVS, and what are your thoughts? What kind of questions do you have? Comment below!

But if you want my advice in most cases, subject to a whole bucket of ‘it depends’ here it is:

  1. POC with MCS
  2. Small deployments and cloud-based deployments with MCS
  3. Go to Production with PVS
  4. Put on your gloves and get ready for a fight

Good luck! Share this with your colleagues – I’d love to hear more from people before I start the Citrix Imaging topic in a few weeks!