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) | 用以终结一个链接,运行传输层相关功能函数的设备 |