How NAND flash degrades and what vendors do to increase SSD endurance
Storage Switzerland senior analyst Eric Slack digs into the technical aspects of SSD cell degradation and how vendors are increasing SSD endurance.
Solid-state drives (SSDs) and PCI Express (PCIe) flash cards are becoming commonly adopted in storage products and servers, but questions remain about flash storage's endurance and life span. In this podcast, Storage Switzerland senior analyst Eric Slack discusses the technical aspects of how NAND flash storage degrades and what vendors are doing to increase SSD endurance.
SearchSolidStateStorage: How do SSDs wear out, and how does this make them less reliable than hard disk drives?
Eric Slack: Well, when we talk about SSDs wearing out, we're referring to the fact that the NAND flash substrate can sustain a finite number of erase cycles before it becomes unusable. The erase process involves hitting the flash cell with a relatively large charge of electrical energy. This causes the semiconductor layer on the chip itself to degrade a minute amount which, over time, can increase bit-error rates. At first these errors are corrected with software, but eventually the error correction code routines in the flash controller can't keep up with these errors and the flash cell becomes unreliable.
What techniques do drive vendors use to increase SSD endurance and life span?
Slack: SSD vendors essentially use the flash controller to manage flash wear, or to maximize the flash's endurance, that's really the term that's most commonly used when you are talking about wear.
To understand these controller processes, we have to understand how a flash device writes, erases and then rewrites data on NAND flash media. First of all, flash can't be overwritten at the byte level as magnetic disk media can be. Instead, changes are written to a new block and the old data in the original block is marked for deletion. When a flash device fills up for the first time, the controller has to erase data in complete blocks ahead of the requirement to write new data. It does this by consolidating the good data on existing blocks, the data that isn't marked for deletion, and copying it to a new block.
This process of clearing out old blocks by moving the good data to a new piece of flash real estate is known as garbage collection. Now the copying of good data over to new flash blocks obviously creates some data management overhead, and it can also result in extra writes that the flash media has to endure.
For example, if half of the data on a block that's being cleared for erasure is actual good data, that represents a large amount of extra write activity over and above any new data writes. This phenomenon is called write amplification, and it exacerbates the flash-endurance problem.
So getting back to increasing endurance, by effectively consolidating data blocks, the flash controller can minimize the number of erase cycles that it conducts for a given rate of data changes or a given volume of data written. In addition, by minimizing data movement, the controller can also minimize write amplification -- again, maximizing endurance.
Some flash vendors also carefully control the amount of energy used in the erase cycle to minimize flash cell degradation and others leverage sophisticated software routines to organize write data streams and minimize their randomness.
The key is to reduce the amount of data that's being written and eventually erased. This means data reduction technologies like compression and deduplication can also be effective. In fact, dedupe can be especially effective with flash because flash has such low latency. So, dedupe isn't limited by the amount of RAM, which has typically been the case in most deduplication systems.
Another method is to first write data to a higher endurance flash type, like SLC [single-level cell] NAND. This saves wear on the lower-endurance MLC [multi-level cell] NAND. Some devices actually use DRAM storage in the same way, for the initial write, which has essentially no endurance problems.
How do these technologies, used to increase endurance, affect performance?
Slack: Well, garbage collection and other controller processes, they're really not supposed to affect performance. The drive should be designed with enough horsepower to sustain its published specs while under load, including the garbage-collection process. But not all vendors do this equally well. This is really not as bad as it used to be when enterprise flash first appeared several years ago.
Flash was originally designed for consumers in memory sticks and flash cards for cameras, etc. When the first enterprise drives started coming out, many were essentially consumer flash products under the covers. So performance was an issue for a lot of these products. When users were comparing flash devices, they had to confirm that specs were what they call "steady state," and not fresh-out-of-the-box, or FOB. What that really refers to is that when a device is brand new, there's no garbage collection required because all the cells are empty. So at first the performance is very high, and then there's a cliff that the performance falls off of when the drive first completely fills up and garbage-collection routines have to be included in the latency for each of these write processes.
Do vendors overprovision flash to increase the drive's life span?
Slack: Absolutely. Flash vendors do overprovision their devices, which means that they routinely include significantly more flash capacity than they actually make available for data writes. This is so they have an inventory of flash cells to replace the cells that wear out. The amount of overprovisioning can range anywhere from 25% to well over 100%. It really depends on the endurance level that the manufacturer is guaranteeing.
How long should an administrator expect each drive type to last under different usage conditions?
Slack: Endurance is typically stated as total bytes written (TBW) which is a product of write cycles and the logical drive capacity. Endurance can also be expressed as the number of full drive writes per day, which is pretty common, where one drive write is equal to the logical drive capacity. Most enterprise-grade solid-state drives are designed to last between three and five years -- with five years becoming the norm lately.
And really, from an endurance perspective, based on the workload, your mileage really varies. It's really all over the place. For this reason, most flash vendors offer different products with a range of writes-per-day specs, which can be from one or two and up to 25 or even 50 writes a day, again, to support this five-year life span that's kind of become an industry norm.