Provisioning Services vs Machine Creation Services 2013 revision

This article has been update with a 2014 revision. Click here to go to the PVS vs MCS 2014 revision.

Over one and a half year ago I wrote a follow up on an article by Citrix architect Daniel Feller. The original article by Daniel Feller needed an update and now mine is getting pretty outdated as well.

I’m writing this in such a way you won’t be needing to read the earlier articles but of course you are free to do so anyway.

The first article by Daniel Feller can be found here.
My article called Provisioning Services vs Machine Creation Services can be found here.

After Daniel posted his decision tree over two years ago a lot has happened. New Citrix features like XenServer Intellicache and MCS for “XenApp on XenDesktop 7” have been released and are changing the whole decision making process.
On top of that vendors started to work on solving the whole storage IO issue.

  • Hardware vendors like FusionIO who are delivering local flash based storage with IO figures up top 500.000 IOPS.
  • Software vendors like Atlantis ILIO who are creating highly optimized and deduplicated memory based local storage.

New features and devices are not the only thing that changed over the  last few years, our knowledge of Windows IOPS usage and how to handle that load has grown as well. Mostly thanks to Jim Moyle, the guy who doesn’t like to be called Mr IOPS but in essence actually is. One example is the “MCS uses more than 1.6 times the amount of IOPS over PVS” discussion, although this is true we are talking about read operations which are mostly cached anyway.

All of this combined completely changes the decision making process and with this article I’m going to share my take on this. Is the always right, probably not and even if it is right now it will probably change over time. Keep your eyes open and be smart!

Before focusing on the why and how let’s start with looking at the original decision tree.



Now that we have seen the decision tree it’s interesting reevaluate certain decisions. I will finalize everything in the end conclusion where a new decision tree is included.

Mix and match

Let’s start with the first decision in the tree in which we ask the question about using a XenDesktop only, XenApp only or mixed platform. The reason for this is that, before XenDesktop 7, it wasn’t possible to do MCS for XenApp load. With XenDesktop 7 it’s actually possible to use MCS for XenApp load.


In the old days we were worried about boot and logoff storms because of the amount of IOPS this generated on our expensive shared storage systems. If so we would advise to use PVS because of better IOPS caching possibilities.

Lots has changed in the past few years but the IOPS load is pretty much still the same, yet the decision making process changed. The reason for this change is that we now  have more knowledge about the amount of IOPS and vendors created local storage based solutions for this. These solutions handle massive amount of IOPS and this pretty much solves our issues.
On the hypervisor level we are now able to do live storage migrations which helps us when we need to perform management tasks and don’t have the time to wait for all of the users to logoff their sessions.


Another decision is about the need for dedicated VDI desktops. If  you need persistency you were forced to use Machine Creation Services. The reason for this decision was based on the fact that Provisioning Services falls back to Server Side caching when the cache has to be persistent. This method of caching ends in performance issues.
With Provisioning Services 6 we are able to do client side caching of persistent caches and pretty much solves this issue so we can use both.

Physical vs Virtual

When we are going to implement physical targets for both VDI and RDS we need PVS. MCS integrates on the hypervisor storage layer and therefor can’t be used on physical targets. This is the simplest decision of them all!

So here we go let’s help you decide between MCS and PVS

Because so many things changed over the last few years I decided to recreate the whole decision tree. Remember that this is just me sharing my decisions and everyone is entitled to their own ideas. When you disagree on a decision please let me know in a comment, when I agree I will change the decision tree and if not…… everyone else can at least think about your ideas.

One last thing before I’ll show you the decision tree. If there is a decision that ends up in either PVS or MCS this doesn’t necessarily mean you should use either one of them. You can still use PVS as well as MCS. I like my designs to be as simple as possible so I would advise on just one of them but as always, it’s up to you!



While looking at the decision tree there is one thing that you should know. When the decision is PVS that’s that and MCS is not possible, at least for the reason why it pointed you to PVS. When the decision is MCS you can use both MCS and PVS my advice however is to use MCS. PVS runs on dedicated servers (VM or physical) and is pretty heavy on network io and should be designed properly while MCS needs  nothing more than hypervisor snapshots which, by know, we already have.

If this was a movie I would now say cut and wrap it all up. But with every movie there are some names at the end of it with names of people who contributed to the movie in some way. I’d like to thank some of the guys who shared their thoughts with me and with that helped me to be able to share this information.

Jim Moyle for his terrifying knowledge on IOPS
Shawn Bass for sometimes making me think I’ve got it all wrong:)
Daniel Feller obviously for writing the first ever article on deciding between provisioning services vs machine creation services .
Kees Baggerman for challenging me on a daily level and reviewing this article

Tagged , , , , , , . Bookmark the permalink.

About Barry Schiffer

Barry is an IT Architect with 15 years of IT experience. He has gained both a broad and deep knowledge in the sphere of IT. Throughout the years, Barry has developed into a specialist in the field of Microsoft Windows, Server Based Computing, desktop and server virtualisation.Barry is co-founder and member of the Board of the Dutch Citrix User Group.Barry is awarded with the Citrix Technology Professional award in 2015 and received the RES Software Valued Professional award in 2012.

9 Responses to Provisioning Services vs Machine Creation Services 2013 revision

  1. One more item that would influence your decision: If your hypervisor does not support thin provisioning (for example if you use XenServer with an iSCSI-based SAN) then MCS is going to hit you very hard disc-space wise which would push you down the PVS route in this use case.

    • tjkreidl says:

      Not necessarily, if you use a smart storage device with SSD cache. Plus storage devices are capable of some pretty amazing throughput these days. We have a two-controller, four-port 10 Gb Dell MD3600i that can handle over 20k IOPS and that’s without any special SSD caching.

  2. Christian says:

    Hi Barry, your tree decides to use PVS instead of MCS if no “high io local storage is present”. I believe this decision points to the intellicache feature.
    We’re using MCS without intellicache but with a powerfull NetApp filer in the back. Do you see any drawback in this scenario?


  3. Pavel says:

    Hello guys!
    I have a question about enterprise level deployment of MCS: is it real to maintain up to 10 000 users on MCS technology?
    Is there any limits related to users’ quantity for using MCS?

    • Technology wise I think it’s possible. It just depends on how you are going to work out storage. If you do local storage this would mean a lot of storage repositories and a lot of time to do image updates. IMHO this wouldn’t work, however if you would use a converged solution like Nutanix and create a single striped volume it probably would be of no issue.

  4. Ron Kuper says:

    Hi Barry,

    Thanks for a wonderful blog post!

    1. Loved the fact that you included “High IO Local Storage” in there. But since today’s storage solutions (like ILIO) can provide high IO over shared storage where needed for persistent VDI, shouldn’t it be just “High IO Storage”?

    2. One thing I expected to see (specifically from you! :> ) is a reference to image management requirements in the decision tree (or at least in notes below it).
    Do you think out-of-the-box* image management features and time consumption is equal between the two?
    *when AIM isn’t readily available of course 😛

    3. Another thing I wonder is do we need to add Pooled/Persistent/Pooled+PvD into the equation… For instance – with PvD I believe PVS does not support Test (D) versions (?)


    • Hi Ron, I think it’s time for an update of the article. A lot has happened in the mean time, think of vSAN, Nutanix et cetera. Not promising anything but I’ll try to work something out this month.

      • Ron Kuper says:

        I’m eager to read your thoughts 🙂

        Storage optimization solutions are blooming these days… Though most of them do not deal with Image Management so to me the question still remains (To PVS or not to…).

        I am turning a bit from being a fan (of PVS) to being disappointed by its high sensitivity and lack of major advancements considering the long years.

Leave a Reply