智能无损网络技术白皮书
Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
智能无损网络是通过硬件架构、智能无损算法和一系列的网络技术,为人工智能、分布式存储、HPC(High Performance Computing,高性能计算)等应用场景提供的“无丢包、低时延、高吞吐”网络环境,加速计算和存储的效率,为数据中心构建统一融合的网络。
随着全球企业数字化转型的加速进行,互联网应用在生产、生活领域的不断深入,存储网络的规模越来越大,需要处理的数据越来越多,总部和分支机构的数据中心部署在不同的物理位置,RDMA(Remote Direct Memory Access,远程直接内存访问功能)成为存储网络的主流技术。RDMA利用相关的硬件和网络技术,使主机的网卡之间可以直接读内存,最终达到高带宽、低时延和低资源消耗率的效果。然而,RDMA提出之初是承载在无损的IB(Infinite Band,无限带宽)网络中的,专用的IB网络架构封闭,无法兼容现网,使用成本较高,于是,RoCE(RDMA over Converged Ethernet)应运而生。
RoCE使用以太网承载RDMA的网络协议,有两个版本:RoCEv1(一种链路层协议,不同广播域下无法使用);RoCEv2(一种网络层协议,可以实现路由功能)。
当前高性能计算、分布式存储、人工智能等应用均采用RoCEv2协议来降低CPU的处理和时延,提升应用的性能。但是RoCEv2是一种基于无连接的UDP协议,缺乏完善的丢包保护机制,对于网络丢包异常敏感。同时,分布式高性能应用是多对一通信的Incast流量模型,对于以太网的设备,Incast流量易造成设备内部队列缓存的瞬时突发拥塞甚至丢包,带来时延的增加和吞吐的下降,从而损害分布式应用的性能。所以为了发挥出RDMA的真正性能,突破数据中心大规模分布式系统的网络性能瓶颈,势必要为RDMA搭建一套“无丢包、低时延、高吞吐”的无损网络环境。
智能无损网络是一系列技术的集合,它一方面通过流量控制技术和拥塞控制技术来提升网络整体的吞吐量,降低网络时延,另一方面通过智能无损存储网络等技术实现网络和应用系统融合优化。
计算、存储、网络是数据中心的三要素,三者需要协同发展。
当前业界在计算芯片算力、存储读取速度方面取得了巨大的进展。从2016年到2021年,近5年GPU/AI芯片算力增长了90倍。采用NVMe(Non Volatile Memory Express,非易失性内存主机控制器接口规范)接口协议的SDD存储介质访问性能相对HDD机械硬盘提升了10000倍,读写存储介质的时延主要取决于网络时延的大小。随着存储介质和计算处理器的演进,网络通信的时延成为阻碍计算和存储效率的进一步提升的短板。因此为数据中心提供一套“无丢包、低时延、高吞吐”的无损网络环境是未来发展的关键需求。
智能无损网络一方面通过流量控制技术和拥塞控制技术来提升网络整体的吞吐量,降低网络时延,另一方面通过智能无损存储网络等技术实现网络和应用系统融合优化。根据智能无损网络技术和TCP/IP协议栈的对应关系,智能无损网络的技术架构如图1所示:
· 在物理硬件层,智能无损网络需要支持智能无损算法的AI芯片和转发/交换芯片的支持。
· 在数据链路层,部署流量控制技术PFC(Priority-based Flow Control,基于优先级的流量控制),同时预防PFC死锁问题。PFC技术由IEEE 802.1Qbb定义,用于解决拥塞丢帧问题。
· 在网络层,智能无损网络可以应用如下拥塞控制技术:
¡ ECN(Explicit Congestion Notification,显式拥塞通知)技术:ECN是一种端到端的网络拥塞通知机制,它允许网络在发生拥塞时不丢弃报文,在RFC 3168中定义。
¡ ECN Overlay技术:将ECN技术应用到VXLAN网络中,以实现VXLAN网络中端到端的拥塞通知机制。
¡ 大小流区分调度:设备端口转发报文时还会使用QoS的拥塞管理技术进行队列调度,提供不同的服务标准。网络中流量被管理员区分为大小流,并区分调度,以保证大流的吞吐率和小流的时延需求。
¡ AI ECN功能:AI ECN结合了智能算法,可以基于智能算法对现网流量模型进行预测,并动态调整ECN低门限。
¡ IPCC(Intelligent Proactive Congestion Control,智能主动拥塞控制)是一种以网络设备为核心的主动拥塞控制技术,可以根据设备端口的拥塞状态,准确控制服务器发送RoCEv2报文的速率。
· 在传输层可以采用ECMP(Equal-Cost Multi-Path Routing,等价路由)对网络中的流量进行负载分担。
· 在应用层,智能无损网络提供了iNOF(Intelligent Lossless NVMe Over Fabric,智能无损存储网络)功能,通过对iNOF主机的快速管控,提升存储网络的易用性,实现以太网和存储网络融合。
PFC(Priority-based Flow Control,基于优先级的流量控制)是构建无损以太网的必选手段之一,能够逐跳提供基于优先级的流量控制。
PFC功能基于dot1p(802.1p)优先级对报文进行流量控制。如图2所示,PFC允许在一条以太网链路上创建8个虚拟通道,并为每条虚拟通道指定一个dot1p优先等级。在不影响其他通道流量转发的情况下,任意一条虚拟通道都可以单独暂停和重启。通过此机制可以实现同一接口上多种类型流量共存、多种流量共享链路。
图2 PFC工作原理示意图
如图2所示,Device A的发送接口和Device B的接收接口上均有8个优先级和8个接口缓存空间(Buffer)。接口优先级和接口队列一一对应,形成8个虚拟化通道,每个虚拟化通道的数据缓存能力不同。
如图3所示,当Device B的接口上某个队列接收缓存产生拥塞时,即该队列的缓存消耗较快,超过缓存门限时,Device B向所有上游设备(数据报文的来源)发送反压信号(PFC PAUSE帧)。Device A接收到反压信号,会根据反压信号的指示,停止发送对应优先级的报文,并将数据存储到本地接口的缓存空间。如果Device A本地接口的缓存消耗超过缓存门限,则也向上游设备发送反压信号。如此,一级一级的发送反压信号,直到抵达网络终端设备,从而消除网络节点因拥塞造成的丢包。Device E接收到反压信号后,对该队列报文进行缓存,未达到Device E的缓存门限时,不向上游设备发送反压信号。
图3 多级设备之间的PFC PAUSE帧处理示意图
如图4所示,由于服务器网卡故障等问题,服务器不断发送PFC PAUSE帧,使PFC PAUSE帧在网络内泛洪,导致网络内设备无法转发报文,使整网业务瘫痪。这种现象称为PFC死锁。
图4 PFC死锁产生示意图
如图5所示,Device B的端口Interface收到来自Device A的PFC PAUSE帧后,停止发送对应优先级队列的报文。Device B启动PFC死锁检测定时器,在检测周期内检测该优先级队列收到的PFC PAUSE帧。
图5 触发PFC死锁检测示意图
如图6所示,如果在PFC死锁检测周期内,Device B上端口Interface的指定优先级队列一直处于PFC XOFF(PFC反压帧触发门限)状态,即在检测周期内该优先级队列持续不断地收到PFC PAUSE帧,则Device B判定Device A发生死锁,进入死锁状态。
图6 PFC死锁判定示意图
PFC反压帧触发门限是缓冲区中某dot1p优先级报文在该存储空间使用的资源上限。该dot1p优先级报文占用的资源达到上限后,会触发设备发送PFC PAUSE帧。
设备检测到某个接口发生死锁后,将启动自动恢复定时器。在自动恢复周期内,设备将关闭该接口的PFC功能和PFC死锁检测功能,以忽略接口收到的PFC PAUSE帧。同时,设备对数据报文执行转发或丢弃动作(由管理员手工配置),以规避PFC死锁问题。
在自动恢复定时器超时后,设备将开启PFC功能和PFC死锁检测功能。如果经过死锁恢复后,仍不断出现PFC死锁现象,管理员可以设置PFC死锁的触发上限,当PFC死锁发生次数到达上限后,设备将强制关闭PFC功能和PFC死锁检测功能。待排除故障后,需要管理员手工恢复PFC功能和PFC死锁检测功能。
PFC死锁预防是指设备通过识别易造成PFC死锁的业务流,修改队列优先级,从而预防PFC死锁的发生。
如图7所示,正常情况下,业务流量转发路径为Server 1-Leaf 1-Spine 1-Leaf 2-Server 4。当出现Leaf 2和Server 4间链路故障等问题时,将可能导致业务流量从Leaf 2回流,向Spine 2转发。故障流量在Leaf 2-Spine 2-Leaf 1-Spine 1间转发,形成环路。如果Spine设备和Leaf设备接口的缓存空间中使用的资源达到PFC XOFF门限,则Spine设备和Leaf设备向故障流量的上游发送PFC PAUSE帧。PFC PAUSE帧在环网中持续发送,最终导致所有设备进入PFC死锁状态,整网断流。
图7 环网PFC死锁示意图
PFC死锁预防功能中定义了端口组概念,如图8所示,Leaf 2设备上interface 1与interface 2属于同一端口组。当Leaf 2设备检测到同一条业务流从属于该端口组的接口上进出,即说明该业务流是一条高风险的钩子流,易形成PFC PAUSE帧环路,引起PFC死锁。
具有相同PFC死锁预防功能配置的接口属于同一端口组。有关PFC死锁预防功能配置,请参见相关配置手册。
图8 PFC钩子流
目前,PFC死锁预防仅针对携带DSCP值的业务流量。
设备收到报文后,会根据报文的DSCP值以及设备上dscp-dot1p的映射关系,将该报文加入指定dot1p优先级的队列转发。PFC死锁预防功能工作原理为:
(1) 部署端口组:管理员提前规划,将可能产生PFC PAUSE帧的接口划分到同一端口组。
(2) 识别钩子流。
(3) 修改映射关系:设备收到报文后,修改报文的DSCP值和对应的dot1p优先级,使报文在新的dot1p优先级队列中使用新的DSCP值转发。
如图9所示,Device A发送指定DSCP值的业务流量。Device B收到业务流量后,根据报文的DSCP值以及设备上dscp-dot1p的映射关系,让业务流量在队列1中转发。如果Device B检测到该业务流量为钩子流,易引起PFC死锁,则Device B会修改业务流量队列优先级,使业务流量切换到队列2转发,这样就可以规避队列1可能产生的PFC PAUSE帧,预防PFC死锁的产生。
图9 PFC死锁预防工作原理示意图
拥塞控制是指对进入网络的数据总量进行控制,使网络流量保持在可接受水平的一种方法。拥塞控制与流量控制的区别在于:
· 流量控制是由接收端来控制数据传输速率,防止发送端过快的发送速率引起接收方拥塞丢包;
· 拥塞控制是一个全网设备协同的过程,所有主机和网络中的转发设备均参与控制网络中的数据流量,以达到网络无丢包、低时延、高吞吐的目的。
在现网中,流量控制和拥塞控制需要配合应用才能真正解决网络拥塞。
在当前的数据中心网络中,ECN功能是应用最广泛的一种拥塞控制方法,本章节介绍ECN、ECN Overlay、大小流区分调度、AI ECN和IPCC等功能的基本原理。
ECN(Explicit Congestion Notification,显式拥塞通知)是一种拥塞通知技术,ECN功能利用IP报文头中的DS域来标记报文传输路径上的拥塞状态。支持该功能的终端设备可以通过报文中的ECN标记判断出传输路径上是否发生了拥塞,从而调整报文的发送方式,避免拥塞加剧。
在RFC 2481标准中,IP报文头中DS域的最后两个比特位被定义为ECN域,并进行了如下定义:
· 比特位6用于标识发送端设备是否支持ECN功能,称为ECT位(ECN-Capable Transport)
· 比特位7用于标识报文在传输路径上是否经历过拥塞,称为CE位(Congestion Experienced)
图10 IPv4报文头中的ECN域示意图
如图10所示以IPv4报文为例,RFC 3168对ECN域的取值进行如下规定:
· ECN域的取值为00时,表示该报文不支持ECN功能。
· ECN域的取值为01或者10时,表示该报文支持ECN功能,分别记为ECT(0)或ECT(1)。
· ECN域的取值为11时,表示该报文在转发路径上发生了拥塞,记为CE。
类似IPv4报文,RFC 3168规定IPv6基本报文头中Traffic Class字段的最后两位被定义为ECN域。
ECN功能需要和WRED策略配合应用。
如图11所示,没有开启ECN功能的WRED策略按照一定的丢弃策略随机丢弃队列中的报文,WRED策略为每个队列都设定上限长度QL_max和下限长度QL_min,对队列中的报文进行如下处理:
· 当队列的长度小于下限QL_min时,不丢弃报文;
· 当队列的长度超过上限QL_max时,丢弃所有到来的报文;
· 当队列的长度在上限QL_max和下限QL_min之间时,开始随机丢弃到来的报文。队列越长,丢弃概率越高,队列丢弃概率随队列长度线性增长,不超出最大丢弃概率x%。
图11 WRED丢弃概率与队列长度示意图
如图12所示,在部署ECN功能的WRED策略的组网图中,存在三类设备角色:
· 转发设备(Congestion Point):报文在网络中转发路径上经过的设备,转发设备支持ECN功能,可以识别报文中ECN域的取值。报文在转发设备的接口上可能发生拥塞,所以转发设备又称为Congestion Point,转发设备需要部署ECN功能的WRED策略。
· 报文接收端(Notification Point):接收端设备网卡支持ECN功能,可以识别报文中取值为01、10或者11的ECN域。接收端同时作为拥塞通知的发起设备,收到ECN域取值为11的报文时,将每隔时间周期T1发送拥塞通知报文给报文发送端,要求发送端降低报文发送速率。
· 报文发送端(Reaction Point):发送端设备网卡支持ECN功能,从发送端发出报文的ECN域的取值为01或者10。发送端同时作为拥塞通知的应答设备,收到拥塞通知时,将以一定的降速比率降低当前自身发送报文的发送速率,并开启计时器,当计时器超出时间T2(T2>T1)后,发送端设备未再次收到拥塞通知,则发送端认为网络中不存在拥塞,恢复之前的报文发送速率。当计时器在时间T2(T2>T1)内,发送端设备再次收到拥塞通知,则发送端进一步降低报文发送速率。
图12 部署ECN功能的WRED策略的组网图
部署了ECN功能的WRED策略的转发设备(Congestion Point)对接收到的数据报文进行识别和处理的具体处理方式如下:
· 当转发设备的报文在出方向进入队列排队,该队列的长度小于下限QL_min(QL_min也称为ECN低门限)时,不对报文进行任何处理,转发设备直接将报文从出接口转发。
· 当转发设备的报文在出方向进入队列排队,该队列的长度大于下限QL_min但小于上限QL_max(QL_max也称为ECN高门限)时:
¡ 如果设备接收到的报文中ECN域取值为00,表示报文发送端不支持ECN功能,转发设备按照未开启ECN功能的WRED策略处理,即随机丢弃接收的报文。
¡ 如果设备接收到的报文中ECN域取值为01或者10,表示报文发送端支持ECN功能,将按照WRED策略中的线性丢弃概率来修改部分入方向报文的ECN域为11后继续转发该报文,所有入方向接收到的报文均不丢弃。
¡ 如果设备接收到的报文中ECN域取值为11,表示该报文在之前的转发设备上已经出现拥塞,此时转发设备不处理报文,直接将报文从出接口转发。
· 当转发设备的报文在出方向进入队列排队,该队列的长度大于上限QL_max时:
¡ 如果设备接收到的报文中ECN域取值为00,表示报文发送端不支持ECN功能,转发设备按照未开启ECN功能的WRED策略处理,即丢弃接收的报文。
¡ 如果设备接收到的报文中ECN域取值为01或者10,表示报文发送端支持ECN功能,将按照WRED策略中的线性丢弃概率来修改部分入方向报文的ECN域为11后继续转发该报文,所有入方向接收到的报文均不丢弃。
¡ 如果设备接收到的报文中ECN域取值为11,表示该报文在之前的转发设备上已经出现拥塞,此时转发设备不处理报文,直接将报文从出接口转发。
合理设置ECN门限可以缓解拥塞同时保证网络的时延和吞吐率。
相较于未部署ECN功能的WRED策略,部署了ECN功能的WRED策略具备如下优势:
· 通过合理设置WRED策略中队列长度的下限值,可以使转发设备提前感知到路径上的拥塞,并由报文接收端通知报文发送端放缓发送速率。
· 在转发设备上,对超出队列长度下限值的报文仅标记ECN域为11,而不再丢弃报文,避免网络中报文丢弃和重传的过程,减少了网络时延。
· 网络中出现拥塞时,发送端在一定时间内逐步降低报文发送速率,在拥塞现象消失后,发送端逐步提升报文发送速率,避免出现网络吞吐量在拥塞前后快速振荡的情况。
ECN Overlay功能就是将ECN功能应用到VXLAN网络中,ECN域标识信息可以在Underlay和Overlay网络中正常传递和识别,使Overlay网络中发生的拥塞也可以被报文接收端感知并降低发送速率。
根据VXLAN网络中拥塞发生位置的不同,ECN Overlay功能实现的过程有以下几类:
· 报文在VXLAN隧道入节点发生拥塞;
· 报文在VXLAN网络中转发设备上发生拥塞;
· 报文在VXLAN隧道出节点发生拥塞。
如图13所示,报文在VXLAN隧道入节点发生拥塞时,ECN Overlay处理流程如下:
(1) 原始报文携带ECT标识从发送端到达VXLAN隧道的入节点VTEP 1,VTEP 1在转发出方向检测到拥塞,需要修改入方向的原始报文ECN域标识为11,即将ECN域标识为CE。VTEP 1对携带CE标识的原始报文进行VXLAN封装,此时将原始报文中ECN域标识映射到VXLAN报文外层头部的ECN域中,因此VXLAN报文外层头部也将携带CE标识。
(2) 在VXLAN Underlay网络中,携带CE标识的报文转发到P设备,P检查到该报文外层报文头部ECN域被置位为11,直接正常转发该报文到VTEP 2。
(3) VTEP 2将VXLAN报文外层头部中ECN标识映射到原始报文的ECN域中,并对VXLAN报文进行解封装。VTEP 2将携带CE标识的原始报文转发给报文接收端,报文接收端将发送拥塞通知给报文发送端,要求降低报文发送速率。
图13 VXLAN隧道入节点发生拥塞时ECN Overlay处理流程
如图14所示,报文在VXLAN网络中转发设备上发生拥塞时,ECN Overlay处理流程如下:
(1) 原始报文携带ECT标识从发送端到达VXLAN隧道的入节点VTEP 1,VTEP 1在转发出方向未检测到拥塞,不需要修改入方向的原始报文ECN域标识。VTEP 1对携带ECT标识的原始报文进行VXLAN封装,此时将原始报文中ECN域标识映射到VXLAN报文外层头部的ECN域中,因此VXLAN报文外层头部也将携带ECT标识。
(2) 在VXLAN Underlay网络中,携带ECT标识的报文转发到P设备,P检测到转发出方向发生拥塞,立即将报文外层报文头部ECN域被置位为11,再转发该报文到VTEP 2。
(3) VTEP 2将VXLAN报文外层头部中ECN标识映射到原始报文的ECN域中,并对VXLAN报文进行解封装。VTEP 2将携带CE标识的原始报文转发给报文接收端,报文接收端将发送拥塞通知给报文发送端,要求降低报文发送速率。
图14 报文在VXLAN网络中转发设备上发生拥塞时ECN Overlay处理流程
如图15所示,报文在VXLAN隧道出节点发生拥塞时,ECN Overlay处理流程如下:
(1) 原始报文携带ECT标识从发送端到达VXLAN隧道的入节点VTEP 1,VTEP 1在转发出方向未检测到拥塞,不需要修改入方向的原始报文ECN域标识。VTEP 1对携带ECT标识的原始报文进行VXLAN封装,此时将原始报文中ECN域标识映射到VXLAN报文外层头部的ECN域中,因此VXLAN报文外层头部也将携带ECT标识。
(2) 在VXLAN Underlay网络中,携带ECT标识的报文转发到P设备,P检测到转发出方向未发生拥塞,正常转发该报文到VTEP 2。
(3) VTEP 2将VXLAN报文外层头部中ECN标识映射到原始报文的ECN域中,并对VXLAN报文进行解封装。VTEP 2发现报文出方向发生拥塞,则将原始报文ECN域标识为11,即原始报文携带CE标识。VTEP 2将携带CE标识的原始报文转发给报文接收端,报文接收端将发送拥塞通知给报文发送端,要求降低报文发送速率。
图15 报文在VXLAN隧道出节点发生拥塞时ECN Overlay处理流程
网络中充斥着各种各样的流量,我们可以简单的将其分为大流和小流。大流占网络流总数的10%左右,但其承载了网络总数据量的85%,具有尺寸大、占用带宽大、数量较少的特点,但是对时延要求较低,例如视频下载流量。小流的特点是尺寸小、占用带宽小,但是对时延要求较高,希望能得到快速响应,例如查询流量。在无损网络中我们希望将大小流区分调度,以满足小流的延迟需求和大流的吞吐率需求。
如图16所示,大小流区分调度机制如下:
(1) 网络管理员配置大流识别参数(流速和尺寸),设备根据识别参数将网络流量中的大流识别出来;
(2) 网络管理员为大流指定丢弃优先级、本地优先级或dot1q优先级,设备根据本地优先级或者dot1q优先级将识别出来的大流映射到特定的队列中,与其他非大流区分调度。一旦发生拥塞,设备也可以根据配置的丢弃优先级,优先丢弃大流报文,以保证小流的低延迟体验。
各个队列转发的数据流量特征会随时间动态变化,网络管理员通过静态设置ECN门限时,并不能满足实时动态变化的网络流量特征:
· ECN门限设置过高时,转发设备将使用更长的队列和更多缓存来保障流量发送的速率,满足吞吐敏感的大流的带宽需求。但是,在队列拥塞时,报文在缓存空间内排队,会带来较大的队列时延,不利于时延敏感的小流传输。
· ECN门限设置偏低时,转发设备使用较短的队列和少量缓存尽快触发来降低队列排队的时延,满足小流对时延的需求。但是,过低的ECN门限会降低网络吞吐率,影响吞吐敏感的大流,限制了大流的传输。
另一方面网络中如果同时部署了PFC和ECN功能时,我们希望ECN门限设置可以保证设备优先触发ECN功能,降低报文发送端的速率缓解拥塞情况,而非先触发PFC功能直接通知发送端停止发送报文。只有当ECN功能触发后未缓解拥塞,拥塞反而严重恶化时才触发PFC功能,此时通知发送端停止数据报文发送,直到拥塞环节后再通知继续发送数据报文。ECN和PFC同时部署减缓拥塞时的作用顺序应如下图所示:
图17 ECN和PFC同时部署减缓拥塞示意图
由图17流程可知,当拥塞发生时,从转发设备发送ECN域标记为11的数据报文到报文发送端降速的过程中,发送端仍以原速率持续发送数据报文,这段时间内网络中的拥塞将进一步恶化,只有合理并动态设置ECN低门限,设备才能尽量避免PFC触发影响网络中的吞吐率。
基于以上原因,我们需要一种智能地实时ECN低门限控制功能,这种功能称为AI ECN功能。
如图18所示,AI ECN功能利用设备本地或分析器上的AI业务组件,按照一定规则动态优化ECN门限。其中,AI业务组件是实现ECN动态调优的关键,是内置在网络设备或者分析器中的系统进程,它主要包括三个层次的功能框架:
· 数据采集分析层:提供用于获取海量待分析的特征数据的数据采集接口,并对获取到的这些数据进行预处理和分析。
· 模型管理层:管理模型文件,并基于用户加载的AI功能模型,推理得到AI ECN门限。
· 算法层:调用数据采集分析层的接口得到实时特征数据,按照固定步长的搜索试算法计算得到AI ECN门限。
图18 AI ECN功能实现示意图
如图18所示,AI ECN功能实现的机制如下:
(1) 设备内的转发芯片会对当前流量的特征进行采集,比如队列缓存占用率,流量吞吐率,当前大小流占比等特征数据,然后将网络流量实时特征信息通过Telemetry传递给AI业务组件中的数据采集分析层。
(2) AI业务组件收到推送的流量特征信息后,数据采集分析层将对当前的流量特征进行分析,并并判断当前的网络流量特征是否符合模型管理层中已加载的流量模型。
¡ 如果该流量特征符合已加载流量模型中的一种,AI业务组件将根据已知流量模型推理出实时ECN门限的最优值。这种AI ECN的生成方式称为模型推理模式,采用Neural Network算法。
¡ 如果该流量特征不符合已加载流量模型,AI组件将基于现网状态,在保障高带宽、低时延的前提下,对当前的ECN门限按照固定步长进行实时修正,修正后的ECN门限下发给转发芯片。然后再根据设置新ECN门限后一定周期内重新采集的流量特征结果不断循环修正ECN门限,最终得到最优的ECN门限配置。这种AI ECN的生成方式称为启发式推理模式。
(3) 网络设备上启用AI ECN功能后,转发芯片将自动接收AI业务组件的ECN数据推送,根据AI业务组件下发的最优ECN门限调整ECN门限值。
(4) 通过AI业务组件和转发芯片这种联动机制可以实时保证ECN门限跟随流量动态变化。
¡ 当队列中小流占比高时,降低ECN触发门限,保证多数小流的低时延性。
¡ 当队列中大流占比高时,提高ECN触发门限,保证多数大流的高吞吐性。
根据AI业务组件在网络中的实施位置不同,AI ECN功能可以分为集中式AI ECN和分布式AI ECN两种模式:
· 分布式AI ECN:AI业务组件集成在设备本地。通常情况下,这种方式对本地CPU算力要求较高,AI业务会影响CPU利用率,适用于传统网络向SDN架构过渡阶段。未来也可以在设备中增加专门的神经网络(GPU)芯片来满足AI业务组件对算力的需求。
· 集中式AI ECN:AI业务组件由分析器实现。这种方式需要部署一台服务器作为AI分析器使用,对网络设备的要求不高,适用于未来SDN网络架构,方便包括AI ECN在内的所有AI业务进行集中式管控和可视化运维。
在上述两种场景中,我们都可以借助SeerAnalyzer分析器的优势,为用户呈现可视化的AI ECN参数调优效果。
如图19、图20和图21所示,分析器支持显示AI ECN参数下发到设备的指定端口、指定队列的时间统计情况,支持显示启用AI ECN调优前后的时间段内接口吞吐率对比变化和PFC反压帧数对比统计,通过AI ECN功能优化可以提升网络设备吞吐率并降低PFC反压报文速率。
图19 接口队列的AI ECN参数调优时间
图20 AI ECN参数调优前后指定端口队列发送报文速率对比
图21 AI ECN参数调优前后时段接收到PFC反压帧速率对比
IPCC(Intelligent Proactive Congestion Control,智能主动拥塞控制)是一种以网络设备为核心的主动拥塞控制技术,可以根据设备端口的拥塞状态,准确控制服务器发送RoCEv2报文的速率。IPCC功能在ECN功能基础上进行改进,使转发设备具备发送拥塞通知报文的能力,IPCC功能仅对RoCEv2报文生效。
ECN功能提供的拥塞控制机制,是在转发设备上发现拥塞后,转发设备向接收端发送携带拥塞标记的报文,接收端随后向发送端发送拥塞通知报文,以通知发送端服务器降低发送报文的速率,从而缓解拥塞。
从上述机制可以看出,ECN功能还存在如下问题:
· 响应慢:发生拥塞的是网络中的转发设备,对拥塞进行处理和反馈的是数据报文接收端和发送端,当网络规模较大时,拥塞发生到拥塞处理和反馈的时延较长,发送端不能及时降速,导致拥塞加剧;
· 响应不准确:网络拥塞状态只能通过数据报文中的ECN域中11标记获得,接收端生成的拥塞通知报文不能准确告知发送端应该降低多少速率来缓解拥塞。且在拥塞缓解过程中,转发设备仍然会持续进行拥塞标记,很容易造成网络吞吐率过低。
对于数据中心网络场景提供了IPCC功能,支持在转发设备上智能识别拥塞状态,主动发送拥塞通知报文,准确控制发送端发送报文的速率,既可以确保拥塞时的及时降速,又可以避免拥塞已经缓解时的过度降速,最终确保数据中心互联网络的低时延和高吞吐。
IPCC功能仅对RoCEv2报文生效,RoCEv2是基于UDP协议封装的,报文格式如图22所示。
图22 RoCEv2报文格式
· Ethernet header:以太报文头,包括源MAC地址和目的MAC地址等信息。
· IP header:IP报文头,包括源IP地址和目的IP地址等信息。
· UDP header:UDP报文头,包括源端口号和目的端口号,其中RoCEv2报文的目的端口号为4791。
· Payload:消息负载。
· CRC和FCS:分别对应冗余检测和帧校验。
· InfiniBand Base Transport Header:InfiniBand传输层的头部字段,包含了RoCEv2报文的关键信息,IPCC功能涉及的主要字段如下。
¡ Opcode:表示RoCEv2的报文类型,具体类型如下。
- ConnectMsg:表示CM建链报文,此报文用于建立RoCEv2连接。建立RoCEv2连接后,本端和远端才能传递数据报文。
- Send:表示Send报文,此类报文用于发送端向远端请求传递数据,发送端不指定接收端存储数据的地址。
- Write:表示Write报文,此类报文用于发送端向远端请求写入数据,发送端会在报文中指定接收端存储数据的地址、key(关键值)和数据长度
- Read:表示Read报文,此类报文用于发送端向远端请求读取数据,发送端会在报文中会指定远端请求读取数据的地址、key和数据长度。
- ACK:表示ACK报文,远端每接收到一个RoCEv2报文后,均会反馈的应答消息。
以上Send、Write和Read类型的RoCEv2报文也被称为RoCEv2数据报文。
¡ Dest QP(Destination Queue Pair):目的QP,用来标识一条RoCEv2流。相当于RoCEv2报文中的目的端口,是用来建立RoCEv2流表的关键信息。
图23 IPCC工作原理图
IPCC的工作原理如图23所示。
(1) 转发设备上启用了IPCC功能的接口会对经过的RoCEv2数据报文进行复制并上送设备CPU处理:
a. 首先根据RoCEv2的数据报文中的源IP地址、目的IP地址和目的QP信息建立RoCEv2流表。
b. 再根据RoCEv2数据报文将流表与设备的转发接口关联。
通过上述步骤持续维护RoCEv2流表,就可以获知每条RoCEv2流的地址信息和转发路径。
(2) 转发设备对接口中启用了IPCC功能的队列的队列长度进行检测,根据队列的拥塞状态智能计算主动发送的拥塞通知报文数量:
¡ 当队列长度增加时:如果此时队列缓存占用率较少,需要发送少量拥塞通知报文;如果此时队列缓存占用率较多,需要发送较多的拥塞通知报文,快速缓解队列拥塞,降低转发时延。
¡ 当队列长度减少时:如果此时队列缓存占用率较少,无需发送拥塞通知报文,防止降速造成吞吐下降;如果此时队列缓存占用率较多,需要发送少量拥塞通知报文,在尽量保证吞吐和时延性能的情况下缓解队列拥塞。
(3) 转发设备按照计算出的报文数目和RoCEv2流表中的地址信息构造拥塞通知报文,并向发送端主动发送拥塞通知报文,发送端收到拥塞通知报文后降低RoCEv2报文的发送速率。
IPCC功能避免了ECN功能响应慢的问题,通过计算控制拥塞通知报文的发送数量,达到快速准确缓解网络拥塞的效果。
iNOF(Intelligent Lossless NVMe Over Fabric,智能无损存储网络)就是一种以太网和存储网络的融合优化技术。它能实现海量存储设备的自动发现,网络故障的快速感知,并将存储设备的加入和离开第一时间通知给智能无损网络内的所有设备,为实现智能无损网络的“无丢包、低时延、高吞吐”提供基础支持。
iNOF有两种典型组网:iNOF直连组网和iNOF跨交换机组网,这两种组网的适用场景不同,原理机制也不同。
iNOF网络中,包括以下三个重要元素:
· iNOF主机:支持iNOF协议的网络服务器和磁盘设备,以下简称主机。
· iNOF交换机:用于接入主机且支持iNOF功能的交换机。
· iNOF域(Zone):iNOF使用域来管理主机。当域内有主机加入或者离开,iNOF会将这个主机的加入和离开信息通知给同一域内的其它主机,以便其它主机能够感知同一域内任一主机的加入或者离开。
为方便管理,iNOF域分为两类:
¡ 自定义iNOF域:用户根据组网需求手工创建的iNOF域,需要手工向其中添加主机。
¡ 缺省iNOF域:设备出厂即存在的iNOF域,无需用户创建,不能删除。对于未加入自定义iNOF域的主机,用户可以选择是否自动让它加入缺省iNOF域。
iNOF直连组网如图24所示,它要求同一域内的所有主机和同一iNOF交换机直连。主机和iNOF交换机之间通过交互二层报文,来通知主机状态变化(即主机加入或离开iNOF网络,也称为主机上线/离线),iNOF交换机之间不交互iNOF相关信息。iNOF直连组网适用于小规模网络。
图24 iNOF直连组网示意图
iNOF跨交换机组网如图25所示,它支持同一域内的主机可以连接在不同的iNOF交换机上,iNOF交换机之间通过iNOF报文传递域内所有主机的加入或离开信息。iNOF跨交换机组网适用于规模较大的数据中心,这样的数据中心拥有多台主机,主机属于不同的组织或部门(对应不同的iNOF域),同一组织或部门的主机通过多台iNOF交换机相连。
为了跨交换机传递主机信息,通常要求iNOF交换机之间全部两两建立直连连接,这种全连接的方式增加了维护复杂度,不利于后续iNOF交换机的加入。H3C基于成熟的BGP技术,将BGP协议进行扩展,复用BGP反射器技术,来实现iNOF跨交换机组网。
在iNOF跨交换机组网中:
· iNOF交换机和主机直连,iNOF交换机和主机之间交互的报文和报文交互流程同iNOF直连组网。
· iNOF交换机之间基于iBGP连接建立iNOF连接,通过BGP报文携带iNOF路由信息,利用BGP反射器技术,将一台iNOF交换机感知到的主机状态变化通知给域内的所有iNOF交换机。iNOF路由信息包括主机的加入或离开信息,以及iNOF的配置信息。
在iNOF跨交换机组网中,为简化组网,必须至少部署一台iNOF反射器,其它iNOF交换机均为客户机。所有客户机和反射器连接,客户机和客户机之间不建议连接,主机和iNOF反射器、iNOF交换机直连。因为客户机和客户机之间连接容易导致组网的复杂性,在路由快速变化时可能会出现路由表项短暂波动等非预期或不可控的现象。
为避免单点故障、提高网络的可靠性,一个iNOF域中也可以部署多个iNOF反射器。当一个反射器故障时,其它反射器能继续工作。这些路由反射器及其客户机之间形成一个集群,反射器上需要配置相同的集群ID,以便集群具有统一的标识,避免路由环路的产生。
图25 iNOF跨交换机组网示意图
iNOF具有以下优势:
· 即插即用
当主机接入iNOF网络时,iNOF交换机能够自动发现该设备,并将新主机加入消息同步给网络中的其他iNOF交换机以及通知同一iNOF域中的其它主机,以便其它主机能迅速发现新加入的主机,并自动和新主机建立连接,迅速实现存储业务的部署。
· 故障快速感知
当网络故障时,iNOF交换机能够快速检测到故障,并将故障状态信息同步给网络中的其它iNOF交换机以及通知同一iNOF域中的其它主机。如果该网络故障影响了存储设备,则主机会快速断开与该存储设备的连接,将业务切换到冗余路径。
H3C对成熟的BGP技术进行扩展,来实现iNOF跨交换机组网的技术具有以下特性:
· 基于BGP连接建立iNOF连接,传输层使用TCP协议,可以为iNOF信息的传输提供稳定的连接。
· 基于BGP提供的丰富的路由策略,能够对iNOF路由实现灵活的过滤和选择。
· iNOF复用BGP路由反射功能,在大规模的iNOF网络中可以有效减少iNOF连接的数量,简化网络拓扑,降低网络维护成本。同时,管理员在反射器上完成iNOF域和成员主机的配置后,iNOF可自动将这些配置同步给客户机,从而,可以简化iNOF的部署和配置。
· iNOF复用BGP的GR(Graceful Restart,平滑重启)和NSR(Nonstop Routing,不间断路由)功能,在iNOF交换机进行主备倒换或BGP协议重启时,保障iNOF信息的传递不中断。
· iNOF复用BGP连接,BGP支持和BFD联动,因此,iNOF也能够利用BFD快速检测到链路故障。
· 借助BGP会话的各种加密手段,例如MD5认证、GTSM(Generalized TTL Security Mechanism,通用TTL安全保护机制)、keychain认证,可以提高iNOF交换机间连接的安全性。
· RFC 3168 The Addition of Explicit Congestion Notification (ECN) to IP
· Annex 17 RoCEv2
· iNOF技术白皮书