Competitive differentiators for VirtuCache
VirtuCache is the highest performance caching solution on the market. It also has the lowest management overhead. In the sections below, we explain the reasons for both:
1. High Performance
a. VirtuCache is installed in the hypervisor layer of VMware. There are no userspace or VM level software components that are in the I/O path. We are unique in the VMware space because we intercept block I/O requests from the hypervisor kernel and make all caching decisions from within the VMware kernel, without modifying the stock VMware kernel.
b. Ours is a block level caching software. Block level caching is faster than file level caching, since it works at a lower level in the software stack than the file system.
c. We have taken care to not duplicate memory caching features of operating systems that run in the guest OS, since this will deteriorate caching performance. For instance, operating systems store and fetch data in sequential blocks on disks for optimal disk performance. Since such sequentially aligned blocks are most likely related, most operating systems cache blocks of data from disk to memory that are spatially ahead of where the OS is currently reading data from. Since such read-ahead caching is done by operating systems, and such operating systems run within guest VMs, we would deteriorate cache performance if we were to implement this feature again within our software. As a by-product of such design decisions, our software shows improved throughput.
d. We have shown 10-50X application acceleration with Iometer, FIO, and Sqlio benchmark tests, and 4-7X improvement in VM densities at customers.
2. Minimal Administrative Overhead
a. We think that automatic caching of data with no human involvement is the ideal way to do caching. This has been validated by the fact that most operating systems (Solaris, Linux, Unix) have been successfully caching disk data to memory in an automated fashion for the past few decades. By default we automatically assign appropriate cache capacity to VMs and use time tested LRU and FIFO algorithms to cache relevant back-end storage blocks to in-server flash cards automatically. On the other hand, there are caching solutions on the market that let administrators define caching policies at the application and file level. In theory, such granularity for defining caching policies looks impressive, however it becomes a huge management burden for the server administrator to intelligently assign caching policies on a per VM and per application basis, even in a small data center with hundreds of VMs. The server administrator will need to understand the applications deployed within VMs, their relative importance and I/O patterns, for devising intelligent caching policies. Also application level caching in many cloud service provider environments is not possible, since VMs are deployed by end customers themselves and the service provider administrator has no visibility within guest VMs. Unlike our competition, we do not need a dedicated virtual appliance VM per VMware server, or any software within guest VMs.
b. Again unlike our competition, we do not need storage for each VM reconfigured. We do not need either VMs or the VMware server restarted.
c. In a virtualized data center, important applications are typically isolated within VMs. By being able to correlate I/O to VMs, VirtuCache can avoid the ‘I/O blender’ issue and also accelerate specific applications by enabling caching for the VMs that the applications are installed in.
d. I/O de-duplication – We can identify the same blocks of data requested by multiple VMs on the server and cache such blocks only once, thus improving flash utilization. This is especially useful in virtual desktop infrastructure (VDI) where OS and application installation files are duplicated across virtual machines.
e. Since the cache is always in sync with back-end storage, we do not lose any data during a power outage.
f. We support VMware’s advanced features – vMotion, High Availability, and storage vMotion.
Our main design goals were to make VirtuCache high performance, zero overhead, and VMware certified.