RDMA学习路线总结

转自: https://my.oschina.net/SysuHuyh5LoveHqq/blog/842767

本博客仅作为分享本人学习rdma技术过程中一些经验和资料分享,若有错误之处,还请指教。如有侵犯版权问题,请立即通知本人,本人立即删除.特此声明!

 简介--什么是rdma

    RDMA(Remote Direct Memory Access)技术全称远程直接数据存取。

    RDMA (Remote DMA) is the ability of accessing (i.e. reading from or writing to) memory on a remote machine withoutinterrupting the processing of the CPU(s) on that system.

RDMA的好处与优势:

     1、零拷贝(zero-copy) RDMA transfers data directly from user virtual memory on one node to user virtual memory on another node, tcp copies into/out of system buffers on both nodes.

    2、CPU占有率( Low CPU utilization) 鉴于zero-copy的存在,使得机器的cpu占有率下降,让cpu更多的执行其他逻辑计算指令。

     3、异步事件(Asynchronous operation) rdma在io操作过程中并不阻塞相关线程,tcp/ip确是阻塞方式(此处所说的阻塞,是指tcp将数据发送到内核缓冲区是阻塞的,不同于tcp的noblocking的概念)

          RDMA是asynchronous的,即no blocking during a transfer, which – starts when metadata added to “work queue” – finishes when status available in “completion queue”

       tcp/ip中是synchronous的,即send(), recv() block until data copied – O_NONBLOCK, MSG_DONTWAIT are not asynchronous,they are “try” and get error

     4、Message boundaties preserved. rdma是基于消息模式的,本身保留了消息边界,不同于tcp/ip流传输方式,需要做拆包解包操作。 

 

rdma对于高性能的网络通讯来说,优势很多,但学习成本以及相关推广成本也是蛮高的,后面分享下本人摸索过程中的一些资料。

编程环境

    网络环境分为一下几种: InfiniBand环境,iWarp(internet Wide Area RMDA Protocol)环境, RoCE(RDMA over Converged Ethernet)环境,SoftRoCE环境。

    在没有硬件设备的支持下,我们可以搭一套软环境来熟悉相关rdma编程的知识点,至于如何搭建一套SoftRoCE环境,请参见本人和小伙伴通过摸索亲测有效的博客

https://my.oschina.net/SysuHuyh5LoveHqq/blog/798275

 

推荐编程库

    MLNX_OFED 4.0 , 一般来说,就本人个人经验来看,rdma编程最好还是使用硬件厂商的相关库,一般IB网络我们使用Mellanox的硬件(网卡,交换机等等),因此编程所用驱动、代码库还是推荐迈络思OFED,目前为止4.0是最新版本,详情参考:

http://www.mellanox.com/page/products_dyn?product_family=26&mtag=linux_sw_drivers ,

    除了安装版本,最好下载相关源码,里面有相关参考demo供大家学习理解rdma编程。

    主要熟悉libibverbs和librdmacm库,其中librdmacm在libibverbs上封装了一层,个人推荐直接使用libibverbs作为初期学习之用,这样更好了解整个事件的来龙去脉。

 

编程参考手册

    RDMA Aware Networks Programming User Manual 1.7, 目前最新版就是1.7版本,此手册可研读多次,对基本概念性了解很有帮助

http://www.mellanox.com/related-docs/prod_software/RDMA_Aware_Programming_user_manual.pdf

 

相关资料和代码参考

www.mellanox.com/

http://www.rdmamojo.com/

samplecode: https://github.com/tarickb/the-geek-in-the-corner 

代码解析https://thegeekinthecorner.wordpress.com/page/2/

 

rdma网络课程培训

迈络思网关给出了rdma网络编程培训的相关课程,可以作为相关参考http://academy.mellanox.com/en/

 

迈络思相关硬件的配置工具

mellanox官网给出的参考资料

详情请见: http://www.mellanox.com/page/configuration-tools

 

作者:胡宇辉,某券商软件开发工程师,主要从事后台高性能服务端编程,分布式系统设计。使用语言C/C++, Erlang,Golang,了解ELK, open-falcon, RDMA等相关知识点。

  • 4
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
学习 RDMA(Remote Direct Memory Access)可以通过以下方法进行: 1. 学习基本概念:了解 RDMA 的基本概念和工作原理,包括 RDMA 网络架构、RDMA 传输协议(如 InfiniBand、RoCE 等)、RDMA 操作模型和数据传输过程等。 2. 阅读文档和规范:查阅相关的 RDMA 文档和规范,包括官方文档、标准规范和协议说明。这些文档可以提供关于 RDMA 的详细信息和技术细节。 3. 参考教材和教程:有一些专门的书籍和教程介绍了 RDMA 技术,包括 RDMA 的原理、设计和实现。可以通过阅读这些教材来深入了解 RDMA。 4. 参加培训和课程:参加相关的培训课程或在线学习平台上的课程,了解 RDMA 的基本原理和应用实践。这些课程通常会提供理论讲解、案例分析和实验演示等。 关于 RDMA 的拥塞算法现状及演进方向,以下是一些常见的拥塞算法和发展趋势: 1. 基于随机早期检测(Random Early Detection, RED)的拥塞控制算法:RED 算法是一种基于随机策略的拥塞控制算法,通过在网络节点上监测队列长度,并根据队列长度的阈值来丢弃或标记数据包,以减少网络拥塞。RED 算法可以应用于 RDMA 网络中,以实现拥塞控制。 2. 基于传输控制协议(Transmission Control Protocol, TCP)的拥塞控制算法:TCP 是一种常见的传输层协议,具有强大的拥塞控制机制。在 RDMA 网络中,可以借鉴 TCP 的拥塞控制算法,如 TCP Vegas、TCP New Reno 等。 3. 基于反馈和控制论的拥塞控制算法:近年来,一些研究提出了基于反馈和控制论的拥塞控制算法,如 Proportional Integral (PI) 控制器、Model Predictive Control (MPC) 等。这些算法可以根据网络状态和性能指标进行动态调整,以实现更精确和高效的拥塞控制。 4. 数据中心拥塞控制算法:随着数据中心规模的增大和应用负载的复杂化,数据中心网络的拥塞控制成为一个重要问题。一些新的拥塞控制算法针对数据中心网络特点进行优化,如 DCTCP、Homa 等。这些算法通过优化拥塞信号传输和调度策略,以提高数据中心网络的性能和吞吐量。 未来 RDMA 拥塞算法的发展方向可能包括以下几个方面: 1. 更精确和动态的拥塞控制:研究人员正在探索更精确和动态的拥塞控制算法,以适应不同网络环境和负载的变化。 2. 机器学习和人工智能在拥塞控制中的应用:机器学习和人工智能技术的发展为拥塞控制提供了新的思路和方法。未来可能会有更多基于机器学习的拥塞控制算法被提出和应用。 3. 跨层次优化:拥塞控制不仅仅局限于传输层,还需要考虑与其他网络层次(如网络拓扑、路由选择等)的协同优化,以实现更高效的拥塞控制。 4. 针对特定应用场景的优化:不同应用场景对网络性能和延迟要求不同,可能需要定制化的拥塞控制算法来满足特定需求。 为了更深入了解 RDMA 的拥塞算法现状和演进方向,建议阅读相关的学术论文、专业期刊和会议论文,以及参考相关的研究报告和技术博客。同时,参与学术会议和研讨会也是了解最新研究动态和交流学习的好途径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值