Imagine a day in the life of a storage design engineer. Storage capacities have climbed to record levels; meanwhile customers are demanding higher data throughput and lower latencies. Easy, right? Well, yes, in some respects. Faster CPUs blaze through IO instructions quicker than ever. Multi-core CPUs permit simultaneous IO instructions to be processed. Solid state storage devices (i.e. SSDs) can literally move data at lightning speed. Yes, the storage engineer has many tools as his or her disposal, but it’s still up to them to put everything together and make it work.
Consider this. 100TB of high-speed SAN storage consists of approximately 25 billion 4k data chunks (100 trillion divided by 4 thousand). That’s 25 billion chunks that need to be organized in order for data to be properly stored, retrieved, protected, and managed. Keeping track of 25 billion of anything is mind-boggling, but how about managing 25 billion data chunks in a single storage array that’s constantly prodded to store faster, retrieve faster, and oh by the way, you’d better not lose any of my data!
In light of this scenario, it might be said that it’s relatively easy to build a 100TB storage array, but it’s extremely difficult to coordinate all of the activity within that array and satisfy the needs of the people accessing it. This brings me to the topic of a recently submitted SPC-1 benchmark for NetApp’s latest all-flash storage array, the EF560, and similar in-house test results for the all-flash FAS8080 , which are both quite remarkable, albeit in slightly different ways.
The all-flash EF560 is a dual-controller SAN array which was designed with one overarching goal— to move data from point A to point B as quickly as possible. In the SPC-1 benchmark, which simulates the workloads from high speed data applications such as OLTP and mission-critical database operations, the EF560 processed 245,011 IO instructions per second under maximum load, in other words - 882 million instructions per hour.
Next, the all-flash FAS8080, a group of storage arrays (called nodes) that are logically combined into a single virtual array (called a cluster). A FAS8080 8-node cluster, with a total of 256 Intel CPU cores, was also tested, and did a bit better than the dual controller EF560, processing 685,281 IO instructions per second, or nearly 2.5 billion instructions per hour.
While these IO processing specs were impressive, perhaps more interesting was the consistency in delivering this performance. A key measurement for high-performance storage arrays is response time, or the average time it takes to process an IO request, measured from start time to completion time. Typically, as a storage array begins to process more instructions, the response time rises, sometimes dramatically, as the array struggles to keep pace with the increased workload. This can result in an undesirable latency spike as the array approaches full utilization. The chart below, from an all-HDD array tested in the early 2000’s, shows this “hockey stick” rise in latency as system load increases:
However, with all-flash media at their disposal, the storage engineers at NetApp have been able to reduce latencies across the entire spectrum of workloads, as shown in the following chart:
For the EF560, this means that response times were consistently measured at less than 1 millisecond regardless of load. (Bragging time: It also achieved the lowest latency ever recorded for any SPC-1 benchmark - 180 microseconds at 10% utilization). For the FAS8080, this means that even with extreme scale-up and scale-out, as array IOPS increased by 10x, latency increased by only 2.5x to a very respectable 1.23 milliseconds at 100% utilization.
With enterprise storage arrays processing billions of IO instructions per day, every microsecond counts. The EF560 and the FAS8080 represent NetApp’s latest generation of all-flash high-performance storage arrays, with sustained and consistent performance.