Open-Channel SSDs Matjas Bjørling LinuxCon North America 2015 1
Solid State Drives H i g h T h r o u g h p u t + L o w L a t e n c y P a r a l l e l i s m + C o n t r o l l e r
Why Open-Channel SSDs D e a l i n g w i t h fm a s h c h i p c o n s t r a i n s i s a n e c e s s i t y B l o c k I / O N o w a y a r o u n d t h e F l a s h T r a n s l a t i o n L a y e r ( F T L ) E m b e d d e d F T L s e n a b l e d w i d e S S D a d o p t i o n - e s p . f o r C l i e n t c o m p u t i n g : C l i e n t : s i n g l e h o s t , s i n g l e S S D , l o w I / O e ffj c i e n c y , w i d e v a r i e t y o f a p p l i c a t i o n s S e r v e r s y s t e m s h a v e a m u c h d i fg e r e n t p r o fj l e : S e r v e r : m u l t i - h o s t , m u l t i - S S D , h i g h I / O e ffj c i e n c y , l i m i t e d # o f a p p l i c a t i o n s F l a s h I n t e r f a c e 3
Why Open-Channel SSDs E m b e d d e d F T L ’ s i n t r o d u c e s i g n i fj c a n t l i m i t a t i o n s f o r S e r v e r c o m p u t e : H a r d w i r e d e s i g n d e c i s i o n s a b o u t d a t a p l a c e m e n t , o v e r - p r o v i s i o n i n g , s c h e d u l i n g , g a r b a g e c o l l e c t i o n , a n d w e a r l e v e l i n g . D e s i g n e d o n m o r e o r l e s s e x p l i c i t a s s u m p t i o n s a b o u t t h e a p p l i c a t i o n w o r k l o a d . I n t r o d u c e s r e d u n d a n c i e s , m i s s e d o p t i m i z a t i o n s , a n d u n d e r u t i l i z a t i o n o f r e s o u r c e s . 4
Why Open-Channel SSDs L i m i t e d n u m b e r o f S S D s i n t h e m a r k e t w i t h e m b e d d e d F T L s f o r s p e c i fj c : Wo r k l o a d s ( e . g . , 9 0 % r e a d s ) A p p l i c a t i o n s ( e . g . , S Q L S e r v e r , K e y - v a l u e s t o r e s ) C o s t a n d l a c k o f fm e x i b i l i t y f o r t h e s e “ h a r d - w i r e d ” s o l u t i o n s i s p r o h i b i t i v e : Wh a t i f t h e w o r k l o a d c h a n g e s ( a t r u n - t i m e ) ? Wh a t a b o u t n e w w o r k l o a d s ? A n d n e w a p p l i c a t i o n s ? 5
Open-Channel SSD: Overview • O p e n - C h a n n e l S S D s s h a r e c o n t r o l r e s p o n s i b i l i t i e s w i t h t h e H o s t i n o r d e r t o i m p l e m e n t a n d m a i n t a i n f e a t u r e s t h a t t y p i c a l S S D s i m p l e m e n t s t r i c t l y i n t h e d e v i c e fj r m w a r e D e v i c e i n f o r m a t i o n : H o s t m a n a g e s : • • S S D o ffm o a d e n g i n e s & D a t a p l a c e m e n t • r e s p o n s i b i l i t i e s I / O S c h e d u l i n g • • S S D g e o m e t r y O v e r - P r o v i s i o n i n g • N A N D m e d i a • G a r b a g e C o l l e c t i o n • C h a n n e l s , t i m i n g s , e t c . • We a r - l e v e l i n g • B a d b l o c k s l i s t • E C C T h i s a r c h i t e c t u r e s e n a b l e s Q u a l i t y o f S e r v i c e f o r S S D s 5
Open-Channel SSD: Architecture T a r g e t s • E x p o s e s p h y s i c a l m e d i a t o u s e r - s p a c e B l o c k M a n a g e r s • M a n a g e s p h y s i c a l S S D c h a r a c t e r i s t i c s O p e n - C h a n n e l S S D • R e s p o n s i b i l i t y • O ffm o a d e n g i n e s 7
Open-Channel SSD: Confjgurability 1 .T a r g e t a c r o s s S S D s 2 .G l o b a l G a r b a g e C o l l e c t i o n 3 .S i n g l e A d d r e s s S p a c e B M s e x p o s e a g e n e r i c i n t e r f a c e S S D V e n d o r - a g n o s t i c 8
Open-Channel SSD: Example • Over-provisioning can be greatly reduced, - E.g., 20% lower cost for the same performance • SSD steady state can be considerably improved • Predictable latency - Reduce I/O outliers signifjcantly IOPS Time 
Open-Channel SSD: Host Overhead Component Descriptjon Natjve Latency(us) LightNVM Latency(us) Read Write Read Write Kernel and fjo Submission and completjon 1.18 1.21 1.34 (+0.16) 1.44 (+0.23) overhead (4K) Completjon tjme High-performance SSD 10us (2%) for devices Null NVMe hardware device 35us (0.07%) Common SSD 100us (0.002%) S S D : E C C , T r a n s l a t i o n & B a d b l o c k t a b l e m e t a d a t a o ffm o a d e d t o d e v i c e . L o w o v e r h e a d n e g l e c t i b l e t o h a r d w a r e o v e r h e a d 1 0 0 . 1 6 u s o n r e a d s a n d 0 . 2 3 u s o n w r i t e s
Open-Channel SSD: Where are they useful? Sofuware-defjned storage solutjons: - Manage storage centrally across multjple SSDs • Petabytes of fmash - Open-Channel SSDs are “sofuware programmable” • Versus “Hardware/Firmware confjgurable” - Applicatjons can defjne their own FTLs based on their workload - FTL optjmizatjons that change over tjme - Multj-tenancy environments  O p e n - C h a n n e l S S D s - > A p p l i c a t i o n - d r i v e n S t o r a g e
Open Channel SSDs: Applicatjon-Driven Storage • Generic interface for programmable 1 . H o w d o w e s u p p o r t SSDs to abstract the hardware a p p l i c a t i o n s t h a t b e n e fj t f r o m c u s t o m F T L s ? • Avoid multjple layers of translatjon • Minimize overhead when 2 . Wh a t i s t h e r o l e o f manipulatjng persistent data t h e O S i n t h i s • Make informed decisions regarding a r c h i t e c t u r e ? latency, resource utjlizatjon, and data movement (compared to the best- 3 . H o w c a n w e h i d e efgort techniques today) N A N D m e d i a c o m p l e x i t y f r o m t h e a p p l i c a t i o n ( a n d t h e O S ) ?
Open Channel SSDs: RocksDB Use-case P r o t o t y p e i n p r o g r e s s T a l k t o J a v i e r G o n z a l e z i f y o u w a n t t o k n o w m o r e
Kernel Support • LightNVM: Linux kernel support for Open-Channel SSDs - Open, fmexible, extensible, and scalable layer for Open-Channel SSDs for the Linux kernel - Development: htups://github.com/OpenChannelSSD • Supports multjple block managers and targets 
LightNVM Status • Pluggable Architecture - Block Managers – Generic, Vendor specifjc,etc - Targets – Block, Direct Flash • Supported drivers: - NVMe, Null driver (FTL performance testjng and debugging) • Push into the Linux kernel. v7 posted to LKML (7/7-15). • Users may extend, contribute, and develop new targets for their own use-cases. • Direct integratjon with RocksDB under development. 
Thank you Development: htups://github.com/OpenChannelSSD/ Interface Specifjcatjon: htup://goo.gl/BYTjLI Contact: matjas@cnexlabs.com 16
Recommend
More recommend