RDMA产生背景互联网中大量的在线业务,例如在线搜索、购物、直播等,它需要以非常快的速度对高频率的用户请求做出应答,数据中心内任何一个环节导致延迟,都会对终端用户的访问体验造成极大的影响,从而影响其流量、口碑、活跃用户等。
还有在机器学习和AI的技术趋势下,对计算能力的需求是呈几何级数上升的,为了满足日益复杂的神经网络和深度学习模型,数据中心会存在大量的分布式计算集群,但大量并行程序的通讯延迟,则会极大影响整个计算过程的效率。
另外为了解决数据中心内爆炸式增长的数据存储和读取效率问题,利用以太网融合组网的分布式存储越来越受到欢迎。但因为存储网络中数据流以大象流为主,所以一旦因拥塞造成丢包,将会引发大象流重传,不仅降低效率,还会加重拥塞。
所以从前端用户的体验和后端应用的效率来看,眼下对于数据中心网络的要求是:延迟越低越好,效率越高越好。为了降低数据中心内部网络延迟,提高处理效率,RDMA技术应运而生,通过允许用户态的应用程序直接读取和写入远程内存,而无需CPU介入多次拷贝内存,并可绕过内核直接向网卡写数据,实现了高吞吐量、超低时延和低CPU开销的效果。
以数据中心当前主流的spine-leaf架构为例,其主要是2级、3级CLOS,少数可能达到5级、6级CLOS。而many-to-one流量模型和all-to-all流量模型,使得这种架构在未来数据中心新场景下存在丢包、时延、吞吐等多方面的挑战。
图1 传统TCP/IP数据传输过程
图2 RDMA数据传输过程
传统的TCP/IP软硬件架构及应用存在着网络传输和数据处理的延迟过大、存在多次数据拷贝和中断处理、复杂的TCP/IP协议处理等问题。RDMA(Remote Direct Memory Access,远程直接内存访问)是一种为了解决网络传输中服务器端数据处理延迟而产生的技术。RDMA将用户应用中的数据直接传入服务器的存储区,通过网络将数据从一个系统快速传输到远程系统的存储器中,消除了传输过程中多次数据复制和文本交换的操作,降低了CPU的负载。
RDMA技术优势
RDMA技术实现了在网络传输过程中两个节点之间数据缓冲区数据的直接传递,在本节点可以直接将数据通过网络传送到远程节点的内存中,绕过操作系统内的多次内存拷贝,相比于传统的网络传输,RDMA无需操作系统和TCP/IP协议的介入,可以轻易的实现超低延时的数据处理、超高吞吐量传输,不需要远程节点CPU等资源的介入,不必因为数据的处理和迁移耗费过多的资源。
RDMA技术概述
IB技术
IB简介InfiniBand是一种基于InfiniBand架构的RDMA技术,它提供了一种基于通道的点对点消息队列转发模型,每个应用都可通过创建的虚拟通道直接获取本应用的数据消息,无需其他操作系统及协议栈的介入。InfiniBand架构的应用层采用了RDMA技术,可以提供远程节点间RDMA读写访问,完全卸载CPU工作负载;网络传输采用了高带宽的传输;链路层设置特定的重传机制保证服务质量,不需要数据缓冲。
InfiniBand必须运行在InfiniBand网络环境下,必须使用IB交换机及IB网卡才可实现。
图3 InfiniBand架构
IB技术特点InfiniBand技术具有以下特点
· 应用层采用RDMA技术,降低了在主机侧数据处理的延迟。
· 消息转发控制由子网管理器完成,没有类似以太网复杂的协议交互计算。
· 链路层通过重传机制保证服务质量,不需要数据缓冲,无丢包。
· 具有低延迟、高带宽、低处理开销的特点。
RoCE技术
RoCE简介RoCE技术支持在以太网上承载IB协议,实现RDMA over Ethernet。RoCE与InfiniBand技术有相同的软件应用层及传输控制层,仅网络层及以太网链路层存在差异。
图4 RoCE架构
RoCE协议分为两个版本
· RoCE v1协议:基于以太网承载RDMA,只能部署于二层网络,它的报文结构是在原有的IB架构的报文上增加二层以太网的报文头,通过Ethertype 0x8915标识RoCE报文。
· RoCE v2协议:基于UDP/IP协议承载RDMA,可部署于三层网络,它的报文结构是在原有的IB架构的报文上增加UDP头、IP头和二层以太网报文头,通过UDP目的端口号4791标识RoCE报文。RoCE v2支持基于源端口号hash,采用ECMP实现负载分担,提高了网络的利用率。
RoCE技术特点RoCE使得基于以太网的数据传输能够:
· 提高数据传输吞吐量。
· 减少网络延时。
· 降低CPU负载。
RoCE技术可通过普通以太网交换机实现,但服务器需要支持RoCE网卡,网络侧需要支持无损以太网络,这是由于IB的丢包处理机制中,任意一个报文的丢失都会造成大量的重传,严重影响数据传输性能。
3 构建无损以太网数据中心RoCE在RoCE网络中,我们需要构建无损以太网用于保证数据中心网络传输过程中不丢包。构建无损以太网需支持以下关键特性:
RoCE融合InfiniBand的低时延与以太网的简单和向后兼容,实现零丢包、低时延、大带宽
图5 构建无损以太网络示意图
PFC是构建无损以太网的必选手段之一,能够逐跳提供基于优先级的流量控制。设备在进行报文转发时,根据报文的优先级进入对应映射关系的队列中进行调度转发。当某一优先级报文发送速率超过接收速率,导致接收方可用数据缓冲空间不足时,设备通过PFC PAUSE帧反馈给上一跳设备,上一跳设备收到PAUSE帧报文后停止发送本优先级报文,直到再收到PFC XON帧或经过一定的老化时间后才能恢复流量发送。通过使用PFC功能,使得某种类型的流量拥塞不会影响其他类型流量的正常转发,从而达到同一链路上不同类型的报文互不影响。
ECN是构建无损以太网的必选手段之一。ECN定义了一种基于IP层及传输层的流量控制及端到端拥塞通知机制。ECN功能利用IP报文头中的DS域来标记报文传输路径上的拥塞状态。支持该功能的终端设备可以通过报文内容判断出传输路径上发生了拥塞,从而调整报文的发送方式,避免拥塞加剧。
DCBX是实现无损以太网传输的关键手段之一,用于DCE中各网络单元进行桥能力协商以及远程配置。通过DCBX,交换机之间以及交换机和网卡之间可以协商和自动配置DCB参数,以实现简化配置以及保证配置一致性的目的。
ETS是基于优先级组的带宽分配处理,ETS用于实现承诺带宽。设备通过ETS参数与对端进行协商,控制对端指定类型数据的发送带宽,保证其在接口的承诺带宽范围之内,从而不会因流量拥塞而导致数据丢失。
图6 无损网络组网架构
组网架构:典型的Leaf/Spine组网;
为了避免拥塞丢包,需要在Leaf与Spine之间部署PFC流控技术,同时,Spine设备也需要支持基于拥塞的ECN标记;
Leaf作为服务器网关,支持和服务器之间基于PFC的流量控制,同时支持拥塞ECN标记;为了提高吞吐量,需要在服务器网卡支持DCQCN,将发送速率调整到最优;
全网设备部署PFC、ECN,基于业务特征配合可视化技术,SDN控制器根据业务流量特征实现水线调优,为网络的稳定运行提供无损保障;
利用可视化技术将芯片的Buffer、Latency、Micro Burst等状态信息上报到SDN controller,充分发挥SDN controllor的智能分析能力,并通过标准的API接口完成整个网络的运维和优化。
结束语
RDMA网络正是通过在网络中部署PFC和ECN功能来实现无损保障。PFC技术让我们可以对链路上RDMA专属队列的流量进行控制,并在交换机入口(Ingress port)出现拥塞时对上游设备流量进行反压。利用ECN技术我们可以实现端到端的拥塞控制,在交换机出口(Egress port)拥塞时,对数据包做ECN标记,并让流量发送端降低发送速率。
从充分发挥网络高性能转发的角度,我们一般建议通过调整ECN和PFC的buffer水线,让ECN快于PFC触发,即网络还是持续全速进行数据转发,让服务器主动降低发包速率。如果还不能解决问题,再通过PFC让上游交换机暂停报文发送,虽然整网吞吐性能降低,但是不会产生丢包。
在数据中心网络中应用RDMA,不仅要解决转发面的无损网络需求,还要关注精细化运维,才能应对延迟和丢包敏感的网络环境。