天天看点

当以太网碰上NVMe



­­­当以太网碰上NVMe

廖恒

当以太网碰上NVMe

       NVMe over Fabrics (简称NVMf)是NVMe标准工作组中正在起草的新增功能。NVMe工作组最近发布的NVMe over Fabrics Webinar阅读量竟破了历史纪录。这可真成了SSD领域当前最热门的话题。

       NVMf的基本思路是通过RDMA的方式来实现对NVMe命令和数据的跨越网络的传送。该标准中并未对传送RDMA的数据网络形态做出具体的规范。因此具有RDMA功能的任何网络技术(包括Infiniband、Omnipath、Ethernet、FC,甚至尚未出现的未来网络)只要具有RDMA的功能,理论上都可支持NVMf。具体到以太网,NVMf可能进一步引爆不同RDMA构架之争,主要是在iWARP和ROCE之间。

       IETF早在2008年就订出了iWARP的协议栈,只是生不逢时,只在特定场合被采用,而一直没有成为主流,NVMf能否为iWARP带来重生的机会,大家都在观望中。iWARP依赖TCP/IP来保证数据的可靠传送,因此较为复杂,要做到高带宽、低延迟,技术上要越过更多障碍,不过由于它可以在任何IP网络上运行,因此通用性很强。

       此外IBTA制定了ROCERDMA协议,只是由于它出生于Inifiband Trade Association(IBTA),而既非主导以太网技术的IEEE802标准组,也非掌控IP协议的IETF标准组织,可谓出生有些缺乏正统性。ROCE在组网形态上又依赖于无丢包的DCE(数据中心以太网)而并非目前广泛采用的会丢包的普通以太网,因此前途还不完全明朗。ROCE本身由于不需要处理丢包的问题(而依赖网络本身来保证数据的可靠传送),因此实现起来较简单,要做到低延迟和高带宽可能有些优势。ROCE能否凭借这些优势而胜出也是我们在观望的。不过对于没有太多历史包袱的厂商可能不会太在意哪一种RDMA构架会胜出,而可能采取兼容并包的策略。毕竟排他式的二选一,一旦选错可能导致全盘皆输,在这个时期去冒这个风险,不值得。

       用以太网来连接NVMeSSD看似有些遥远。连我自己写这篇稿子时,也自觉有出尔反尔之嫌。过去三年来,我们一直在谈服务器解耦合(FDIO)的构架,我们讲过PCIe Switch是多么适合用于SSD的连接,然后又试图说服大家用SASS witch在机架内对HDD进行解耦和池化。在行动上,PMC一直在开放这些PCIe和SAS相关产品。我们还曾指出过以太网要达到PCIe以及SAS的同等性能要面临诸多技术和成本挑战。现在拿以太网说事?这不是颠三倒四?

        其实大家(也包括我们自己)都容易犯二元对立的错误。往往选择了一个技术,就一定要否定其他所有选择对象。事实上一个看似理想的上层设计的理论,在实践中往往会根据具体情况分化出各种复杂的实践方法,而不能做到无所不包、一蹴而就。就FDIO解耦计算构架来说,在不同时间阶段,SAS、PCIe、Ethernet各自有适用的场景和领域。比如在一个服务器内部连接多个NVMe SSD,这个方案非PCIe switch莫属;而若要在多台服务器之间动态共享多个JBOD内安装的SATA HDD磁盘,SAS switch 就有很大优势--- 毕竟这些SAS器件已通过多年部署达到了成熟和低价,又何必再浪费几年时间用另一个协议把同样功能实现一遍呢?一旦互联需要有较好的可扩展性(盒子之间,机架之间)以太网的优势就是难以替代的。这些复杂的技术演进过程,无非是依照抓到老鼠的就是好猫的实践原则来自然完成。

       首先我们要考虑SSD和CPU是否有分开的需要,也就是CPU是否要访问存储在另一个盒子里的SSD的数据?除了我们过去谈的FDIO的种种好处,即使在砖块模式的构架上,也能找到很多理由去进行远端数据的访问(ServerSAN就是个很典型的例子)。从根本上说,数据中心的服务器和存储节点就像人类社会一样,除了漂流到孤岛上的鲁宾逊,每个人在不同程度上都依赖了其他人(或社会)的资源,交流和资源共享是普适性的,而独占才是特例。因此我们断言:总会有要高速访问远程SSD的需要出现。

       以太网是CPU到SSD的互联的最佳选择吗?答案恐怕不是简单黑白分明的二元选择。这里我们面对着复杂而多元的选择题。难以给出简单明了的理想路标去供人找方抓药。在不同时间点(现在和两年以后),不同应用场景(盒子内/盒子间,机架内/机架间)下,我们会面临诸多困难的选择。除了前面提到的适合内部小规模互联的SAS和PCIe之外,具有可扩展性的外部组网的技术选择也不少:OmniPath、Infiniband、Ethernet、Fiber Channel等。各路英雄们都在奋勇争先。

       如果我们相信务实和开放改革的态度有助于一个体系的长期生存的话,我们则有理由看好NVMe over Ethernet。前面说的各种技术,各自都有这样那样的优势和缺陷,这些决定了它们能在一段时间内占据某些特殊的应用领域。可是作为一个长期、通用、可扩展的外部互联技术,以太网具有最务实、最能适应变化的、而又从不放弃通用性的传统。说到头,这些不同的技术之间,本质上共同点远远大于差异点,当你把每个技术的缺陷都分别弥补好了,它们之间就更没有什么差别了。而摩尔定律提供的恰恰是可以抹平缺陷的实现手段(实行具体协议功能的逻辑门电路几乎是免费的)。在SSD的速率等级上,不管采用哪种协议,连接盒子之间的线缆成本都超过了节点内部硅片的成本而占据了主要的部分。因此更没有理由长期执着于某种协议的“个性”而阻挡走向通用化的必然趋势。

        关切NVMe over Ethernet的玩家会有很多。说到了,NVMf就像现实中的其它事情一样,无非是在其生命期内摸着石头过河的一次次选择过程。 

继续阅读