热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

InfiniBandiWARPRoCE

作者QQ群:852283276微信:arm80x86微信公众号:青儿创客基地B站:主页https:space.bilibi

作者

QQ群:852283276
微信:arm80x86
微信公众号:青儿创客基地
B站:主页 https://space.bilibili.com/208826118


参考


InfiniBand, RDMA, iWARP, RoCE
RDMA Vs DPDK
有哪些比较好的基于dpdk实现的tcp/ip stack?
关于Infiniband的一些介绍
InfiniBand:还会有多少人想起我



InfiniBand iWARP RoCE

parallel file system比如PVFS2/OrangeFS,Lustre,它们都声称支持 InfiniBand 网络连接技术,InfiniBand原生支持RDMA,可以不通过OS内核以及TCP/IP协议栈在网络上传输数据,因此延迟低,CPU消耗少。InfiniBand,FibreChannel,10Gbps Ethernet之间互相竞争。RDMA 技术有好几种规范来实现,


  • InfiniBand:这是正统,InfiniBand设计之初就考虑了RDMA,InfiniBand从硬件级别保证可靠传输;
  • iWARP:基于TCP or SCTP做RDMA,利用TCP or SCTP达到可靠传输,对网络设备的要求比较少;
  • RoCE:基于Ethernet做RDMA,消耗的资源比iWARP少,支持的特性比iWARP多,需要FCoE做可靠传输。从wikipedia的评价看 RoCE 还是比正统的 InfiniBand 差点。

上面三种实现都是需要硬件支持的,IB需要支持IB规范的网卡和交换机,iWARP和 RoCE都可以使用普通的以太网交换机,但是需要支持iWARP或者RoCE的网卡。软件上Solaris、Linux、Windows都有支持,在API层面这篇文章有个入门的介绍:Introduction to Remote Direct Memory Access (RDMA),可以使用http://www.openfabrics.org/ 提供的 libibverbs库(Debian Linux有提供),这个库似乎也支持Windows上的原生RDMA API "Network Direct"。另外也有一些其它 API 规范,比如DAT组织制定的kDAPL(让kernel driver可以访问RDMA功能)和uDAPL(让user space进程可以访问RDMA功能), OpenGroup制定的IT-API和RNICPI:
https://software.intel.com/en-us/articles/access-to-infiniband-from-linux
http://www.zurich.ibm.com/sys/rdma/interfaces.html
http://rdma.sourceforge.net/
另外IETF制定了iSCSI Extensions for RDMA(iSER)和SDP(Sockets Direct Protocol,基于RDMA替换TCP的流式传输层协议,RDMA本身提供了可靠传输机制)两个协议。Java 7引入了对SDP的支持:https://docs.oracle.com/javase/tutorial/sdp/sockets/index.html,Apache Qpid 消息队列也支持 RDMAhttps://packages.debian.org/sid/librdmawrap2 ,学习RDMA的网站:http://www.rdmamojo.com/2013/06/08/tips-and-tricks-to-optimize-your-rdma-code/


背板互联总线

看来以太网可以取代SRIO,毕竟有RDMA,而RDMA不是很新的技术,我突然记得在学校的时候听说过六院的超算天河用的Infiniband作为背板互联,教研室以前一个车载的存储阵列也是用的InfiniBand。RDMA不是新的技术,只是以前在InfiniBand上,导致比较小众,现在IB移植到RoCE(v2)上,扩展了应用场景。DPDK需要造的轮子太多,并且支持的厂家主要是intel,主要是intel自己的标准和协议,需要程序员做的事情太多,开发量太大,相当于程序员要把整个IP协议底层实现一遍。作为同样的类似技术,我推荐已经标准化的,兼容性好很多,不仅仅是intel,也不仅仅是以太网,还有InfiniBand等其他网络,都支持这个协议,一次写完,多种硬件,多种平台,多种厂家,国际标准,价格便宜,现在很多杂牌三四百元的万兆以太网卡都已经支持的RDMA/ROCE技术,不需要自己实现底层, 底层代码全部都已经国际标准化了,直接拿来用就可以了,不需要自己造轮子,性能与DPDK基本不相上下,也是在用户层实现了整个TCP/IP协议,国家超算中心已经有很多应用都是RDMA/ROCE技术开发的网络层,还有最近2届高校大学生超算全国性竞赛,都是指定必须使用RDMA技术作为网络层接口, 也说明了国家层面上的倾向(作者:郭忠明 链接:https://www.zhihu.com/question/47396779/answer/139271653)。


FPGA RDMA IP(RNIC)

Xilinx RDMA pg294
这里写图片描述
NVMEoF
这里写图片描述


推荐阅读
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 在Delphi7下要制作系统托盘,只能制作一个比较简单的系统托盘,因为ShellAPI文件定义的TNotifyIconData结构体是比较早的版本。定义如下:1234 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • poj 3352 Road Construction ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 本文详细探讨了Oracle数据库中Number和Float数据类型的特性和使用方法。通过对比分析,解释了Number类型在精度和范围上的优势,以及Float类型在处理科学计算时的灵活性。文章还介绍了Number数据类型的语法结构及其在实际应用中的最佳实践,帮助读者更好地理解和选择合适的数据类型以满足不同的业务需求。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
author-avatar
开在覀黎明前的小茉莉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有