Object-based SSD (OSSD): Our Practice and Experience Jaesoo Lee - - PowerPoint PPT Presentation

object based ssd ossd our practice and experience
SMART_READER_LITE
LIVE PREVIEW

Object-based SSD (OSSD): Our Practice and Experience Jaesoo Lee - - PowerPoint PPT Presentation

Object-based SSD (OSSD): Our Practice and Experience Jaesoo Lee jaesu.lee@samsung.com Flash Solution Team, Memory Division Samsung Electronics Co. Outline SAMSUNG Part 1. OSD and


slide-1
SLIDE 1
  • Object-based SSD (OSSD):

Our Practice and Experience

Jaesoo Lee jaesu.lee@samsung.com Flash Solution Team, Memory Division Samsung Electronics Co.

slide-2
SLIDE 2

SAMSUNG

Outline

Part 1. OSD and Object-based SSD

Introduction Our Practice and Experience

Part 2. Application-Aware Storage

Introduction

2

Introduction Our Practice and Experience

Future Directions Summary and Conclusion

slide-3
SLIDE 3

SAMSUNG

Outline

Part 1. OSD and Object-based SSD

Introduction Our Practice and Experience

Part 2. Application-Aware Storage

Introduction

3

Introduction Our Practice and Experience

Future Directions Summary and Conclusion

slide-4
SLIDE 4

SAMSUNG

Outdated Storage Stack

HDD as main storage for decades

Structure is relatively simple Physical location can be easily derived

Storage stack has remained static

( ) ( )

1

sec sec

− + ⋅ + ⋅ ⋅ = s N h N N c LBA

tors tors heads

4

Storage stack has remained static

Narrow block interfaces (ATA, SCSI) No information flow except block reads/writes

File subsystems make HDD-specific assumptions

Sequential read is much faster than random read No write amplification, wear-out, background activity, …

What if the underlying device changes ?

[Excerpted from Block Management in SSD, Usenix 2009 ]

slide-5
SLIDE 5

SAMSUNG

Host-side optimization is no more feasible

Confidential, subject to changes, different among SSDs, …

Challenges in SSD Storage Stack

□ Striping method □ Buffer cache management policy □ Logical-to-physical mapping □ Garbage collection policy □ Wear-leveling policy □ Bad block management □ # of channels □ # of ways □ # of planes per chip □ # of blocks per plane □ # of pages per block

5

Processor Core □ # of pages per block □ Block size □ Page size

slide-6
SLIDE 6

SAMSUNG

SSD-Aware File System

Preliminary results with in-house SSD-aware file system

Up to 1700% improvement for random writes 13% degradation in sequential write performance

12 14 16 18 ughput SSD-Aware FS ext3

6

2 4 6 8 10 12 4 8 16 32 64 128 256 512 1024 2048 4096 8192 Normalized Through I/O Size (KB)

slide-7
SLIDE 7

SAMSUNG

OSD: The Basic Concept

Optional command set defined for SCSI device

Provide object-based interface instead of traditional block-

based interface

In OSD, an object is a flexible-sized data container

Unique object ID A set of attributes

7

A set of attributes

slide-8
SLIDE 8

SAMSUNG

SSD as OSD

OSD manages space for objects

Informed cleaning (utilize delete info) Stripe aligned accesses Logical to physical mapping

OSD supports object attributes

8

OSD supports object attributes

Wear-leveling using cold data

information

Priority assigned to objects (i.e., QoS)

OSD handles low-level operations

Block management in SSD

[Source: Block Management in SSD, Usenix 2009 ]

slide-9
SLIDE 9

SAMSUNG

Linux Support for OSD

Linux provide a ready-to-use OSD prototype

  • pen-osd: open source initiator and exofs filesystem

OSC-OSD: iSCSI OSD target Open-iSCSI: iSCSI transport

vfs exofs ext3 udf

9

scsi sata

iscsi iscsi initiator scsi initiator SCSI/ SCSI/ SATA

SCSI core (scsi_mod.ko) bsg sd sr st

  • sd_uld (osd.ko)
  • sd_lld (libosd.ko)
slide-10
SLIDE 10

SAMSUNG

Target Platform

OSD is the most promising for mobile storages

Storage and system vendors are decoupled inherently QoS provisioning is essential e.g., managed flash memory applications including

eMMC, UFD, miniSD, SD, …

Our primary target is a Linux-based mobile platform

10

Our primary target is a Linux-based mobile platform

slide-11
SLIDE 11

SAMSUNG

Outline

Part 1. OSD and Object-based SSD

Introduction Our Practice and Experience

Part 2. Application-Aware Storage

Introduction

11

Introduction Our Practice and Experience

Future Directions Summary and Conclusion

slide-12
SLIDE 12

SAMSUNG

Prototyped in the Linux-based host

MLD: object mapping, space management, …

New type of SSD developed (called rawSSD)

OSSD Prototype

exofs VFS

□ Get rawSSD information □ Erase all blocks from open-osd

12

Host (Linux) OSSD ULD OSSD MLD OSSD LLD raw SSD Flash Cmd I/F SCSI/SATA Flash Mng.

□ Erase all blocks □ Erase a block □ Read a flash page □ Program a flash page SATA Link from open-osd and Linux kernel

slide-13
SLIDE 13

SAMSUNG

MLD: Object Management Layer

Overall architecture

(RB-Tree) Index (RB-Tree) {PID, OID} [127:0] Allocator GC Wear-leveling OSD Commands

13

Object descriptor Wear-leveling Meta data User data Flash media OSSD LLD READ / PROGRAM / ERASE

slide-14
SLIDE 14

SAMSUNG

MLD: Object Descriptor

Containing metadata including extents and attributes Cached in memory (LRU)

Descriptor Header □ Object ID □ PPN □ Object information

14

Block Table Attributes 1page (16KB) □ PPNs for object data □ Extent: support 9MB □ Indirect table: support 4GB □ Attr. data of object □ Usually contain i-node and length □ Managed using original code

slide-15
SLIDE 15

SAMSUNG

MLD: Object Mapping

Support page-wise mapping

Based on page extents

Association policies of an update block

Fully associative

Separation of index and user data

15

No separation (called unified)

Object associative (called per object)

Garbage collection

Victim selection

Highest invalid pages Bitmap for invalid information

Background GC supported

slide-16
SLIDE 16

SAMSUNG

Low Level Driver

Provide block + Raw SSD specific

interfaces to upper layers

Sanity check

Page overwrite Out-of-order page write

OSSD LLD

Sanity Checker

Block interface

  • submit_bio()

Raw SSD interface

  • obtain_config()
  • erase_block()
  • format()

16

SCSI subsystem

Out-of-order page write

Provide backend flexibility

RawSSD

Via SCSI-ATA Translation Layer (SATL)

Loop RAM Backend dispatcher

RAM Loop Raw SSD

slide-17
SLIDE 17

SAMSUNG

Experimental Setup

Host system

Quad Q9650 3GHz 4GB RAM Linux kernel 2.6.33 4GB partition for OSSD Write Threads Read Thread

17

Host exofs OSSD Driver raw SSD Flash Cmd I/F SCSI/SATA Flash Mng. VFS

slide-18
SLIDE 18

SAMSUNG

Experiments

  • 1. Better performance for fragmented/multi-stream

writes

Effect of incorporating space management in OSSD

  • 2. QoS support (read prioritized service)

Effect of having knowledge on the contexts of data blocks

18

Effect of having knowledge on the contexts of data blocks

and a request

slide-19
SLIDE 19

SAMSUNG

  • Exp1. Multi-thread File Write

Scenario

Write 800 MB 4 thread delete 2 file write 800 MB 2

thread

Show the effect of fragmentation

Unified update block Index / Data Index / Per object

19

block Write 800MB 4 thread 3m48.470s 3m52.263s 3m49.769s After delete, write 800MB 2 thread 6m34.535s 2m59.239s 1m59.375s Erase 689 599 414 Valid copy 34887 23605

slide-20
SLIDE 20

SAMSUNG

  • Exp2. Read Priority

Scenario

200MB read over total 2.4G write (e.g., 300MB x 8)

20

slide-21
SLIDE 21

SAMSUNG

Outline

Part 1. OSD and Object-based SSD

Introduction Our Practice and Experience

Part 2. Application-Aware Storage

Introduction

21

Introduction Our Practice and Experience

Future Directions Summary and Conclusion

slide-22
SLIDE 22

SAMSUNG

Capacity Outran Bandwidth

Capacity of HDD grows exponentially Ratio of the capacity to the interface bandwidth also

grows exponentially

100000 1000000 100000 1000000 width (sec) cale) Capacity C/B Ratio

22

1 10 100 1000 10000 1 10 100 1000 10000 1990 1995 2000 2005 2010 Capacity / Interface Bandwidt Capacity (MB, log scale Year

Maxtor 7000 (IDE) Quantum Fireball ST (UltraATA/33) IBM Deskstar 16GP (UltraATA/33) Seagate Barracuda IV (UltraATA/100) Seagate Barracuda (SATA/300)

slide-23
SLIDE 23

SAMSUNG

Application-Aware Storage

With a small database proxy, the amount of data

transferred can be decreased significantly

scan, aggregation, join, sorting, …

23

Other promising areas

Data mining, search indexing, image processing, Anti-Virus, …

slide-24
SLIDE 24

SAMSUNG

Application-Aware Storage

Application-awareness can be easily achieved in OSSD

Integrated object (i.e., file) management Fluent attribute mechanism

Furthermore, SSD is no more dumb

4 Cortex-R4 CPUs, SATA 6Gbps, 512MB RAM, AXI bus matrix,

24

4 Cortex-R4 CPUs, SATA 6Gbps, 512MB RAM, AXI bus matrix,

16 flash memory controllers, …

What about moving some of application’s work to

OSSD?

Issues are models for programming, execution, and

deployment

slide-25
SLIDE 25

SAMSUNG

Outline

Part 1. OSD and Object-based SSD

Introduction Our Practice and Experience

Part 2. Application-Aware Storage

Introduction

25

Introduction Our Practice and Experience

Future Directions Summary and Conclusion

slide-26
SLIDE 26

SAMSUNG

PostgreSQL

DB-Aware OSSD

PostgreSQL

Free and open source Object-relational database

Developed a plug-in for

accelerating:

Query Planner Query Planner Query Parser Query Parser OSSD Plug-in Query Optimizer Query Optimizer Executor Executor

26

accelerating:

Aggregation Selection

Query is processed in a similar

way to the active disk

Kernel

VFS EXOFS OSD Driver

DB-Aware OSSD

DB Proxy

ioctl

slide-27
SLIDE 27

SAMSUNG

DB Operators

Aggregation

Count, Sum, Average

SELECT count(*) FROM emp where age < 30; Count(*)

  • 17

Result Result

27

Name Age Salary Mc 29 3000 Kim 26 1200 Na 34 4000 Kang 28 1400 Lim 25 400 … … …

  • Seq. Read

Aggregate

  • Seq. Read

And aggregate

slide-28
SLIDE 28

SAMSUNG

DB Operators

Selection, Projection

Filtering (not yet)

SELECT * FROM emp where age > 30; Name Age Salary

  • ---- ----- --------

Na 34 4000 Result Result

28

  • Seq. Read

Selection

  • Seq. Read

And selection

Name Age Salary Mc 29 3000 Kim 26 1200 Na 34 4000 Kang 28 1400 Lim 25 400 … … …

slide-29
SLIDE 29

SAMSUNG

Implementation Mechanisms

SELECT AGGREGATE(target_col) FROM t1 OSD WHERE cond_col COND value;

Linux Host PostgreSQL

Currently,

Running on existing exofs file system

29

WHERE cond_col COND value;

Translate inode to Object ID Sequential Read and Processing Aggregate Function exofs OSSD ULD OSSD LLD SCSI/SATA OSSD MLD

slide-30
SLIDE 30

SAMSUNG

Experiments

Experimental setup

Hardware

AMD Atholon64x2 7750 2.7 Ghz 3GB RAM (PC6400) HDD WD3200AAKS (SATA2/7200/16M)

OS and drivers

Linux kernel 2.6.33 (Fedora Core 13)

30

Linux kernel 2.6.33 (Fedora Core 13) Target : OSC-OSD File system and Driver : Open-OSD exofs and drivers

Database

PostgreSQL 8.4.4

slide-31
SLIDE 31

SAMSUNG

Experiments

Results will be available soon!!

31

slide-32
SLIDE 32

SAMSUNG

Outline

Part 1. OSD and Object-based SSD

Introduction Our Practice and Experience

Part 2. Application-Aware Storage

Introduction

32

Introduction Our Practice and Experience

Future Directions Summary and Conclusion

slide-33
SLIDE 33

SAMSUNG

Future Directions of Work

  • 1. OSD SSD

Native support of OSD commands in SSD OSD command tunneling

  • 2. Bi-directional communication extension in SATA

Virtually any communication protocol over SATA

33

Virtually any communication protocol over SATA

  • 3. i2SSD: open storage software platform

JVM and deployment middleware Storage programming framework

slide-34
SLIDE 34

SAMSUNG

Linux Host OSSD

  • 1. OSD SSD Architecture (Revised)

exofs OSSD ULD OSSD Cmd Handler

34

OSSD LLD SCSI/SATA OSD Cmd I/F (via Tunneling Tech.) SATA Link Object Layer FTL SATA Buffer Manager

slide-35
SLIDE 35

SAMSUNG

  • 1. OSD SSD: OSD Cmd Tunneling

Host SSD

2-phased protocol

OSD command is transferred as a payload of the 1st

command

35

1st phase (cmd transfer) 2nd phase (optional) (data transfer) SATA vendor command (register FIS) D2H Data H2D Data

slide-36
SLIDE 36

SAMSUNG

  • 2. Bi-Directional Comm Extension

ATA/SCSI protocol is too limited for application-specific

extension of OSSD

We extended SATA with a simple bi-directional

communication protocol

Based on reserved LBAs and notification mechanism Serve as a link layer of other advanced protocol, e.g., TCP/IP

36

Serve as a link layer of other advanced protocol, e.g., TCP/IP

Application Main ATA/SCSI Trasport Bi-directiona l Messaging Cmd. Application Agent ATA/SCSI Trasport Bi-directional Messaging Cmd. FTL SATA/SAS/… Link Bi-directional communication HOST HDD/SSD

slide-37
SLIDE 37

SAMSUNG

  • 3. i2SSD: Intelligent and Innovative SSD

What is i2SSD ?

Object-based SSD capable of extending its functionalities via

dynamic application deployment

i.e., “Open Storage Architecture for Enabling Storage-Aware

Application Deployment”

Benefit is significantly saved time and energy

Computation at the near of the data

37

Computation at the near of the data

  • !"#
slide-38
SLIDE 38

SAMSUNG

  • 3. Preliminary i2SSD Architecture

!"# $ %

38

!"# &' &( ) *+,-

  • .

/ 0+ 1

$2

  • 02
  • )3

!4 5( //

slide-39
SLIDE 39

SAMSUNG

Outline

Part 1. OSD and Object-based SSD

Introduction Our Practice and Experience

Part 2. Application-Aware Storage

Introduction

39

Introduction Our Practice and Experience

Future Directions Summary and Conclusion

slide-40
SLIDE 40

SAMSUNG

Conclusion

OSD fits well for SSD

Free from variations in SSD internals Easy application-specific extension Advanced features (e.g., QoS) made possible

We have developed a proof-of-concept OSSD and

40

We have developed a proof-of-concept OSSD and

demonstrated the benefits

The results look promising

slide-41
SLIDE 41

SAMSUNG

Call for Participation

Standardization

SCSI/SATA extensions for OSD command tunneling SCSI/SATA extensions for bi-directional communication

command set

i2SSD framework and programming interfaces

41

Call for participation of Linux community

OSSD bring-up issues in Linux End-to-end storage QoS support in Linux

slide-42
SLIDE 42
  • Thanks