加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 空间 > 正文

谈谈关于NVMe和NVMe-oF的那些事

发布时间:2018-12-27 08:38:14 所属栏目:空间 来源:架构师技术联盟
导读:副标题#e# NVMe传输是一种抽象协议层,旨在提供可靠的NVMe命令和数据传输。为了支持数据中心的网络存储,通过NVMe over Fabric实现NVMe标准在PCIe总线上的扩展,以此来挑战SCSI在SAN中的统治地位。NVMe over Fabric支持把NVMe映射到多个Fabrics传输选项,主

NVMe over fabric白皮书明确列出了光纤通道作为一个NVMeover Fabrics选择,也描述了理想的Fabrics需要具备可靠的、以Credit为基础的流量控制和交付机制。然而,基于Credit的流程控制机制是FC、PCIe传输原生能力。在NVMe的白皮书中并没有把RDMA列为“理想”NVMe overFabric的重要属性,也就是说RDMA除了只是一种实现NVMeFabric的方法外,没有什么特别的。

FC也提供零拷贝(Zero-Copy)技术支持DMA数据传输。RDMA通过从本地服务器传递Scatter-Gather List到远程服务器有效地将本地内存与远程服务器共享,使远程服务器可以直接读取或写入本地服务器的内存。更多关于NVMe over FC的内容,请参考“基于FC的NVMe或FC-NVMe标准”和“Brocade为何认为FC是最好的Fabric”。

接下来,谈谈基于RDMA技术实现NVMe over fabric的Fabric技术,RDMA技术最早出现在Infiniband网络,用于HPC高性能计算集群的互联。基于InfiniBand的NVMe倾向于吸引需要极高带宽和低延迟的高性能计算工作负载。InfiniBand网络通常用于后端存储系统内的通信,而不是主机到存储器的通信。与FC一样,InfiniBand是一个需要特殊硬件的无损网络,它具有诸如流量和拥塞控制以及服务质量(QoS)等优点。但与FC不同的是,InfiniBand缺少发现服务自动将节点添加到结构中。关于更多RDMA知识,请读者参考文章“RDMA技术原理分析、主流实现对比和解析”。

最后,谈谈NVMe/TCP协议选项(暂记为NVMe over TCP),在几年前,NVMe Express组织计划支持传输控制协议(TCP)的传输选项(不同于基于TCP的iWARP)。近日NVM Express Inc.历时16个月发布了NVMe over TCP第一个版本。该Fabric标准的出现已经回答了是否满足承载NVMe协议标准的Fabric即可作为NVMe over fabric的Fabric的问题。

但是TCP 协议会带来远高于本地PCIe访问的网络延迟,使得NVMe协议低延迟的目标遭到破坏。在没有采用RDMA技术的前提下,NVMe/TCP是采用什么技术达到类似RDMA技术的传输效果呢?下面引用杨子夜(Intel存储软件工程师)观点,谈谈促使了NVMe/TCP的诞生几个技术原因:

1. NVMe虚拟化的出现:在NVMe虚拟化实现的前提下,NVMe-oF target那端并不一定需要真实的NVMe 设备,可以是由分布式系统抽象虚拟出来的一个虚拟NVMe 设备,为此未必继承了物理NVMe设备的高性能的属性 。那么在这一前提下,使用低速的TCP协议也未尝不可。

2. 向后兼容性:NVMe-oF协议,在某种程度上希望替换掉iSCSI 协议(iSCSI最初的协议是RFC3720,有很多扩展)。iSCSI协议只可以在以太网上运行,对于网卡没有太多需求,并不需要网卡一定支持RDMA。当然如果能支持RDMA, 则可以使用iSER协议,进行数据传输的CPU 资源卸载。 但是NVMe-oF协议一开始没有TCP的支持。于是当用户从iSCSI向NVMe-oF 转型的时候,很多已有的网络设备无法使用。这样会导致NVMe-oF协议的接受度下降。在用户不以性能为首要考量的前提下,显然已有NVMe-oF协议对硬件的要求,会给客户的转型造成障碍,使得用户数据中心的更新换代不能顺滑地进行。

3. TCP OffLoading:虽然TCP协议在很大程度上会降低性能,但是TCP也可以使用OffLoading,或者使用Smart NIC或者FPGA。那么潜在的性能损失可得到一定的弥补。总的来说短期有性能损失,长期来讲协议对硬件的要求降低,性能可以改进。为此总的来讲,接受度会得到提升。

4. 相比Software RoCE:在没有TCP Transport的时候,用户在不具备RDMA网卡设备的时候。如果要进行NVMe-oF的测试,需要通过Software RoCE,把网络设备模拟成一个具有RDMA功能的设备,然后进行相应的测试。其真实实现是通过内核的相应模块,实际UDP 包来封装模拟RDMA协议。有了TCP transport协议,则没有这么复杂,用户可以采用更可靠的TCP协议来进行NVMe-oF的一些相关测试。 从测试部署来讲更加简单有效。

NVMe/TCP(NVMe over TCP)的协议,在一定程度上借鉴了iSCSI的协议,例如iSCSI数据读写的传输协议。这个不太意外,因为有些协议的指定参与者,也是iSCSI协议的指定参与者。另外iSCSI协议的某些部分确实写得很好。 但是NVMe/TCP相比iSCSI协议更加简单,可以说是取其精华。

【编辑推荐】

  1. 泽塔云:用超融合撑起软件定义数据中心的梦想
  2. 虚拟化降低数据中心存储系统运维复杂度
  3. 以太网虚拟专用网络在现代数据中心的兴起
  4. 浅谈数据中心VxLAN技术
  5. Java虚拟机结构:运行时数据区
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读