Flash memory based Solid State Disk systems (SSDs) are becoming increasingly popular in enterprise applications where high performance and high reliability are paramount. While SSDs outperform traditional Hard Disk Drives (HDDs) in read and write operations, they pose some unique and serious challenges to I/O and file system designers.
The performance of an SSD has been found to be sensitive to access patterns. Specifically read operations perform much faster than write ones, and sequential accesses deliver much higher performance than random accesses. The unique properties of SSDs, together with the asymmetric overheads of different operations, imply that many traditional solutions tailored for HDDs may not work well for SSDs. The close relation between performance overhead and access patterns motivates us to design a series of novel algorithms for I/O scheduler and buffer cache management. By exploiting refined access patterns such as sequential, page clustering, block clustering in a per-process per-file manner, a series of innovative algorithms on I/O scheduler and buffer cache can deliver higher performance of the file system and SSD devices.
Other than the performance issues, SSDs also face some unique reliability challenges due to the natural properties of flash memory. Along with the well-known write-endurance, flash memory also suffers from 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 the density of flash memory keeps increasing, the disturbing problems are becoming even more severe for memory cells to store data reliably.
One of the structural merits of an SSD is its internal parallelism. Such parallelism of flash memory chips could be exploited to support data redundancy in a similar fashion to traditional HDD RAID. Recently an emerging non-volatile memory (NVM) such as PCM is receiving increasing research interest, as it outperforms flash memory by providing in-place update and better performance and reliability. Hybrid solutions, which combine both flash memory and NVM to balance performance and cost, are under special investigation to address the reliability and performance issues of flash memory based storage systems.
To address the reliability concerns, we present a novel storage architecture called i-RAID (internal RAID) that introduces RAID-like parity-based redundancy while avoiding many of its problems. What make i-RAID so unique like no other are its deferred parity maintenance, selective RAID protection and dynamic RAID organization. It solves traditional RAID’s small update problem and avoids SSD RAID pitfalls. 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 enables 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.