原标题:FMS2019:阿里基于Open-Channel的优化应用
原文:Open-Channel SSDs for Host-Based Optimization
By: Yu Du, Feng Zhu, Sheng Qiu, Shu Li from Alibaba
阿里自研SSD概况:
2016年首次部署5万片Host Based PCIe SSD(注:没有说NVMe,可能是AHCI或者PCIe转SATA);
2017年开始部署NVMe SSD(Device based, SSD自行管理FTL)
目前的AliFlash V3,从Device base进化到Open Channel
Ali FTL驱动
模块化的命令集
代码量<50K
一套代码支持Kernel/User mode
采用DDR模拟盘进行测试
优化应用:非连续读
以上图这个8K的读操作为例,Host希望读取的8K数据,LBA0和LBA1分别在Plane0和Plane1上,正常情况下需要下发两个single plane的4K读操作。但是通过主动多读取两个LBA(淡紫色部分),可以使用一个Multi-Plane 读命令一次读取16K数据。
优化应用:合并写和填充
减少写命令的数量以获取更好的IOPS和时延表现;
将Host下发的多个4K/8K写操作,合并为一个写命令下发给SSD;
通过主动填充无效数据保证所有的Host写入对齐;
优化应用:写入流管理
3个正常IO写工作流,1个GC(Garbage Collection)写工作流;
IO和GC独立管理;
基于配额的GC策略;
Free space越少,相应提高GC的速度;
优化应用: 顺序读预取
基于State Machine的监测机制,当发现当前IO为Sequential read时,利用Host DDR作为Buffer提前预读取,相同应用场景下吞吐量是普通SSD的5倍。
支持多达300+的debug参数,包括:
IOPS
Latency/QoS
GC/WL
Media Error
FTL Driver parameters
FTL Key data structures
FTL驱动参数和策略能够根据不用的应用场景进行配置,而且其中部分参数支持动态调整。
阿里这个级别的厂商,有足够的动力开发完全适配自身应用的SSD,未来会推出哪些更多的应用,我们拭目以待。