CN108011838A - 基于响应时间的sdn多控制器负载均衡方法 - Google Patents
基于响应时间的sdn多控制器负载均衡方法 Download PDFInfo
- Publication number
- CN108011838A CN108011838A CN201711234864.XA CN201711234864A CN108011838A CN 108011838 A CN108011838 A CN 108011838A CN 201711234864 A CN201711234864 A CN 201711234864A CN 108011838 A CN108011838 A CN 108011838A
- Authority
- CN
- China
- Prior art keywords
- msub
- mrow
- mtd
- controller
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
Abstract
本发明公开一种基于响应时间的SDN多控制器负载均衡方法,包括SDN控制器响应时间计算模块、SDN控制器负载及响应权值计算模块、负载均衡判定与决策模块。本发明通过SDN控制器周期性更新其对交换机请求消息的平均响应时间来实时统计与度量自身及其所管理的交换机的实时负载信息,从而周期更新SDN控制器的响应权值;负载均衡判定与决策模块先根据权值情况来判断是否需要启动负载均衡;如果需要进行SDN控制器负载均衡,再根据统计的其他SDN控制器负载信息得出最佳的均衡策略。本发明实现了基于实时响应时间的SDN多控制器的负载计算和判断,并做出基于交换机迁移的SDN多控制器负载均衡决策。
Description
技术领域
本发明涉及一种SDN负载均衡技术,具体涉及一种基于响应时间的SDN多控制器之间的负载均衡方法。
背景技术
SDN(Software-Define Networking),即软件定义网络,作为一种新型的网络架构,它可以通过设计网络功能软件的方式来解决日益庞大的网络的管理与配置问题。
SDN属于集中式的管理方式,它通过集中式的控制器对网络交换机进行管理和路由计算,并通过下发流表项到交换机的方式来将路由计算的结果存储在交换机中流表中,以便相同路径的数据包请求可以直接查询匹配流表项转发而不需要再次给控制器发送请求。因此,SDN通过控制器软件控制层与交换机转发层的解耦,实现了控制层对转发层的集中式路由与管理。但是,随着网络的不断扩大,SDN中传统的单一控制器的管理模式并不能满足网络流量的需要。同时单一的控制器还容易出现单点故障问题,单一控制器的失效会网络瘫痪。SDN多控制器的出现可以较好地缓解这一问题,解决了单一控制器所带来的网络性能瓶颈问题。
在SDN多控制器环境下,控制器同样可以管理不同数目的交换机。由于控制器和交换机之间仍然保持着静态匹配的关系,以及网络流量的分布不均和流量的突发性,会导致不同的SDN控制器之间的负载分布不均。这使得当一个或多个控制器过载而严重影响网络性能的同时,其他控制器处于空闲的未被充分利用的资源浪费状态,从而造成了网络的整体性能的下降。
在OpenFlow协议1.3中,明确地指出了控制器对于交换机拥有三种不同的角色,master、equal和slave。这使得交换机与控制器之间可以用动态的匹配代替原有的静态关系,也使得SDN多控制器之间的负载均衡可以直接通过控制器对交换机管理角色的改变来实现,从而通过交换机的迁移实现了控制器之间负载的迁移。然而,交换机迁移的策略的不同,也会使得整体网络性能的提升效果有所不同。因此,SDN多控制器之间如何进行负载均衡仍是我们亟待解决的问题。
然而,在调研到的SDN多控制器负载均衡方案中,大多数以单纯的OpenFlow消息数目作为控制器的负载判断依据,这样在单一的考虑负载情况可能不够准确,因为控制器对每一个OpenFlow消息的响应速度是不一样的;也有方案是用CPU、内存利用率的加权和来作为控制器负载权值的判断依据,这种情况下统计到的利用率可能会受到控制器中其他的功能模块的影响而不够准确,而且CPU、内存使用情况也波动频繁且不易直接获取。
发明内容
发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种基于响应时间的SDN多控制器负载均衡方法。
技术方案:本发明的一种基于响应时间的SDN多控制器负载均衡方法,在SDN控制器内部设置相应功能模块,包括SDN控制器响应时间计算模块、SDN控制器负载及响应权值计算模块、负载均衡判定与决策模块;
具体包括以下步骤:
(1)伴随着SDN控制器的正常运行,响应时间计算模块周期性的统计并计算得到SDN控制器对每一个OpenFlow请求消息的响应时间tresponse,同时对于该SDN控制管理的所有交换机,均统计各个交换机分别在该周期内收到的相应OpenFlow请求总数sk是指第i个SDN控制器ci所管理的第k个交换机;
(2)由响应时间计算模块得到该SDN控制器针对每一个交换机在一个周期内的平均请求响应时间并由此得到该SDN控制器在一个周期内针对于所有交换机OpenFlow请求消息的平均响应时间
(3)由负载及响应权值计算模块得到该周期内的交换机和SDN控制器的负载值和同时计算出该周期的SDN控制器负载权值
(4)当满足条件时,收集其他SDN控制器负载权值,得到负载权值差异矩阵,并根据该矩阵进行判断是否需要启动负载均衡;如果需要启动,转到步骤(5);
(5)通过收集到的其他SDN控制器负载权值以及该SDN控制器所管理的交换机负载情况,进行控制器负载均衡策略的制定。
进一步的,所述步骤(1)的具体过程为:
对于第k个交换机sk而言,当管理它的第i个SDN控制器ci收到了该交换机sk发来的一个OpenFlow消息时,响应时间计算模块记录该OpenFlow请求消息的到达时间tarrive、以及控制器给予OpenFlow请求消息发送回复消息的时间treply;然后得到控制器针对该消息的回复时间tresponse:
tresponse=treply-tarrive
最终收集一个周期T内,控制器ci收到交换机sk所发送的请求消息数目以及每一个OpenFlow请求消息的响应时间tresponse。
进一步的,所述步骤(2)的具体过程为:
(2.1)由步骤(1)中所计算出来的消息请求数以及每条消息的响应时间,计算出该控制器ci对于交换机sk在一个周期T内的平均请求响应时间:
(2.2)通过当前周期T内控制器ci所管理的交换机集合中活跃交换机数目求得该周期T内控制器ci对所有交换机请求消息的平均响应时间
进一步的,所述步骤(3)的具体过程为:
(3.1)在该周期T内,计算控制器ci下的交换机sk的负载值:
(3.2)然后,由该控制器ci下的每一个交换机的负载值情况,得到在该周期T内,该控制器ci的负载值:
(3.3)最终通过上一周期的控制器ci的平均响应时间以及该周期的控制器ci的平均响应时间更新控制器ci的负载权值
其中,公式左边的为当前周期的负载权值,即为新的负载权值,公式右边的为上一周期的负载权值;并且第一个周期时的负载权值,即初始值为:其中为第一个周期的平均响应时间。
进一步的,所述步骤(4)的具体过程为:
(4.1)判断该控制器ci的负载权值是否小于零;如果则该控制器有明显的响应时间增大,即该控制器可能会过载,此时需要收集其他所有控制器的负载权值,如第j个控制器cj的负载权值并计算任意两个控制器之间的权值差异:
其中,j=1,2,...,N,且j≠i;
(4.2)由所有控制器之间的权值差异构成了N维的权值差异矩阵:
(4.3)给定阈值σ(该阈值可以通过多次实验中测到的过载控制器与空闲控制器的负载权值差值的平均值来确定),如果存在且满足同时则判定该控制器ci过载且需要启动负载均衡。
进一步的,所述步骤(5)的具体方法为:
(5.1)找出矩阵中所有的满足且满足同时的控制器配对,将所有满足条件的配对中的负数权值控制器加入集合OM_C中并对其从小到大排序,正数控制器集合加入集合IM_C中并对其由大到小排序;
(5.2)找到该过载控制器ci的权值的排序位置n,即为OM_C集合中的第n小权值;
(5.3)根据步骤(3)所得中所有交换机的负载中,选择最大负载的交换机sk;
(5.4)将交换机sk上的所有负载从控制器ci迁移到IM_C集合中的第n个控制器cn上。
有益效果:与现有技术相比,本发明具有以下优点:
(1)本发明是在SDN控制器内部进行相应的模块开发,从而控制器独立地根据自身的负载信息进行判定负载情况,进而收集其他控制器的负载信息和迁移决策的制定,因此本发明是分布式的SDN多控制器负载均衡方案。相比于大多数的集中式的负载均衡器的设计,本发明利用了分布式的处理有效地规避了集中式的单点故障和性能瓶颈问题,给SDN多控制器负载均衡的稳定性带来了保障。
(2)本发明利用分布式负载均衡方法进行处理,当检测判断出控制器自身负载权值小于0后,才进行对其他控制器负载权值的统计和处理,这样避免了集中式负载均衡器的周期性的统计所有控制器的负载情况,避免了控制器之间的频繁的通信开销。
(3)本发明充分利用了控制器的周期平均响应时间这一因素,为交换机和控制器负载值的计算带来了便利,避免了CPU利用率、内存利用率和网络带宽等的复杂变动数值的统计,而且也周期平均响应时间可以更加清晰有效的反映出控制器自身负荷的变动情况。
(4)本发明为控制器引入了一个负载权值,通过控制器的前后两个周期的响应时间不断进行更新,通过负载权值的精细变动,可以更加准确的描述控制器对于消息请求的响应速度,也可以更好地比对不同控制器之间的负载差异。
(5)本发明是不同控制器根据自身负载情况进行判断和负载均衡策略的制定,而且是根据当前的负载权值在过载控制器权值集合中的大小进行相应的迁出控制器的选择,所有本发明支持多个过载控制器同时的无冲突的交换机迁移操作。
附图说明
图1为本发明的整体流程图;
图2为本发明使用情境的角色示意图;
图3为本发明中步骤(1)的具体流程图;
图4为本发明中步骤(2)的具体流程图;
图5为本发明中步骤(3)的具体流程图;
图6为本发明中步骤(4)的具体流程图;
图7为本发明中步骤(5)的具体流程图。
具体实施方式
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
本发明中相关技术术语的含义如下:
SDN多控制器是指用多个SDN控制器来扩充完全集中式的单一控制器的控制层,从而弥补一个SDN控制器的性能瓶颈和单点故障等问题。
OpenFlow会话是指交换机通过其与控制器之间OpenFlow安全通道发送OpenFlow协议消息请求以及控制器给予OpenFlow应答消息的总称;在交换机所发送的OpenFlow协议请求消息中,路由计算请求的Packet_in消息占绝大部分。
控制器响应时间是指控制器每次收到一个交换机发送来的OpenFlow请求消息的时刻与控制器处理后给予响应的消息回复的时刻之间的时间。
Packet_in消息是指当SDN交换机无法匹配数据包时会将数据包头封装为一个消息发送至SDN控制器,以便SDN控制器进行决策,该消息称为Packet_in消息。
控制器角色是指在OpenFlow协议1.3中所提到的,一个交换机可以连接到多个控制器上,其中有且仅有一个控制器可以作为主控制器,即master角色,可以收到交换机的任何OpenFlow请求消息并进行相应的处理;其他的控制器作为slave或equal角色,可以收到交换机发送的OpenFlow消息,但不做任何处理响应。
交换机迁移是指交换机由原来的主控制器转移连接到新的主控制器上,原来的主控制器变为slave或equal角色。
SDN多控制器负载均衡是指通过交换机在控制器之间进行迁移的方式,将过载的控制器的负载迁移到空闲负载的控制器上,从而实现控制器之间的负载均衡。
负载权值是通过前后周期的控制器平均响应时间的变动不断迭代更新的可以表征控制器响应速度变化的一个控制器负载指标值,其在系统启动的第一个周期和控制器负载迁出后的第一个周期内,恢复初始值;负载权值递减,则控制器的响应速度递减,故控制器负载递增;当该值小于0,我们认为可能会过载。
实施例1:
如图1和图2所示,本发明的基于响应时间的SDN多控制器负载均衡方法,依次包括以下步骤:
(1)伴随着SDN控制器Controller A和Controller B的正常运行,两个控制器的响应时间计算模块都分别周期性地统计并计算得到它们各自对每一个OpenFlow请求消息的响应时间,同时分别统计一个周期内的它们所管理的两个交换机集合{S1,S2,S3,S4,S5}和{S6,S7,S8}中每一个交换机各自的OpenFlow请求总数;
(2)由Controller A和Controller B的响应时间计算模块得到它们各自针对所管理的两个交换机集合中每一个交换机在一个周期内的平均消息请求响应时间,并由此得到其在一个周期内针对于所受到的所有OpenFlow消息请求的平均响应时间;
(3)由Controller A和Controller B的负载及响应权值计算模块得到该周期内的交换机和控制器的负载值,同时计算出该周期的控制器负载权值;
(4)当满足条件时,收集其他控制器负载权值,得到负载权值差异矩阵,并根据该矩阵进行判断是否需要启动负载均衡;如果需要启动,转到步骤(5);
(5)通过收集到的其他控制器负载权值以及该控制器所管理的交换机负载情况,进行控制器负载均衡策略的制定,在负载均衡完成后更新负载阈值。
如图2所示,上述基于响应时间的SDN多控制器负载均衡方法可实现SDN多控制器之间的负载分配不均衡的问题,本实施例的SDN多控制器中设有SDN控制器响应时间计算模块、SDN控制器负载及响应权值计算模块、负载均衡判定与决策模块。
如图3和图2所示,步骤(1)的具体实时过程如下:
1.通过一款OpenFlow控制器性能测试工具Cbench,我们可以在模拟交换机发送Packet_in。在周期T1内,我们在交换机S1,S2,S3,S4,S5上分别以每秒2000个Packet_in消息向Controller A发送数据包,同时在Controller B上的S6,S7,S8交换机上也以每秒2000个Packet_in消息发送数据包,两个控制器都统计和计算分别由每个交换机发来的消息总数以及对每一条消息的到达时间tarrive;
2.Controller A和Controller B的响应时间计算模块分别都记录下其给予每一条Packer_in发送回复消息的时间treply;
3.得到Controller A和Controller B针对每一条消息的响应时间tresponse=treply-tarrive;
4.此处统计第一周期T1内,Controller A收到集合{S1,S2,S3,S4,S5}中每一个交换机发送来的请求消息总数以及对每一个消息的响应时间和Controller B收到集合{S6,S7,S8}中每一个交换机发送来的请求消息数目以及对每一个消息的响应时间。
如图4和图2所示,步骤(2)的具体实现过程如下:
1.由步骤(1)中所计算出来T1周期的相关数据,通过控制器ci对于交换机sk在一个周期T内的控制器平均请求响应时间公式我们可以计算得到Controller A和Controller B分别对交换机集合{S1,S2,S3,S4,S5}{S6,S7,S8}中每一个交换机在T1周期的平均响应时间:
2.由上一步过程的计算结果,通过当前周期T内控制器ci所管理的交换机集合中活跃交换机数目可以求得该周期T内控制器ci对所有交换机请求消息的平均响应时间然后求得Controller A和Controller B分别对两个交换机集合{S1,S2,S3,S4,S5}{S6,S7,S8}在T1周期的平均响应时间:
通过上述步骤(1)和步骤(2)的周期性的不断统计和计算,得到控制器ControllerA和Controller B在周期T2、T3、T4等的数据值,以便于不断迭代更新控制器负载权值以及交换机迁移的选择等过程。
如图5和图2所示,步骤(3)的具体实现过程如下:
1.由步骤(1)的过程4中统计的值,以及步骤(2)过程1中计算的得到在该周期T内,该控制器ci下的交换机sk的负载值;得到交换机集合{S1,S2,S3,S4,S5}{S6,S7,S8}中每一个交换机给其相应的控制器所带来的负载值:
2.由该控制器ci下的每一个交换机的负载值情况,能够得到在该周期T内,该控制器ci的负载值;得到两个交换机集合{S1,S2,S3,S4,S5}{S6,S7,S8}分别给控制器Controller A和Controller B带来的总负载值:
3.由上一周期的控制器ci的平均响应时间该周期的控制器ci的平均响应时间更新控制器ci的负载权值由步骤(1)(2)的T1周期的数据算得控制器Controller A和Controller B的权值初始值,由T2周期的数据我们可以更新控制器Controller A和Controller B的权值:
如图6和图2所示,步骤(4)的具体实现过程如下:
1.本实施例在T3周期用Cbench给予交换机S5每秒5000个数据包,其他交换机的发送速率不变;此时由于控制器Controller A的权值为-0.119194,Controller B的负载权值为0.90991;由于控制器Controller A的负载权值小于0,则控制器Controller A收集控制器Controller B的负载权值,计算权值差异为1.02910;
2.由于实例中仅涉及两个控制器Controller A和Controller B,所以权值差异矩阵简化为单个数据1.02910;
3.根据多次实验,给予合理的测试阈值σ=0.9,则判定控制器Controller A过载且需要其启动负载均衡模块。
如图7和图2所示,步骤(5)的具体实现过程如下:
1.将Controller A加入集合OM_C中,Controller B加入集合IM_C中;
2.由于实例仅涉及连个控制器,所以排序后的结果对集合OM_C和IM_C顺序无影响;
3.选择控制器Controller A中负载值最大的交换机S5;
4.将交换机S5上的所有负载从控制器Controller A迁移到IM_C集合中的控制器Controller B上。
5.交换机迁移结束后,对于发生迁移的控制器,我们需要通过新周期的负载权值来进行初始化操作,并清空控制器Controller A中的集合OM_C和IM_C。
上述步骤结束后,进入新一周期的判断和处理,直至控制器系统关闭。
通过上述实施例可以看出本发明充分考虑控制器对OpenFlow消息的响应时间这一因素,来更好地描述控制器响应速度的变化情况和控制器之间的相对负载情况。
Claims (6)
1.一种基于响应时间的SDN多控制器负载均衡方法,其特征在于:包括以下步骤:
(1)伴随着SDN控制器的正常运行,响应时间计算模块周期性的统计并计算得到SDN控制器对每一个OpenFlow请求消息的响应时间tresponse,同时对于该SDN控制管理的所有交换机,均统计各个交换机分别在该周期内收到的相应OpenFlow请求总数sk是指第i个SDN控制器ci所管理的第k个交换机;
(2)由响应时间计算模块得到该SDN控制器针对每一个交换机在一个周期内的平均请求响应时间并由此得到该SDN控制器在一个周期内针对于所有交换机OpenFlow请求消息的平均响应时间
(3)由负载及响应权值计算模块得到该周期内的交换机和SDN控制器的负载值和同时计算出该周期的SDN控制器负载权值
(4)当满足条件时,收集其他SDN控制器负载权值,得到负载权值差异矩阵,并根据该矩阵进行判断是否需要启动负载均衡;如果需要启动,转到步骤(5);
(5)通过收集到的其他SDN控制器负载权值以及该SDN控制器所管理的交换机负载情况,进行控制器负载均衡策略的制定。
2.根据权利要求1所述的基于响应时间的SDN多控制器负载均衡方法,其特征在于:所述步骤(1)的具体过程为:
对于第k个交换机sk而言,当管理它的第i个SDN控制器ci收到了该交换机sk发来的一个OpenFlow消息时,响应时间计算模块记录该OpenFlow请求消息的到达时间tarrive、以及控制器给予OpenFlow请求消息发送回复消息的时间treply;然后得到控制器针对该消息的回复时间tresponse:tresponse=treply-tarrive
最终收集一个周期T内,控制器ci收到交换机sk所发送的请求消息数目fcisk,以及每一个OpenFlow请求消息的响应时间tresponse。
3.根据权利要求1所述的基于响应时间的SDN多控制器负载均衡方法,其特征在于:所述步骤(2)的具体过程为:
(2.1)由步骤(1)中所计算出来的消息请求数以及每条消息的响应时间,计算出该控制器ci对于交换机sk在一个周期T内的平均请求响应时间:
<mrow>
<msub>
<mi>t</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
</mrow>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<mo>&Sigma;</mo>
<msub>
<mi>t</mi>
<mrow>
<mi>r</mi>
<mi>e</mi>
<mi>f</mi>
<mi>p</mi>
<mi>o</mi>
<mi>n</mi>
<mi>s</mi>
<mi>e</mi>
</mrow>
</msub>
</mrow>
<msub>
<mi>f</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
</mrow>
</msub>
</mfrac>
</mrow>
(2.2)通过当前周期T内控制器ci所管理的交换机集合中活跃交换机数目求得该周期T内控制器ci对所有交换机请求消息的平均响应时间
<mrow>
<msub>
<mi>t</mi>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
</msub>
<mo>=</mo>
<mfrac>
<mrow>
<munder>
<mo>&Sigma;</mo>
<mrow>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
<mo>&Element;</mo>
<msub>
<mi>Q</mi>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
</msub>
</mrow>
</munder>
<msub>
<mi>t</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
</mrow>
</msub>
</mrow>
<mrow>
<mi>C</mi>
<mi>o</mi>
<mi>u</mi>
<mi>n</mi>
<mi>t</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>Q</mi>
<mrow>
<mi>c</mi>
<mi>i</mi>
</mrow>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mfrac>
<mo>.</mo>
</mrow>
4.根据权利要求1所述的基于响应时间的SDN多控制器负载均衡方法,其特征在于:所述步骤(3)的具体过程为:
(3.1)在该周期T内,计算控制器ci下的交换机sk的负载值:
<mrow>
<msub>
<mi>L</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
</mrow>
</msub>
<mo>=</mo>
<msub>
<mi>f</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
</mrow>
</msub>
<mo>&CenterDot;</mo>
<msub>
<mi>t</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
</mrow>
</msub>
<mo>;</mo>
</mrow>
(3.2)然后,由该控制器ci下的每一个交换机的负载值情况,得到在该周期T内,该控制器ci的负载值:
<mrow>
<msub>
<mi>L</mi>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
</msub>
<mo>=</mo>
<munder>
<mo>&Sigma;</mo>
<mrow>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
<mo>&Element;</mo>
<msub>
<mi>Q</mi>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
</msub>
</mrow>
</munder>
<msub>
<mi>f</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
</mrow>
</msub>
<mo>&CenterDot;</mo>
<msub>
<mi>t</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<msub>
<mi>s</mi>
<mi>k</mi>
</msub>
</mrow>
</msub>
<mo>;</mo>
</mrow>
(3.3)最终通过上一周期的控制器ci的平均响应时间以及该周期的控制器ci的平均响应时间更新控制器ci的负载权值
<mrow>
<msub>
<mi>W</mi>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
</msub>
<mo>=</mo>
<msub>
<mi>W</mi>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
</msub>
<mo>+</mo>
<mroot>
<mrow>
<msub>
<mi>t</mi>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
</msub>
<mo>-</mo>
<msubsup>
<mi>t</mi>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<mo>&prime;</mo>
</msubsup>
</mrow>
<mn>3</mn>
</mroot>
</mrow>
其中,公式左边的为当前周期的负载权值,即为新的负载权值,公式右边的为上一周期的负载权值;并且第一个周期时的负载权值,即初始值为:其中为第一个周期的平均响应时间。
5.根据权利要求1所述的基于响应时间的SDN多控制器负载均衡方法,其特征在于:所述步骤(4)的具体过程为:
(4.1)判断该控制器ci的负载权值是否小于零;如果则该控制器有明显的响应时间增大,即该控制器可能会过载,此时需要收集其他所有控制器的负载权值,如第j个控制器cj的负载权值并计算任意两个控制器之间的权值差异:
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
<msub>
<mi>c</mi>
<mi>j</mi>
</msub>
</mrow>
</msub>
<mo>=</mo>
<mrow>
<mo>|</mo>
<mrow>
<msub>
<mi>W</mi>
<msub>
<mi>c</mi>
<mi>i</mi>
</msub>
</msub>
<mo>-</mo>
<msub>
<mi>W</mi>
<msub>
<mi>c</mi>
<mi>j</mi>
</msub>
</msub>
</mrow>
<mo>|</mo>
</mrow>
<mo>;</mo>
</mrow>
其中,j=1,2,K,N,且j≠i;
(4.2)由所有控制器之间的权值差异构成了N维的权值差异矩阵:
<mrow>
<msub>
<mi>D</mi>
<mrow>
<mi>N</mi>
<mo>&times;</mo>
<mi>N</mi>
</mrow>
</msub>
<mo>=</mo>
<mfenced open = "{" close = "}">
<mtable>
<mtr>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mi>L</mi>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
<msub>
<mi>c</mi>
<mrow>
<mi>N</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
<msub>
<mi>c</mi>
<mi>N</mi>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mi>L</mi>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
<msub>
<mi>c</mi>
<mrow>
<mi>N</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
<msub>
<mi>c</mi>
<mi>N</mi>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mi>M</mi>
</mtd>
<mtd>
<mi>M</mi>
</mtd>
<mtd>
<mrow></mrow>
</mtd>
<mtd>
<mi>M</mi>
</mtd>
<mtd>
<mi>M</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mrow>
<mi>N</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mrow>
<mi>N</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mi>L</mi>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mrow>
<mi>N</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
<msub>
<mi>c</mi>
<mi>N</mi>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>N</mi>
</msub>
<msub>
<mi>c</mi>
<mn>1</mn>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>N</mi>
</msub>
<msub>
<mi>c</mi>
<mn>2</mn>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mi>L</mi>
</mtd>
<mtd>
<mrow>
<msub>
<mi>&Delta;W</mi>
<mrow>
<msub>
<mi>c</mi>
<mi>N</mi>
</msub>
<msub>
<mi>c</mi>
<mrow>
<mi>N</mi>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msub>
</mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mn>1</mn>
</mtd>
</mtr>
</mtable>
</mfenced>
<mo>;</mo>
</mrow>
(4.3)给定阈值σ,如果存在且满足同时则判定该控制器ci过载且需要启动负载均衡。
6.根据权利要求1所述的基于响应时间的SDN多控制器负载均衡方法,其特征在于:所述步骤(5)的具体方法为:
(5.1)找出矩阵中所有的满足且满足同时的控制器配对,将所有满足条件的配对中的负数权值控制器加入集合OM_C中并对其从小到大排序,正数控制器集合加入集合IM_C中并对其由大到小排序;
(5.2)找到该过载控制器ci的权值的排序位置n,即为OM_C集合中的第n小权值;
(5.3)根据步骤(3)所得中所有交换机的负载中,选择最大负载的交换机sk;
(5.4)将交换机sk上的所有负载从控制器ci迁移到IM_C集合中的第n个控制器cn上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711234864.XA CN108011838B (zh) | 2017-11-30 | 2017-11-30 | 基于响应时间的sdn多控制器负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711234864.XA CN108011838B (zh) | 2017-11-30 | 2017-11-30 | 基于响应时间的sdn多控制器负载均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108011838A true CN108011838A (zh) | 2018-05-08 |
CN108011838B CN108011838B (zh) | 2021-03-02 |
Family
ID=62055253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711234864.XA Active CN108011838B (zh) | 2017-11-30 | 2017-11-30 | 基于响应时间的sdn多控制器负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108011838B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900428A (zh) * | 2018-06-26 | 2018-11-27 | 南京邮电大学 | 基于交换机动态迁移的控制器负载均衡方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158758A (zh) * | 2014-08-26 | 2014-11-19 | 上海斐讯数据通信技术有限公司 | Sdn网络基于用户报文时间反馈的负载均衡处理方法及系统 |
US20160330076A1 (en) * | 2015-05-05 | 2016-11-10 | Citrix Systems, Inc. | Systems and methods for configuring a device via a software-defined networking controller |
CN106559459A (zh) * | 2015-09-29 | 2017-04-05 | 中国电信股份有限公司 | Sdn控制器分配方法、sdn控制器组播组及网络系统 |
CN106657416A (zh) * | 2017-03-02 | 2017-05-10 | 北京邮电大学 | 一种控制器负载均衡方法及装置 |
-
2017
- 2017-11-30 CN CN201711234864.XA patent/CN108011838B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158758A (zh) * | 2014-08-26 | 2014-11-19 | 上海斐讯数据通信技术有限公司 | Sdn网络基于用户报文时间反馈的负载均衡处理方法及系统 |
US20160330076A1 (en) * | 2015-05-05 | 2016-11-10 | Citrix Systems, Inc. | Systems and methods for configuring a device via a software-defined networking controller |
CN106559459A (zh) * | 2015-09-29 | 2017-04-05 | 中国电信股份有限公司 | Sdn控制器分配方法、sdn控制器组播组及网络系统 |
CN106657416A (zh) * | 2017-03-02 | 2017-05-10 | 北京邮电大学 | 一种控制器负载均衡方法及装置 |
Non-Patent Citations (2)
Title |
---|
HONG ZHONG 等: "LBBSRT: An efficient SDN load balancing scheme based on server", 《FUTURE GENERATION COMPUTER SYSTEMS 68 (2017) 183–190》 * |
金玲 等: "SDN下的动态负载均衡机制", 《计算机应用与软件》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108900428A (zh) * | 2018-06-26 | 2018-11-27 | 南京邮电大学 | 基于交换机动态迁移的控制器负载均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108011838B (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111198764B (zh) | 一种基于sdn的负载均衡实现系统及方法 | |
Zhou et al. | Load balancing for multiple controllers in SDN based on switches group | |
CN105721577B (zh) | 一种面向软件定义网络的服务器负载均衡方法 | |
CN106534318B (zh) | 一种基于流量亲和性的OpenStack云平台资源动态调度系统和方法 | |
CN113490254B (zh) | 一种基于联邦学习双向gru资源需求预测的vnf迁移方法 | |
CN108600102A (zh) | 一种基于智慧协同网络中的柔性数据传输系统 | |
CN110784366B (zh) | Sdn中基于immac算法的交换机迁移方法 | |
CN107193638A (zh) | 一种基于多维环境感知的网络功能快速自适应迁移方法 | |
CN104468390B (zh) | 软件定义网络中基于分布‑集中式架构模型的多控制器负载均衡的方法 | |
CN106941456B (zh) | 一种软件定义网络中控制平面的负载均衡方法及系统 | |
CN108076158A (zh) | 基于朴素贝叶斯分类器的最小负载路由选择方法及系统 | |
CN107612771A (zh) | 一种基于动态迁移的sdn网络负载均衡方法 | |
Chen et al. | Albrl: Automatic load-balancing architecture based on reinforcement learning in software-defined networking | |
CN114567598A (zh) | 一种基于深度学习和跨域协作的负载均衡方法及装置 | |
CN106790381A (zh) | 基于加权最小连接的动态反馈负载均衡方法 | |
CN114465945B (zh) | 一种基于sdn的标识解析网络构建方法 | |
CN107147734A (zh) | 一种基于两级转发的网络流量线程级动态负载均衡方法及系统 | |
CN110198280A (zh) | 一种基于bp神经网络的sdn链路分配方法 | |
CN106101010A (zh) | 基于端局云化的vBRAS流量负载均衡方法及装置 | |
CN111865817A (zh) | 遥测采集器负载均衡管控方法、装置、设备及存储介质 | |
CN107835130A (zh) | 一种流量分配方法及装置 | |
CN116233133A (zh) | 一种数字孪生辅助数据中心网络负载均衡的方法 | |
CN110336709A (zh) | 一种基于排队网络的MPTCP Incast性能评价模型 | |
CN108011838A (zh) | 基于响应时间的sdn多控制器负载均衡方法 | |
CN107454630A (zh) | 负载均衡方法及负载均衡路由器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |