浅析RoCE网络技术

在数据为王的时代,人们对网络的要求更加严苛。然而传统的TCP / IP以太网连接占用了大量的CPU资源,并且需要额外的数据处理,已无法再满足当前更快、更高效和可扩展性的网络需求。在这种情况下,RoCE(RDMA over Converged Ethernet )走进了人们的视野。

什么是RDMA?

RDMA(远程直接数据存取)就是为了解决网络传输中服务器端数据处理的延迟而产生的,无需使用CPU,就可以从一个主机或服务器的内存直接访问另一主机或服务器的内存。它释放了CPU去执行其应做的工作,比如运行应用程序和处理大量数据。这既提高了带宽又降低了延迟、抖动和 CPU 消耗。

RDMA技术

因此,RDMA可以简单理解为利用相关的硬件和网络技术,服务器1的网卡可以直接读写服务器2的内存,最终达到高带宽、低延迟和低资源利用率的效果。

如下图所示,应用程序不需要参与数据传输过程,只需要指定内存读写地址,开启传输并等待传输完成即可。

目前,大致有三类RDMA网络,分别是Infiniband、RoCE、iWARP。其中,Infiniband是一种专为RDMA设计的网络,从硬件级别保证可靠传输 ,而RoCE 和 iWARP都是基于以太网的RDMA技术,支持相应的verbs接口。

什么是RoCE?

顾名思义,RoCE是在InfiniBand Trade Association(IBTA)标准中定义的网络协议,允许通过以太网络使用RDMA。简而言之,它可以看作是RDMA技术在超融合数据中心、云、存储和虚拟化环境中的应用。

RoCE的类型

RoCE协议存在RoCEv1和RoCEv2两个版本,这取决于所使用的网络适配器或网卡。

RoCE v1:RoCE v1是基于以太网链路层实现的RDMA协议(交换机需要支持PFC等流控技术,在物理层保证可靠传输),允许在同一个VLAN中的两台主机进行通信。RoCE V1协议在以太层的typeID是0x8915。

RoCE v2:RoCE v2克服了RoCE v1绑定到单个VLAN的限制。通过改变数据包封装,包括IP和UDP标头,RoCE v2现在可以跨L2和L3网络使用。

RoCE v1与RoCE v2数据包格式

如何实现RoCE?

通常,为了实现RoCE,可以安装支持RoCE的网卡或卡驱动程序。所有以太网NIC都需要RoCE网络适配器卡。RoCE驱动程序在Red Hat、Linux、Microsoft Windows和其他常见操作系统中使用。RoCE有两种可用方式:对于网络交换机,可以选择使用支持PFC(优先流控制)操作系统的交换机;对于机架服务器或主机,需要使用网卡。

RoCE的好处

  • 低CPU占用率:访问远程交换机或服务器的内存,无需消耗远程服务器上的CPU周期,从而可以充分利用可用带宽和更高的可伸缩性。
  • 零复制:向远程缓冲区发送数据和接收数据。
  • 高效:由于RoCE改善了延迟和吞吐量,网络性能得到了很大提高。
  • 节省成本:借助RoCE,无需购买新设备或更换以太网基础设施即可处理大量数据,从而大大节省了公司的资本支出。

关于RoCE的常见问题

下面列出了一些有关RoCE的常见问题。

1. RoCE与iWARP、InfiniBand的技术对比

RDMA最早在Infiniband传输网络上实现,技术先进,但是价格高昂,后来业界厂家把RDMA移植到传统Ethernet以太网上,降低了RDMA的使用成本,推动了RDMA技术普及。在Ethernet以太网上,根据协议栈融合度的差异,分为iWARP和RoCE两种技术,而RoCE又包括RoCEv1和RoCEv2两个版本(RoCEv2的最大改进是支持IP路由),各RDMA网络协议栈的对比如下图所示。

  • Infiniband,支持RDMA的新一代网络协议。 由于这是一种新的网络技术,因此需要支持该技术的NIC和交换机。
  • RoCE,一个允许在以太网上执行RDMA的网络协议。 其较低的网络标头是以太网标头,其较高的网络标头(包括数据)是InfiniBand标头。 这支持在标准以太网基础设施(交换机)上使用RDMA。 只有网卡应该是特殊的,支持RoCE。
  • iWARP,一个允许在TCP上执行RDMA的网络协议。 IB和RoCE中存在的功能在iWARP中不受支持。 这支持在标准以太网基础设施(交换机)上使用RDMA。 只有网卡应该是特殊的,并且支持iWARP(如果使用CPU卸载),否则所有iWARP堆栈都可以在软件中实现,并且丧失了大部分RDMA性能优势。

RoCE和iWARP,一个是基于无连接协议UDP,一个是基于面向连接的协议(如TCP)。RoCEv1只能局限在一个二层广播域内,而RoCEv2和iWARP都能够支持三层路由。相比RoCE,在大型组网的情况下,iWARP的大量TCP连接会占用大量的额内存资源,对系统规格要求更高。另外,RoCE支持组播,而iWARP还没有相关的标准定义。

2. RoCE适配器可以与其他适配器类型(例如iWARP)通信吗?

RoCE适配器只能与其他RoCE适配器通信,如果混合适配器类型配置的话,例如RoCE适配器与iWARP适配器组合,都可能会恢复为传统的TCP / IP连接。

结论

在数据中心中运行RDMA,可以减轻数据移动的负担,并为应用程序提供更高的CPU资源可用性。RoCE协议可以从RDMA的功能中受益,而无需更改其网络基础架构。通过减少以太网延迟和CPU开销,RoCE可以提高搜索、存储、数据库和高事务处理率应用程序的性能。通过提高CPU效率和应用程序性能,RoCE可以减少所需的服务器数量,从而节省能源,并减少基于以太网的数据中心的占用空间。

原文链接:https://community.fs.com/blog/roce-rdma-over-converged-ethernet.html


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/24673.html
分享到:
相关文章
条评论

登录后才可以评论

大脸肥飞猫 发表于21-01-07
3