1、RoCE技术概览

大家好,我是老张。在数据中心摸爬滚打了十几年,从万兆到25G再到现在的100G/200G,网络技术换了一茬又一茬。但要说近几年最让我兴奋的技术,RoCE绝对排前三。今天咱们就来聊聊这个让存储、AI、HPC圈子都为之疯狂的技术。

1.1 什么是RoCE

RoCE,全称RDMA over Converged Ethernet。说白了,就是在以太网上跑RDMA。

RDMA是什么?远程直接内存访问。传统网络通信,数据要从应用层一路拷贝到内核、网卡,再发出去。接收端反过来再来一遍。这中间CPU参与了很多次数据拷贝,延迟高、开销大。

RDMA的思路很暴力——让网卡直接读写远端内存。数据从应用内存到网卡,中间不经过CPU。延迟从毫秒级降到微秒级,CPU占用率从百分之几十降到几乎为零。

我2016年第一次在项目中部署RoCE时,客户问我:「这玩意儿靠谱吗?」我说:「你试试就知道了。」结果测试下来,存储集群的IOPS翻了三倍,CPU占用率从60%降到了5%。从那以后,我再也没用过传统的TCP/IP方案。

核心要点:RoCE = RDMA + 以太网。它让以太网具备了InfiniBand级别的低延迟和高吞吐能力,同时保留了以太网的生态和成本优势。

1.2 RoCE v1 vs v2

RoCE有两个版本,我分别说说它们的区别。

特性 RoCE v1 RoCE v2
网络层 基于以太网(L2) 基于UDP/IP(L3)
路由能力 仅限同一广播域 支持三层路由
部署范围 单个交换机域 跨网段、跨数据中心
头部开销 较小 较大(多了IP+UDP头)
实际应用 基本被淘汰 主流选择

RoCE v1:它直接在以太网帧里封装RDMA数据。没有IP头,所以只能在同一个二层网络里跑。你想想看,一个数据中心少说几十台交换机,v1只能在一个广播域里用,这限制太大了。我在2017年帮客户做POC时,就因为v1不能跨网段,不得不重新规划网络拓扑,折腾了好几天。

RoCE v2:把RDMA数据封装在UDP包里。有了IP头,就能跨网段路由了。现在几乎所有RoCE部署都是v2。嗯,这里要注意,虽然v2支持路由,但实际部署时最好还是保持网络拓扑尽量扁平,减少跳数。为什么?因为每多一跳,延迟就多一点点,PFC(优先级流控)的配置也复杂一分。

我的建议:新项目直接上RoCE v2。别在v1上浪费时间了,它已经是过去式。

1.3 RoCE vs iWARP

说到RDMA over Ethernet,其实还有另一个选择——iWARP。它俩经常被拿来比较。

对比项 RoCE v2 iWARP
传输层 UDP TCP
丢包处理 依赖无损网络(PFC) TCP重传机制
延迟 极低(1-3μs) 较低(5-10μs)
CPU卸载 完全卸载 部分卸载
网络要求 需要无损以太网 标准以太网即可
生态支持 广泛(Mellanox/Chelsio/Broadcom) 较少(Intel为主)

我个人习惯用RoCE。为什么?三个原因:

  • 延迟更低:RoCE走UDP,没有TCP那套三次握手、拥塞控制的开销。在AI训练场景下,每微秒的延迟都影响整体训练效率。
  • 生态更成熟:NVIDIA(Mellanox)的网卡几乎都支持RoCE,交换机厂商也对RoCE做了大量优化。iWARP主要靠Intel推,市场份额小很多。
  • 性能更稳定:iWARP的TCP卸载在重负载下有时会出问题。我曾经在一个存储项目中测试iWARP,压力上来后CPU占用率突然飙升,排查了半天发现是TCP卸载引擎的bug。

但iWARP也有它的优势——不需要无损网络。如果你的网络基础设施比较老旧,或者不想折腾PFC配置,iWARP可以即插即用。说白了,iWARP是「省心但性能差一点」,RoCE是「性能好但需要调优」。

避坑指南:我曾经见过一个团队,在标准以太网上直接跑RoCE,结果丢包率一高,性能直接崩了。RoCE对丢包极其敏感,必须配合无损网络使用。如果你没有信心搞定PFC和ECN,可以考虑先用iWARP过渡。

1.4 RoCE的应用场景

RoCE现在主要用在三个领域,我分别说说。

存储场景

分布式存储是RoCE最早大规模落地的场景。NVMe over Fabrics(NVMe-oF)搭配RoCE,延迟可以做到10μs以内。我参与过一个金融核心存储项目,用RoCE替换了原来的FC SAN,成本降了60%,性能反而提升了30%。

存储场景下,RoCE主要解决两个问题:

  • 降低存储访问延迟:传统iSCSI走TCP/IP,延迟在100μs级别。RoCE直接降到10μs以下。
  • 释放CPU资源:存储节点的CPU不用处理网络协议栈,可以专心做数据读写。

AI训练场景

这是RoCE目前最火的应用。大模型训练动辄上千张GPU卡,卡间通信效率直接影响训练速度。NVIDIA的DGX系列和HGX系列都标配RoCE网络。

AI训练对网络的要求很明确:

  • 高带宽:200G/400G起步,未来可能到800G
  • 低延迟:AllReduce等集合通信操作,延迟每增加1ms,训练时间可能延长数小时
  • 零丢包:丢包会导致通信超时,整个训练任务可能卡住

我记得去年帮一个互联网公司搭建千卡集群,他们一开始用传统TCP网络做分布式训练,结果通信开销占了总训练时间的40%。换成RoCE后,通信开销降到了10%以内,训练速度提升了将近3倍。

HPC场景

高性能计算是RDMA的老本行。MPI(消息传递接口)应用天然适合RDMA。RoCE在HPC领域的优势是成本——InfiniBand虽然性能更好,但价格贵得多。很多高校和科研机构预算有限,RoCE成了性价比之选。

HPC场景下,RoCE需要注意的点:

  • MPI库的适配:OpenMPI、MVAPICH等主流MPI库都支持RoCE,但需要正确配置
  • 网络拓扑:HPC应用对网络拓扑敏感,Fat-Tree或Dragonfly拓扑更合适
  • 拥塞控制:HPC的通信模式是突发性的,容易造成网络拥塞,需要配合DCQCN等算法

一句话总结:RoCE不是万能的,但在存储、AI、HPC这三个场景下,它是最优解之一。选型时记住三点——要性能选RoCE,要省心选iWARP,要极致选InfiniBand。

RoCE技术全景图 RoCE技术 版本对比:v1 vs v2 RoCE v1 L2网络,不可路由 RoCE v2 L3网络,可路由 协议对比:RoCE vs iWARP RoCE UDP,低延迟 iWARP TCP,易部署 三大应用场景 存储 NVMe-oF AI训练 GPU通信 HPC MPI通信 核心:RDMA over Converged Ethernet 低延迟 · 高吞吐 · 零拷贝 · CPU卸载

好了,RoCE技术概览就聊到这里。从版本选择到协议对比,再到实际应用场景,相信你已经对RoCE有了整体认识。下一章我们深入聊聊RoCE网卡的硬件架构和选型要点。


公众号:蓝海资料掘金营,微信deep3321