2015美国闪存峰会特稿——NVMe + RDMA = 非凡的性能!

xiaoxiao2021-02-28  10

Stephen Bates 

 

简介 

       我在前一篇博文中介绍了Donard 项目该项目实现了NVMe SSD与GPU、NVMe SSD及远端直接内存访问(RDMA)之间的PCIe点到点传输。现下,我倍感兴奋地宣布,在2015美国闪存峰会 (FMS)上,PMC与RDMA领域的领军公司Mellanox共同联手,将上述工作推向了更高的层次!本篇博文将稍加深入地阐述我们于8月11-13日在FMS所进行的展示,并解释为何NVMe +RDMA=非凡的性能! 

      闪存峰会上,我们在PMC的#213号展台进行了两项独立的NVMe+RDMA演示。头一个演示展示了如何将NVMe和RDMA组合起来,在远端大规模提供低延迟、高性能、基于块的NVM访问。第二个演示则将Mellanox的RDMA对端发起操作与PMC的Flashtec NVRAM加速卡集成在一起,以将内存映射的I/O(MMIO)作为一个RDMA目标,从而实现远端大规模的持久性内存访问。下面逐一详细介绍:

NVM Express over RDMA

       NVMe over RDMA (NoR)演示向大家展示出将NVMe协议延展到RDMA之上的潜在可能。该项演示中共采用了两台电脑,一个作为客户端,另一台则作为服务器,采用Mellanox ConnectX-3 Pro NIC通过RoCEv2相连。其中采用的NVMe设备即为性能极高而延迟极低的PMC Flashtec™ NVRAM 加速卡。下图为该演示的框图。

 

        我们的演示显示出,利用RDMA来传送NVMe命令及数据结果带来了微乎其微的额外延迟,且不影响吞吐量。

       下表将本地NVMe设备与远端NVMe设备的平均延迟作了一个对比。NoR方案中延迟增加低于10微妙。

 

       下表则比较了本地NVMe设备与远端NVMe设备的吞吐量测试结果。可以看出,NoR方案中吞吐量并无减少。 

 

RDMA与PCIe设备之间的点到点传输 

       此项演示中,通过在标准 RDMA之上增加服务器CPU和DRAM的分流,采用对端发起的方式来将远端客户端与一台服务器的NVRAM/NVMe设备直连。我们将Mellanox提供的RoCEv2-capable ConnectX-3 Pro RDMA NIC与PMC的Flashtec NVRAM加速卡组合在一起,实现NIC和NVRAM之间的对端发起操作。对端发起操作可以实现远端客户对NVRAM加速卡的直接访问,相比传统的RDMA流程,可降低延迟,并卸载CPU和DRAM。 

 

       该演示采用的硬件设备包括两台电脑,一台作为客户端,另一台则作为服务器。利用服务器中的PCIe交换设备来将对端发起操作的性能提升到远远超出采用Intel CPU根联合体所能达到的指标。

       下表比较了采用传统RDMA和对端发起的RDMA时服务器上可用的后台DRAM带宽。结果得自于perftest:

 

      下表对采用传统RDMA和对端发起的RDMA时的平均延迟作出了对比。结果得自于  RDMA mode of fio:

 

对端发起操作代码库 

       如前所述,实现Donard项目时,我们即怀揣着开源的构想,如若不将Donard代码开放给研发社区,那将是我们的过失。因此,我们将Donard的源代码存放于GitHub,并为之获取了Apache 2.0 及GPL 2.0的许可。任何经过我们改动的源于GPL的代码均要求保持GPL,而全部新开发的代码则都存放在Apache,供大家随意取用。

       我们希望社区中的朋友们能用到这些代码,对其进行进一步的改进,并将改进再贡献到代码库当中。该代码的git库可由此访问。

       此外,开放交换网络企业发行版(OFED)的12月期发布中将包括该项目相关的代码。不久将提供该期发布的更多详细信息,请持续关注。

结论 

       RDMA以及NVMe两项技术均处于蓬勃上升的阶段!RDMA能提供远距离、大规模的低延迟及高效率的数据移动,而NVMe则能提供对SSD的低延迟访问。将两项技术相结合能实现非凡的性能。PMC与Mellanox正精诚合作,将之付诸实践!

转载请注明原文地址: https://www.6miu.com/read-1400072.html

最新回复(0)