This article digs a little bit deeper into the vWorkspace Hyper-V Catalyst Components (HCC), specifically HyperCache.
The Hyper-V Catalyst Components are a collection of technologies that add value to the Hyper-V platform to make it the best platform for desktop virtualization. One of the key technologies in the Hyper-V Catalyst Components is vWorkspace HyperCache.
What is vWorkspace HyperCache?
HyperCache is a patent-pending technology that addresses ‘the IOPS problem’ in desktop virtualization. What is ‘the IOPS problem’? Well, as desktop virtualization has matured, VDI in particular, many organizations saw the advantages and started to roll out desktop virtualization. As the rollout grew larger they ran into performance problems because their VDI deployment required more IOPS than they had initially designed for. The most common way to solve this problem is to add more IOPS capacity to the desktop virtualization deployment. This can be in many forms: more disks (spindles), SSD drives, FusionIO-like solutions etc. The problem is that these unexpected costs impact the business case for the project in such a way that it sometimes stalls of cancels the project all together. With HyperCache this is no longer the case because it dramatically reduces the amount of IOPS needed to get a successful desktop virtualization deployment without the need to invest in other products or hardware in a very, very low impact manner. Take a look a this video to see HyperCache in action:
How does it work?
Without revealing too much of our secret sauce (it is a patent pending technology) let me try and explain the magic of HyperCache. HyperCache works in two ways.
The first and most important is that it maintains a cache of the most commonly requested parts (blocks) of a golden image (ParentVHD) in RAM of the Hyper-V host. The obvious benefit is that HyperCache greatly reduces the need for virtual desktops go to the physical storage layer to get the information they need, greatly reducing IO. Another benefit is that RAM is thousands if not millions of times faster than spinning disks, SAN storage or even SSD so the performance is simply the best. It is important to understand that vWorkspace HyperCache works out-of-the-box. It does not require any configuration. By default the cache is limited to 800 MB but this can be easily changed in the vWorkspace Management Console. This 800 MB will only be used as data is actually added to it. For example, HyperCache typically is able to capture the whole Windows 7 boot process with about 350 MB. In addition, it is important to know that this works for all operating systems and workloads hosted on Hyper-V. Finally, and we think this is critical, HyperCache works with all kinds of storage: local storage, SAN, DAS, NAS, iSCSI. In a nutshell, the only requirement is that Hyper-V considers it to be a valid volume. Because of the dramatic IOPS savings that HyperCache provides our beta customers have told us that they can now truly use local storage, even if the server only has a couple of local disks available, removing the need for them to buy and expensive SAN.
The second way HyperCache works is IO optimization. Whenever a virtual desktop requests a block that is not in HyperCache, HyperCache will take the request by the virtual desktop and commit it to disk but it works some magic on it before it does. First of all it will try and serialize the request so that physical disk head needs to move a little as possible (reducing IOPS) and secondly it will align the IO request with the storage block size so that IO request uses the IO operation a effectively as possible, again reducing IO. HyperCache is able to work this magic because it is a file system driver that manages all IO operations for the virtual desktop managed by vWorkspace. Any block that is read from the disk will go into HyperCache (if there is enough cache space left). What’s even more special is that the HyperCache IO optimization also works for (relatively expensive) write requests so that write IOs are also reduced when HyperCache is used further reducing costs.
How to enable HyperCache
This is my favorite part. You really don’t have to. You simple create a new Hyper-V desktop group in vWorkspace 7.5 and that is it. As virtual desktops start getting provisioned they will automatically start populating HyperCache, providing storage savings and speed benefits from the very first second, right out of the box.HyperCache is enabled by default so it will be active for all golden images you deploy.
How can I tell if HyperCache is working?
First of all, you will notice that provisioning is a lot faster J but if you want to scientific data than that, you can consult performance monitor on the Hyper-V host that has the Hyper-V Catalyst Components installed and you will find a new performance object called ‘vWorkspace HyperCache’. In addition, and more visually pleasing, you can find HyperCache statistics in the vWorkspace Management Console. Highlight a Hyper-V host and in the bottom-right corner, select the HyperCache Report button. This will produce a report similar to this:
If you want to stop using HyperCache for whatever reason, this is also very easy. Because we designed HyperCache to be zero-touch and low impact, disabling HyperCache can be very easily done from our console. No reboots will be required on the Hyper-V host and the virtual desktops hosted will continue to work just as you would expect but without the benefits of HyperCache.