Subscribe by Email

Your email:

TRY VELOBIT

sec-early_access sec-15_min

Let's Connect

VeloBit Blog on SSD, Application Performance and Storage

Current Articles | RSS Feed RSS Feed

Why Content Locality Caching Shines in Virtual Environments

  
  
  
Virtualization has been used for many years to maximize the usage and value of installed server hardware.  It allows resource sharing of single computer among many users through virtual machines (VM) that are securely isolated and highly reliable.  In recent years, companies like VMware has been extremely successful in deploying virtualization products to help many existing IT installations increase performance without physically increasing their hardware investment.  One disadvantage of a virtualized environment however is the traditional primary storage architectures were not designed for a virtualized environment.  Further, IT managers hoping to improve system performance deploying SSDs and using caching techniques face a challenge combining SSDs and caching with virtualization.  Today, I will discuss how Velobit Content Locality Caching eliminates the caching/SSD/virtualization challenge.

A Virtual Machine and Data Caching

A virtual environment is basically a single server running a virtual machine monitor, sometimes called a hypervisor, that creates the environment for multiple OSs (e.g. Linux, Windows Server) to run on a single server.  A ‘virtual machine’ (VM) is created by the hypervisor for each OS, application(s) and application data that needs to run.  Typically, a single server can run several VMs at one time.  These VMs share hardware resources such as CPU, memory, and I/O storage. While I/Os from one VM may be optimized for disk accesses, the mixed I/Os from multiple VMs may get randomized giving rise to slow I/O operations. Data caching using SSDs can be used to improve performance in the randomized I/O VM environment. Data caching is simply a way to speed up access to the data (i.e. I/Os) so an application can run faster.  It typically consists of a dedicated physical memory space for the data and software to manage the usage of the cache. There are many different known caching configurations and techniques.  Some have very specific applications or advantages.

Content Locality Caching

Content Locality Caching was developed at Velobit to work with a broad range of applications and hardware configurations.  It monitors the line-speed data to determine how commonly used the particular block of data is (the block “popularity”).  A “popular” block has a high probability of being used again and hence is a good candidate for caching.  Also, a popular block is likely to be very similar to other blocks in the data stream and can then be used as a reference block for data compression algorithms.  Compressing data minimizies cache writes to extend the life of flash-based SSD.

Content Locality Caching and Virtual Environments

Why is content locality caching particularly a good caching solution for a virtual environment?  It takes advantage of the data redundancy created in a virtual environment.

As mentioned above, a single physical server can run several VMs at one time in a virtual environment.  Each VM has to store the current OS, application and data while running on the hypervisor sharing a storage. The OS image, application codes, and data of these multiple VMs have a large amount of redundant and similar data. The data redundancy and similarity among the running VMs create great opportunities for content locality caching. By caching popular blocks that share contents with many active and frequently used I/O blocks, I/O performance can be improved greatly.  Popular data is precisely what Content Locality Caching was designed to leverage to maximize cache hits and minimize cache writes.



Comments

Currently, there are no comments. Be the first to post one!
Post Comment
Name
 *
Email
 *
Website (optional)
Comment
 *

Allowed tags: <a> link, <b> bold, <i> italics