���� ������� ������� 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 Object-based SSD � Introduction � Our Practice and Experience � Part 2. Application-Aware Storage � Introduction � Introduction � Our Practice and Experience � Future Directions � Summary and Conclusion 2
Outline SAMSUNG � Part 1. OSD and Object-based SSD � Introduction � Our Practice and Experience � Part 2. Application-Aware Storage � Introduction � Introduction � Our Practice and Experience � Future Directions � Summary and Conclusion 3
Outdated Storage Stack SAMSUNG � HDD as main storage for decades � Structure is relatively simple � Physical location can be easily derived ( ) ( ) 1 = ⋅ ⋅ + ⋅ + − LBA c N N h N s sec sec heads tors tors � Storage stack has remained static 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 ] 4
Challenges in SSD Storage Stack SAMSUNG � Host-side optimization is no more feasible � Confidential, subject to changes, different among SSDs, … □ Striping method □ Buffer cache management policy □ Logical-to-physical mapping □ # of channels □ Garbage collection policy □ # of ways □ Wear-leveling policy □ # of planes per chip □ Bad block management □ # of blocks per plane □ # of pages per block □ # of pages per block □ Block size Processor □ Page size Core �������������������� ���������� 5
SSD-Aware File System SAMSUNG � Preliminary results with in-house SSD-aware file system � Up to 1700% improvement for random writes � 13% degradation in sequential write performance 18 SSD-Aware FS 16 ughput ext3 14 Normalized Through 12 12 10 8 6 4 2 0 4 8 16 32 64 128 256 512 1024 2048 4096 8192 I/O Size (KB) 6
OSD: The Basic Concept SAMSUNG � 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 � A set of attributes 7
SSD as OSD SAMSUNG � OSD manages space for objects � Informed cleaning (utilize delete info) � Stripe aligned accesses � Logical to physical mapping � OSD supports object attributes � 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 ] 8
Linux Support for OSD SAMSUNG � Linux provide a ready-to-use OSD prototype � open-osd: open source initiator and exofs filesystem � OSC-OSD: iSCSI OSD target � Open-iSCSI: iSCSI transport vfs exofs ext3 udf osd_uld (osd.ko) bsg sd sr st osd_lld (libosd.ko) SCSI core (scsi_mod.ko) iscsi iscsi SCSI/ SCSI/ scsi initiator initiator SATA scsi sata 9
Target Platform SAMSUNG � 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 � Our primary target is a Linux-based mobile platform 10
Outline SAMSUNG � Part 1. OSD and Object-based SSD � Introduction � Our Practice and Experience � Part 2. Application-Aware Storage � Introduction � Introduction � Our Practice and Experience � Future Directions � Summary and Conclusion 11
OSSD Prototype SAMSUNG � Prototyped in the Linux-based host � MLD: object mapping, space management, … � New type of SSD developed (called rawSSD) VFS □ Get rawSSD information exofs from open-osd from open-osd □ Erase all blocks □ Erase all blocks □ Erase a block and Linux kernel OSSD ULD □ Read a flash page OSSD MLD □ Program a flash page OSSD LLD Flash Cmd I/F SCSI/SATA Flash Mng. Host (Linux) raw SSD SATA Link 12
MLD: Object Management Layer SAMSUNG � Overall architecture OSD Commands {PID, OID} [127:0] Allocator Index GC (RB-Tree) (RB-Tree) Wear-leveling Wear-leveling Object descriptor Meta data User data OSSD LLD READ / PROGRAM / ERASE Flash media 13
MLD: Object Descriptor SAMSUNG � Containing metadata including extents and attributes � Cached in memory (LRU) □ Object ID Descriptor Header □ PPN □ Object information □ PPNs for object data Block Table □ Extent: support 9MB 1page □ Indirect table: support 4GB (16KB) □ Attr. data of object □ Usually contain i-node and length Attributes □ Managed using original code 14
MLD: Object Mapping SAMSUNG � Support page-wise mapping � Based on page extents � Association policies of an update block � Fully associative � Separation of index and user data � No separation (called unified ) � Object associative (called per object ) � Garbage collection � Victim selection � Highest invalid pages � Bitmap for invalid information � Background GC supported 15
Low Level Driver SAMSUNG � Provide block + Raw SSD specific interfaces to upper layers Raw SSD interface Block interface - obtain_config() - submit_bio() - erase_block() - format() � Sanity check OSSD LLD � Page overwrite Sanity Checker � Out-of-order page write � Out-of-order page write Backend dispatcher � Provide backend flexibility � RawSSD SCSI subsystem � Via SCSI-ATA Translation Layer (SATL) Raw � Loop RAM Loop SSD � RAM 16
Experimental Setup SAMSUNG Read Thread Write Threads � Host system � Quad Q9650 3GHz … � 4GB RAM � Linux kernel 2.6.33 � 4GB partition for OSSD VFS exofs OSSD Driver Flash Cmd I/F SCSI/SATA Flash Mng. raw SSD Host 17
Experiments SAMSUNG � 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 � Effect of having knowledge on the contexts of data blocks and a request 18
Exp1. Multi-thread File Write SAMSUNG � Scenario � Write 800 MB 4 thread � delete 2 file � write 800 MB 2 thread � Show the effect of fragmentation Unified update Index / Data Index / Per object block block Write 800MB 3m48.470s 3m52.263s 3m49.769s 4 thread After delete, 6m34.535s 2m59.239s 1m59.375s write 800MB 2 thread Erase 689 599 414 Valid copy 34887 23605 0 19
Exp2. Read Priority SAMSUNG � Scenario � 200MB read over total 2.4G write (e.g., 300MB x 8) 20
Outline SAMSUNG � Part 1. OSD and Object-based SSD � Introduction � Our Practice and Experience � Part 2. Application-Aware Storage � Introduction � Introduction � Our Practice and Experience � Future Directions � Summary and Conclusion 21
Capacity Outran Bandwidth SAMSUNG � Capacity of HDD grows exponentially � Ratio of the capacity to the interface bandwidth also grows exponentially 1000000 1000000 Capacity width (sec) C/B Ratio 100000 100000 cale) Capacity / Interface Bandwidt Capacity (MB, log scale 10000 10000 Seagate Barracuda 1000 1000 (SATA/300) Seagate Barracuda IV IBM Deskstar 16GP (UltraATA/100) 100 100 (UltraATA/33) Quantum Fireball ST (UltraATA/33) 10 10 Maxtor 7000 (IDE) 1 1 1990 1995 2000 2005 2010 Year 22
Application-Aware Storage SAMSUNG � With a small database proxy, the amount of data transferred can be decreased significantly � scan, aggregation, join, sorting, … � Other promising areas � Data mining, search indexing, image processing, Anti-Virus, … 23
Application-Aware Storage SAMSUNG � 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, � 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 24
Outline SAMSUNG � Part 1. OSD and Object-based SSD � Introduction � Our Practice and Experience � Part 2. Application-Aware Storage � Introduction � Introduction � Our Practice and Experience � Future Directions � Summary and Conclusion 25
DB-Aware OSSD SAMSUNG � PostgreSQL PostgreSQL � Free and open source Query Parser Query Parser � Object-relational database Query Planner Query Planner Query Query OSSD Plug-in Optimizer Optimizer � Developed a plug-in for Executor Executor accelerating: accelerating: VFS � Aggregation ioctl EXOFS � Selection OSD Driver DB Proxy � Query is processed in a similar Kernel way to the active disk DB-Aware OSSD 26
Recommend
More recommend