Discussion of IOPs required for XenDesktop MCS and PVS

Quick summary

With PVS read and write IOPs are separate (or at least should be); the read IOPs are to the PVS servers (and can be minimized by adding RAM to the PVS servers) and write IOPs are to the write cache. Usually the write cache would be on some fast, but cheap, local storage (the write cache can be heavily improved by setting it to use local RAM on the VM too). You should not set it to Cache on server as this has major downsides:

Both read and write IOPs would go to the PVS servers, thus placing significant load on the HDDs (which will not usually be specified to provide high IOPs) and the network links.

With write-caching on server, there is no failover/HA with PVS, so if the stream service stops all VMs connected to that PVS server will freeze.

When using local storage for write-caching, if you double the number of VMs, write IOPs are unaltered pro-rata (you'd need double the HDDs to get double the capacity which would give you double the IOPs) and we've seen that PVS is very efficient for read IOPs (with plenty of RAM in the PVS servers). This is highly scalable.

With MCS, read and write IOPs both go to the same storage. A sledgehammer approach to this would be to use expensive flash shared storage. With this design of shared storage, if you double the amount of VMs, you double the amount of IOPs (notably write IOPs at boot and login) and hence double the load on your SAN and storage links, i.e. it is NOT scalable.

MCS requires higher IOPs than PVS and both are higher than PVS with RAM
cache:

MCS: 10 IOPS

PVS with Disk Cache: 9.2 IOPS

PVS (RAM Cache with Overflow to Disk): 0.09 IOPS

A usual solution is to have 8x 15k HDDs in a RAID 10 in a 'pizza box' 1U server. This will give enough write-cache capacity for around 70 VMs (based on 146GB HDDs). If you wanted more density, you'd look at 300GB HDDs.

Using blades is less practical as most blades cannot have more than 2 HDDs fitted which limits their use. Therefore you would probably need to purchase Enterprise-class SSDs for the blades to use for local IOPs. However, if using PVS with RAM cache, average write IOPs can be less than 0.5 IOPs per VM (see references above). This is low enough for traditional HDDs to not be a limitation and so you could get by with 2x 10k/15k SAS HDDs.