Data storage arrays have taken on increasingly sophisticated payloads, adding processes such as intelligent caching, self-healing, continuous operation, and of course, the increasing high IO demands of today’s SSD devices. This means that storage array controllers must depend heavily on the processing power provided by CPU manufacturers.
To relieve the pressure that these complex operations bring, most people just assume that faster CPUs will provide the necessary power to keep storage systems operating faster and faster while doing more and more. After all, the promise of Moore’s Law has held true for nearly 50 years and provided this relief, right?
Figure: Die Image of Intel’s 15-core Xeon E7 Processor
Breaking Moore’s Law
Not so fast. The future direction of CPU performance breakthroughs are not necessarily faster CPUs. Gordon Moore himself has said that the doubling of processing power every 24 months can’t continue forever. As we are witnessing in everything from laptops to servers, the direction the CPU industry is clearly headed is towards expanded development of multi-core processors.
So, how is this trend toward multi-core CPUs affecting storage vendors? The same way it affects all application developers. A multi-core CPU gives you more processors (and more processing power), but it’s up to the software designers to make all those processors work their hardest. In this blog, we’ll take a closer look at how NetApp utilizes multi-core operations in its latest all-flash storage array.
Enhanced Support for Multi-Core CPUs
Recently, NetApp announced the availability of its newest all-flash storage array, the EF560, and a corresponding upgrade of the EF’s base operating system, SANtricity. SANtricity is a real time operating system (RTOS) built on a lightweight VxWorks kernel that is designed solely for high performance and low latency data storage operations.
With an efficient instruction path length measured in the 30-microsecond range, SANtricity imposes minimal constraints on the processing of IO instructions. To further leverage the EF560’s multi-core processor, SANtricity 8.20 introduces a scalable IO scheduling method that executes code segments in parallel on multiple cores, with individual tasks selectively assigned to separate execution engines (or cores).
The execution engines exchange status information using well defined low overhead interfaces or constructs. Interfaces defined for the IO path adhere to policies that insure optimization and prevent an offloaded process from adding any perceivable latency to IO processing time. In all cases, these policies are enforced to limit the SANtricity code path lengths.
In this manner, EF560 multi-processing operations are not forced, but rather selectively enforced only when the logic determines that an operation will benefit from multi-core operations. This opportunistic multi-core processing algorithm means that multi-processing will only be used when it benefits the IO path.
The NetApp EF560 All-Flash Array
With the release of the EF560, and the enhanced multi-core processing ability of SANtricity, the EF560 offers a substantial performance boost over its predecessor, the EF550, with 650,000 sustained IOPS and latency levels consistently in the 800 microsecond range.
As an additional data point, published SPC-1 benchmark results show the EF560 as the number one $/IOP array (among arrays with latency under 1 millisecond), delivering 245,011 IOPS at 930 microsecond response time. Additionally the report shows latency results which are even more impressive at varying IOPS levels.
In an interesting side benefit, SANtricity 8.20 is backward compatible with the prior generation EF550 storage array (all-flash, 4-core processor) and improves performance of that device as well, with a 25% IOPS boost. Upgrading SANtricity on the EF550 is completely seamless. It takes about 20 minutes to upgrade the active-active dual controllers. From the SANtricity Storage Manager console, simply hit upgrade, select the upgrade file, and let the system do its thing. If you own an EF550, upgrading to SANtricity 8.20 should be high on your to-do list!