FCoE曾经想一统江湖,但现在已经无人问津,NVMe-TCP会重蹈覆辙吗? 下载本文

内容发布更新时间 : 2024/5/18 11:18:30星期一 下面是文章的全部内容请认真阅读。

FCoE曾经想一统江湖,但现在已经无人问津,NVMe/TCP会重蹈覆辙吗?

在网络江湖上,以太网和IP都有一个梦想,就是统一数据中心网络,一统网

络江湖。但是,在存储网络这块,它们的进展不是很顺利。FCoE曾经风光无限,当时大有统一数据中心网络的架势,但由于FC的顽强抵抗,还是败下阵来,现在基本被网络界抛弃。现在借助NVMe-oF的发展,IP又找到了一个机会,在18年底,NVMe/TCP终于成为标准,这个标准的主要推动者之一,Lightbits Labs,一个Startup公司,也刚刚拿到了Dell参与投资的50m资金,正式走向公众面前。

这两天,不断有朋友问我对这个公司包括NVMe/TCP的未来的看法,我今天就来聊一聊这个话题。

大家知道,NVMe-oF成为标准已经有几年时间了,最初它只支持RDMA,后来加入了FC的支持,现在又加入了TCP的支持。

我们知道,NVMe采用PCIe连接,是基于内存映射的协议,而NVMe-oF却实基于消息的,但也可以支持共享内存。其中RDMA(包括IB,RoCE,iWarp)这两种方式都支持,但FC和TCP,只支持消息。

RDMA由于支持两种机制,因此命令和回复封装都用消息传输,但数据采用内存语义进行处理。

但FC和TCP只支持消息,因此,数据也是采用消息来传输的。

感觉TCP的功能没有RDMA强大啊?为啥大家都热衷发展NVMe/TCP,并且也把这种方式标准化了呢?这就是TCP的魅力了。因为TCP无处不在,大家都了解它,还有就是TCP支持长距离大规模的部署,云环境下是唯一选择。虽然在时延和性能抖动上有挑战,但是也不是不可解决的。

NVMe/TCP其实原理也很简单,就是把NVMe-oF的消息封装在TCP/IP报文里作为负载进行传输。

这是NVMe-oF三种传输机制的封装方式,我们看到,其实NVMe/TCP和NVMe/FC的传输机制是最像的。

从时延上,TCP的时延还是大于RDMA的,而且还有一个重要的incast问题,即发生拥塞后大家都停止发送,然后等待一会,大家又同时开始发送。

这是TCP典型的锯齿模式,因此,NVMe/TCP对网络的拥塞控制要求非常高。

还好现在新型的数据中心交换机都有优先级控制或者流控功能,可以解决incast的问题。

常用的流控协议就是DCTCP和ECN这些,也就是如果你要用NVMe/TCP,请确认交换机支持这些特性并且做好规划。

虽然NVMe/TCP需要现代的数据中心交换机,但是在host端,不需要支持RDMA的HCA卡,普通网卡就可以用,因此成本还是比RDMA要好得多,特别是host很多的情况下。因此,Lightbits和Facebook,Dell EMC,Intel等力推NVMe/TCP在2018年11月15日终于成为国际标准。

从时延的测试看,NVMe/TCP的时延是RDMA的两倍。但是,由于都是微秒级别,大部分场景下都够用,而且和iSCSI相比,要好太多了。因此,云厂商Facebook和Google等都非常热衷这项技术。

而Lightbits呢,抓住这个机会,开发了自己的NVMe/TCP存储操作系统LightOS。

LightOS有传统存储丰富的企业特性,包括纠删码和数据缩减,QoS等。

为了进行性能加速,Lightsbits还开发了一块加速卡,做EC和压缩加速,也做TCP的卸载。刚开始我以为是一块NVMe/TCP的加速网卡,后来发现没有网口,因此,这个只做加速,还是需要配合网卡使用的。

目前,这块加速卡和LightOS配合使用,组成一个高性能的NVMe/TCP的分布式存储。

目前,Lightbits刚刚拿了50m的投资,除了Dell,还有Cisco和Micron等大牌IT厂商背书。

这是三个创始人,其CTO是半导体行业背景。

个人认为NVMe/TCP虽然有TCP的一些固有问题,但是由于云厂商只能选择这种机制,因此,不会遭遇FCoE一样命运。

我们看到Pure Storage的NVMe-oF路标,今年支持RoCE v2,年底打算支持FC,然后明年打算支持NVMe/TCP。这个时间节奏我还是比较认可的。

但是,我个人认为,虽然NVMe/TCP不会死,但是短期也无法统一数据中心网络。因为传统的数据中心运维人员,对FC都非常熟悉,因此,NVMe/FC还是很多传统企业的首选演进路径。因此,NVMe-oF的三种协议估计在企业数据中心都会存在: NVMe/FC:传统存储,如高端存储,AFA等关键业务场景 NVMe/RDMA:HPC等高性能,低延时场景 NVMe/TCP:云存储,分布式存储场景

但是,在公有云上,别无选择,只能选择NVMe/TCP。但是,公有云不会购买存储系统,