Optimizing RAID/SSD controllers with lifetime extension for flash-based SSD array

Flash-based SSD RAID arrays are increasingly being deployed in data centers. Compared with HDD arrays, SSD arrays drastically enhance storage density and I/O performance, and reduce power and rack space. Nevertheless, SSDs suffer aging issues. Though prior studies have been conducted to address this disadvantage, effective techniques of RAID/SSD controllers are urgently needed to extend the lifetime of SSD arrays. In this paper, we for the first time apply approximate storage via the interplay of RAID and SSD controllers to optimize the lifespan of SSD arrays. Our basic idea is to reuse faulty blocks (those contain pages with uncorrectable errors) to store approximate data (which can tolerate more errors). By relaxing the integrity of flash blocks, we observed that the endurance of NAND flash memory can be significantly boosted, thereby providing huge potentials to significantly extend the lifetime of SSDs. Based on this observation, we propose the use of an efficient space management scheme for data allocation and FTL strategies by coordinating the interplay of RAID and SSD controllers to optimize the lifetime of SSD arrays. We implemented a prototype, called FreeRAID, based on an SSD array simulator. Our experiments show that we can significantly increase the lifetime by up to 2.17× compared with conventional SSD-based RAID arrays.

[1]  Mark F. Flanagan,et al.  Error Detection in Majority Logic Decoding of Euclidean Geometry Low Density Parity Check (EG-LDPC) Codes , 2013, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[2]  Chundong Wang,et al.  ASAC: automatic sensitivity analysis for approximate computing , 2014, LCTES '14.

[3]  John C. S. Lui,et al.  Analysis of Reliability Dynamics of SSD RAID , 2016, IEEE Transactions on Computers.

[4]  Henrique S. Malvar,et al.  Approximate Storage of Compressed and Encrypted Videos , 2017, ASPLOS.

[5]  Jacob Nelson,et al.  Approximate storage in solid-state memories , 2013, MICRO-46.

[6]  Zili Shao,et al.  Demand-based block-level address mapping in large-scale NAND flash storage systems , 2010, 2010 IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[7]  Daniel Stodolsky,et al.  Parity logging overcoming the small write problem in redundant disk arrays , 1993, ISCA '93.

[8]  Liang Shi,et al.  ApproxFTL: On the Performance and Lifetime Improvement of 3-D NAND Flash-Based SSDs , 2018, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[9]  Sang Lyul Min,et al.  A space-efficient flash translation layer for CompactFlash systems , 2002, IEEE Trans. Consumer Electron..

[10]  Jongmoo Choi,et al.  Improving performance and lifetime of the SSD RAID-based host cache through a log-structured approach , 2013, INFLOW '13.

[11]  Zili Shao,et al.  A Space Reuse Strategy for Flash Translation Layers in SLC NAND Flash Memory Storage Systems , 2012, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[12]  A. L. Narasimha Reddy,et al.  Does RAID Improve Lifetime of SSD Arrays? , 2016, ACM Trans. Storage.

[13]  Akshat Verma,et al.  SRCMap: Energy Proportional Storage Using Dynamic Consolidation , 2010, FAST.

[14]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[15]  Henrique S. Malvar,et al.  High-Density Image Storage Using Approximate Memory Cells , 2016, ASPLOS.

[16]  Yongkun Li,et al.  Elastic Parity Logging for SSD RAID Arrays , 2016, 2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN).

[17]  Ching-Che Chung,et al.  Partial Parity Cache and Data Cache Management Method to Improve the Performance of an SSD-Based RAID , 2014, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[18]  Peng Zhang,et al.  PEVA: A Page Endurance Variance Aware Strategy for the Lifetime Extension of NAND Flash , 2016, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[19]  E. Parkway Quantifying Reliability of Solid-State Storage from Multiple Aspects , 2011 .

[20]  Xavier Jimenez,et al.  Wear unleveling: improving NAND flash lifetime by balancing page endurance , 2014, FAST.

[21]  Karin Strauss,et al.  Zombie memory: Extending memory lifetime by reviving dead blocks , 2013, ISCA.

[22]  Zili Shao,et al.  MNFTL: An efficient flash translation layer for MLC NAND flash memory storage systems , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[23]  Yiran Chen,et al.  DPA: A data pattern aware error prevention technique for NAND flash lifetime extension , 2014, 2014 19th Asia and South Pacific Design Automation Conference (ASP-DAC).

[24]  Youyou Lu,et al.  Extending the lifetime of flash-based storage through reducing write amplification from file systems , 2013, FAST.