i-RAID: a novel redundant storage architecture for improving reliability, performance, and life-span of solid-state disk systems

Solid State Disks (SSDs) are becoming increasingly popular in enterprise applications where high performance and high reliability are paramount. Although SSDs have very low read access time, their write performance is often less ideal. In addition, SSDs face some unique reliability challenges, including write-endurance, read-disturb and write-disturb. Even repeatedly reading from an SSD may cause data corruption because the read voltage may stress neighboring memory cells. As NAND continues to scale, it becomes more challenging for cells to store data reliably because read-disturb and write-disturb exacerbate. While a strong ECC (Error Correction Code) scheme can be very effective to protect young flash blocks, it may not be sufficient for aged blocks. Recently, non-volatile memory (NVM) such as phase-change memory (PCM) are receiving surge of research interests, as it over-shadows flash memory by providing in-place update and even better performance and reliability. Due to the cost and manufacturability difficulties, hybrid data storage systems which combine both flash memory and NVM are under investigation extensively. Previous studies have shown that using traditional RAID-5 algorithms directly on SSDs may lead to many pitfalls. They introduce some huge performance penalty and other reliability issues. We propose a novel solution called i-RAID (internal RAID) that introduces RAID-like parity-based redundancy while avoiding many of its problems. Unlike traditional disk drives, SSDs cannot perform in-place updates. We view this unique characteristic as an opportunity instead of a hurdle. The out-of-place update feature means that old data will not be over-written by the new data, which allows us to design some fundamentally new algorithms that defer the computing and updating of parity blocks until the garbage collection time, thereby significantly reducing the overhead and possibly increasing the life-time of SSDs. Our algorithms also dynamically and selectively construct parity stripes only on aged, error-prone blocks, and utilize the internal parallelism of SSDs to further improve performance. Our study shows that by constructing i-RAID on aged blocks only (90% of rated life cycles), i-RAID introduces Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from permissions@acm.org. only small time performance overhead (2% - 6%) and erase count overhead (3% - 15%) comparing to non-redundant devices. By trading more performance overhead, reliability can be even more enhanced which may be necessary for a highly-demanding environment.