Open Channel如何使用SSD构建存储系统的?

描述

和今年7月份在存储重镇武汉召开的存储半导体峰会一样,Open Channel SSD在FMS2018 的众多话题中的分量很足。在架构相关的议题中占了半壁江山。从目前看到的方案来看,大家的目的都类似,主要解决问题是:

1. I/O 的隔离

2. 实现可以预期的延时

3. 将底层的NAND的Channel暴露到上层来实现更好的I/O并行处理和调度

目前主要实现的方案有三种,Alibaba AOC, Facebook I/O Determinism 以及Open Channel的创始公司CNEXLabs (Microsoft 投资的公司)。 在本次的FMS上三家都有讲各自的方案,但是各自方案在自己公司的进展确实一个比较敏感的话题。先来看看各家的方面的阵营吧。

Alibaba AOC放出可他们的生态阵营如下:

Intel的加入对于整个生态的促进的确很大。CNEXLabs的存在说明Alibaba这个方案和标准的Open Channel还是有一定的联系的。

但是从目前的资料来看,Alibaba 的AOC在架构上和之前OC 还是有很大不同,可以看到的不同点在于:

l 提供了两种模式,标准的NVMe 和AOC 模式。

l 对于主机的接口方案,提供了内核+Block 块设备和用户态NVMe两种接口。

l 基于优先级的I/O调度,实现了 PU-based Read I/O Scheduling (PRS)/PU-based Read Throttling PRT/Priority-based Write Scheduling (PWS) /Adaptive Write Throttling (AWT)四种机制。

比较有意思的是在Shannon-System的母公司的SMI的展台上有一颗2270的SSD控制器。

这个2270控制从date sheet上看是由两个2262在后端堆叠起来的。

而且已经点名了可以支持OC SSDs,看起来和Alibaba的AOC应该是比较match。因此想到Intel会不会也是用这个来做AOC SSD呢?

毕竟Intel在今年五月的SPDK的summit上讨论的open channel SSD的也讨论了双模的支持,以及对于SPDK的支持。

对于Facebook的I/O Determinism, 他们可能因为和Intel的关系比较密切,因此选择了加入NVMe标准的道路。大家可以在之前的OCP和FMS看到Facebook在定制SSD的I/O Determinism的进展。2017年的FMS和2018的OCP上,可以看到Seagate 的Nytro部门和Facebook走的很近,但是随着Facebook主导的各种TP在NVMe协议组织里面出现,现在很难看出facebook会使用哪一家的硬件。在FMS2018上的Facebook的Topic中,他们提出了目前实现的局限性:

同时Facebook又挖了一个大坑:

比较有意思的,的确有一家不透露名字的startup在follow up facebook的需求。具有的信息,我就不放上来了。他们认为需要根据Facebook的需求重新定义SSD的架构。需要根据NVM Set的概念,在SSD的控制器的相关资源中进行分割,实现多个sub system的device。因为Facebook的提议都在NVMe的协议组织中,但是大部分应该都是option的,如果真的有人愿意根据Facebook的几个大坑来定义自己的SSD控制器,我只能说祝你好运了。

最后来讲讲CNEXLabs的正宗open channel SSD,这个概念已经和Microsoft的Denali Porject紧密结合。目前不仅CNEXLabs,连Marvell,SMI都宣布自己加入Denali project了,目前来看Microsoft的江湖地位还是高。

对于Open Channel SSD的定义的技术细节,在lightnvm.io上大家都可以看到,就不在这里赘述了。就讲讲今年CNexlabs的update吧。

l Cnextlabs的那个主导Open Channel SSD的哥们去了WD,但是还在讲这个,对OC 应该是件好事,多了一个大客支持。

l Device的保修问题。这个问题也是笔者一直和CNexlab的大佬有疑问的地方。因为Host is King,如果来一个不靠谱的程序员来用OC SSD,可能在几分钟内把一个OC SSD一部分NAND写穿。连我们Xilinx做OC SSD的开发平台的时候,都考虑使用SODIMM的NAND 模块可以拆卸,而不是直接NAND Down。

l 不管OC 如何开放,因为坏块管理的需求,以及IO隔离,因此肯定要有一部分的保留区域,可能没有传统的OP那么大。在多用户的场景下,如何在寿命和IO隔离之间平衡也是一个问题。

l CNexlabs在Denali的基础上做了over Fabric的尝试,这个基本上是利用NVMe over Fabric在远端和本地的NVMe访问的透明做一些有益的应用探索。

总之,可以看出,目前这种基于Open Channel 思想的SSD架构的本质上需要有壕客支持,底层的设计和上层的应用紧密结合,注定是几个客户才用得上的产品。大部分吃瓜群众在学术上面作围观就行了。作为前Host FTL的代表Fusionio的前员工,我对Open Channel有着深深的敬意,因为Open Channel的思想本质上是如何使用SSD构建一个高效,稳定的存储系统的积极探索,那些做全闪阵列的厂家,可能不会使用Open Channel SSD本身的标准,但是盘控联动肯定是不可缺少的。目前如何控制底层SSD的GC对存储系统的影响还是一个艰难的topic。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分