Overview
Infinio Accelerator, as you might deduce from the name, is a product that aims to improve the I/O performance of your virtual machines by offloading read requests. Scott said that they see a ready market for their product, not just with accelerating a customer’s existing storage array, but also to accelerate adoption of server-side storage architecture (which is gaining traction in the enterprise) by coupling a server-side storage performance tier with inexpensive, high-density storage capacity and eventually cloud storage, which might be cheap from a capacity perspective, but may not deliver the needed workload performance. Currently their product is focused on accelerating virtual machine read I/O (what is typically referred to as a write-thru cache; writes are persisted to storage, but subsequent reads are accelerated), but they are researching how they might accelerate both read and write I/O (typically referred to as a write-back cache). Scott explained how write-back has less impact as writes are typically deferred, not eliminated from storage, and is more complicated, as the writes in cache would need to be protected and available in the event of a failure. So as you can imagine, it is an order of magnitude more complex to get both read and write caching than just read caching. Infinio’s cache implementation is distributed and can scale out on a per ESXi host basis. Infinio uses server memory for acceleration and not flash/SSD, although Scott did mention that this is something the company is considering going forward. The other major improvement is that the 2.0 version will now work with block storage (FC & iSCSI), unlike the 1.0 product which just did NFS.
Architecture
Scott told me that the architecture has significantly changed compares to their 1.0 product. The 1.0 version was based on an “NFS proxy” type approach, and Duncan wrote a pretty good article about it which you can read here if you wish. Infinio’s new version of Accelerator is designed around a Path Selection Policy Plugin (PSP) for the ESXi Pluggable Storage Architecture (PSA). This plugs directly into the VMkernel I/O stack, and through the implementation of a “Virtual HBA” component (completely invisible to the end-user), virtual machine I/Os are identified and asynchronously evaluated for caching, so that future read requests can come from “cache”. This in turn accelerates your virtual machine performance.
Scott told me that Infinio want their product to integrate as seamlessly as possible with an existing customer environment. Infinio is simple and non-intrusive to install and uninstall. The PSP comes in the form of a VIB (VMware Installation Bundle), and can be deployed without the need to reboot the host. Similarly, the PSP can be very simply uninstalled, but the uninstall process simply leaves the PSP disabled until the next reboot. On reboot the PSP is removed from the host.
The next major component is the Infinio caching appliance. This is deployed on each ESXi host in the cluster that wishes to have accelerated virtual machines. This takes 8GB of memory for caching by default, and each appliance on each ESXi server together create a distributed caching layer. The appliance includes deduplication technology to reduce the amount of memory consumed for caching. Scott tells me that deduplication ratios of up to 8:1 are achieved when the Infinio Accelerator is deployed in environments such as VDI or DevOps/software development. Infinio v2.0 architecture is carefully designed so that all cache maintenance operations are performed asynchronously to VM I/O processing.
Installation and Management
The deployment also includes a management system which comes in the form of an appliance. There is one management appliance per vSphere cluster. The installer connects to vCenter Server, learns about all of the storage presented to the various hosts, and through the UI, presents a list of datastores that can be accelerated. The user then chooses which datastore should be accelerated, and all of the virtual machine I/O to that datastore is subsequently cached in the cache appliance. The management appliance also comes with various storage analytics which are displayed in the UI which will allow customers to identify busy times of day, which datastore are hot spots, and when there are I/O spikes. Here is a screenshot taken from the management UI, showing datastore details:
Infinio and VAIO (I/O Filters)
At VMworld 2014, we announced a new project called vSphere APIs for I/O Filters (VAIO for short). This is where we are enabling third parties to plug their storage/data services directly into the virtual machine I/O path. I wrote a little piece about VAIO at the time. I was delighted to hear from Scott that Infinio participates in the official program, as it seems to be a perfect fit. Take an example where you have traditional storage or cloud storage, and would like to accelerate the I/O of your virtual machines. This service may not available at the storage layer. With Infinio Accelerator deployed, one can now use VAIO to simply select the Infinio Accelerator data service when creating the VM Storage Policy. Any VMs that are associated with this policy will now get accelerated. Yes, it’s that simple. This is what software-defined storage is all about.
Conclusion
There are very few players in this server-side caching space. SanDisk/FlashSoft and PernixData are the only ones which spring to mind. Infinio feels that server-side I/O acceleration is an area that offers plenty of opportunity for growth. One of the major paradigm shifts happening in the storage industry today is the shift towards server-side storage, which in turn offers opportunities to data services such as Infinio Accelerator.
It was great to catch up with Scott. If you want to learn more about changes in the storage industry, and how Infinio believe they can help you accelerate your VM I/Os, Scott is doing the keynote at this week’s Boston VMUG taking place on Thursday, June 18th. If you’re in the vicinity, I’d recommend trying to catch his talk.