h[p://clyde.itu.dk ¡ A ¡project ¡funded ¡by ¡the ¡Danish ¡Council ¡for ¡Independent ¡Research ¡ Host-‑SSD ¡Co-‑Design : ¡ ¡ Some ¡Lessons ¡Learnt ¡and ¡Perspec7ves ¡ Philippe ¡Bonnet ¡– ¡phbo@itu.dk ¡ IT ¡University ¡of ¡Copenhagen ¡ ¡ Joint ¡work ¡with ¡Luc ¡Bouganim ¡(INRIA), ¡Niv ¡Dayan ¡(ITU), ¡Ma7as ¡Bjørling ¡(ITU), ¡Jesper ¡Madsen ¡(ITU) ¡ ¡ In ¡Collabora7on ¡with ¡Jens ¡Axboe ¡(Facebook), ¡David ¡Nellans ¡(Nvidia), ¡Zvonimir ¡Bandic ¡(HGST), ¡Qingbo ¡ Wang ¡(HGST), ¡Aviad ¡Zuck ¡(Tel ¡Aviv ¡Univ.), ¡ Michael ¡Wei, ¡Steve ¡Swanson ¡(UCSD), ¡Dennis ¡Shasha ¡(NYU), ¡Björn ¡Thòr ¡Jònsson ¡(RU) ¡
Methodology ¡(1): ¡Device ¡state ¡ • Measuring ¡Samsung ¡SSD ¡RW ¡performance ¡ ¡ § Out-‑of-‑the-‑box ¡… ¡and ¡a`er ¡filling ¡the ¡device!!! ¡(similar ¡behavior ¡on ¡Intel ¡ SSD) ¡ 100 100 100 100 Response time (ms) Response time (ms) Response time (ms) Response time (ms) 10 10 10 10 1 1 1 1 rt rt Avg(rt) Avg(rt) rt rt Avg(rt) o-o-b Avg(rt) o-o-b Avg(rt) Avg(rt) 0.1 0.1 0.1 0.1 100 100 200 200 300 300 400 400 500 500 100 100 200 200 300 300 400 400 500 500 IO number IO number IO number IO number Random Writes – Samsung SSD Random Writes – Samsung SSD Out of the box After filling the device Luc ¡Bouganim, ¡Björn ¡Thòr ¡ ¡Jònsson, ¡Philippe ¡Bonnet ¡
Minimal ¡FTL: ¡Take ¡the ¡FTL ¡out ¡of ¡the ¡equa7on! ¡ • Pros ¡ – Maximal ¡performance ¡for ¡ • SR, ¡RR, ¡SW ¡ DBMS ¡ (C1) ¡Write ¡granularity ¡ Constrained ¡Pa[erns ¡only ¡ • Semi-‑Random ¡Writes ¡ (C2) ¡Erase ¡before ¡prog. ¡ (C1, ¡C2, ¡C3) ¡ (C3) ¡Sequen7al ¡prog. ¡ ¡ ¡ – Maximal ¡control ¡for ¡the ¡DBMS ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡within ¡a ¡block ¡ ¡ ¡ • Cons ¡ ¡ ¡ Minimal ¡flash ¡device ¡ – All ¡complexity ¡is ¡handled ¡ Block ¡mapping, ¡Wear ¡Leveling ¡ (C4) ¡Limited ¡life7me ¡ (C4) ¡ by ¡the ¡DBMS ¡ – All ¡IOs ¡must ¡follow ¡C1-‑C3 ¡ Flash ¡chips ¡ • The ¡whole ¡DBMS ¡must ¡ be ¡rewri[en ¡ • The ¡flash ¡device ¡is ¡ dedicated ¡ ¡ Luc ¡Bouganim, ¡Philippe ¡Bonnet ¡
Linux ¡Block ¡Layer: ¡ ¡ Introducing ¡Mul9queue ¡SSD ¡Access ¡on ¡Mul9-‑core ¡Systems ¡ ���� ��������� �������� ����� �� ���� ���� ��� ��� ���� �� ����� � �������������� ���� � � � � � � � � � � �� �� ��� ������������� ���� ���� �������� �������� ���� ����� �� �� ���� ���� ���� ���� � � � �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� �� ��������������� ��������������� Ma7as ¡Bjørling, ¡Jens ¡Axboe, ¡David ¡Nellans, ¡Philippe ¡Bonnet ¡
CLyDE ¡Project ¡ • Exploring ¡the ¡design ¡space ¡for ¡Host-‑SSD ¡co-‑ design: ¡ – EagleTree ¡[Niv ¡Dayan] ¡ ¡ • Simulated ¡SSD/OS/apps ¡for ¡broad ¡explora7on ¡of ¡design ¡ space ¡(discrete ¡event ¡simula7on) ¡ • Insights ¡about ¡GC, ¡DB ¡indexing ¡ • h[p://github.com/ClydeProjects/EagleTree ¡ ¡ – LightNVM ¡[Ma7as ¡Bjørling] ¡ • Host-‑side ¡SSD ¡management ¡to ¡experiment ¡with ¡actual ¡OS/ apps ¡(wall ¡7me ¡clock) ¡ • Linux ¡support ¡for ¡Open-‑channel ¡SSDs ¡ • h[p://github.com/ ¡Ma7asBjorling/LightNVM ¡
h[ps://github.com/ClydeProjects/EagleTree ¡ ¡ New ¡Insights ¡ ¡about ¡GC ¡policies ¡ Applications Exploring extended interface (Workload generator) impact on applications Exploring cross-layer optimizations Operating System Exploring the OS (IO scheduler) scheduling strategies Exploring the SSD controller SSD Controller design space • Mapping EagleTree ¡ • IO scheduling strategies • IO Scheduling • GC / WL strategies • Garbage Collection (GC) • Handling extended interface • Wear Leveling (WL) • etc… LUN LUN LUN LUN Exploring HW design space • Nb of channels LUN LUN LUN LUN … … … … • Nb of LUNs / channel • Chip configuration LUN LUN LUN LUN Flash memory array • RAM / Safe RAM quantity • etc… Closed-‑form ¡equa7on ¡for ¡ ¡ write-‑amplifica7on ¡
More ¡Insights ¡about ¡GC ¡Policies ¡ • K-‑modal ¡workload: ¡ – Data ¡grouped ¡based ¡on ¡update ¡frequency ¡ – Previous ¡work: ¡ • Each ¡flash ¡block ¡is ¡dedicated ¡to ¡a ¡single ¡group ¡ – Ques7ons: ¡ 1. How ¡to ¡par77on ¡over-‑provisioned ¡blocks ¡across ¡groups? ¡ 2. How ¡to ¡deal ¡with ¡changing ¡update ¡frequencies? ¡
Par77oning ¡ ¡ Over-‑provisioned ¡Blocks ¡ ¡ LBA/PBA ¡= ¡0.7 ¡ ¡ Q: ¡number ¡of ¡dis7nct ¡update ¡frequencies ¡in ¡the ¡workload ¡ Nb ¡of ¡groups ¡= ¡2 ¡
Adap7ng ¡to ¡Changing ¡Workloads ¡ WOLF: ¡ – dynamically ¡measures ¡update ¡frequency ¡ – adapts ¡the ¡number ¡of ¡groups ¡ • Too ¡few/many ¡groups ¡harm ¡GC ¡efficiency ¡ – triggers ¡garbage-‑collec7on ¡aggressively ¡to ¡re-‑distribute ¡over-‑provisioned ¡ space ¡across ¡groups ¡(from ¡cooling ¡to ¡hea7ng ¡groups) ¡
Linux ¡Abstrac7ons ¡for ¡ ¡Open-‑Channel ¡SSDs ¡ • Extensible ¡ – Single ¡level ¡of ¡mapping ¡ between ¡Applica7ons ¡and ¡ Host Interface physical ¡storage ¡ Open-Channel SSD • Modular ¡ Host interface CPU CPU GPCPUs Controller – SSD ¡Management ¡ NAND Shared Bus components ¡should ¡be ¡ Controller replaceable ¡ Channel DRAM Channel • Low ¡overhead ¡ ... Queue Controller Queue – Host-‑side ¡SSD ¡ NAND Flash NAND Flash NAND Flash NAND Flash NAND Flash NAND Flash DRAM NAND Flash NAND Flash management ¡should ¡not ¡ get ¡in ¡the ¡way ¡of ¡ performance, ¡s7ll ¡provide ¡ consistency, ¡durability ¡
LightNVM ¡Design ¡(1/3) ¡ User-space Kernel Key-Value Object Store VFS API Store API API Block-based Flash- FS optimized FS Page Key-Value Object Store Logic Store Logic Logic Block Layer COSL (Block alloc., Chnl. strategy, Flash mgmt., ...) Null device SATA/SAS NVMe PCI-e/Other Open-Channel SSDs
User-space LightNVM ¡Design ¡(2/3) ¡ Kernel Key-Value Object Store VFS API Store API API Block-based Flash- FS optimized FS Page Key-Value Object Store Logic Block Store Logic Logic Layer COSL (Block alloc., Chnl. strategy, Flash mgmt., ...) Null device SATA/SAS NVMe PCI-e/Other Open-Channel SSDs Block Interface Key-Value Target ... Target COSL Block Health Mgmt. COSL Address Space Manager Generic COSL Interface Channel Manager Wrapper Wrapper Wrapper Null device SATA/SAS NVMe PCI-e/Other
User-space LightNVM ¡Design ¡(3/3) ¡ Kernel Key-Value Object Store VFS API Store API API Block-based Flash- FS optimized FS Page Key-Value Object Store Logic Block Store Logic Logic Layer COSL (Block alloc., Chnl. strategy, Flash mgmt., ...) Generic Page Target Null device SATA/SAS NVMe PCI-e/Other DRAM Open-Channel SSDs Page L2P Page GC (e.g. Cost- Page P2L based) Read Address Lookup Write Get Page (e.g. RR) Get Block (e.g. RR) Block Health Address Space Channel Manager Manager Manager Block Target Write Get Block (e.g. RR) Read Erase Block Lookup DRAM Block L2P Block GC (e.g. Cost- Block P2L based)
Recommend
More recommend