Recently I started studying for my second VMware VCAP exam. It made sense to plan the updated VCAP550-DCA exam, since vSphere 5.5 is among us for quite some time now.
While doing so, you automatically run into vSphere Flash Read Cache (vFRC). A feature provided since vSphere 5.5 (only in the Enterprise+ bundle), but I never got to configure and/or test it. Hence this little write-up…
Running through the blueprint for VCAP550-DCA, you’ll see it listed under section 1, objective 1.1:
Section 1 – Implement and Manage Storage
Objective 1.1 – Implement Complex Storage Solutions
Skills and Abilities
- Determine use cases for and configure VMware DirectPath I/O
- Determine requirements for and configure NPIV
- Understand use cases for Raw Device Mapping
- Configure vCenter Server storage filters
- Understand and apply VMFS re-signaturing
- Understand and apply LUN masking using PSA-related commands
- Configure Software iSCSI port binding
- Configure and manage vSphere Flash Read Cache
- Configure Datastore Clusters
- Upgrade VMware storage infrastructure
Let’s check it out!!
A closer look
The best explanation about what vFRC will do for you, is found within VMware’s vFRC tech paper:
The goal of introducing the vFRC feature is to enhance performance of certain I/O workloads that exhibit characteristics suitable for caching.
That sums it up, right! 🙂
VMware provided the vFRC tech paper with in-depth explanations about how the mechanism works and how it behaves. An absolute must read!
Link to tech paper: http://www.vmware.com/files/pdf/techpaper/vfrc-perf-vsphere55.pdf
vFRC uses local SSD or PCI-e flash devices to create a cache repository. vSphere administrators can configure virtual machines to use a specific amount of vFRC space. Do note that vFRC is used on a ‘per virtual disk’ basis. So you can have a specific VM with multiple virtual disks in it, of which you choose one to be accelerated.
The architectural overview is found in the tech paper:
A very clear write up on how vFRC is configured on you vSphere host and how you enable it for virtual disks is explained in Cormac Hogan’s blog right here. Point of interest should be the cache block size used for your vFRC. It should line up with how your virtual disk is used.
What is worth to mention is that you will be able to vMotion VM’s containing accelerated virtual disks whilst preserving the cache, so it’s instant hot on the destination host!
To make sure DRS won’t mess up your cache buildup, it handles VM’s with accelerated disks like a ‘should run’ DRS rule. Thus only moving the VM if it is absolutely necessary!
Gotta see for myself
Although I would take their word for it, I did configure vFRC in my nano lab to see for myself how it works and behaves.
I did some little testing on it, just to see the difference on a virtual disk with and without vFRC.
I configured a 10GB virtual disk residing on an iSCSI VMFS datastore and configured it with a vFRC reservation of, hell…, also 10GB with a 16KB block size. Off course in a real life sizing it depends whether to use a 1/1 relation between the size of your virtual disk and the vFRC reservation or otherwise.
Sizing your vFRC would depend on your workload, block size and capacity of the accelerated virtual disk(s). But don’t despair… you can always re-configure the vFRC settings!
My short test showed an improvement when using vFRC:
You can check metrics per vFRC file using esxcli. First you can list your cache file using esxcli storage vflash cache list.
Then check the metrics on that file using esxcli storage vflash cache stats get -c vfc-487007085-CF-MGT01_2. It contains detailed info like your cache hit ratio.
Output should look like this:
Well, that’s another ticked box on a sub-objective on the VCAP550-DCA blueprint for me.
Although there are many splendid solutions out there for (server-side) caching in combination with vSphere, it is nice of VMware to include such a feature within vSphere. I’m sure there will be use-cases out there that can benefit from this feature!