EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——Open-Channel SSD ! J: E! L4 ?0 O! D& q, b
, g/ r8 Z2 M, n) }4 E X# a
妾身千万难,FTL将栖身何处? 我们知道SSD控制器内部算法核心是FTL(Flash Translation Layer),把用户的地址LBA转换为SSD内部Flash芯片的物理地址。一般的消费级SSD控制器内置FTL,因为功能比较简单和统一,消费级市场 经过WinTel联盟多年的锤炼,各种接口非常统一,大家的需求也很单一,只要支持Intel主板、Windows操作系统就可以了,大大简化了各种外设 的 硬件设计。 但是进入了企业级市场,真是群雄并立,有各种各样的客户和存储厂家,大家使用多种多样的操作系统和主板架构,甚至Google、Facebook、BAT 都可以自己定义硬件、Linux底层。在这种情况下,FTL放在SSD控制器里面已经难以满足需求了,用户希望能够自定义FTL,根据自己的数据特点设计 高效的FTL,比如: 搜索引擎可以把索引表和SSD物理地址对应起来; 日志数据可以直接流式写入SSD内部Flash通道; 数据库希望key-value能对应到SSD物理地址。 这种自定义后面如果有FTL,导致几大缺点: latency变长; 达不到最优的性能; 垃圾回收、磨损平衡等浪费了SSD的存储空间和寿命。 2 X. o, m+ j+ R, m
5 B, o' ]% E+ t+ R2 B5 @( `
Open-Channel SSD架构
5 J' Q7 }3 g( Z* hCNEXlabs的SSD控制器把SSD内部的通道开放给用户使用,这样控制器只负责Flash数据传输、ECC、RAID、垃圾回收引擎、错误处理、坏块管理等工作,而FTL层的设计由Host自己根据需求实现。这样也方便用几个控制器组成一个大的SSD,甚至阵列。
" c+ Y' ~% m( Q, h& d" O* o; B- j x, r& m
如下图,这样做的一个好处是中间处理变简单了,latency就减少了 ![]() $ b9 N* V4 m. |- I
在软件定义存储中的优势 可以集中管理多个SSD; 软件可定制; 根据需求定义FTL; FTL可以不断修改; 针对不同应用开发不同软件。 如下RocksDB例子,数据以日志形式直接写入Flash的块,有点像百度自己做的SSD。CNEXlabs还提供了Linux驱动,支持NVMe以及NULL Driver做FTL性能测试和Debug。
! N2 _0 C% k8 s! J - C. i8 t8 Y; u: M5 q3 T }
9 j, z' c) T! l2 Q6 V
8 e. V/ i5 e2 w/ _: P' ^. _, X! n |