Ceph开发每周谈Vol 81 | Open Channel SSD

2017年07月 · 迈子麦

这是Ceph开发每周谈的第八十篇文章,记录从17年6月29号到17年7月3号的社区开发情况。笔者从前年开始做Ceph的技术模块分析到今年中告一段落,想必有挺多人期待下一篇Ceph技术分析。考虑到Ceph的发展已经从前年的一穷二白到现在的如火如荼,但对于社区的方向和实况仍有所脱节,笔者考虑开始Ceph开发每周谈这个系列。每篇文章都会综述上周技术更新,围绕几个热点进行深度解析,如果正好有产业届新闻的话就进行解读,最后有读者反馈问题的话并且值得一聊的话,就附上答疑部分。

•    一句话消息

到了暑假后,Ceph 社区开始进入“夏眠”,众多 Ceph 主要开发者开始度假去了。

•    Open Channel SSD

这是一个 SSD 的逻辑架构图:

Open Channel SSD 的目的主要是把 SSD FTL 层提取出来,不需要转换成 Block 接口提供,而是直接操作每个 SSD Channel,进行应用定义的物理地址映射。

目前主要是发布了 Physical Page Addressing Specification,暴露了 SSD 拓扑,控制器能力以及 IO 读写能力。然后在利用 LightNVM 架构于 NVME 之上,应用可以直接利用 LightNVM 进行操作。

 

这种方式跟传统 SSD 利用主要区别在于:

1. 提供了一系列 Block 而不是连续的块设备地址控制

2. Sector 对齐读,并且需要自己处理一些异常,比如去读一个没有写过的区域

3. 同样需要处理写失败,有可能是 NAND 失效了

因此需要额外加上 pblk 层,提供 Host 端的 FTL,来做 write buffering,错误处理,GC,逻辑地址映射等等。

有兴趣去 http://lightnvm.io/ 看一下如何模拟并实现!