EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——Open-Channel SSD 3 A+ m" r* X5 x0 Q$ h
% R7 E2 @" r' S R& h妾身千万难,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的存储空间和寿命。 ; N" i5 |! ?( D2 c7 N; z8 }" z. `
5 ]& s9 P' q7 c' u2 b
Open-Channel SSD架构
5 x8 q3 S. @4 e8 G/ ]8 `CNEXlabs的SSD控制器把SSD内部的通道开放给用户使用,这样控制器只负责Flash数据传输、ECC、RAID、垃圾回收引擎、错误处理、坏块管理等工作,而FTL层的设计由Host自己根据需求实现。这样也方便用几个控制器组成一个大的SSD,甚至阵列。 6 I" H. d9 u. h- n4 ~1 X/ y7 m
4 f4 A# r: i' D4 S" E如下图,这样做的一个好处是中间处理变简单了,latency就减少了 ![]() ) T+ k: ?6 ^" j- B0 O7 [
在软件定义存储中的优势 可以集中管理多个SSD; 软件可定制; 根据需求定义FTL; FTL可以不断修改; 针对不同应用开发不同软件。 如下RocksDB例子,数据以日志形式直接写入Flash的块,有点像百度自己做的SSD。CNEXlabs还提供了Linux驱动,支持NVMe以及NULL Driver做FTL性能测试和Debug。 ; a* |+ P7 ~! b4 F4 ]6 g
$ d; G$ p# S4 o- [" k4 H ( x8 _' G, m3 [! \* n7 H
U- a/ @! u& S6 t {1 S3 R1 Z |