星融元:浅谈RDMA与低时延网络
网络的发展好像在各方面都是滞后于计算和存储,时延方面也不例外,网络传输时延高,逐渐成为了数据中心高性能的瓶颈。
数据中心进行高性能分布式并高性能计算时的过程会产生数据流,形成了占据70%流量的东西向流量。这些流量,一般为通过TCP/IP网络传输。所以如果能够提升服务器之间的TCP/IP传输速率,,那么数据中心的性能自然也会跟着提升。
于是,RDMA的作用开始发挥了,并广泛应用于高性能(HPC)科学计算中。随着数据中心高带宽、低时延的发展需求,RDMA也开始逐渐应用于某些要求数据中心具备高性能的场景中。
RDMA( Remote Direct Memory Access,远程直接地址访问技术 )是一种新的内存访问技术,RDMA将服务器应用数据直接由内存传输到智能网卡(固化RDMA协议),由智能网卡硬件完成RDMA传输报文封装,这样就可以让服务器直接高速读写其他服务器的内存数据,而不需要经过操作系统/CPU耗时的处理。具体看如下:
RDMA的内核旁路机制允许应用与网卡之间的直接数据读写,规避了TCP/IP的限制,将协议栈时延降低到接近1us。RDMA的内存零拷贝机制,无需在应用程序内存和操作系统中的数据缓冲区之间复制数据。这样的传输不需要CPU、缓存或上下文切换器完成任何工作,大幅度降低了消息传输中的处理延迟,同时传输与其他系统操作并行进行,提高了网络传输的性能。
图1:传统模式和RDMA模式的对比
通过对比传统模式和RDMA模式对发送和接收数据的处理过程,RDMA技术最大的突破在于给数据中心通信架构带来了低时延、超低的CPU和内存资源占用率等特性。
低时延主要体现在RDMA的零拷贝网络和内核旁路机制。零拷贝网络网卡可以直接与应用内存相互传输数据,消除了在应用内存与内核内存之间的数据复制操作,使传输延迟显著降低。内核内存旁路机制使应用程序无需执行内核内存调用就可向网卡发送命令。在不需要任何内核内存参与的条件下,RDMA请求从用户空间发送到本地网卡,再通过网络发送给远程网卡,这就减少了在处理网络传输流时内核内存空间与用户空间之间环境切换的次数,降低了网络时延。
超低CPU和内存资源占用率主要体现在应用程序可以直接访问远程内存,而不占用远程服务器中的任何CPU资源,远程CPU中的缓存资源也不会被访问的内容填满,服务器可以将几乎100%的CPU资源和内存资源提供给计算或其他的服务,节省了服务器资源占用的同时,提高了服务器数据处理带宽。
基于对“HPC高性能计算的网络需求”和“RDMA技术”的分析和理解,星融元Asterfusion推出了CX-N系列超低时延云交换机
使用RoCEv2,降低传输协议时延
目前RDMA的网络层协议有三种选择,分别是InfiniBand、iWarp(internet Wide Area RDMA Protocol)、RoCE(RDMA over Converged Ethernet)。
RoCE,允许应用通过以太网实现远程内存访问的网络协议,也是由IBTA提出,是将RDMA技术运用到以太网上的协议。同样支持在标准以太网交换机上使用RDMA,只需要支持RoCE的特殊网卡,网络硬件侧无特殊要求。目前RoCE有两个协议版本,RoCEv1和RoCEv2,RoCEv2是一种网络层协议,可以实现路由功能,允许不同广播域下的主机通过三层访问,是基于UDP协议封装的。但由于RDMA对丢包敏感的特点,而传统以太网又是尽力而为存在丢包问题,所以需要交换机支持无损以太网。
在这几类RDMA网络中,RoCEv2的性能较好、部署成本低。星融元Asterfusion CX-N系列云交换机搭建的超低时延无损以太网能够很好地承载RoCEv2,并基于RoCEv2打造一张低时延、零丢包、高性能的HPC高性能计算网络。
图2:网络融合大趋势下的RDMA
超低时延交换芯片,降低网络转发时延
星融元Asterfusion CX-N系列云交换机,具备业界领先的超低时延能力,可满足高性能计算三大典型场景的低时延网络的需求以及对紧耦合场景中“对于各计算节点间彼此工作的协调、计算的同步以及信息的高速传输有很强的依赖性”提出的超低时延需求。使用 CX-N系列云交换机搭建的高性能计算网络,可大幅降低业务的处理时延,提升高性能计算性能。
使用PFC高优先级队列,提供无损网络
PFC是暂停机制的一种增强,PFC允许在一条以太网链路上创建8个虚拟通道,为每条虚拟通道指定一个优先等级并分配专用的资源(如缓存区、队列等等),允许单独暂停和重启其中任意一条虚拟通道而不影响其他虚拟通道流量的传输,保证其它虚拟通道的流量无中断通过。这一方法使网络能够为单个虚拟链路创建无丢包类别的服务,使其能够与同一接口上的其它流量类型共存。
图3:PFC的工作机制
使用ECN拥塞控制算法,消除网络拥塞
ECN(Explicit Congestion Notification,显式拥塞通知)是构建无损以太网的重要手段,能够提供端到端的流量控制。通过使用ECN功能,网络设备一旦检测到出现了拥塞,会在数据包的IP头部ECN域进行标记。被ECN标记过的数据包到达它们原本要到达的目的地时,拥塞通知就会被反馈给流量发送端,流量发送端再通过对有问题的网络数据包进行限速来回应拥塞通知。从而降低网络延迟与抖动,进而提升高性能计算集群的性能。
图4:ECN的工作机制
- 发送端服务器发送IP报文标记ECN。
- 交换机在队列拥塞的情况下收到该报文,修改报文ECN字段并转发。
- 接收端服务器收到被标记的拥塞报文,正常处理该报文。
- 接收端产生拥塞通告,周期发送CNP(Congestion Notification Packets)报文,要求报文不能被网络丢弃。
- 交换机收到CNP报文后正常转发该报文。
- 发送服务器收到被标记的CNP报文,解析后使用对应的数据流限速算法进行限速。