高性能计算:RoCE技术分析及应用( 二 )


高性能计算:RoCE技术分析及应用

文章插图
当网络中的拥塞情况进一步恶化时,交换机检测到某个端口的待发送队列长度达到一个更高的阈值时,交换机将向消息来源的上一跳发送PFC的暂停控制帧,使上游服务器或者交换机暂停向其发送数据,直到交换机中的拥塞得到缓解的时候,向上游发送一个PFC控制帧来通知上有继续发送 。由于PFC的流量控制是支持按不同的流量通道进行暂停的,因此,当设置好了每个流量通道带宽占总带宽的比例,可以一个流量通道上的流量传输暂停,并不影响其他流量通道上的数据传输 。
 
值得一提的是,并不是每一款声称支持RoCE的交换机都完美的实现了拥塞控制的功能 。在我的测试中,发现了某品牌的某款交换机的在产生拥塞时,对来自不同端口但注入速度相同的流量进行ECN标记时概率不同,导致了负载不均衡的问题 。
RoCE和Soft-RoCE虽然现在大部分的高性能以太网卡都能支持RoCE协议,但是仍然有一些网卡不支持RoCE协议 。因此IBM、Mellanox等联手创建了开源的Soft-RoCE项目 。这样,在安装了不支持RoCE协议的网卡的节点上,仍然可以选择使用Soft-RoCE,使其具备了能与安装了支持RoCE协议的网卡的节点使用RoCE协议进行通信的能力,如图3所示 。虽然这并不会给前者带来性能提升,但是让后者能够充分发挥其性能 。在一些场景下,比如:数据中心,可以只将其高IO存储服务器升级为支持RoCE协议的以太网卡,以提高整体性能和可扩展性 。同时这种RoCE和Soft-RoCE结合的方法也可以满足集群逐步升级的需求,而不用一次性全部升级 。
高性能计算:RoCE技术分析及应用

文章插图
将RoCE应用到HPC上存在的问题HPC网络的核心需求
我认为HPC网络的核心需求有两个:①低延迟;②在迅速变化的流量模式下仍然能保持低延迟 。
对于①低延迟,RoCE就是用来解决这个问题的 。如前面提到的,RoCE通过将网络操作卸载到网卡上,实现了低延迟,也减少了CPU的占用 。
 
对于②在迅速变化的流量模式下仍然能保持低延迟,其实就是拥塞控制的问题 。但是关键在于HPC的流量模式是迅速变化的,而RoCE在这个问题上表现是欠佳的 。
RoCE的低延迟
实机测试
RoCE的延迟有幸有机会与IB实测对比了一下:以太网用的是25G Mellanox ConnectX-4 Lx 以太网卡,和Mellanox SN2410交换机;IB用的是100G InfiniBand EDR网卡(Mellanox ConnectX-4),和Mellanox CS7520 。测试中以太网交换机摆位于机架顶部,IB交换机摆在比较远的机柜,因而IB的会因为线缆的实际长度较长而有一点劣势 。测试使用OSU Micro-Benchmarks中的osu_latency对IB、RoCE、TCP协议进行延迟测试,结果如下 。
高性能计算:RoCE技术分析及应用

文章插图
虽然IB用的是100G的,RoCE用的是25G的,但是这里我们关注的是延迟,应该没有关系 。
 
可以看出,虽然RoCE协议的确能大幅降低通信延迟,比TCP快了5倍左右,但仍然比IB慢了47%-63% 。
官方纸面数据
上面用到的以太网交换机SN2410的官方延迟数据是300ns,虽然IB交换机CS7520没找到官方延迟数据,不过找到了同为EDR交换机的SB7800的官方数据,延迟为90ns 。
 
不过上面这些是有些旧的前两年的设备了,新一点的Mellanox以太网交换机SN3000系列的200G以太网交换机官方延迟数据是425ns,更新的Mellanox SN4000系列400G以太网交换机,在官方文档没有找到延迟数据 。新一点的Mellanox IB交换机QM8700系列HDR交换机的官方延迟数据是130ns,最新的QM9700系列NDR交换机,在官方文档中也没有找到延迟数据 。(不知道为啥都是新一代的比旧的延迟还大一点,而且最新一代的延迟都没放出来)
 
定制网络的Cray XC系列Aries交换机延迟大约是100ns,天河-2A的交换机延迟也大约是100ns 。
 
可见在交换机实现上,以太网交换机与IB交换机以及一些定制的超算网络的延迟性能还是有一定差距的 。
RoCE的包结构
假设我们要使用RoCE发送1 byte的数据,这时为了封装这1 byte的数据包要额外付出的代价如下:
  • 以太网链路层:14 bytes mac header + 4 bytes CRC
  • 以太网IP层:20 bytes
  • 以太网UDP层:8 bytes
  • IB传输层:12 bytes Base Transport Header (BTH)
 
总计:58 bytes


推荐阅读