Hyper-V CSV Cache competing with VMware CBRC?
Yesterday I got intrigued by a tweet from Andre Leibovici linking to this article stating that Citrix employees (sales) are leaving Citrix for VMware, in the article he explains why they’re swapping Citrix for VMware. Andre states ‘ The main reason for the vendor move according to these new VMware employees was the vSphere stack’ and goes on about features in the vSphere stack that are only leveraged by Horizon View.
Although one could argue this is a limitation as vSphere apparently isn’t that transparent for the top layers, I won’t be going into that discussion. What did triggered me was the following feature:
CBRC
Content Based Read Cache is a solution that leverages host based RAM as cache location for read IO’s. These IO’s won’t reach the underlying storage system and can contribute to the scalability of the environment.
As Andre states CBRC has been introduced to help with IO storms that have a read-intensive load such as OS (re)boot and AV scans. I’ve been looking for some benchmarks and found the following blogpost View Storage Acceleration (CBRC) by VMSkills. I also found this graph from Dwayne Lessner on the numbers when CBRC is enabled:

CSV Cache
While I was searching for information I remembered Jarian Gibson talking about CSV Cache in Hyper-V.
CSV Cache is a feature that allows you to allocate system memory (RAM) as a write-through cache. The CSV Cache provides caching of read-only unbuffered I/O. This can improve performance for applications such as Hyper-V, which conducts unbuffered I/O when accessing a VHD file. Unbuffered I/O’s are operations which are not cached by the Windows Cache Manager. What CSV Block Cache delivers is caching which can boost the performance of read requests, with write-through for no caching of write requests.
From this blogpost: “CSV Cache will deliver the most value in scenarios where VMs are used primarily for read requests, and are less write intensive. Scenarios such as Pooled VDI VMs or also for reducing VM boot storms”.
I’ve converted the data from this blogpost into a graph to display the results found by Yusuf Ozturk:
One of the big plusses of CSV Cache is that you can run Hyper-V with VHDs over SMB3 on scale out file clusters as you can read here. There’s a presentation from File Server PM Claus Joergensen that shows the impact of using the CSV cache in a VDI environment:

You can see the full video for this TechEd presentation at: http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/WSV410.
Comparing them
So comparing those two techniques they’re both used to use the internal RAM of a host to cache read IO’s to the used storage system and thus reducing the amount of reads to the storage and optimizing the usage.
We can see both solutions provide added value as they enhance the performance of the systems by using the internal RAM from the host running the hypervisor.
While CBRC is supported for Horizon View only, CSV Cache is supported for XenDesktop so when looking at the two technologies it’s save to say that the combination of Hyper-V with Citrix XenDesktop 7 could be just as appealing as vSphere with Horizon View as they’re both leveraging their own cache solution to optimize performance.
One of the comments I got while getting this reviewed was why there’s no mention of XenServer’s IntelliCache. I didn’t want to mention IC as it’s disk-based instead of RAM-based so although you can make a comparison it’s a different solution all in all.
Kees Baggerman
Latest posts by Kees Baggerman (see all)
- Nutanix AHV and Citrix MCS: Adding a persistent disk via Powershell – v2 - November 19, 2019
- Recovering a Protection Domain snapshot to a VM - September 13, 2019
- Checking power settings on VMs using powershell - September 11, 2019
- Updated: VM Reporting Script for Nutanix with Powershell - July 3, 2019
- Updated (again!): VM Reporting Script for Nutanix AHV/vSphere with Powershell - June 17, 2019
7 comments