【RDMA】降CPU除RDMA (vbers)还有VMA ?|使用socket进行RDMA编程?

前言

看介绍,像是mellonx针对其kernel bypass网卡(RDMA网卡)提供的一个lib库,该lib库对外提供socket api,使得用户的程序不需要修改就可以直接使用kernel bypass网卡(如RDMA网卡)。

我们都知道RDMA 网卡目前使用的是rdma_cm和vbers api编程,和socket不一样,如果能用socket对RDMA编程,那确实是很大的利好。

官网介绍

什么是VMA?Mellanox Interconnect Community

官方介绍:

Mellanox的信息加速器(VMA)提高了基于信息和流的应用的性能,如金融服务、媒体和娱乐、数据库和数据流应用中的性能。其结果是将延迟降低到微秒以下,将吞吐量提高到100GbE线速。

VMA是一个开源库项目,提供标准sokect API 接口,实现kernel-bypass 架构, 在用户空间可以多播,UDP单播和TCP流。 VMA还具有易用,内置预配置配置文件(例如(配置)延迟或流)等特性。


参考资料:
 

架构:

 什么是vma?


内核旁路 - 程序绕过内核直达网卡降低CPU负担。
不需要任何应用程序更改 - 向应用程序层提供标sockets  TCP,UDP(单播,组播),使用socket接口编程


Mellanox VMA带来的利好


降低延迟 - 使用UDP / TCP小于1.3微秒
较低的抖动 - 减少的上下文切换和中断优化应用程序网络抖动
降低CPU利用率 - 较少的开销和更优化提供CPU效率
高吞吐量 - 达到100gbe的线速率


vma降低延迟

VMA带来内核内核无法达到的性能(说明性)


内核无法给应用层带来(高)吞吐量。通过绕过内核 -  VMA能够实现RX和TX的(高)吞吐量。

 

ULP(Upper Layer Protocols

RDMA Consortium 和 IBTA 主导了RDMA,RDMAC是IETF的一个补充,它主要定义的是iWRAP和iSER,IBTA是infiniband的全部标准制定者,并补充了RoCE v1 v2的标准化。应用和RNIC之间的传输接口层(software transport interface)被称为Verbs。IBTA解释了RDMA传输过程中应具备的特性行为,而并没有规定Verbs的具体接口和数据结构原型。这部分工作由另一个组织OFA(Open Fabric Alliance)来完成,OFA提供了RDMA传输的一系列Verbs API。OFA开发出了OFED(Open Fabric Enterprise Distribution)协议栈,支持多种RDMA传输层协议。

OFED中除了提供向下与RNIC基本的队列消息服务,向上还提供了ULP(Upper Layer Protocols),通过ULPs,上层应用不需要直接到Verbs API对接,而是借助于ULP与应用对接,常见的应用不需要做修改,就可以跑在RDMA传输层上。

RDMA 架构与实践 | https://houmin.cc/posts/454a90d3/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值