Efficient Parity Update Scheme DS-RAID for SSDs Jaeho Kim(Presenter), Jongmin Lee, Jongmoo Choi, Donghee Lee, Sam H. Noh University of , Dankook University, (in Seoul, Korea)

Motivation: Enhanced Reliability for SSDs Problems  Problem with current SSDs: low reliability  High error rate and limited erase count of flash memory Typical RAID-5 [Logical Block Number (LBN) based striping)]: Parity update burden  Multi-level cell (MLC) flash memory aggravates problem  Small write problem: read old data, calculate parity, write new data

 One solution: provide RAID-5 configuration with chips Added burden when adopting RAID-5 configuration to SSDs: Out-of-place update comprising the SSD device Reliable SSD  With LBN-based striping  MUST keep (new) updated page in SAME chip as old page

 Lower performance & reliability, higher cleaning cost, decreased lifetime RAID-5 configuration  Our solution: Dynamic Striping-RAID (DS-RAID)

RAID-5 DS-RAID

FCC: Flash memory Channel Logical Block Number (LBN) based striping Controller  Physical Page Number (PPN) based striping Host PPN: Physical Page Number  Need Stripe map table in RAID Controller Dx: User data, Px: Parity  No need for Stripe map table  Must read old data & old parity interface SP: Sub-stripe Parity  No need to read old data & old parity  May result in particular chips being written  All chips are written to evenly to more frequently (skewed writes) SSD & RAID Controller  RAID-5 reliability for new small writes (even  Window of vulnerability for new small writes Stripe map table Write buffer Parity generator without non-volatile RAM)

FCC FCC FCC FCC FCC

Stripe 0 Stripe 1 Chip 0 Chip 1 Chip 2 Chip 3 Chip 4 Chip # : PPN PPN PPN PPN PPN 0 : 0 0 : 1 PPN 1 : 0 1 : 1 0 D0 0 D1 0 D2 0 D3 0 P0 2 : 0 2 : 1 1 D4 1 D5 1 D6 1 P1 1 D7 Stripe map table 3 : 0 3 : 1 B0 2 2 2 2 2 4 : 0 4 : 1 3 Stripe 0 Stripe 1 3 3 3 3 0 : 0 0 : 2 1 : 2 1 : 1 2 : 2 2 : 1 3 : 2 3 : 3 4 : 2 4 : 1 Chip 0 Chip 1 Chip 2 Chip 3 Chip 4 Updated data Chip 0 Chip 1 Chip 2 Chip 3 Chip 4 PPN PPN PPN PPN PPN PPN PPN PPN PPN PPN 0 D0 0 D1 0 D2 0 D3 0 P0 0 D0 0 D1 0 D2 0 D3 0 P0 1 D4 1 D5 1 D6 1 P1 1 D7 D1’ D2’ D3’ D4’ 1 D4 1 D5 1 D6 1 P1 1 D7 0 B 2 D4’ 2 D1’ 2 D2’ 2 D3’ 2 P0’ B0 2 D1’ 2 D2’ 2 D3’ 2 D4’ 2 P2 3 3 3 3 3 3 3 3 3 3 P1’

Always written to evenly Skewed writes lead to reduced lifetime Lifetime leading to even wear out

 4 data writes + 2 data reads + 1 parity read + 2 parity writes  Extra I/Os : eg. 2 data reads + 1 parity read + 1 parity write  4 data writes + 1 parity write

Extra I/Os compared to DS-RAID leading Performance to reduced performance

More writes compared to DS-RAID leading  Sub-stripe parity scheme Cleaning cost to higher cleaning cost For write requests smaller than stripe size Guarantee RAID-5 reliability via Sub-stripe Parity Chip 0 Chip 1 Chip 2 Chip 3 Chip 4 Chip 0 Chip 1 Chip 2 Chip 3 Chip 4 PPN PPN PPN PPN PPN New data PPN PPN PPN PPN PPN 0 D0 0 D1 0 D2 0 D3 0 P0 0 D0 0 D1 0 D2 0 D3 0 P0

1 D4 1 D5 1 D6 1 P1 1 D7 1 D4 1 D5 1 D6 1 P1 1 D7 . . . B0 2 . . . B0 2 2 2 2 2 2 D8 2 D9 2 D8 D9 2 D8 D9 SP 3 3 3 3 3 3 3 3 3 3

Window of vulnerability: Parity can be calculated even small writes must wait until stripe fills up Reliability for incomplete stripes before parity is calculated

Evaluation Platform and Results Relative to RAID-5  Evaluation platform Postmark  Workload  SSD Extension for DiskSim 1.2 Random write  Postmark: 1.6MB (Avg. write size) 1  Random write: 12KB (Avg. write size) Parameter Value Parameter Value 0.8 Number of chips 8 Planes per chip 8 0.6 Blocks per plane 2048 Pages per block 64 0.4 Includes Over provision space 5% Page size 4KB 0.2 • Parity writes 0 Stripe size 32KB Stripe Consists of 8 pages • Writes for cleaning

Normalized Results Normalized Avg. Response Writes Due to Extra Writes Time Requests • Sub-stripe parity writes

This work was supported in part by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MEST) (No. R0A-2007-000-20071-0), by the Korea Science and Engineering Foundation (KOSEF) grant funded by the Korea government (MEST) (No. 2009-0085883), and by Basic Science Research Program through the National Research Foundation of Korea(NRF) funded by the Ministry of , Science and (2010-0025282). 10th USENIX Conference on File and Storage (FAST’12)