基于两级交换的负载均衡调度方法

文档序号:7553019阅读:508来源:国知局
专利名称:基于两级交换的负载均衡调度方法
技术领域
本发明主要涉及到并行交换结构中的报文调度领域,特指一种在并行交换结构中实现负载均衡且报文保序的报文调度方法。
背景技术
研究者采用主动测量和被动测量方式对报文乱序行为做了大量研究。J.Bennet在MAE-East ISP的交换中心测量了报文乱序情况,发现在重负载、网络设备并行度高的测量环境下,报文乱序情况非常严重,90%以上的连接发生乱序。J.Bennett分析这种高乱序率主要来自网络内部的局部并行处理机制,包括并行交换设备和并行传输链路,并指出报文乱序不是网络的病态行为。多数高性能并行交换结构存在报文乱序现象,例如负载均衡交换结构(load-balanced switch)、并行报文交换结构(parallel packet switch)、多级交换结构(mult1-level switch)等均受到报文乱序问题的困扰。深度并行设计给交换结构带来了负载均衡和报文乱序两大问题。负载均衡是实现延迟和吞吐率保证的关键,但负载均衡可能导致报文乱序,乱序报文会损害Internet网况,因为Internet广泛使用的TCP传输协议会错误的将乱序报文看作是报文丢失拥塞发生的标志,从而引发不必要的重传及TCP超时。这些重传和超时将降低TCP吞吐率提高报文延迟,因此实现输入流量负载均衡的同时保证报文的顺序是极其必要的。防止报文乱序的方法可以分为两类:1)限定乱序报文的数量,在输出端设置容量有限的重定序缓冲区,用于重定序乱序报文;2)保证报文按照到达顺序离开输出端口,从而避免了报文乱序。由于缓冲区的容量有限,第一种方法只能处理一定范围内的乱序报文,如果将重定序缓冲区尺寸增加至0(N2),虽然能够完全解决报文乱序的问题但会相应地以二次方的时间尺度增加报文延迟,其中N为端口数目。因此,限定乱序报文的数量并不能有效解决报文乱序问题,并且难以适应路由器高端口密度的需求。斯坦福大学提出的满帧优先(Full Ordered Frame First,简称F0FF)算法是第一种方法的代表算法,它允许路由器中存在一定数量的乱序报文,在输出端设置了 NXN的缓冲队列用于重定序乱序报文。可以证明,为了保证信元按序离开,FOFF算法重定序缓冲区容量至多为N2个信元且能够提供负载均衡,获得100%吞吐率。近年来,更多的研究者趋向于采用第二种方法来保证报文的顺序,消除了输出端的重定序操作及缓冲区开销,有利于提高延迟性能。这类调度方法的共同特征是通过某种消息传递机制获取所有到达报文的状态信息,基于全局报文状态信息执行集中式调度。例如,邮箱交换(mailbox switch)方法采用对称型连接模式为通告报文离开时间创造反馈通路,调度器根据报文的离开时间调度报文。该策略能够保证每条流的报文按照其到达顺序离开交换系统但不能提供负载均衡实现100%吞吐率。交替匹配调度方法采用集中式的调度模式,假设流量特征是预知的且固定不变,采用矩阵分解的方法离线解决集中式调度问题,分布式实现在线调度并提供服务保证。然而,当流量变得不可预知并动态改变时,难以在大的交换尺寸下满足集中式的调度需求。并行匹配调度方法通过在第一级输入线卡和第二级输入线卡之间传递请求-许可令牌来实现报文保序,但在具体硬件实现中令牌在线卡间的频繁传递将成倍增加调度周期。

发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种调度过程简单、无需任何计算或者通信、易于硬件实现、实现了 100%的吞吐率并能保证报文的顺序的基于两级交换的负载均衡调度方法。为解决上述技术问题,本发明采用以下技术方案:一种基于两级交换的负载均衡调度方法,第一级输入端口将到达信元按照目的端口缓冲在VOQ队列,调度器通过第一级交换网络将报文交换至第二级输入端口,VOQ队列中来自同一条流的k个信元称之为一个单位帧,单位帧是最小调度单元;第一级每个输入端口根据流量分布矩阵执行最小长度分派,在k个连续的外部时间槽,通过第一级交换网络将同一条流的单位帧发送至该流固定的映射区域;N个第二级输入端口被依次划分为N/k组,每组含k个连续的第二级输入端口构成一个区域,各区域按照目的端口将信元缓冲在OQ队列,由于流到区域的映射关系固定,来自同一单位帧的k个信元将依次到达OQ队列头位置,通过第二级交换网络交换至目的输出端口。作为本发明的进一步改进,采用双循环方式构建流到区域的映射:(1.1)以循环方式构建第一级输入端口 N/k个流分支到第二级输入端口 N/k个区域的映射,以保证每个区域恰能涵盖所有的流;(1.2)进一步以循环方式调整不同输入端口与N/k种映射方式的关联,以保证每个区域按照输入端口的均衡分布涵盖所有的流。作为本发明的进一步改进,在输入端口调度时根据流到区域的映射关系分派信元以轮询方式服务于N/k个流分支,所述第一级输入端口在每个外部时间槽的操作流程如下:(2.1)若流分支岛、VOQ队列存在满帧,则优先调度满帧,赋予该满帧N/k个单位帧最高调度优先级,查找流量分布矩阵L,截取满帧第一个单位帧,发送到目前Lg, j最小的区域Rg,即执行步骤(2.1.1) (2.1.k),若不存在满帧则转步骤(2.2);(2.1.1)若输入端口 i到第二级输入端口 Sgil的内部链路空闲,则将VOQm队列头信元发送到区域Rg第二级输入端口 Sgil,否则f = (f+1)modN/k,转步骤(2.1);(2.1.2)发送VOQy队列头信元到区域Rg第二级输入端口 Sg,2 ;(2.1.3)发送VOQiij队列头信元到区域Rg第二级输入端口 Sg,3 ;依此类推至(2.1.k)发送VOQi, j队列头信元到区域Rg第二级输入端口 Sg, k,g =(g+1) modN/k,转步骤(2.1):(2.2)若流分支VOQ队列、VOQi, j (kf ( j < kf+k)存在最高调度优先级单位帧,则查找流量分布矩阵L,将该单位帧发送到目前Ly最小的区域Rg,即执行步骤(2.1.1) (2.1.k),否则转步骤(2.3);(2.3)若流分支0〉、VOQ队列存在一个或多个单位帧,则查找流量分布矩阵L,根据查找结果选择最小均衡系数VOQ队列的单位帧,将其发送到流分支的固定映射区域Rg,SP执行步骤(2.1.1) (2.1.k),若仅含一个单位帧则可跳过流量分布矩阵查找操作,直接将流分支唯一的单位巾贞发送到其固定映射区域Rg,否则流分支β}不含任何单位巾贞,g = (g+1)modN/k,转步骤(2.1)。与现有技术相比,本发明的优点在于:1、本发明调度方法可分布于各输入端口独立执行,根据本地VOQ队列信息分派信元,不需要任何通信开销,以0(1)时间复杂度实现了 100%的吞吐率并能保证报文的顺序。2、本发明在各输入端口调度器间没有任何通信开销的情况下,实现了报文保序和负载均衡。通过构建流到区域的固定映射,避免了报文乱序,消除了报文重定序开销;为避免流量区域集中现象,采用双循环(dual-rotation)方式构建不同输入端口的流到区域的映射关系,每个输入端口维护全局统一视图的流量分布矩阵,根据流量分布矩阵调度单位帧。可以证明,对任意输出端口 j,同一区域OQj队列长度相同且不同区域OQj队列长度至多差1,从而实现了 100%负载均衡度。3、本发明只需适当选取聚合粒度k,理论上可获得最低延迟。通过模拟验证本发明调度方法在不同聚合粒度k下的延迟性能,并与目前主流的负载均衡调度算法进行比较。模拟结果显示,当聚合粒度k = 2时,本发明在目前所有能够保证报文顺序的调度算法中具有最优延迟性能,并在突发流量模型下,表现出与不具备报文保序特性的算法相当的性能。4、本发明根据流到区域的固定映射关系调度报文,调度过程简单,无需任何计算或者通信,易于硬件实现。


图1是本发明调度方法所适用的二级交换体系结构的一个示例。图2是本发明在具体应用实例中构建流到区域的映射方法在端口数目N = 32,聚合粒度k = 8时,采用双循环映射方式得到的流到区域的映射结果示意图。图3是本发明在具体应用实例中执行负载均衡调度方法流程示意图。图4是本发明在具体应用实例中于流量突发情况下采用本发明最小长度分派后,信元在第二级输入端口 OQ缓冲区的分布情况示意图。
具体实施例方式以下将结合说明书附图和具体实施例对本发明做进一步详细说明。本发明基于两级交换的负载均衡调度方法,首先第一级输入端口将到达信元按照目的端口缓冲在VOQ队列,调度器通过第一级交换网络(如图所示的Mesh网络)将报文交换至第二级输入端口,VOQ队列中来自同一条流的k个信元,称之为一个单位帧,单位帧是本发明最小调度单元。第一级每个输入端口独立执行本发明的调度方法,根据流量分布矩阵执行最小长度分派,在k个连续的外部时间槽,通过第一级交换网络(Mesh网络)将同一条流的单位帧发送至该流固定的映射区域。N个第二级输入端口被依次划分为N/k组,每组含k个连续的第二级输入端口构成一个区域;各区域按照目的端口将信元缓冲在OQ队列,由于流到区域的映射关系固定,来自同一单位帧的k个信元将依次到达OQ队列头位置,通过第二级交换网络(如图所示的Mesh网络)交换至目的输出端口。在上述过程中,每个输入端口独立执行基于流映射的信元分派算法:将同一条流的单位帧通过第一级Mesh网络发送该流固定的映射区域;各区域按照目的端口将信元缓冲在OQ队列,由于流到区域的映射关系固定,来自同一单位帧的k个信元将依次到达OQ队列头位置,等待第二级Mesh网络空闲时依次到达输出端口。若将第一级缓冲区实现于第一级线卡,第二级缓冲区实现于第二级线卡,那么上述二级交换结构则成为典型的负载均衡交换结构,本发明尤其适用于负载均衡路由器报文调度方法。为便于表述,本发明使用Mesh网络来阐述发明内容,Mesh网络可理解为实现报文交换至第二级输入端口及目的输出端口的技术途径,可以是Mesh网络也可以是其他交换技术。由上可知,本发明的核心就在于将k个连续的输入端口划分为一个区域,输入端采用基于流映射的负载分配算法,以细粒度的方式将同一条流的k个信元分派到固定的映射区域。通过理论证明,该调度策略可获得100%吞吐率并能够保证报文的顺序。其中k为聚合粒度,其决定了每次调度同一条流的信元个数。为避免流量区域集中现象,本发明进一步采用双循环(dual-rotation)方式构建不同输入端口的流到区域的映射关系。为实现负载在第二级输入端口的均衡分布,本发明进一步在每个输入端口维护全局统一视图的流量分布矩阵,根据流量分布矩阵调度单位帧,可实现100%负载均衡度。图1是本发明调度方法所适用的二级交换体系结构的一个示例。图中,VOQm表示第一级输入端口 i的虚拟输出队列」表示第二级输入端口 I的输出队列j ;f(i, j)表示从第一级输入端口 i到输出端口 j的流;k为聚合粒度,表示连续调度同一条流信元的数目(k为端口数N的因数)!VOQm队列的每k个信元构成一个单位巾贞(unit frame),第一级输入端口 i处N/k个不同VOQ队列的单位巾贞(共计N个信元)构成一个聚合巾贞(aggregate
frame), VOQij j队列的N个信元,构成一个满巾贞(full frame);第二级输入端口 1,2,----,
N被依次分成N/k组,每一组含k个连续的第二级输入端口,第g组的k个第二级输入端口构成一个区域,记作Rg,Sr, z表示区域r的第z个第二级输入端口 ;每个输入端口的N条流被划分为N/k组与N/k个区域相对应,每组含k条流,输入端口 i第f组的k条流构成一个流分支,记作込。为降低报文缓冲存储器带宽需求,Mesh网络通常运行在速率R/N(内部链路加速比为I),由此得到以下定义:定义1.在速率为R的链路发送或接收一个信元所耗费的时间为外部时间槽(external time slot)。定义2.在速率为R/N的链路发送或接收一个单位帧所耗费的时间为时间槽(timeslot),时间槽为外部时间槽的N倍。通常情况下,在每个时间槽即每N个外部时间槽,UFFS-k算法可从输入端N/k个流分支中聚合N/k个单位帧构成一个聚合帧分派到第二级输入端口。VOQ队列均衡系数反映了流量在第二级输入端口 OQ队列分布的均衡性,本发明根据各区域OQ队列长度调度单位帧,实现了区域间的负载均衡。接下来,将详细阐述本发明均衡系数工作原理。通过采用对时间槽的归纳法证明,可以从理论上证明上述基于流映射的调度方法可以保证对任意区域Rg,0 < j < N,k个第二级输入端口对应的k个叩;队列长度相同(忽略单位帧的传输延迟),其中leRg。由此,可得到以下定义:
定义3.既然对任意区域Rg,0(;;队列长度相同(I e Rg),那么队列VOQq均衡系数等于其映射区域Rg输出队列j的长度,记作Lg, jt)
定义4.若队列VOQm存在单位帧且均衡系数满足1 =l.则在连续的k个丄,Ji)<g<N/k
外部时间槽将VOQy队列单位帧发送到区域Rg,这就是最小长度分派。可以从理论上证明采用最小长度分派策略可以保证在时间槽T结束后,对任意两个区域Rgl,Rg2,其OQ队列长度Lg1,」与Lg2,」最多差I,从而能够实现100%吞吐率及100%负载均衡度。为实现最小长度分派,第一级输入端口调度器需要维护全局统一视图的流量分布矩阵L = [Lg,」],为了保证流量分布矩阵在每个输入端口视图的一致性,必须实现各端口对流量分布矩阵写操作的互斥性。本发明采用锁机制实现对互斥量Lg,」的互斥写:若g,
j满足1w且Ly处于解锁(unlock)状态,那么第一级输入端口 i对L&加锁后
将VOQm队列单位帧发送至其映射区域Rg,Lu加I后被解锁。流分支中均衡系数Ly处于加锁状态的VOQq队列直接被跳过。不难推断,只有那些流到区域的映射关系相同的输入端口同时调度目的端口相同VOQy队列时才可能引发对同一 Ly的写冲突,对均衡系数Lg,j的互斥写可以避免这些输入端口同时将多个单位帧发送到同一区域的输出队列j,造成流量分布不均衡。基于流映射的报文调度算法根据本地VOQ队列信息调度信元,可分布于第一级每个输入端口独立执行,步骤二描述的是第一级每个输入端口执行本发明负载均衡调度方法的过程。在本发明中,第一步采用双循环(dual-rotation)方式构建流到区域的映射。流到区域的映射方法关系到第二级存储资源及两级Mesh网络的利用率,为避免吞吐量损失流到区域的映射算法应实现输入负载在各区域的均衡分布。本发明提出一种兼顾负载均衡和报文保序的双循环(dual-rotation)映射算法,其设计思想源于对报文乱序原因的本质分析:当同一条流的信元所在第二级缓冲区OQ队列长度不同时就会引发信元乱序,并且乱序信元数目随着OQ队列长度差异的增大而增大。若以细粒度的方式将同一条流的k个信元分派到预先设定的映射区域(k个连续的第二级输入端口),由于流到区域的映射关系固定,对任意流,其信元所在映射区域的OQ队列长度相同,从而实现了信元的按序发送。1.1既然对于任意给定的区域,只能接收同一输入端口固定的k条流,那么为实现负载在各区域的均衡分布,以循环方式构建第一级输入端口 N/k个流分支到第二级输入端口 N/k个区域的映射,步骤1.1对应双循环映射算法伪码描述的第一层for循环,步骤1.1保证了每个区域恰能涵盖所有的流;1.2进一步以循环方式调整不同输入端口与N/k种映射方式的关联,步骤1.2对应双循环映射算法伪码描述的第二层for循环,步骤1.2保证了每个区域按照输入端口的均衡分布涵盖所有的流。双循环映射算法通过简单的取模运算建立流到区域的映射关系易于硬件实现,其伪码描述如下:
权利要求
1.一种基于两级交换的负载均衡调度方法,其特征在于: 第一级输入端口将到达信元按照目的端口缓冲在VOQ队列,调度器通过第一级交换网络将报文交换至第二级输入端口,VOQ队列中来自同一条流的k个信元称之为一个单位帧,单位帧是最小调度单元;第一级每个输入端口根据流量分布矩阵执行最小长度分派,在k个连续的外部时间槽,通过第一级交换网络将同一条流的单位帧发送至该流固定的映射区域; N个第二级输入端 口被依次划分为N/k组,每组含k个连续的第二级输入端口构成一个区域,各区域按照目的端口将信元缓冲在OQ队列,由于流到区域的映射关系固定,来自同一单位帧的k个信元将依次到达OQ队列头位置,通过第二级交换网络交换至目的输出端□。
2.根据权利要求1所述的基于两级交换的负载均衡调度方法,其特征在于,采用双循环方式构建流到区域的映射: (1.D以循环方式构建第一级输入端口 N/k个流分支到第二级输入端口 N/k个区域的映射,以保证每个区域恰能涵盖所有的流; (1.2)进一步以循环方式调整不同输入端口与N/k种映射方式的关联,以保证每个区域按照输入端口的均衡分布涵盖所有的流。
3.根据权利要求1所述的基于两级交换的负载均衡调度方法,其特征在于,输入端口调度时根据流到区域的映射关系分派信元以轮询方式服务于N/k个流分支,所述第一级输入端口在每个外部时间槽的操作流程如下: (2.1)若流分支O、VOQ队列存在满帧,则优先调度满帧,赋予该满帧N/k个单位帧最高调度优先级,查找流量分布矩阵L,截取满帧第一个单位帧,发送到目前Ly最小的区域Rg,即执行步骤(2.1.1) (2.1.k),若不存在满帧则转步骤(2.2); (2.1.1)若输入端口 i到第二级输入端口 Sgil的内部链路空闲,则将VOQm队列头信元发送到区域Rg第二级输入端口 Sgil,否则f = (f+l)modN/k,转步骤(2.1); (2.1.2)发送VOQiij队列头信元到区域Rg第二级输入端口 Sg,2 ; (2.1.3)发送VOQiij队列头信元到区域Rg第二级输入端口 Sg,3 ; 依此类推至(2.l.k)发送VOQm队列头信元到区域Rg第二级输入端口 Sg,k,g= (g+1)modN/k,转步骤(2.1); (2.2)若流分支还、VOQ队列、VOQi,」,其中kf彡j < kf+k存在最高调度优先级单位帧,则查找流量分布矩阵L,将该单位帧发送到目前Ly最小的区域Rg,即执行步骤(2.1.1) (2.1.k),否则转步骤(2.3); (2.3)若流分支O、VOQ队列存在一个或多个单位帧,则查找流量分布矩阵L,根据查找结果选择最小均衡系数VOQ队列的单位帧,将其发送到流分支y的固定映射区域Rg,即执行步骤(2.1.1) (2.1.k),若仅含一个单位帧则可跳过流量分布矩阵查找操作,直接将流分支唯一的单位巾贞发送到其固定映射区域Rg,否则流分支β}不含任何单位巾贞,g = (g+1)modN/k,转步骤(2.1)。
全文摘要
一种基于两级交换的负载均衡调度方法,第一级输入端口将到达信元按照目的端口缓冲在VOQ队列,调度器通过第一级交换网络将报文交换至第二级输入端口,VOQ队列中来自同一条流的k个信元称之为一个单位帧;第一级每个输入端口根据流量分布矩阵执行最小长度分派,在k个连续的外部时间槽,通过第一级交换网络将同一条流的单位帧发送至该流固定的映射区域;N个第二级输入端口被依次划分为N/k组,每组含k个连续的第二级输入端口构成一个区域,各区域按照目的端口将信元缓冲在OQ队列,通过第二级交换网络交换至目的输出端口。本发明具有调度过程简单、无需任何计算或者通信、易于硬件实现、实现了100%的吞吐率并能保证报文的顺序等优点。
文档编号H04L12/803GK103152281SQ20131006939
公开日2013年6月12日 申请日期2013年3月5日 优先权日2013年3月5日
发明者戴艺, 肖立权, 伍楠, 曹继军, 高蕾, 张鹤颖, 童元满, 董德尊, 王绍刚, 沈胜宇, 刘路, 肖灿文, 张磊, 王永庆, 齐星云, 陆平静 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1