Archive: Posts

Citrix MCS IO vs. VirtuCache – Server Side Storage IO Caching

Both cache ‘hot’ data to in-host RAM, but the differences between Citrix MCS Storage Optimization and VirtuCache are many. The top three are:

– MCSIO works only for non-persistent Xenapp / Xendesktop VMs.1 VirtuCache works for all VMs on the ESXi host;

– Citrix MCSIO can cache only VM writes and to VM RAM only.1 VirtuCache can cache VM reads and writes to in-host SSD or RAM;

– With MCSIO there will be VM data loss / instability if the host fails or the RAM cache is full,1 not so with VirtuCache.

For detailed differences, please review the table below.


Citrix Machine Creation Services Storage Optimization (MCS IO).

Virtunet Systems’ VirtuCache.

Improves the storage performance of what?

Only write operations, and only of non-persistent XenDesktop virtual desktops or server RDS VMs.1

All read and write operations and for all VMs on the host.

Installed where?

Its a config option in Citrix’ agent in VMs. Works for any hypervisor.1

Installed in the VMware kernel. Works only for VMware vSphere. No agents in guest VMs required.

Protecting against data loss in case of host failure?

There will be data loss in case of host failure or VM reboot and so this feature only works for non-persistent VMs, where the end user is OK with data loss in case of VM reboot.2

Whether VirtuCache is caching to RAM or SSD, it synchronously mirrors the write cache to cache media in another ESXi host in the same VMware cluster. If a host fails or VM reboots, then VirtuCache immediately syncs the back-end storage with the mirrored copy of write cache from the peer ESXi host. So there is no data loss in case of host failure.

Caches to what?

Caches to user defined VM memory, which in turn uses host memory.1

Caches to user defined host memory and/or in-host SSD.

What happens when cache media fills up?

Administrator needs to manually ensure that cached writes don’t fill up VM RAM, else there will be instability/blue screen in the VMs if the VM RAM is fully used up.1

This happens because cached writes in RAM are never synced with backend storage, and so never evicted from VM RAM, hence the amount of writes in VM RAM keeps growing.3

VirtuCache automatically manages the replacement of older, less frequently used data, with newer, more frequently used data without causing any VM or host instabilities, even when the cache media is full. In fact VirtuCache tries to fill up the cache media assigned to it with ‘hot’ data as quickly as possible.

VirtuCache requires no ongoing administration.

Typical customer configuration.

Bundled with XenApp/XenDesktop. Typical host RAM cache of 256MB per XenDesktop VDI VM and 2GB per RDS server VM. 4

$3000 per ESXi host for perpetual license. Typically, our customers use a 2TB NVME/PCIe SSD as cache media.

Though Citrix administrators compare us to MCS IO, please compare price/performance of VirtuCache to an all-flash array instead, since the storage acceleration VirtuCache provides is across all your VMs, and it is typically configured to use larger amounts of cache media than MCS IO. This ensures that most of the IO is served from in-host cache media, making VirtuCache performance closer to all-flash arrays.

1 – Search for ‘writes to memory’ ; ‘only works with non-persistent VDI and RDS provisioned machines’ ; ‘blue screen’ on this link
2 – Search for ‘this option is not applicable for persistent desktops due to the risk of data loss’ on this link
3 – Search for ‘actual VM disk will not have any data written to it’
4 – Search for ‘Temporary memory 256MB for VDI (desktop) and 2GB for Session Host (server) machines is recommended’ on this link