智能无损网络技术白皮书
Copyright © 2024 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
智能无损网络是通过硬件架构、智能无损算法和一系列的网络技术,为人工智能、分布式存储、HPC(High Performance Computing,高性能计算)等应用场景提供的“无丢包、低时延、高吞吐”网络环境,用于加速计算和存储的效率,为数据中心构建统一融合的网络。
RDMA(Remote Direct Memory Access,远程直接内存访问)技术的内核旁路机制允许应用与网卡之间直接读写数据,使得服务器内的数据传输时延降低。同时RDMA利用相关的硬件和网络技术,使服务器网卡之间可以直接读内存,实现了高吞吐量、超低时延和低CPU开销的效果。
当前分布式存储、HPC高性能计算、AI人工智能等场景均采用RoCEv2(RDMA over Converged Ethernet version 2)作为以太网上的传输协议来降低传输时延和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对网络中的流量进行负载分担。
· 在应用层,智能无损网络提供了iNOF(Intelligent Lossless NVMe Over Fabric,智能无损存储网络)功能,通过对iNOF主机的快速管控,提升存储网络的易用性,实现以太网和存储网络融合。
PFC(Priority-based Flow Control,基于优先级的流量控制)是构建无损以太网的必选手段之一,能够逐跳提供基于优先级的流量控制。
PFC允许网络设备根据不同的数据流优先级进行流量控制。当特定优先级的流量拥塞时,网络设备可以向对端设备发送反压信号(PFC PAUSE帧),要求对端设备停止发送特定优先级的流量,以防止缓冲区溢出和数据丢失。这种个别流量控制方式允许网络在某些流量拥塞时保持流畅,同时防止对其他流量造成干扰。
如图2所示,Device A和Device B之间存在多个优先级的流量。当Priority 1的流量发生拥塞时,Device A和Device B将停止发送该优先级的流量。同时,Device A和Device B之间其他优先级的流量可以正常处理。
图2 PFC工作原理示意图
如图3所示,当Device B的出接口上某个队列产生拥塞时,导致本设备对应流量的入接口缓存超过门限,Device B向所有上游设备(数据报文的来源)发送PFC PAUSE帧。Device A接收到PFC PAUSE,会根据PFC PAUSE的指示,停止发送对应优先级的报文,并将数据存储到本地接口的缓存空间。如果Device A本地接口的缓存消耗超过缓存门限,则也向上游设备发送PFC PAUSE。如此,一级一级的发送PFC PAUSE,直到抵达网络终端设备,从而消除网络节点因拥塞造成的丢包。Device E接收到PFC PAUSE后,对该队列报文进行缓存,未达到Device E的缓存门限时,不向上游设备发送PFC PAUSE。
图3 多级设备之间的PFC PAUSE帧处理示意图
PFC死锁是指多个设备之间,因为环路等原因,同时出现了拥塞(各自端口缓存消耗超过了阈值),又都在等待对方释放资源,从而导致的“僵持状态”(所有交换机的数据流永久堵塞)。
如图4所示,多个设备发生拥塞后互相发送PFC PAUSE帧,使PFC PAUSE帧在网络内泛洪,导致网络内设备无法转发报文,使整网业务瘫痪。
图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所示,正常情况下,业务流量转发路径为A-B-C-D。当网络的防环机制出现问题时,将会导致业务流量从D向A转发。故障流量在A-B-C-D间转发,形成环路。如果网络设备A~D接口的缓存空间中使用的资源达到PFC XOFF门限,则网络设备向故障流量的上游发送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帧的接口划分到同一端口组。例如,一台Leaf交换机,将其上行口划分到同一端口组中。
(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、ECNOverlay、大小流区分调度、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。
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域标识的修改过程是转发设备在出方向报文检测到拥塞后,修改入方向报文ECN域标识。设备在处理过程中存在一定延时,为了加快该流程,转发设备在出方向队列检测到拥塞后,直接修改出方向报文的ECN域标识,这个技术称为Fast ECN。
相较于未部署ECN功能的WRED策略,部署了ECN功能的WRED策略具备如下优势:
· 通过合理设置WRED策略中队列长度的下限值,可以使转发设备提前感知到路径上的拥塞,并由报文接收端通知报文发送端放缓发送速率。
· 在转发设备上,对超出队列长度下限值的报文仅标记ECN域为11,而不再丢弃报文,避免网络中报文丢弃和重传的过程,减少了网络时延。
· 网络中出现拥塞时,发送端在一定时间内逐步降低报文发送速率,在拥塞现象消失后,发送端逐步提升报文发送速率,避免出现网络吞吐量在拥塞前后快速振荡的情况。
ECN Overlay功能是指在VXLAN网络中适用ECN功能,即在VXLAN网络中设备出接口发生拥塞时,报文的ECN域可以被标记为CE,并且设备可以正常传递携带CE标记的报文,而不会丢失ECN域中的标记信息。
VXLAN网络中拥塞发生的位置不同,报文ECN域处理流程和传递ECN信息的过程略有不同。如图13所示,VXLAN隧道入节点的出接口发生拥塞为例,报文ECN域处理流程和传递ECN信息的过程为:
(1) ECN信息的映射:在VXLAN隧道的发起端检测到拥塞时,设备将原始IP报文的ECN域标记为CE。报文发送时,将原始IP报文进行VXLAN封装,此时设备将原始IP报文ECN域的CE映射到VXLAN报文外层IP头部的ECN域中。
(2) ECN信息的传递:在VXLAN网络中传递的报文将携带CE标记,Underlay的中转设备不进行修改。
(3) ECN信息的恢复:在VXLAN隧道的终结端解封装VXLAN报文时,执行第一步中相反的操作,即设备将VXLAN报文外层IP头部的ECN域中的信息复制到原始IP报文的ECN域中。
如果VXLAN网络的中转发设备的出接口上发生拥塞,则仅在Underlay的中转设备上标记VXLAN报文外层IP头部的ECN域,并且在VXLAN隧道的终结端将ECN域中的信息复制到原始IP报文的ECN域中。如果VXLAN隧道出节点的出接口发生拥塞,则仅需要执行上述ECN信息的恢复步骤。
图13 ECN Overlay工作原理示意图
网络中充斥着各种各样的流量,我们可以简单的将其分为大流和小流。大流占网络流总数的10%左右,但其承载了网络总数据量的85%,具有尺寸大、占用带宽大、数量较少的特点,但是对时延要求较低,例如视频下载流量。小流的特点是尺寸小、占用带宽小,但是对时延要求较高,希望能得到快速响应,例如查询流量。在无损网络中我们希望将大小流区分调度,以满足小流的延迟需求和大流的吞吐率需求。
如图14所示,大小流区分调度机制如下:
(1) 网络管理员配置大流识别参数(流速和尺寸),设备根据识别参数将网络流量中的大流识别出来;
(2) 网络管理员为大流指定丢弃优先级、本地优先级或dot1q优先级,设备根据本地优先级或者dot1q优先级将识别出来的大流映射到特定的队列中,与其他非大流区分调度。一旦发生拥塞,设备也可以根据配置的丢弃优先级,优先丢弃大流报文,以保证小流的低延迟体验。
各个队列转发的数据流量特征会随时间动态变化,网络管理员通过静态设置ECN门限时,并不能满足实时动态变化的网络流量特征:
· ECN门限设置过高时,转发设备将使用更长的队列和更多缓存来保障流量发送的速率,满足吞吐敏感的大流的带宽需求。但是,在队列拥塞时,报文在缓存空间内排队,会带来较大的队列时延,不利于时延敏感的小流传输。
· ECN门限设置偏低时,转发设备使用较短的队列和少量缓存尽快触发来降低队列排队的时延,满足小流对时延的需求。但是,过低的ECN门限会降低网络吞吐率,影响吞吐敏感的大流,限制了大流的传输。
另一方面网络中如果同时部署了PFC和ECN功能时,我们希望ECN门限设置可以保证设备优先触发ECN功能,降低报文发送端的速率缓解拥塞情况,而非先触发PFC功能直接通知发送端停止发送报文。只有当ECN功能触发后未缓解拥塞,拥塞反而严重恶化时才触发PFC功能,此时通知发送端停止数据报文发送,直到拥塞环节后再通知继续发送数据报文。ECN和PFC同时部署减缓拥塞时的作用顺序应如下图所示:
图15 ECN和PFC同时部署减缓拥塞示意图
由图15流程可知,当拥塞发生时,从转发设备发送ECN域标记为11的数据报文到报文发送端降速的过程中,发送端仍以原速率持续发送数据报文,这段时间内网络中的拥塞将进一步恶化,只有合理并动态设置ECN低门限,设备才能尽量避免PFC触发影响网络中的吞吐率。
基于以上原因,我们需要一种智能地实时ECN低门限控制功能,这种功能称为AI ECN功能。
AI ECN利用设备本地的AI业务组件,按照一定流量模型算法动态优化ECN门限。
图16 AI ECN功能实现示意图
设备内的转发芯片会对当前流量的特征进行采集,比如队列缓存占用率,流量吞吐率,当前大小流占比等特征数据,然后将网络流量实时信息传递给AI业务组件。
AI ECN功能启用后,AI业务组件收到推送的流量状态信息后,将智能的对当前的流量特征进行判断,识别当前的网络流量场景是否符合已知的流量模型。
· 如果该流量模型符合大量已知流量模型中的一种,AI业务组件将根据已知流量模型推理出实时ECN门限最优值。
· 如果该流量模型不符合已知流量模型,AI组件将基于现网状态,在保障高带宽、低时延的前提下,对当前的ECN门限不断进行实时修正,最终计算出最优的ECN门限配置。
最后,AI业务组件将最优ECN门限下发到设备转发芯片中,调整ECN门限。
AI ECN能够根据流量特征和变化而实时调整ECN门限:
· 当队列中小流占比高时,降低ECN触发门限,保证多数小流的低时延性。
· 当队列中大流占比高时,提高ECN触发门限,保证多数大流的高吞吐性。
IPCC(Intelligent Proactive Congestion Control,智能主动拥塞控制)与ECN技术类似,也是一种通过拥塞通知报文来通知发送端降低报文发送速率,从而避免网络拥塞的技术。IPCC是由网络设备主动发起的拥塞控制技术。用于转发RoCEv2报文的网络设备接口如果开启了IPCC功能,则设备根据该接口的拥塞情况,主动发送拥塞通知报文通知报文发送端降低发送报文的速率,并且设备可以基于接口队列的拥塞严重程度,智能计算出需要发送拥塞通知报文的数量,精准调整控制发送端发送报文的降速,避免发送端过度降低速度。
IPCC和传统ECN技术的对比如表1所示。
表1 IPCC和传统ECN技术对比
技术对比 |
IPCC |
传统ECN |
发送拥塞通知报文位置 |
转发报文的网络设备 |
报文的接收端 |
报文拥塞的响应过程 |
直接主动响应。由网络中出现拥塞点的设备发送拥塞通知给报文发送端,拥塞点快速触发,通知发送端降速 |
间接被动响应。被标记的报文需传播整条转发路径抵达接收端后再由接收端发送拥塞通知报文通知发送端降速 |
发送端降速的效果 |
出现拥塞点的网络设备根据拥塞接口上队列长度和缓存占用,智能计算需要发送的拥塞通知报文个数,精确控制发送端降速 |
报文接收端如果持续收到ECN域取值为11的报文时,将每隔一定时间周期发送拥塞通知报文给报文发送端降速,降速效果滞后于拥塞点的实际变化 |
应用场景 |
仅对RoCEv2报文生效 |
对于TCP、UDP等报文均能生效,适用范围更广 |
硬件支持要求 |
需要硬件芯片和驱动支持 |
需要硬件芯片和驱动支持 |
由表1比较可知,IPCC在ECN功能基础上进行改进,使转发设备具备发送拥塞通知报文的能力,对于网络中拥塞控制更加准确和迅速。
由于IPCC功能仅对RoCEv2报文生效,下面先简单介绍RoCEv2报文的结构和报文的关键信息。
RoCEv2和InfiniBand是目前主流的RDMA协议,但相较于InfiniBand,RoCEv2是基于以太网的RDMA协议。如图17所示,RoCEv2是基于UDP协议封装的,其中RoCEv2报文的目的端口号固定为4791。RoCEv2和InfiniBand主要变化在数据链路层和网络层,RoCEv2报文传输层继承了InfiniBand报文中传输层的Base Transport Header和Extended Transport Header的结构和信息。
图17 RoCEv2与InfiniBand报文格式对比
根据InfiniBand Architecture Specification标准中的定义,BTH(Base Transport Header,基本传输层报文头)中包含了RoCEv2报文的关键信息,其中部分字段的含义如下:
· OpCode:表示RoCEv2的操作类型,也标识了BTH之后携带的ETH(Extended Transport Header,扩展传输层报文头)的类型。具体类型包括但不限于:
¡ Send:此类操作用于发送端向远端请求传递数据,发送端不指定接收端存储数据的地址。
¡ RDMA Write:此类操作用于发送端向远端请求写入数据,发送端会在报文中指定接收端存储数据的地址、key(关键值)和数据长度。
¡ RDMA Read:此类操作用于发送端向远端请求读取数据,发送端会在报文中会指定远端请求读取数据的地址、key和数据长度。
¡ ACK:表示ACK报文,远端接收到一组RoCEv2报文,会反馈的应答消息。
操作类型为Send、Write和Read的RoCEv2报文也被称为RoCEv2数据报文。
· Destination QP(Destination Queue Pair):目的端的队列编号,用来标识一条RoCEv2流。通常,在RoCEv2数据报文中执行一个Send、RDMA Write和RDMA Read操作时,发送端和目的端都会创建一个队列,生成一个队列对QP。发送队列用于存储发送端的消息和请求,接收队列用于存储远端发送的消息或请求。Destination QP是用来建立RoCEv2流表的关键信息。
· ACK Request:应答响应要求标记位,表示是否要求远端发送ACK的响应。
· PSN(Packet Serial Number):表示RoCEv2报文的序列号,可通过检测PSN是否连续来判断是否存在丢失的数据包,若出现了丢包,就会返回NAK报文。
图18 IPCC工作原理图
IPCC的工作原理如图18所示。
· 建立RoCEv2流表:在转发设备上,启用了IPCC功能的接口复制经过该设备的RoCEv2数据报文,并将其上送到设备的CPU处理。根据RoCEv2报文的源IP地址、目的IP地址和目的QP信息等信息建立RoCEv2流表。RoCEv2流表中包括流量的入方向接口和出方向接口、出接口队列的相关信息。
持续存在RoCEv2流量时,设备上保持并维护RoCEv2流表。如果出接口上发生拥塞则可以判断根据RoCEv2流表定位到该业务流的出入接口。
· 智能计算拥塞通知报文数量:转发设备对接口中启用了IPCC功能的队列进行检测,根据队列长度以及队列占用缓存空间的比率变化智能计算主动发送的拥塞通知报文数量。
¡ 当队列长度增加,队列缓存占用率较少,则发送少量拥塞通知报文给发送端,缓解队列拥塞,但不会使发送端过渡降速;
¡ 当队列长度增加,队列缓存占用率较多,则发送较多的拥塞通知报文给发送端,快速缓解队列拥塞,降低转发时延。
¡ 当队列长度减少,队列缓存占用率较少,则不发送拥塞通知报文给发送端,防止降速造成吞吐率下降;
¡ 当队列长度减少,队列缓存占用率较多,则发送少量拥塞通知报文给发送端,在尽量保证吞吐率和时延性能的情况下缓解队列拥塞。
转发设备根据RoCEv2流表中的地址信息构造拥塞通知报文,并主动将拥塞通知报文发送给发送端。发送的拥塞通知报文数量为上一步中计算出的报文数目。发送端收到拥塞通知报文后,通过降低RoCEv2报文的发送速率来缓解网络拥塞。
IPCC功能克服了传统ECN所面临的局限性,它通过更精细的算法来确定何时以及如何发送拥塞通知报文。这种改进方法依赖于对网络状况的实时分析,以计算出恰当的拥塞通知报文发送频率。该机制确保拥塞通知的发送既迅速又精确,以便及时地缓解网络拥塞情况,而不会引起不必要的性能下降。IPCC功能通过动态调整通知报文的发送,优化了网络流量管理,从而提高了整个网络的数据传输效率和稳定性。
随着全球企业数字化转型的加速进行,互联网应用在生产、生活领域的不断深入,存储网络的规模越来越大,需要处理的数据越来越多,总部和分支机构的数据中心部署在不同的物理位置,RDMA(Remote Direct Memory Access,远程直接内存访问功能)成为存储网络的主流技术。RDMA利用相关的硬件和网络技术,使主机的网卡之间可以直接读内存,最终达到高带宽、低时延和低资源消耗率的效果。然而,RDMA提出之初是承载在无损的IB(Infinite Band,无限带宽)网络中的,专用的IB网络架构封闭,无法兼容现网,使用成本较高,于是,RoCE(RDMA over Converged Ethernet)应运而生。
RoCE使用以太网承载RDMA的网络协议,有两个版本:RoCEv1是一种链路层协议,不同广播域下无法使用;RoCEv2是一种网络层协议,可以实现路由功能。
当前高性能计算、分布式存储、人工智能等应用均采用RoCEv2协议来降低CPU的处理和时延,提升应用的性能。RoCEv2协议缺乏完善的丢包保护机制,但存储业务对网络丢包异常敏感。要在以太网大环境下,发挥出RDMA的真正性能,突破数据中心大规模分布式系统的网络性能瓶颈,我们使用智能无损网络技术为RDMA搭建了一套“无丢包、低时延、高吞吐”的无损网络环境。
智能无损网络是一系列技术的集合,它一方面通过流量控制技术和拥塞控制技术来提升网络整体的吞吐量,降低网络时延,另一方面通过智能无损存储网络等技术实现网络和应用系统融合优化。
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直连组网如图19所示,它要求同一域内的所有主机和同一iNOF交换机直连。主机和iNOF交换机之间通过交互二层报文,来通知主机状态变化(即主机加入或离开iNOF网络,也称为主机上线/离线),iNOF交换机之间不交互iNOF相关信息。iNOF直连组网适用于小规模网络。
图19 iNOF直连组网示意图
iNOF跨交换机组网如图20所示,它支持同一域内的主机可以连接在不同的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,以便集群具有统一的标识,避免路由环路的产生。
图20 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技术白皮书