初识RoCE

龅牙兔谈科技 2024-05-13 02:07:00

对InfiniBand技术感兴趣的朋友,可以参见笔者另一部文章合集 - 《InfiniBand》。

RoCE发展史:

RoCE(RDMA over Converged Ethernet,基于融合以太网的远程直接内存访问)是一种在以太网网络上实现 RDMA 技术的协议。

RoCE 旨在将 InfiniBand 中的高性能、低延迟特性带到传统以太网网络中。

1、早期 RDMA 技术:

在 InfiniBand 网络中,RDMA 技术已经成功应用于高性能计算(HPC)、大型存储和金融建模等领域。RDMA 技术通过硬件直接将数据从一台设备的内存传输到另一台设备的内存,极大地减少了 CPU 参与的数据拷贝和延迟。

2、RDMA 技术的优势:

RDMA 提供了极低的延迟和高吞吐量,适用于对网络性能要求苛刻的应用场景。但是,InfiniBand 网络需要特定的硬件和网络配置,限制了其在广泛网络中的应用。

3、融合以太网(Converged Ethernet):

数据中心和企业网络普遍使用以太网作为网络基础架构,融合以太网的概念逐渐成型。融合以太网旨在将传统以太网的优势和 RDMA 的高性能相结合,带来统一的网络传输标准。

4、RoCE v1 的发展:

RoCE v1 作为 RDMA 技术的一部分被提出,将 InfiniBand 网络中的 RDMA 直接移植到以太网网络上。RoCE v1 使用以太网帧直接传输 RDMA 数据,并利用 VLAN 进行网络隔离。

5、RoCE v2 的改进:

RoCE v2 在 v1 的基础上,通过 IP 层(IPv4 或 IPv6)传输数据,使其能够通过 IP 路由传输。这种改进使 RoCE v2 可以在更广泛的网络环境中应用,包括跨数据中心和多租户网络。RoCE v2 也引入了多播和 QoS 支持,为现代云计算和分布式存储提供了更高性能的解决方案。

6、硬件厂商:

Nvidia(Mellanox)、Broadcom、Intel、Marvell、Dell、HPE、Supermicro、华为、浪潮、H3C等。

7、总结:

RoCE 技术的出现是为了将 InfiniBand 中的 RDMA 高性能特性带入以太网网络。它通过融合以太网和 RDMA 技术,为现代数据中心、云计算和分布式存储提供了极低延迟和高吞吐量的网络传输协议。RoCE v1 在局域网中使用 VLAN 隔离,而 v2 则扩展为支持跨 IP 路由的多播和多租户网络应用。RoCEv1 和 RoCEv2对比表:

RoCE v1:基于以太网帧传输,适合局域网和简单网络环境。通过 VLAN 进行隔离,实现低延迟和高吞吐量的 RDMA 通信。

RoCE v2:支持 IP 层路由和多租户网络,适用于现代云计算和广域网环境,但需要配置 IP 协议和封装策略。

比较维度

RoCEv1

RoCEv2

网络协议

直接基于以太网帧进行数据传输

基于 IPv4/IPv6 和 UDP 进行数据传输

隔离机制

依赖 VLAN 实现网络隔离

支持 VXLAN、NVGRE 等网络封装,提供隔离

网络环境

主要用于局域网(LAN),VLAN 隔离

支持广域网(WAN)和多租户网络

路由能力

无法穿越路由器,只能在局域网范围内通信

支持通过路由器进行多播、广域网和多租户通信

配置复杂度

VLAN 隔离相对简单,但需特定硬件支持

需要配置 IP 层协议和封装策略

性能

低延迟和高吞吐量,依赖 VLAN 隔离

低延迟和高吞吐量,同时保持路由能力

应用场景

数据中心局域网、存储网络、计算集群

跨数据中心的多租户云计算、分布式存储网络

QoS 支持

基于以太网的 VLAN 优先级策略

支持 IP 层的 QoS 和以太网优先级

优点

直接基于以太网帧,简单且高效

具备路由能力,适用于广域网和多租户网络

缺点

受 VLAN 隔离的限制,不支持多租户网络

需要额外的 IP 协议配置和网络封装策略

RoCEv2数据包结构:

+---------------------------------------------------+

| Ethernet Frame Header |

+---------------------------------------------------+

| IPv4 / IPv6 Header |

+---------------------------------------------------+

| UDP Header(4791) |

+---------------------------------------------------+

| InfiniBand Header |

| Base Transport Header (BTH) |

| RDMA Extended Transport Header (ETH) |

+---------------------------------------------------+

| Payload (RDMA Data) |

| Immediate Data (可选) |

+---------------------------------------------------+

| Frame Check Sequence (FCS) |

+---------------------------------------------------+

哪些交换机可以配置RoCEv2:

1、支持 DCB 功能:

交换机需要支持数据中心桥接(Data Center Bridging,DCB)功能,以提供网络流量的优先级和隔离。DCB 功能包括优先级流量控制(PFC)、增强传输选择(ETS)和带宽分配。

2、支持 VLAN 和 QoS:交换机需要支持 VLAN 和 QoS 配置,以确保不同流量之间的隔离和优先级。

3、IP 路由能力:RoCE v2 使用 IPv4/IPv6 协议进行传输,交换机应具有 IP 路由能力。

4、多播支持:RoCE v2 使用 UDP 协议进行多播传输,交换机应支持多播功能。

如何配置RoCEv2:switch(config)# dcb enable //确保交换机启用了 DCB 功能switch(config)# pfc priority 3 enable //在 DCB 环境下,PFC 应配置为无丢包传输switch(config)# vlan 100 //创建 VLAN 并分配 RoCE v2 适配器使用的优先级switch(config-vlan)# qos priority 3switch(config)# multicast routing enable //确保交换机支持多播数据的传输switch(config)# ip routing //在交换机上配置 IP 路由功能,以确保 RoCE v2 数据能够通过 IP 路由传输sudo mlxconfig -d <device> set ROCEV2_ENABLE=1 //在 RDMA 适配器所在的服务器上,确保安装了正确的驱动并启用了 RoCE 支持使用 RDMA 测试工具(如 ib_read_bw 或 rping)检查 RoCE v2 网络的性能和连接PFC(Priority Flow Control,优先级流量控制)和ETS(Enhanced Transmission Selection,增强传输选择):

都是标准的网络流量控制协议,主要用于改进以太网数据传输的可靠性和效率,特别是在高性能和高吞吐量的网络环境中。

PFC是一个基于优先级的流量暂停机制,在网络出现拥塞时可以暂停某些低优先级的流量;ETS是一个带宽分配机制,确保不同类型的流量按照设定的比例共享网络带宽。两者结合可以确保在网络拥塞时,关键流量不受影响,而其他流量则可以继续工作,但被限制在设定的带宽范围内。

1. PFC(优先级流量控制):概念:PFC是IEEE 802.1Qbb标准的一部分,是基于优先级的、控制低优先级流量暂停的一种机制。目的:对不同优先级的流量进行独立控制,防止拥塞导致丢包。它会暂停某些低优先级的流量,而不会影响高优先级的流量。2. ETS(增强传输选择):概念:ETS是IEEE 802.1Qaz标准的一部分,提供了一种基于流量类别分配带宽的方法。目的:ETS允许不同类别的流量按照预先配置的带宽比例共享链路资源。它通过带宽管理机制,确保网络资源在不同流量类别之间进行合理分配,避免某一类流量独占带宽。3、应用场景:某数据中心拥有一个高性能计算(HPC)集群,其网络承载不同类型的流量:RDMA数据流、文件传输流和备份流。要求确保关键的RDMA流量得到优先处理,而文件传输和备份流量可以稍有延迟。PFC的角色:* PFC基于优先级暂停机制,网络管理员将RDMA数据流设定为最高优先级,将文件传输和备份流量设置为较低优先级。* 当出现网络拥塞时,PFC只会暂停文件传输和备份流量的传输,以释放更多带宽给RDMA数据流。* 这种机制确保了RDMA流量在传输时不会受到低优先级流量的影响,即使网络拥塞,RDMA流量也能继续畅通无阻地传输。ETS的角色:* ETS基于带宽分配机制,网络管理员使用ETS为每种类型的流量分配带宽比例。* 例如,可以将总带宽的70%分配给RDMA数据流,20%给文件传输流,10%给备份流。* 即使所有类型的流量都在传输,ETS确保每种流量都能获得设定的带宽比例。* 这种方式保证RDMA流量占据主要资源,同时其他流量也能继续工作,不会因为RDMA流量的独占而被完全暂停。DCB(Data Center Bridging,数据中心桥接):

是一组标准和技术集合,旨在改善传统以太网网络在数据中心环境中的性能和可靠性,以满足各种高性能应用的需求。

DCB环境具备以下特点:1、无损以太网:DCB通过优先级流量控制(PFC)等机制,在网络上实现无损传输,避免数据包在网络拥塞时的丢失。2、带宽分配:利用增强传输选择(ETS)标准,为不同类型的流量(如存储、语音、视频和普通数据流)分配带宽,确保不同的应用流量按照预设的比例共享网络资源。3、低延迟和高吞吐:DCB环境能够支持高吞吐量和低延迟的数据传输,适用于高性能计算、实时音视频、云计算等需要实时响应的业务。4、拥塞管理:借助数据中心拥塞通知(QCN)机制,DCB可以更好地管理网络流量,避免拥塞造成的性能下降。5、多样化支持:DCB能够在以太网架构上提供更高的灵活性,使得各种类型的流量可以共享同一个网络,从而降低了复杂性和成本。6、统一网络架构:通过提供无损、低延迟、高吞吐的网络能力,DCB能够支持在统一架构中同时传输存储、语音、视频和其他应用流量,实现网络整合。7、典型应用场景: 高性能计算(HPC) 存储区域网络(SAN) 数据备份和恢复 实时音视频流媒体 超融合基础架构无损RoCE、有损RoCE和Soft-RoCE:有损RoCE:适用于一般应用场景,但可能因数据包丢失导致性能下降。无损RoCE:适用于需要高性能和无损传输的关键应用。Soft-RoCE:适用于开发测试或预算有限的场景,但性能可能不及硬件加速的RoCE。

项目

有损RoCE

无损RoCE

Soft-RoCE

定义

RoCE在传统以太网中运行,不使用PFC等无损机制。

RoCEv2,利用PFC、ETS等DCB技术实现无损传输。

纯软件实现的RoCE,不依赖硬件RDMA。

特点

可能在网络拥塞时丢包;

依赖TCP/IP重传。

通过PFC和ETS确保无损数据传输;

低延迟、高吞吐。

使用标准NIC;

纯软件实现;

性能低于硬件加速的RoCE。

注:Linux内核在4.9通过软件实现了RoCEv2

优点

不依赖DCB设备,部署灵活

实现高性能的无损RDMA通信

部署灵活,无需硬件RDMA

缺点

可能丢包导致性能下降

需要DCB支持,部署成本高

性能受限于软件栈和网络条件

适用场景

性能和延迟要求不高的网络环境;

轻负载集群。

高性能计算、AI训练、大数据分析等高吞吐、低延迟的应用场景。

RDMA应用开发测试或预算有限的场景。

有损RoCE(RoCEv2)配置:switch(config)# interface EthernetXswitch(config-if)# mtu 9000 //配置交换机的MTU为1500或9000字节(使用Jumbo Frames)ibv_devinfo | grep 'RoCEv2' //查询网卡是否支持RoCEv2无损RoCE配置:确保交换机支持DCBX(数据中心桥接交换协议),以自动协商DCB配置。switch(config)# priority-flow-control mode on //配置PFC优先级流量控制switch(config)# priority-flow-control priority X onswitch(config)# policy-map type network-qos ets-policy //配置ETS带宽分配switch(config-pmap-nq)# type qos-group groupXswitch(config-pmap-nq-c)# bandwidth percent 30Soft-RoCE配置:需要安装软件驱动 rdma_rxe,这是Linux内核自带的模块。yum install -y rdma-core.aarch64 //安装RDMA工具包modprobe rdma_rxe //加载rdma_rxe模块rxe_cfg add ethX //为名为ethX的接口启用RDMA

!!!【点赞】、【关注】不走丢^_^

!!!【点赞】、【关注】不走丢^_^



0 阅读:0

龅牙兔谈科技

简介:感谢大家的关注