Flash has become ubiquitous. It is being deployed on PCIe cards in servers, in all-flash arrays that plug into storage networks, and in hybrid arrays in the form of solid-state drives (SSDs). But where is the best place to deploy flash? Well, that requires the most famous of engineering answers: “It depends.”
Application requirements have always driven infrastructure decisions, and flash is no exception. If your application demands the lowest possible latency and highest possible throughput, then flash on a PCIe card in the server, where it is close to your microprocessors could be the answer. PCIe-based flash can deliver hundreds of thousands of IOPS and achieve latencies measured in microseconds. But what if you want to share that flash between servers? In that case, an all-flash array may be the answer. An all-flash array can deliver consistent low latencies in the range of 500 microseconds, provide a rich set of data services like de-duplication and replication, and consolidate workloads from many servers. If it is designed correctly, an all-flash array is built from the ground up to leverage the unique characteristics of flash.
Both PCIe and all-flash array solutions tend to optimize around cost per I/O, but what if your application requirements demand greater capacity and are more sensitive to cost per gigabyte? That is where a hybrid array might be the answer. By combining SSDs and spinning disk drives in an array, an application can get an efficient mix of performance and cost if your applications can tolerate the possibility of variable latency.
There will be other times when your application will call for running flash everywhere, like an in-memory database attached to a high performance all-flash array and a hybrid array for cost-effective tiering.
As time goes by, software will evolve at each layer of the infrastructure stack, and richer feature sets will be delivered.
But this is just the beginning.
The next step is to abstract the properties of each type of flash deployment—wherever the flash resides in the data center—and create pools of flash defined by performance, cost, capacity and protection requirements. These pools will be managed seamlessly and automatically to provide applications exactly what they need, when they need it, in the most efficient way possible.
This is the essence of software-defined flash and it is “where we go from here.”