无损网络下交换机实现

2019-03-04 11:05黄米青
电脑知识与技术 2019年34期

黄米青

摘要:面对高性能计算、大数据分析和浪涌型IO高并发、低时延(集中式网盘)应用,RDMA技术可以提供极低的延时和更高速的数据传输处理。RDMA技术要求的无损网络通过在交换机上支持RoCE协议来实现。而RoCE协议中的PFC,ECN等水线设置可以通过静态配置或者动态配置算法来实现低延时和无损传输,本文主要就这些水线参数的设置做理论推导分析,可以作为水线调参优化的理论原则。

关键词:RDMA;PFC;ECN

中图分类号:TP393文献标识码:A

文章編号:1009-3044(2019)34-0050-03

1 概述

面对高性能计算、大数据分析和浪涌型IO高并发、低时延(集中式网盘)应用,现有TCP/IP软硬件架构和应用高CPU消耗的技术特征根本不能满足应用的需求。RDMA是一种远端内存直接访问技术。RDMA最早专属于Infiniband架构,随着在网络融合大趋势下出现的RoCE和iWARP,这使高速、超低延时、极低CPU使用率的RDMA得以部署在目前使用最广泛的以太网上。

基于InfiniBand的RDMA是在2000年发布规范,属于原生RDMA。

基于TCP/IP的RDMA称作iWARP,在2007年形成标准,主要包括MPA/DDP/RDMAP三层子协议。

基于Ethernet的RDMA叫作RoCE,在2010年发布协议,基于增强型以太网并将传输层换成IB传输层实现。RoCE(当前已发展到RoCEv2版本)是基于无连接协议的UDP协议,相比面向连接的TCP协议,UDP协议更加快速、占用CPU资源更少,但其不像TCP协议那样有滑动窗口、确认应答等机制来实现可靠传输,一旦出现丢包,RoCEv2需要依靠上层应用检查到了再做重传,会大大降低RDMA的传输效率。

基于RDMA的要求,数据中心交换机要求具备如下特性:

1)零丢包,不造成重传时延,保证分布式高性能应用的高效稳定。通过PFC和ECN水线设置实现零丢包特性。

2)低时延,特别是网络中的动态时延包括内部排队时延和丢包重传时延,这部分延时占了网络整体时延的99%

3)高吞吐,满足高性能服务器对带宽的需求,减少报文排队,确保分布式高性能应用中大数据传输的吞吐。当前数据中心交换机为了支持高性能服务器,带宽已经演进到25G/100G,未来1-2年内还会继续演进到50G/200G/400G。

2 RDMA应用拟合模型

数据中心流行的CLOS网络架构:Spine+Leaf网络架构。CLOS网络通过等价多路径实现无阻塞性和弹性,交换机之间采用三级网络使其具有可扩展、简单、标准和易于理解等优点。除了支持Overlav层面技术之外,Spine+Leaf网络架构的另一个好处就是,它提供了更为可靠的组网连接,因为Spine层面与Leaf层面是全交叉连接,任一层中的单交换机故障都不会影响整个网络结构。这种架构下不可避免会出现多打一的情况,而这造成网络丢包最大的原因。而解决这种情况下的网络丢包主要就是在交换机上实现PFC和ECN相关水线的合理配置。

PFC是DCB的一部分,它适用于DCB网络中的全双工的点到点链路。PFC是对IEEE 802.3定义的流控机制的增强,用于在一个链路上消除由于拥塞而导致的丢包。它的增强在于它是基于优先级的。传统的流控机制中,当某条链路出现拥塞时流控会阻止该链路上的所有流量。交换机的MMU水线主要有PG Guaranteed,PG Dymanic Pool(可通过α动态分配每个端口的水线),headroom值,其中headroom的就是在多打一的流量模型下,入口出现拥塞后为无损队列设置的缓存空间,当缓存使用超过其中的headroom水线后,就会出现丢包。

RoCEv2定义了RoCEv2 Congestion Management (RCM),其中拥塞管理用的特性ECN(RFC 3168)是在交换机出口(egressport)发起的拥塞控制机制。当交换机的出口buffer达到设定的阈值(ECN门限)时,交换机会改变数据包头中的ECN位来给数据打上ECN标签,当带ECN标签的数据到达接收端以后,接收端会生成CNP(Congestion Notification Packet)并将它发送给发送端,CNP包含了导致拥塞的flow或QP的信息,当接收端收到CNP后,会采取措施降低发送速度。可见ECN是基于TCP flow或RDMA QP的拥塞控制机制,它只对导致拥塞的flow或QP起作用,不会影响到其他的应用,交换机的ECN水线主要是Queue Dynamic Pool(可通过α动态分配每个出口队列的水线)。

网络无损主要就是在使能ECN或者PFC的相关MMU水线通过合理配置,由于PFC有死锁和风暴问题,因此在端口拥塞状态下,在确保不丢包的情况下,ECN机制要先于PFC机制产生,需要合理设置ECN门限,使得ECN门限和PFC门限之间的缓存空间能够容纳ECN拥塞标记之后到源端降速之前这段时间发送过来的流量,尽可能地避免触发网络PFC流控。

以下是在多打一,多打多流并发模型下,推导下这几个水线值应该满足哪些条件可以实现网络无损传输。

2.1 Headroom水线配置

主要用于缓存设备触发PFC,到PFC实际生效这段延时期间仍在发送的报文流量,影响的几个因素主要有:

接收端设备触发PFC流控是光纤线路上残留的报文流量,和线路传输延时相关,记为tl;

接收端设备触发PFC生成PFC报文并准备发送的处理时间t2;

接收端设备发送PFC报文前等待未发送完成报文完成传输的延时t3,延时和报文长度有关,最大为出口mtu;