Citrix Blogs

Introducing MCS Storage Optimization

May 8, 2020, Update: MCS Storage Optimization v2 has been rolled out. Please see this blog series by Jeff Qiu for more information.

Introducing MCS Storage Optimization

Machine Creation Services (MCS) Storage Optimization (MCSIO), is a new feature within MCS provisioning and was introduced in XenApp and XenDesktop 7.9.  This new feature helps reduce traffic to shared storage in XenApp and XenDesktop environments.

What is MSCIO and how does it work?

There are two provisioning solutions:

Both solutions yield the same end result of provisioned machines, but offer different delivery methods depending on your requirements.

MCS provisioning leverages the underlying hypervisor. However, the resulting input/output (I/O) profile of an MCS provisioned environment is dictated by your chosen hypervisor and shared and network storage.

PVS contains a built-in disk caching mechanism, which gives the flexibility of being able to manipulate and reduce your virtualization I/O. With MCSIO, Citrix introduces the advantages seen in PVS disk write caching to MCS.

MCSIO reduces I/O load through a two-tier caching system. An in-memory cache, known as the “temporary memory cache,” is used as the first storage tier. Overflowing onto an additional disk attached to the provisioned machine as the second tier, is known as the “temporary disk cache.” This is comparable to PVS RAM Cache with overflow, but now for MCS.  Unlike PVS, MCSIO is primarily intended for caching of write IOPS, it can read cached data and impact read IOPs on shared storage.

Changes in the architecture introduce a subtle, but important change to how MCSIO operates compared to standard MCS. In MCS, the delta disk cached all guest read/write operations and resides on the same storage as the master disk. In MCSIO, your temporary cache handles the I/O operations once handled by the delta disk. Now, you can separate persistent and temporary data. You can store the temporary cache disk on different storage to the master disk, such as local hypervisor storage or any supported shared storage and tailor your RAID configurations to the workload.

To achieve this, MCSIO provisioned machines have an additional driver to intercept and manage IO operations.  When the operating system boots, it start drivers, including the MCSIO driver, which are read from the base disk.  Only after loading the MCSIO driver, can writing to temporary cache take place. Then the MCSIO driver is able to intercept and cache the writes which would have gone to the delta disk in its temporary memory and disk cache.  What this means is that your temporary cache handles the I/O operations once handled by the delta disk.  The delta disk is still present on MCSIO provisioned machines. However, it is only used by MCSIO for maintenance tasks.

Advantages over using traditional MCS provisioning

Below is a representation of MCS and MCSIO and what has changed.

Temporary memory cache only mode: This mode is equivalent to the PVS “cache in device RAM,” where I/O operations are kept in the memory cache. This option provides better throughput, better response times, and higher IOPS/throughput because it writes to memory rather than disk. If running in this mode, ensure RAM has been sized according to the workloads expected. If the temporary memory cache is full, the device can become unusable, where the system hangs or an error on a blue screen appears.

Temporary memory cache only mode: This mode is equivalent to PVS “cache in device RAM,” where I/O operations are kept in the memory cache. This option provides better throughput, better response times, and higher IOPS/throughput because it writes to memory rather than disk. If running in this mode, ensure RAM has been sized according to the workloads expected. Once the temporary memory cache is filled, the device will become unusable, anticipate system instability as described above, if you fill the RAM cache.

Temporary disk cache only mode: This mode gives the option of redirecting the delta disk write operations to physical storage other than the storage used for the master operating system disk. You would use this mode if you are only looking to distribute your persistent and temporary data to different storage tiers, for instance optimized for read or write operations. MCSIO drivers are installed and used to direct data to the temporary cache disk.  You are required to specify the disk size. It is important to ensure there is sufficient disk space available so the disk cache space does not run out on the provisioned machine.

Important facts to remember about the MCSIO feature and its behavior:

This is the first in a series of blog posts on this subject. The next post in the series will focus on demonstrating how MCSIO configurations influences shared storage IO.

Further information
If you are new to MCS please read the following blogs on Machine Creation Services primer 1 and primer 2.  Due to the similarities between PVS and MCSIO caching, you can refer to the following blogs for further information about concepts discussed for PVS caching and PVS sizing guides.

Exit mobile version