Fork me on GitHub

rdma glossary

RDMA Glossary

2017年本人工作上需要,研究了近半年的rdma,通过对rdma的学习,很多概念上还是跟tcp都差不多的,触类旁通的。这系列的博客主要是翻译一些rdma的资料用来自我学习而已,个人建议,最好还是去读英文原版的学习资料比较好,虽然费点时间,但效果要好得多。这里我就主要翻译一下Mellanox公司的《RDMA Aware Programming user manual 1.7》手册,结合平时用的libibverbs 和 librdmacm库进行翻译。

申明: 本人学习rdma的时间也不长,如有错误之处,敬请谅解,欢迎加qq群一起探讨学习 215024757。

对于rdma的学习资料,一般还是去infiniband的官网去找,其驱动代码都有MLNX_OFED,均可以在官网找到。 关于rdma的例子,github上有一个还不错的入门代码demo: https://github.com/tarickb/the-geek-in-the-corner 或者 我本人在此基础上用于自我学习的改造例子
https://github.com/CMShuyuhui/the-geek-in-the-corner

关键词 描述
Access Layer 用于访问互联网络(VPI,InfiniBand,Ethernet,FCoE)的底层操作系统基础设施。它包含了上层网络协议需要的所有基础传输服务。
AH(Address Handle) 用来描述UD QP模式下的远程端路径的对象。
CA(Channel Adapter) InfiniBand链路层的终端设备,用于执行传输层相关函数。
CI(Channel Interface) 通过结合网络适配器、其他相关固件、软件驱动设备而实现的访问Verbs消费者的通道
CM(Communication Manager) 在RC、UC QP模式下用以建立、保持、释放链接的实体。Service ID Resolution Protocol协议允许UD服务定位QPs支持它们所需的服务。在每个终端节点的IB端口都会有这样一个CM。
Compare & Swap 用于的读取远端QP64比特值,与本地比较值对比,若相等,则用替代值替换远端比特值的指令。
CQ(Completion Queue) 一个先进先出的队列,该队列保存着CQEs。
CQE(Completion Queue Entry) 隶属于CQ的条目,用来描述 已完成的WR的状态等信息。
DMA(Direct Memory Access) 直接内存访问,允许硬件越过cpu的干预,直接将数据存进/读取出机器内存。
Fetch & Add 读取远端QP中64比特值,加上本地的被加值后,再保存至远端QP中的原子操作。
GUID(Globally Unique IDentifier) 64比特的数值,用来描述子网内设备的唯一标志码。
GID(Global IDentifier) 128比特的数值,用来描述网络适配器、路由器端口、广播组的唯一标志码。 GID是128比特有效的IPv6的地址,拥有IBA附加的属性和限制以促进有效发现、交流和路由。
GRH(Global Routing Header) 用来在不同子网间传输数据包的包头,同时也可用来传输组播信息。该包头基于IPv6协议。
Newwork Adapter 允许网络不同设备互相交流的硬件设备。
Host 运行着操作系统的计算机平台。
IB InfiniBand网络
Join operation IB端口必须通过显式发送一个请求到SA才能加入一个广播组,之后才能接收广播消息。
lkey 注册的MR中的一个数值,在WR内部使用,用以标注相应的内存区域和它对应的权限。
LID(Local IDentifier) 子网终端节点相关联的16比特的地址,在同一子网内每个LID都是唯一的。
LLE(Low Latency Ethernet) 在CEE(Converged Enhanced Ethernet)上的RDMA服务,允许在以太网上运行IB传输。
NA(Network Adapter) 用以终结一个链接,运行传输层相关功能函数的设备
感谢您的赞赏,赚点辛苦奶粉钱