All-Flash Arrays have to overcome two key obstacles when trying to gain acceptance as storage systems which can be utilized across a wide number of use cases in the data center. First, they must be durable and secondly, they must be cost effective. The challenge is that one of the most common methods for increasing durability, over-provisioning, actually increases the cost of the All-Flash Array. While valuable, this technique needs to be used sparingly so the All-Flash Array can achieve price parity with the hard disk-based enterprise solid state storage systems they are hoping to replace.
What is Over-Provisioning?
Over-provisioning is a technique that solid state vendors use to increase the life expectancy and write performance of the solid state device. It is a method used by all solid state drives on the market today. Over-provisioning rates are set very high for enterprise SSDs. Almost every enterprise solid state device that is purchased for the data center comes with 28% or more actual memory than what is made available to the servers accessing it.
As an example, a solid state device that claims to be 200GB in capacity may have 256GB of actual flash. Even though the application or user can’t “see” this capacity, the SSD will still use the whole 256GB of capacity to spread out its writes. This means that flash modules will take much longer to wear out than an equivalent flash drive with 200GB that is not over-provisioned. The caveat, however, is the extra memory is not free. Instead, it is buried in the cost of the unit and the customer ends up paying for it.
Short-Stroking The Flash Array
Over-provisioning artificially drives up the price of flash based storage. It is essentially the flash equivalent of hard drive short-stroking. Hard drives are often formatted with less capacity than what is actually available so that data lands on the fastest area of the disk – the outside portions of the platter. This technique sacrifices capacity for higher performance. By not exposing all of the flash capacity, flash over-provisioning is in effect, a form of short-stroking designed to enhance the performance and durability of the flash modules.
Except in this case, you are sacrificing capacity (and budget dollars) to improve endurance and performance. The other key difference is the cost per capacity of flash storage is much higher than a hard disk. Where sacrificing capacity is acceptable for cost effective hard disk, it is much less so for flash storage.
A key challenge is that over-provisioning is the extent of the durability and performance enhancements for many Flash Array and SSD Appliance vendors. It is also the reason that they have to provide so much extra flash memory. There are alternatives, by improving controller intelligence with storage efficiency techniques vendors like Skyera are driving down the amount of over-provisioned flash to only 10% while maintaining similar if not better flash performance and endurance.
Deduplication and Compression Are Not Enough
Many All-Flash Array vendors propose deduplication and compression as the work-around for the endurance problem of flash based storage systems. When these methods are implemented “in-line” so they occur before new or updated data is initially written to the flash they can reduce or eliminate some of the data to be written to the flash module. The problem is that effectiveness of these methods is not consistent across various data center workloads. Deduplication can directly impact performance and creates its own set of writes as hash tables are updated. Overall these techniques are certainly worth implementing in All-Flash systems but by themselves they are not enough.
Intelligent Controller Design
The first step towards reducing the amount of flash space that needs to be provisioned is to build a better controller. The flash controller manages the wear-leveling process, which makes sure data is written evenly across all flash cells. The flash controller is also important for routing tasks like garbage collection that prepares the flash memory cell for new data. Most flash controllers stop here though and that is the problem.
Some flash controller technologies, like the type found in Skyera’s skyHawk All-Flash Array, do more. These controllers actually manipulate the way data is written to the flash so that each write does not degrade the flash as much. Write manipulation requires an advanced understanding of NAND memory and controller design and when implemented properly, can significantly improve flash life expectancy.
Intelligent Controller Design in The Array
While this controller technology could be and is used in standalone drives, for flash array vendors it needs to be integrated into the array itself. An All-Flash Array integrated with an intelligent controller, or a series of controllers working together, would have the benefit of leveraging all of the flash modules in the system. This provides more flexibility in how and when writes are manipulated.
A Combined Effort
Increasing flash durability without increasing costs requires leveraging all of the available techniques in a vertically integrated design like Skyera’s skyHawk enterprise solid state storage systems, so that everything can synergistically work together. Starting with intelligent flash controllers, then adding in a small amount of over-provisioned capacity combined with hardware deduplication/compression and flash centric RAID, delivers the maximum performance per flash cell, the maximum life expectancy per flash cell and the maximum flash capacity per dollar. The net effect is a long lasting, cost effective flash system that can be price competitive with enterprise disk based storage, while providing the significant performance advantage that we have come to expect from All-Flash Arrays.
Skyera is a client of Storage Switzerland