转自微信号:AI Long Cloud
一、什么是RoCE网络?
RoCE(英文:RDMA over Converged Ethernet)是一种基于以太网的远程直接内存访问(RDMA)技术,旨在通过无损以太网实现低延迟和高吞吐量的数据传输。RoCE技术通过将高性能计算和网络中的RDMA技术引入到标准的以太网基础设施中,使得传统的以太网具备了RDMA功能和高性能计算属性。因此RoCE技术同时具备了以太网和RDMA的强大优势。
RoCE技术允许在现有的以太网网络上实现类似于InfiniBand的高性能,它通过优化以太网协议来减少延迟和提高带宽。与传统以太网相比:RoCE提供了更低的延迟和更高的吞吐量,同时保持了与现有以太网设备间紧密的兼容性。
RoCE的优势:RoCE的主要优势在于它的成本效益和兼容性。由于它是基于以太网的标准,因此可以很好的使用市面上成熟的网络设备和线缆,不受控于单一品牌和地域限制,且具有较好的供货周期及售后服务。关键与以太网及其设备还具备极好的兼容性,极大的提升了灵活性和降低了成本。因此RoCE技术越来越被广泛应用到数据中心、HPC高性能存储和人工智能等领域,成为GPU服务器互联中极具性价比的互连技术。
特别的,如果智算业务未来要上云(即智算云),要部署到基于以太网的公有云或私有云上,那么RoCE网络无疑是个最优的选择。
二、RoCE的发展及类型
1、RoCE v1
2010年4月,IBTA发布了RoCE,此标准是作为Infiniband Architecture Specification的附加件发布的,所以也称为IBoE(InfiniBand over Ethernet)。这时的RoCE标准是在以太链路层之上用IB网络层代替了TCP/IP网络层,所以不支持IP路由功能,因此被称为RoCE v1。
RoCE v1(Layer 2)运作在Ehternet Link Layer(Layer 2),所以RoCE v1协议在以太层的typeID是0x8915,因此正常的Frame大小为1500 bytes,而Jumbo Frame则是9000 bytes。
RoCE v1是基于以太网链路层实现的RDMA协议(交换机需要支持PFC等流控技术,在物理层保证可靠传输),允许在同一个VLAN中的两台主机进行通信。
2、RoCE v2
由于RoCE v1的数据帧不带IP头部,所以只能在L2子网内通信。为了解决此问题,IBTA于2014年提出了RoCE V2,RoCE v2在RoCE v1基础上进行了扩展,将GRH(Global Routing Header)换成UDP header+IP header。RoCE v2克服了RoCE v1绑定到单个VLAN的限制,通过改变数据包封装,包括IP和UDP标头,RoCE v2可以跨L2和L3网络使用,扩展后的帧结构如下图所示。
RoCE v1与RoCE v2数据包格式
RoCE v2(Layer 3)运作在UDP/IPv4或UDP/IPv6之上(Layer 3),采用UDP Port 4791进行传输。因为 RoCE v2的封包是在 Layer 3上可进行路由,所以 RoCE v2也可称为Routable RoCE或简称RRoCE。
RoCE v2是在前一代RoCE v1的基础上演进和改良而来的,通过引入一系列改进措施有效解决了原有局限性问题,并全面提升了性能表现。第二代版本RoCE v2凭借显著的性能提升与更强的灵活性脱颖而出,因此成为了目前市面应用的主流。
RoCE v2典型组网图
三、RoCE的实现
为了实现RoCE互联,网卡设备必须安装支持RoCE的驱动程序,所有以太网NIC(Network Interface Card)需支持RoCE的网络适配器卡(即RoCE网卡)。RoCE驱动程序在Red Hat、Linux、Windows和其他常见的操作系统中都可使用。因此对于实现RoCE网络,需要三种方式:1)对于服务器或主机设备,需要使用RoCE网卡连接。2)对于网络交换机,选择使用支持PFC操作系统的交换机,PFC即优先级流量控制,是构建无损以太网的必选手段之一,能够逐跳提供基于优先级的流量控制,这种个别流量控制方式允许网络在某些流量拥塞时保持流畅,同时防止对其他流量造成干扰,因此确保了大带宽和低延时,这里就不展开了,感兴趣的可以去专题学习。3)构建智能无损的以太网架构。
1、RoCE网卡:
RoCE网卡即一种支持RoCE协议的网卡,采用了RDMA技术,集成了必要的硬件特性,能够将CPU从繁重的任务中解脱出来,从而显著降低数据传输的延迟性,并有力提升整个系统的运行性能和带宽(可学习前2节文章:什么是RDMA技术及其三个协议)。
市面上支持RoCE协议的网卡并不多,用得最多、性能最好的还是:英伟达的ConnectX系列网卡,其中ConnectX-8超级网卡已出来,带宽达到了史上最强800Gb/s。
英伟达ConnectX系列网卡,采用RDMA技术,同时兼容InfiniBand和RoCE协议
例如Intel也有支持RoCE协议的网卡,但是带宽太拉胯,目前市面最高的也就支持100Gb/s,因此在智算领域使用的不是很多。
Intel E810系列网卡
2、具有高性能、大带宽交换机:
RoCE因大带宽的需求,因此往往需要高性能、大带宽的交换机支持,而构建高性能、大带宽网络交换机的核心基础在于交换机的转发芯片技术。
当前布局高带宽交换芯片的企业主要为:博通(Broadcom)、美满、思科、英伟达。而在智能计算交换芯片企业排名靠前的主要就是:博通、英伟达、美满、英特尔、思科。英伟达的交换芯片主要是InfiniBand协议,比较封闭,常用在IB网络中。而博通的交换芯片主要是开源的以太网协议,因此在高带宽的交换芯片市场稳居全球龙头。
博通的Tomahawk系列芯片因强大的性能和高带宽转发能力,已广泛应用于各类交换机产品之中,被普遍用于高速、大容量的数据包转发处理。博通的Tomahawk系列芯片从2010年的Trident到2022年的Tomahawk5的推出,12年的技术革新,使得转发芯片的带宽提升80倍,效率提高95%。
交换机方面,英伟达在以太网方面也有着支持RoCE协议的交换机。Mellanox以太网交换机有:SN3000系列的200G以太网交换机、SN4000系列的400G以太网交换机,以及最新的SN5000系列以太网交换机,传输速率更是达到了800G。
3、智能无损网络的技术架构
除了以上的硬件资源外,在RoCE网络中,我们还需要构建智能无损以太网架构,用于保证网络传输过程中不丢包。
智能无损网络一方面通过流量控制技术和拥塞控制技术来提升网络整体的吞吐量,降低网络时延,另一方面通过智能无损存储网络等技术实现网络和应用系统融合优化。根据智能无损网络技术和TCP/IP协议栈的对应关系,如下就是:智能无损网络的技术架构图:
智能无损网络的技术架构
四、IB与RoCE v2网络的对比
1、技术角度对比
从技术角度看,InfiniBand 使用了较多的技术来提升网络转发性能,降低故障恢复时间,提升扩展能力,降低运维复杂度。
2、业务场景对比
具体到实际业务场景上看,RoCEv2 是足够好的方案,而 InfiniBand 是特别好的方案。
IB和RoCE v2的三维对比图
业务性能方面:由于InfiniBand的端到端时延小于RoCE v2,所以基于 InfiniBand构建的网络在应用层业务性能方面占优。但 RoCE v2的性能也能满足绝大部分智算场景的业务性能要求。
业务规模方面:InfiniBand能支持单集群万卡 GPU 规模,且保证整体性能不下降,并且在业界有比较多的商用实践案例。RoCE v2网络能在单集群支持千卡规模且整体网络性能也无太大的降低。
业务运维方面:InfiniBand较RoCE v2更成熟,包括多租户隔离能力,运维诊断能力等。
业务成本方面:InfiniBand 的成本要高于RoCE v2,主要是InfiniBand 交换机及模块的成本要比以太交换机高一些。
业务供应商方面:InfiniBand 的供应商主要是NVIDIA,RoCEv2 的供应商较多,但是性能较好的还是NVIDIA。
综上,要选择哪个网络技术方案?需要结合公司的具体情况去选择。个人建议:对于初创型、规模不大、各方面经验不是很成熟的智算中心,IB网络无疑是最好选择。而对于这种成熟的大型企业、算力规模较大、网络经验成熟的智算中心,RoCE则是比较好的方向。