Enter flash – what many people view as the savior to storage I/O bottlenecks. But implementing flash storage can be a bit confusing. Does it belong to the storage array, to the server or to both locations?
The initial market reaction has been to leverage flash within the framework that is most understood by storage administrators – i.e. within the shared storage array. This has come in the form hybrid arrays, which mix traditional disk and flash, and more recently All-Flash Arrays (AFA), which as the name suggests are 100% flash solutions. By adding flash to shared storage, these solutions deliver incremental performance improvements in a very familiar manner.
But does flash in the storage array maximize value for the end user? Does it exploit the revolutionary characteristics of flash to the fullest extent? Is it a short term fix, or a long term storage architecture designed for future growth and new technologies?
The answer to these questions, unfortunately, is “no.” An alternative is required that not only leverages the value of flash, but also overcomes the traditional challenges of shared storage. The answer is decoupled storage.
Faster Media, Same Challenges
Using a shared storage device has numerous benefits. Most notably, when information is centralized it is easy to add capacity, backup and secure stored data.
However, a shared storage array gives you a fixed amount of performance (as measured by IOs per Second, or IOPS). As more Virtual Machines (VMs) are added to your hosts, the average number of IOPS per host goes down, resulting in poor application performance. The traditional way to get more IOPS is to buy more storage capacity, which is expensive and can result in inefficient over provisioning.
Unfortunately, flash arrays do not solve this issue any better than traditional disk arrays. They increase the number of IOPS, but don’t introduce a long term solution to the problem. You still have to buy more capacity to get “blocks” of storage performance. Even if your flash array vendor offers to give you more IOPS every few years if you stay under their maintenance contract, you are still at the mercy of that vendor. You are locked into their hardware, and only get “free” IOPS in the amount they offer, when they offer them – not when you actually need them. In addition, the flash is “too far” from the applications to solve the latency problem. Lastly, the architecture of a flash array may look innovative now, but will that still be the case in 3 or 4 years?
Decouple Storage Performance from Capacity
The best solution is to decouple storage performance from capacity. By putting performance inside high speed server media and leaving capacity in the storage array, you get the best of all worlds – low latency, unlimited IOPS, cost effective scale-out, and a future-proofed solution that leverages new technology as it emerges.
For example, Figure 1 shows how a decoupled storage architecture scales-out storage performance simply by adding new cost effective server media. In other words, to get more IOPS, all you have to do is add more SSDs – inside any host in your network. This avoids expensive over-provisioning in the storage array, and enables storage performance to grow predictably with compute resources.
Figure 1: Scale-out storage performance with your virtual infrastructure
Putting IOPS aside, there is an even more important metric to look at – latency. All of the IOPS in the world won’t improve application performance if latency is too high. Flash arrays improve latency over traditional storage environments, but they don’t offer the same performance as flash in the server. That is because data must traverse the storage fabric and contend for limited storage controller cycles before ever reaching the storage media in the array, all of which adds latency (see figure 2). So, even if flash in the storage array increases the speed of reads from and writes to media, other bottlenecks in the storage array still exist. These bottlenecks are avoided by putting flash right where the application resides– i.e. inside the host.
Figure 2: An AFA puts flash several hops away from the application, adding unnecessary latency (Diagram courtesy of Chad Sakac)
Decoupled storage architecture also gives complete hardware flexibility. You can mix and match types of flash (e.g. SSD or PCIe from any vendor) across hosts and VMs based on specific performance and cost needs. In addition, as new hardware technologies emerge (e.g. Flash DIMM, NVMe), they can be easily added. In fact, you don’t have to use flash at all. Faster technologies, like RAM, can also front-end share storage for the best possible VM experience. Gone are the days when you are locked into a single piece of hardware for years on end.
Finally, decoupled storage helps you avoid or delay a storage upgrade by giving you the performance you need using your existing storage. If buying a new storage array is unavoidable, you can choose a storage array that delivers the most capacity at the best price. The amount of IOPS delivered by the storage array becomes increasingly less relevant, which can save you up to 95% in new hardware investments.
What is needed to get all flash performance without an AFA using server-side storage?
Obviously, server-side flash (or RAM) is required for performance. In addition, a shared storage device is needed for capacity and data services.
You also need software to tie it all together – i.e. to create an enterprise class decoupled storage platform. This “decoupling” software generally includes the following types of functions:
- Seamless clustered operations. Any VM can remotely access data on any flash/RAM inside a cluster, ensuring seamless hypervisor operations (vMotion, DRS, HA, Snapshot, etc.).
- Read and write acceleration with fault tolerance. By synchronously replicating between server media, you can accelerate both reads and writes with confidence.
- 100% Non-Disruptive. Decoupling software is deployed inside the hypervisor kernel in with no changes (or reboots) to hosts, storage, network or VMs.
With all of the above in place, you have a radically new way to deploy storage in a virtualized data center that maximizes VM performance, minimizes costs, and brings a whole new level of flexibility to data center design by decoupling storage performance from capacity.
All flash performance is available today. But if you are looking at an All-Flash Storage Array as the way of getting it, you may want to think twice before making that heavy investment.