BLOCK MANAGEMENT IN SOLID-STATE DEVICES Abhishek Rajimwale - - PowerPoint PPT Presentation

block management in solid state devices
SMART_READER_LITE
LIVE PREVIEW

BLOCK MANAGEMENT IN SOLID-STATE DEVICES Abhishek Rajimwale - - PowerPoint PPT Presentation

BLOCK MANAGEMENT IN SOLID-STATE DEVICES Abhishek Rajimwale (University of Wisconsin-Madison) Vijayan Prabhakaran (Microsoft Research) John D Davis (Microsoft Research) Existing storage stack Storage stack has remained static Mechanical


slide-1
SLIDE 1

BLOCK MANAGEMENT IN SOLID-STATE DEVICES

Abhishek Rajimwale (University of Wisconsin-Madison) Vijayan Prabhakaran (Microsoft Research) John D Davis (Microsoft Research)

slide-2
SLIDE 2

Existing storage stack

 Storage stack has remained static

 Mechanical disk drives for decades  Narrow block interface existing for years (ATA, SCSI)  No information flow except block reads/writes

 File systems make assumptions about devices

 Sequential access much faster than random access  Little or no background activity

 Assumptions true for disk drives  What if the underlying device changes ?

Block management in SSDs

slide-3
SLIDE 3

SSD – A different beast

 SSDs differ from disks

 No mechanical or moving parts  Contain multiple flash elements  Different internal architecture  Complex internal operations

 SSDs differ among themselves

 Low, medium, and high end devices  Firmware, interconnections, mapping, striping, ganging

 Will the existing file system assumptions hold ?

Block management in SSDs

slide-4
SLIDE 4

Problem

 Several assumptions are no longer valid

Block management in SSDs

Assumptions

Disks SSDs

Sequential accesses much faster than random

 No write amplification

 Little background activity

 Media does not wear down

 Distant LBNs lead to longer access time

 Implications

 Need to modify storage stack for SSDs ?

slide-5
SLIDE 5

Results

 Modifications to tune storage stack for SSDs

 Cope with violated assumptions

 Rich interface to convey more information to device

 IO priorities  Free blocks

 More functionality in device

 Low level block management

 Possible Solution

 Object based storage (OSD)

Block management in SSDs

slide-6
SLIDE 6

Talk outline

 SSD benchmarking  Case studies

 Write amplification  Background activity  Device wear-down

 Object-based storage  Related work  Conclusion

Block management in SSDs

slide-7
SLIDE 7

SSD benchmarking

Block management in SSDs

 Used a range of SSDs for experimentation

 Engineering samples and pre-production samples  Used both SLC and MLC-based SSDs  Anonymized the SSDs as S1, S2, S3, S4

 Performed read/write experiments on

 HDD: Seagate Barracuda 7200.11 drive  SSD samples

slide-8
SLIDE 8

SSD benchmarking results

Block management in SSDs

 Random-reads fast in SSDs  Random-writes getting better with FTL techniques

Device Read (MB/s) Write (MB/s) Seq Rand Ratio Seq Rand Ratio

HDD 86 0.6 143 86 1.3 66 S1slc 205 18 11 169 53 3.1 S2slc 40 4.4 9 32 0.1 328 S3slc 72 29 2.4 75 0.5 151 S4mlc 68 21 3.2 22 15 1.5

slide-9
SLIDE 9

Talk outline

 SSD benchmarking  Case studies (3 violated assumptions)

 Write amplification  Background activity  Device wear-down

 Object-based storage  Related work  Conclusion

Block management in SSDs

slide-10
SLIDE 10

Methodology

 Measurement on real SSDs  File system traces from real

machine

 DiskSim simulator (PDL)

 Complete storage stack  Synthetic trace generator  External traces

 SSD module extension

Block management in SSDs

slide-11
SLIDE 11

Talk outline

 SSD benchmarking  Case studies

 Write amplification  Background activity  Device wear-down

 Object-based storage  Related work  Conclusion

Block management in SSDs

slide-12
SLIDE 12

Write amplification

 Low-end and medium-range

SSDs

 Reasons

 Write size < stripe size  Physical page < logical page

Block management in SSDs

slide-13
SLIDE 13

Write amplification in real device

10 20 30 40 50 60 70 1 2 3 4 5 6 7 8 9 Throughput (MB/s) Write size (MB)

SSD sample S2 – 32GB

 Measurements taken on a

real device

 SSD sample S2 – 32GB

(Low end SSD)

 Experiment: Issued

continuous writes of varying sizes

 Writes are striped

 Stripe size: 1 MB

 Write amplification not

seen in S1, S4

Block management in SSDs

slide-14
SLIDE 14

Write amplification improvement

Block management in SSDs

Violated assumption

 No write amplification

Proposed improvement

 Merge requests along stripe boundary in device

Case study implementation

 Implemented logic in simulator SSD module  Run traces on modified simulator

slide-15
SLIDE 15

Write amplification- Results

0.2 0.4 0.6 0.8 1 1.2 0.0 0.2 0.4 0.6 0.8 Normalized Response time Probability of sequential access Normalized response time

Block management in SSDs

Benchmark Improvement (%) Postmark 1.15 TPCC 3.08 Exchange 4.89 IOzone 36.54

Synthetic trace Real benchmark traces

slide-16
SLIDE 16

Talk outline

 SSD benchmarking  Case studies

 Write amplification  Background activity  Device wear-down

 Object-based storage  Related work  Conclusion

Block management in SSDs

slide-17
SLIDE 17

Background activity

Violated Assumption

 Storage device passive - little or no background activity  SSD does cleaning and wear-leveling

Problem

 Host can’t control background activity  Prevent effect of background operations on priority

requests

Proposed Improvement: Priority-aware cleaning

 Inform device about priorities  Device avoids background operations

Block management in SSDs

slide-18
SLIDE 18

Priority-aware cleaning - Implementation

Methodology

 DiskSim supports priority request queuing  Used synthetic trace generator  Modified simulator SSD module

Improvement: Priority-aware cleaning

 Two cleaning thresholds

 Low  Critical

 Outstanding priority requests

 Clean only if below the critical watermark

Block management in SSDs

slide-19
SLIDE 19

Priority-aware cleaning - Results

 10% improvement

in response time of priority requests

 Improvement at the

cost of non-priority traffic

Block management in SSDs

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 20 40 60 80

Response time (ms) Write percentage

Priority unaware cleaning Priority aware cleaning

Priority requests Non- Priority requests

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 20 40 60 80

Response time (ms) Write percentage

Priority unaware cleaning

Priority requests Non- Priority requests

IO-Scheduling

slide-20
SLIDE 20

Talk outline

 SSD benchmarking  Case studies

 Write amplification  Background activity  Device wear-down

 Object-based storage  Related work  Conclusion

Block management in SSDs

slide-21
SLIDE 21

Device wear-down

Violated Assumption

 Media does not wear down  SSD: Blocks have finite erase cycles

Problem

 Must reduce writes to blocks

Proposed Improvement: Informed Cleaning

 File system has free block information  Inform device about block freeing  Free blocks need not be copied in cleaning

Block management in SSDs

slide-22
SLIDE 22

Informed cleaning - Example

Block management in SSDs

1 2 3 4 5 6 7 8 9

SSD File System 2,3,4,5,6,7,8,9

Free block information

1

File system used blocks

1,2,3,4,5,6,7,8 9 1,3,5,7 2,4,6,8,9

slide-23
SLIDE 23

Informed cleaning - Implementation

Methodology

 Used postmark benchmark traces

from real machine

 Intercepted block-free calls at

pseudo driver below FS

 Generate real traces with free

block information

Improvement: Informed Cleaning

 Modified simulator SSD module

 Track freed blocks  Skip copying free blocks for

reclamation

Block management in SSDs

slide-24
SLIDE 24

Informed cleaning - Results

 Cleaning efficiency

 One-third pages moved  Cleaning efficiency

improved by factor of 3

 Device lifetime improved

 Cleaning time

 30 to 40 % improvement  Response time improved 50 100 150 200 250 300 5K 6K 7K 8K # Pages moved (thousands) # transactions (postmark) without free info with free info

Block management in SSDs

slide-25
SLIDE 25

Summary of improvements

Block management in SSDs

 Write amplification

 Need “stripe size” from device

 Background activity (Priority aware cleaning)

 Need “IO priority” information from OS

 Device wear-down (Informed cleaning)

 Need “free block” information from FS

 Need richer interface

slide-26
SLIDE 26

Possible solution

Block management in SSDs

 SSD has intricate knowledge of its internals  Amount of parallelism  Ganging ?  Shared bus and/or shared data ?  Logical to physical mapping  Super-paging ?  Striping ?  Internal background operations  When cleaning and wear-leveling ?  Separate unit for cleaning ?

Solution:

 Rich interface to convey higher level semantics  Device handles block management

slide-27
SLIDE 27

SSD as OSD

Block management in SSDs

 OSD manages space for objects

 Informed cleaning  Stripe aligned accesses  Logical to physical mapping

 OSD has object attributes

 Wear-leveling using cold data information  Priority assigned to objects

 OSD handles low-level operations

 Block management in SSD

slide-28
SLIDE 28

Related work

 Design tradeoffs for SSDs  MEMS-based storage devices and standard disk

interfaces

 Operating system management of MEMS based

storage devices

 Bridging the information gap in storage protocol stacks  Non-Volatile Memory Host Controller Interface 1.0  Object-based storage  Track-aligned extents

Block management in SSDs

slide-29
SLIDE 29

Conclusion

 Revisited storage specific assumptions for SSDs

 Several assumptions violated

 Proposed improvements to tune storage stack for

SSDs

 Need for richer interface  More functionality in devices  One possible solution: OSD

 Understands high-level semantics  Handles low-level operations

Block management in SSDs

slide-30
SLIDE 30

Questions

Block management in SSDs