A whole bunch of blog posts have appeared recently around the new View Storage Accelerator in VMware View 5.1, including my own introduction here. I think this goes to show how much excitement there is around these new features. In this post, I wanted to share some more detail around the Storage Accelerator.
The Storage Accelerator is made up of two components. The first is a per VMDK digest file and the second is a global cache. The per VMDK digest file has a mapping for disk block number to hash value and the global cache has a mapping for hash value to actual data. The global cache is a reserved area of memory on the ESXi hosts. It is an in-memory dedupe cache that caches data based on the content hash of a disk block. When the VM issues a read request, we first use the digest file to get the hash value for a block and then consult the global cache to see if the block is in cached. Metadata for the digest file is maintained in memory. If there is hit, we go fetch the data from cache; if there is a miss, we go fetch the data from disk.
You will notice, if you use this feature, that the initial creation of the desktop pool will take slightly longer while the digest files are created, especially for the replica images. The digest creation is a compute intensive process. Once the digest is created for the replica image, digest creation for the snapshots and subsequent linked clones is relatively fast.The linked clones share the “base” digest file from the replica. Each linked clone then maintains its own separate digest file for changed blocks.
Since the cache is read specific, writes issued by the VM will invalidate sections of the digest file. In other words, because the block has changed, it will no longer be valid in the cache so the look-up in the digest file is invalidated. It is necessary to recompute the digest file from time to time to make sure that the cache has valid entries. If this isn't done regularly, large parts of the digest file may become invalidated and you will not benefit from the read performance of cache/storage accelerator feature.
What follows is a short video (approx. 5 and a half minutes) of setting up View 5.1 Storage Accelerator, showing where to enable the global cache, and then how to configure the cache when creating desktop pools. Thanks to Graham Daly of VMware KBTV fame for his considerable help with this.
Further detail about the View Storage Accelerator on the EUC blog can be found here and here, including some awesome results measured during boot-storms. Be sure to check them out.
Get notification of these blogs postings and more VMware Storage information by following me on Twitter: @VMwareStorage