Jeff Stonacek, Principal Architect
Server side solid-state devices are gaining popularity. New to ESXi 5.5, VMware has introduced a feature that provides server side read cache from local solid-state devices (SSDs). These SSDs can be either PCIe flash cards or solid-state drives attached to a local disk controller. By utilizing local flash storage, vSphere Flash Read Cache (vFRC) brings a large, low latency read cache to applications requiring high levels of physical reads.
This read cache layer is fully transparent to individual virtual machines and requires no in-guest configuration or agents to take advantage of the cache. vFRC uses a write-through cache mechanism that synchronously writes to both the cache and the backend storage. vFRC is configured on a per VMDK basis, thereby affording fine grained control over which IO devices receive the caching resources.
vFRC does have some prerequisites, which are listed below.
- Only available in vCenter and ESXi 5.5 or later
- Can only be configured with the vCenter web interface
- Can only be configured on a virtual machine running hardware version 10 (VMX-10)
- The flash storage must be either SSD or PCIe flash card and must be unused (check HCL for supported products)
Configuring vFRC
To configure vFRC navigate to Host -> Manage -> Settings -> Virtual Flash. Step one is to add a virtual flash resource. Under Virtual Flash Resource Management, click the Add Capacity… button at the top right and choose the flash device(s) to configure.
Do this for all hosts in the cluster where vFRC is to be configured.
The following are vFRC maximums for each ESXi host:
- One Virtual Flash Filesystem (VFFS) per host
- Eight flash devices per VFFS
- 4 TB maximum individual flash device size
- Maximum 400 GB of vFRC per VMDK
- 32 TB of total vFRC per host
To configure a virtual machine for vFRC, edit virtual machine settings and expand the Hard Disk section for the VMDK that will receive the vFRC. Enter the size of read cache to be configured.
Advanced settings allow for the configuration of a reservation and block size.
It is recommended to set the block size at minimum to the same value as the Oracle database block size.
The concept of server side cache brings up an interesting question for vMotion. What happens to a virtual machines cache data during a live migration? VMware allows for the configuration of two options:
- Always migrate the cache contents
- Do not migrate the cache contents
During a vMotion, the following screen will allow for a choice between the two options:
In the event that option one is chosen, the VM will only migrate if the contents of the cache can be copied to the destination host. If not, then the vMotion will fail. If option two is chosen, the cache must be re-warmed upon migration of the VM to a different host.
Conclusion
vSphere Flash Read Cache offers additional options for offloading physical IO from the storage infrastructure. Server side caching can alleviate stress on SAN fabric and enterprise storage arrays. This technology can be especially useful for large database environments where the application is heavily dependent on physical IO. Data warehouse and BI databases will be prime candidates for server side flash technologies, but large OLTP databases will also benefit from the IO offloading.