I’ve talked a lot about the I/O blender in the last decade or so.1 I’ve always said that information is the solution, allowing arrays to de-multiplex data. But a new enterprise storage company, Infinidat, claims that they can beat the I/O blender using math. Here’s their concept.
You should check out my I/O Blender series: History, Virtualization, and Demultiplexing
As you will recall, the I/O blender is what happens when data is passed through the tall I/O stack, from application to filesystem to volume manager to storage protocol to controller to cache to disk. At each step, critical context (metadata) is lost. By the time the data hits the disk, it’s just a blend of undifferentiated blocks, challenging the ability of the array to do all the cool jobs it was hired for.
Infinidat Activity Vectors
Infinidat’s technical briefing focused on their unique solution to the I/O blender. Where most systems try to pull in context from higher up in the stack, Infinidat applies complex math to statistically determine what I’ll call “proximity” of data. They then place this “like” data together on disk and prime the cache with it.
They claim this gives them the best-possible performance, but more importantly that this architecture “eliminates the I/O blender”. But is it true?
First off, Infinidat’s “InfiniBox” array is itself not an I/O blender. Rather than slapping data down on disk willy-nilly, they take a structured and mathematical approach. All incoming data is divided into 64 KB “sections” in the controller which are then tagged with an “Activity Vector”. This is where the magic happens.
Infinidat’s Activity Vector acts like a proximity and activity score, with each block’s AV part of a massive matrix within the controller. As the system is used, this matrix continually refines the implied relationship between AV’s, and thus the data sections they refer to. So the array, a triple-redundant hybrid, spreads data as wide as possible but keeps related data together.
In theory, this should strike the mathematically-best balance between wide data placement and sequential I/O. This balance is critical but these are conflicting demands: It’s best for aggregate performance, redundancy, and disk rebuild to spread data across as many spindles as possible, yet it’s best for the performance of individual operations to keep like data together.
What About The Other Blenders?
I agree that Infinidat’s in-box blender is head and shoulders superior (in theory) to anything else I’ve heard of. But all this work does not solve the challenge of the various I/O blenders that exist higher up in the stack! The hypervisor’s own file system and volume manager chops up and anonymizes data, too, as does every file system and application.
Let’s get specific. In a virtual server environment, which Infiniblox claims is their top application, an InfiniBox ought to offer great day-to-day performance but still can’t offload snapshots or replication without higher-level protocols like VAAI getting involved. So their AV architecture is only one component of a larger I/O blender-beating combination.
I’m pleased to see that Infinidat does indeed support VAAI. 2. And their unique data placement solution means that snapshots are very impressive: “InfiniSnap” is pointer-based solution that allows infinite, quick, and efficient snapshots to be created on the fly. VAAI+InfiniSnap sounds like a match made in heaven!
But Infinidat doesn’t support VVOL yet, and their papers claim they don’t need to, since VAAI works so well. I’m not convinced. VVOL is a hinting mechanism, telling the array which blender-ized blocks belong together as a virtual LUN. This information would be massively valuable in creating useful Activity Vectors, and it’s essential to enabling full offload of storage operations (clones, snapshots, replication) to the array.
Infinidat has built a true enterprise-class storage array, and their sales claims are impressive. They’re converting EMC Symmetrix customers for open systems applications, and promise mainframe support in the future. While the rest of the market is focused on data awareness, flash integration, and secondary storage, Infinidat is taking on the big guys in the heart of the data center.
Although not part of this release, I expect that Infinidat will embrace VVOL very soon. It’s just too nice of a complement for the impressive system they’ve created! Their Activity Vector and InfiniSnap technology sounds great, and the overall system (along with VAAI and VVOL) should be a killer answer to the I/O blender challenge.
Disclaimer: I was pre-briefed by Infinidat twice this year, and they’re presenting at my Storage Field Day 8 event in October. But no one can buy an article on my blog at any price.
Note: The photo above came from the Infinidat Twitter account since I couldn’t find any usable imagery on their web site and their presentations are all marked “confidential” and “internal use only”.
You first introduced me to the term/concept of “I/0 Blender” ~4 years ago –Thanks.
Jeff Darcy says
Interesting. I worked on something extremely similar at Conley+EMC in 1998. Somebody else picked up that work in 2001 (plus or minus a year – it was a long time ago). Don’t know if it ever got incorporated into a product. They key part is coming up with an algorithm that separates the I/O streams well enough to make good predictions and efficient enough not to be more effort than it’s worth. Then you need a way to represent those results in a memory-efficient way that allows efficient lookup *in the I/O path* to allow actions to be taken when the triggering conditions are met. That’s a challenge, but not as much as the filtering algorithm. To be honest, the algorithms we had were always kind of borderline, and that’s when we were just dealing with separate apps/processes before the era of virtualization. If Infinidat has managed to crack that nut, kudos to them. It seems entirely possible, but I’d still want to see some evidence using real workloads and real measurements for things like false negatives and false positives. I’d also worry a bit about having core intellectual property so closely related to that owned by a very litigious former employer.