In a previous article, I wrote about the acquisition of NexGen made by Fusion-IO, what were the technological and business reasons behind this acquisition, and how Fusion-IO wants to change and increase the NexGen business. In this article instead I’m going to describe you in more details how a NexGen storage works.
A quick view on the hardware
First of all, the NexGen storage is a midrange system designed to manage several workloads, mainly virtualized. The team who developed it (John Spiers as CEO and Kelly Long as CTO) is the same who created LeftHand many years ago, and this heritage is clear for example in the choice of iSCSI as the only available frontend protocol.
The chassis is 3U high, and holds two active-active controllers. Each controller has on-board non-shared Fusion-IO cards, and their content is syncronized between controllers in real time thanks to their operating system, named ioControl and internally developed by NexGen itself.
One of the distinctive aspects of NexGen in regards to other storage vendors is for sure the usage of Fusion-IO cards. Based on NexGen explanation, flash cards usage as the first tier make possible to use even bigger and slower disks without negatively affecting the overall performances, since flash memory is much faster than ssd. SSDs are usually connected to the same controller, who turns out to be the bottleneck itself, since ALL data from the SSD or HDD go through it. Fusion-IO cards are instead connected directly to the PCI Express bus, having so higher performance limits.
there are several models, with different onboard storage, Fusion-IO models in use (from 730 Gb up to 4.8 Tb) and also the number of shared SATA disks between the two storage processors (starting from 16 TB up to 192 TB with additional shelves). The models offers speed ranging from 50k to 150k IOPS (4k, 50/50 read-write). A fascinating element of this design is the double expandability: you can add both Fusion-IO or SATA disks, depending on your needs for high or low storage.
As said before, frontend connectivity is only iSCSI, made with 4 * 10G cards, or with 1G cards (used as backup).
As said before, primary market target for NexGen is midrange. Based on NexGen itself researches, and approved by Fusion-IO too, these customers want a unique storage for all their different workloads, but I/O demanding or space demanding. This is the foundation for the design of a hybrid solution, coupling a fast tier made with Fusion-IO cards (for performances) and a second tier made with mechanical disks (for cheap disk space).
One of the problems often emerging in hybrid storage, and one of the problem Nexgen worked to solve, is the unredictability of performances. Often blocks of the same VM ar not in the right place at the right time (usually they are in the mechanical disks when I/O starts to rise) and autotiering has a hard time to fullfil applications requests. The risk, for many customers, is to be forced to use dedicated storage for a demanding workload in order to isolate it and to guarantee its performances. VDI is a clear example, since it’s usually an invasive workload, always creating problems to its neighbors.
Silos however are an additional problem, since they bring increased additional complexity and so additional problems. NexGen wants to offer to those customers a storage for all their workloads, guaranteing performances to all of them.
NexGen says the problem lies in performances ruled by caching and tiering algorythms, instead of business needs and workload policies.
Right now, even if the ioControl (NexGen operating system) allows for fine and detailed controls, end users only see 5 policies so they have much ease of management. These policies are applied to workloads in real time, dinamically.
Another way to improve performances is deduplication. Right now it’s in an initial phase, but it already allows to save on disk writes, so it accelerates disk usage and increases the endurance of the Fusion-IO cells.
Finally, it’s interesting to know they developed a highly customized operating system, not based on a classic linux distribution (I said before about LeftHand heritage, well they were using CentOS there…) but directly on linux source code.Always with performances in mind, NexGen’s OS is completely executed in RAM; this allows to save Fusion-IO from operating system’s activities, in order to further increase their endurance.
Even interface has been designed with performances in mind. This means two things: first, interface needs to be light and fast and compatible with all the web browsers; second, the interface is going to be the gateway for data analysis.
Qith al this focues on performances and their QoS, the system needs to show all the available performance metrics, and to allow the customization of graphical rendering. To do so, they choosed a radical approach: the whole interface is based on JSON and REST APIs, and all the commands are available in GUI and CLI with no difference. This means that in reality, both GUI and CLI are only two ways to access the APIs, that are the real interface.
The graphical interface impressed me for its simplicity (in a positive way): few buttons, main feature quickly available like the access to metrics, and a general feel of neatness and speed.
About the integration with VMware, first of all remember this storage is an active-active one, or better said ALUA. There is not LUN ownership, but there is indeed a preferred path.
As of today, integration is mainly based on their vCenter plugin. There is an interesting work to simplify its usage to vCenter admins that are not also storage admins, so that a vCenter admin for example is going to create a “datastore” more than a “volume” o “LUN”, even if the underlying storage is going to create right these elements.
Aparte fro the plugin, there nothing more right now. The storage does not supports VAAI libraries, and even if intensive activities are relieved by data replication based on redirect-on-write, support for those libraries would be desirable. Will see in the next software releases. Same applies to SRM support: when the storage will offer replication features, for sure the SRM plugin will be needed.
The development of NexGen storage has been focused on a storage offering high performances with a low price per IO. Looking at NexGen proposition, this goal seems it has been reached. In the future, we should expect further improvements in these features, but most of all a higher integration with other systems, first of all VMware, but maybe also Hyper-V or others. The time frame for these improvements is not available, but I do think the acquisition from Fusion-IO will bring higher budget to accelerate the development.
We will see in the next software releases which new features will be introduced.