Selecting the write cache destination for standard virtual disk images
Citrix Provisioning supports several write cache destination options. However, the recommended option is cache in device RAM with overflow on the hard disk.
If migrating from older local hard disk caches to cache in device RAM with overflow to hard disk, you must reevaluate your local disk cache size. This is because the new RAM cache with overflow to hard disk uses a larger segment size and grows faster and larger. For more detailed information about how the RAM cache with overflow functions, see Size Matters: PVS RAM Cache Overflow Sizing.
The write cache destination for a virtual disk is selected on the General tab, which is available from the vDisk File Properties dialog.
The following sections describe all write cache destination options.
When using this feature, consider that caching options on a Linux target device are the same as on a Windows device. For more information about Linux streaming, see the installation article.
Cache on device hard drive
Write cache exists as a file in NTFS format on the target-device’s hard drive. This write cache option frees up the Citrix Provisioning server because it does not process write requests and does not have finite limitation of RAM. The hard drive does not require any additional software to enable this feature.
The virtual disk cache type field Cache on device hard drive is deprecated and will be removed in a future release. Citrix recommends using one of the other available cache types. For more information, see the Deprecation article.
Cache in device RAM
Write cache can exist as a temporary file in the target device’s RAM. This functionality provides the fastest method of disk access since memory access is always faster than disk access. The maximum RAM write cache size is determined by the registry setting
- The target device becomes unstable and can crash if the target device’s RAM write cache is full.
- For Windows 10 version 1803, the functionality cache in device RAM is not supported. A target device crashes when it fails to use reserved memory from bootstrap. Citrix recommends using Cache in device RAM with overflow on hard disk. This issue applies to legacy bootstrap, it does not apply to UEFI bootstrap configurations.
Cache in device RAM with overflow on hard disk
This write cache method uses VHDX differencing format:
- When RAM is zero, the target device write cache is only written to the local disk.
- When RAM is not zero, the target device write cache is written to RAM first. When RAM is full, the least recently used block of data is written to the local differencing disk to accommodate newer data on RAM. The amount of RAM specified is the non-paged kernel memory that the target device consumes. Compared to Cache on device hard drive cache mode, the VHDX block format has a faster file expansion rate.
When the local disk is out of space, the target device virtual disk I/O goes in to a pause state. It waits for more local disk free space to become available. This condition has a negative impact on workload continuity. Citrix recommends allocating enough local disk free space.
The amount of RAM specified does not change the local disk free space requirement. The more RAM assigned, the more virtual disk I/Os temporarily saved in RAM cache before data gets flushed back to the VHDX file. The RAM reduces the initial VHDX expansion rate.
The registry setting
WcMaxRamCacheMBis not used when configuring the Cache in device RAM with hard disk overflow. When using this write cache mode on the provisioning management console, the value specified from the maximum allocated size is used.
For more information on RAM cache overflow sizing, see Size Matters: PVS RAM Cache Overflow Sizing.
Cache on a server
Write cache can exist as a temporary file on a provisioning server. The server handles all writes, which increases disk I/O on the server and network traffic. For that reason, this mode is not recommended.
For extra security, the server can be configured to encrypt write cache files. Since the write-cache file does exist on the hard drive between reboots, the data is encrypted in the event a hard drive is stolen.
Consider the performance impact of using server side caching. This consideration applies to both persistent and non-persistent cache.
Cache on server persistent
This cache option allows for the saving of changes between reboots. Using this option, after rebooting, a target device is able to retrieve changes made from previous sessions that differ from the read only virtual disk image. If a virtual disk is set to Cache on server persistent, each target device that accesses the virtual disk automatically has a device-specific, writable disk file created. Any changes made to the virtual disk image are written to that file, which is not automatically deleted upon shutdown.
The file name uniquely identifies the target device by including the target device’s MAC address and disk identifier. A target device can be assigned to multiple vDisks and therefore have multiple cache files associated to it.
To restore a virtual disk that uses Cache Persistent on Server, be sure to back up all virtual disk files and associated user cache files. The Store Properties dialog allows you to define default write cache paths for a store. This is the path where write cache files are saved. The write cache files are named as
A server side cache file must be available to all Citrix Provisioning servers that serve the vdisk for a target to failover to another server.
The benefits of using this cache option include:
- Saves target device specific changes that are made to the virtual disk image.
- Same benefits as Standard Image Mode.
The drawbacks of using this cache option include:
- The cache file is available so long as the file remains valid. Any changes made to the virtual disk force the cache file to be marked invalid. For example, if the virtual disk is set to Private Image Mode, all associated cache files are marked invalid.
- Increased I/O load on the server and increased network traffic. This can overload the server in a large configuration.
Cache files that are marked as invalid are not deleted. Periodically, these files must be manually deleted.
Invalidating changes include:
- Placing a virtual disk in maintenance
- Virtual disk is placed in private image mode
- Mapping the drive from the console
- Changing the location of the write cache file
- Using automatic update
Consider the impact of using server side persistent write cache.