  This paper studies how RAID (redundant array of independent disks) could take
full advantage of modern SSDs (solid-state drives) with built-in transparent
compression. In current practice, RAID users are forced to choose a specific
RAID level (e.g., RAID 10 or RAID 5) with a fixed storage cost vs. speed
performance trade-off. Commercial market is witnessing the emergence of a new
family of SSDs that can internally perform hardware-based lossless compression
on each 4KB LBA (logical block address) block, transparent to host OS and user
applications. Beyond straightforwardly reducing the RAID storage cost, such
modern SSDs make it possible to relieve RAID users from being locked into a
fixed storage cost vs. speed performance trade-off. The key idea is simple:
RAID systems opportunistically leverage higher-than-expected runtime user data
compressibility to enable dynamic RAID level conversion to improve the speed
performance without compromising the effective storage capacity. This paper
presents design techniques to enable and optimize the practical implementation
of such elastic RAID systems. For the purpose of demonstration, we implemented
a Linux software-based elastic RAID prototype that supports dynamic conversion
between RAID 5 and RAID 10. Compared with a baseline software-based RAID 5,
under sufficient runtime data compressibility that enables the conversion from
RAID 5 to RAID 10 over 60% user data, the elastic RAID could improve the 4KB
random write IOPS (IO per second) by 42% and 4KB random read IOPS in degraded
mode by 46%, while maintaining the same effective storage capacity.
