After a succesful upgrade of my lab to VMware vSphere 5.5 it’s time to configure one of the new features in vSphere 5.5: vSphere Flash Read Cache.
What is vSphere Flash Read Cache?
vSphere Flash Read Cache is one of the new features in vSphere 5.5 allows you to leverage server local flash storage in a very effective way. You will need a vSphere Flash Infrastructure (that are the configured flash devices) which is used by the Flash Read Cache Feature and the Flash Host Swap Cache:
- Virtual Flash Read Cache – In this scenario vFRC is used to cache data for virtual machines, the flash storage is placed in the storage path between the virtual machine and the SAN. Note that the cache is read cache, so no write caching (take a look at PernixData for a read/write acceleration solution).
- Virtual Flash Host Swap Cache – In this case the hypervisor consumes the vFRC and uses this for memory-caching (formerly known as the swap to SSD feature in vSphere 5.0/5.1)
In this article I will configure a vSphere Flash Infrastructure and configure Flash Read Cache. The article will also discuss the new way of configuring Flash Host Swap Cache.
The lab configuration consists of HP N36L Microservers; nice servers for functional testing…not so good for performance tests because of the pretty slow CPU: a passively cooled AMD Athlon II Neo Dual Core processor. VMware ESXi 5.5 runs fine on these servers, all hardware is detected as expected.
I am using Samsung 840 EVO 120GB SSD disks as flash based storage. This disk is not on the VMware HCL for vSphere Flash Read Cache, but works fine in my configuration. The Samsung 840 EVO is a an entry level SSD disk and will cost you less than 100 euros.
Configure vSphere Flash Read Cache
Configure vFRC is pretty straight forward and can only be completed to the vSphere Web Client (note: this counts for all new vSphere 5.5 features). To configure vFRC on a individual host select the host, manage, virtual flash, virtual flash resource management, add capacity and add the flash storage. In my case the Samsung 840 SSD. Choose OK to apply the new configuration.
The SSD disk is formatted with VFFS (Virtual Flash File System). You can now use this vSphere Flash Infrastructure for both Flash Read Cache and Flash Host Swap Cache. To configure Flash Host Swap Cache just click the “Virtual Flash Host Swap Cache Configuration”, enable Host Swap Cache and configure the desired amount of host cache.
Flash read cache is configured on a per-vm basis. You will need virtual machine version 10 to use vFRC. Open the settings for a virtual machine, open the harddisk you want to add vFRC and enable + configure vFRC. You have to configure vFRC on a per harddisk basis. In the advanced settings you have an option to set a block-size for the read cache (8, 16, 32, …1024 KB); this allows you to optimize the cache for the workload you’re running in the virtual machine. Of course you will need to know what the characteristics are for the storage load, you can use vscsistats for this. Check this article, there’s also a good presentation from the Belgian VMUG about storage performance available here.
Monitoring options for vFRC are a bit limited at this moment. Esxtop doesn’t include vFRC specific counters, although you can monitor IO activity of you vFlash device(s) through the “u” (disk device) in esxtop.
Esxcli offers some interesting information though:
~ # esxcli storage vflash device list Name Size Is Local Is Used in vflash Eligibility ------------------------------------------------------------------------ ------ -------- ----------------- --------------------------------- t10.ATA_____Samsung_SSD_840_EVO_120GB_______________S1D5NEAD806010W_____ 114473 true true It has been configured for vflash
This command shows currently configured vFlash devices. For the number of active vFRC enabled VMDKs on the host try:
~ # esxcli storage vflash module stats get Num Active VMDKs: 2
The next command show virtual disks configured for vFRC. You will find the vmdk name for the virtual disk in the cache list:
~ # esxcli storage vflash cache list vfc-2708646825-dc01.brainstorm.local_1, vfc-3993252341-dc01.brainstorm.local
To get some statistics about an available cache:
esxcli storage vflash cache stats get -c vfc-3993252341-dc01.brainstorm.local Read: Cache hit rate (as a percentage): 55 Total cache I/Os: 136 Mean cache I/O latency (in microseconds): 711 Mean disk I/O latency (in microseconds): 6669 Total I/Os: 251 Mean IOPS: 572 Max observed IOPS: 572 Mean number of KB per I/O: 0 Max observed number of KB per I/O: 0 Mean I/O latency (in microseconds): 1746 Max observed I/O latency (in microseconds): 2429 Evict: Last I/O operation time (in microseconds): 0 Number of I/O blocks in last operation: 0 Mean blocks per I/O operation: 0 Total failed SSD I/Os: 0 Total failed disk I/Os: 0 Mean number of cache blocks in use: 126
Note that you will need an Enterprise Plus license (and of course vSphere 5.5) to use vSphere Flash Read Cache.
I hope this article will give you some insight on the new vSphere Flash Read Cache feature. For further reading check these articles/whitepapers: