A New LSM-style Garbage Collection Scheme for ZNS SSDs
1.总体思想
出发点是:ZNS SSD的GC粒度为Zone ,而Zone size 一般很大,GB 量级的,GC overhead 很大,会引起很长的latency,于是这篇paper设计一种新的GC 方案-LSM_ZGC(Log-Structured Merge style Zone Garbage Collection),来优化GC 效率:
(1)Zone:GC 的管理粒度(1GB),Segment:冷热分离的粒度(2MB)
(2)GC 读一块连续的有效和无效的数据
(3)将不同冷热度的segment 搬到不同冷热的zone中
实验结果显示:这种方案能提升1.9倍性能
2.分析
现在SSD圈出现各种类别的SSD
image.png
ZNS SSD是近期比较热门的已经加入NVME 标准中,ZNS SSD相比传统SSD,好处是:
(1)通过分离不同workload 到不同zone,来获得更好的性能和WAF;
(2)更好的IO隔离性
(3)更低的成本- 减少甚至是移除SSD 内部的FTL table减少DRAM使用和OP空间
image.png
ZNS SSD 特征:
Zone顺序写限制
Zone的管理权(open,read,write,GC,reset)完全交由Host
image.png
LSM-GC 方案的动机
发现1-ZNS SSD Zone GC overhead大
Zone size:1GB=512 倍 segment size,(LFS/F2FS segment size:2MB)
image.png
结果显示:GC候选zone 的有效利用率大于0.4是GC 时间会大于20S.
由此得出启发1:必须降低候选zone 的利用率
发现2-读写的IO SIZE 对性能的影响
测试结果显示IO size阅读,访问越快。
其根本在于充分利用了SSD 内部的并发(Ch level/die levle/Multi-plane level,
image.png
由此得出结论2:以越大的IO size 访问SSD是越有益的。
3.LSM- Zone GC Design
3.1 ZNS SSD 一般的GC方案:Basic-GC 步骤:
step1:基于某种策略(Greedy/cost- benefit)选择GC source zone;
image.png
step2:根据zone bitmap找出source zone 中有效的block;
image.png
step3:以4KB(或更大)的IO size读出有效的block
image.png
step4:以4KB(或更大)的IO size写到target的 zone
image.png
step5:reset GC source zone
image.png
从2分析的两个结论出发:
(1)必须降低候选zone 的利用率
(2)以越大的IO size 访问
问题1:如何使GC source zone 利用率低
利用率很高的原因:传统的冷热分离方案不适用于ZNS SSD
改变冷热分离方案:采用segment 来进行细粒度的冷热分离
问题2:如何以更大的IO size访问数据
无法以大IO size访问数据原因:现有GC 方案在有效和无效数据共存情况下无法以大IO size访问数据
改变现有访问数据的方式:以更大IO size访问数据同时读有效和无效的数据
3.2 LSM- ZGC design
-
两个管理单元
Zone:GC 单位 🆚 Segment:冷热分离单位
Zone拆分成多个segments(1GB 🆚 2MB)
2.segment 状态和状态跳转规则
(1)新数据--> C0
(2)从C0中ZGC搬出来的有效数据
zone 内冷segment的数据(>Threshold_cold) :cold -->C1C_ZONE
zone 其他zone 的数据:hot -->C1H_ZONE
(基于spatial locality,于F2FS (FAST’15),
Multi-stream (FAST’19), Key-range locality (FAST’20)的study)
(3) C1C/C2H DATA -->C2_ZONE
image.png
LSM- ZGC例子:
step1:挑选候选zone
image.png
step2:以128KB IO size读出所有数据
image.png
step3:check 有效数据,识别冷热segment
image.png
step4:根据冷热特征,merge对应的数据到一起
image.png
step5:以128KB 的IO size 写数据
image.png
4.比较Basic_ZGC 🆚 LSM_ZGC测试结果
GC overhead
image.png
image.png
冷热分离效果
image.png
网友评论