一种软件定义网络负载均衡方法、系统及装置与流程

文档序号:21926675发布日期:2020-08-21 14:47阅读:367来源:国知局
一种软件定义网络负载均衡方法、系统及装置与流程

本发明涉及一种软件定义网络负载均衡方法、系统及装置,属于通信网络的领域。



背景技术:

目前国内外关于软件定义网络(sdn)控制平面负载均衡研究主要有静态负载均衡和动态负载均衡两方面。静态负载均衡提供一个负载均衡器,由负载均衡器采用特定的负载均衡策略,将请求提前分配给各个控制器。由于网络流量是动态的、实时的,随着网络规模的日益扩大,静态负载均衡不能满足网络数据转发的要求,还会造成网络阻塞,转发延迟,丢包等问题。同时静态负载均衡并没有改变交换机与控制器之间的静态映射关系。

动态负载均衡通过实时获取控制平面负载信息,对控制平面和数据平面作出及时调整,有效均衡控制平面负载。2012年,balanceflow结构提出流量重定向概念,在过载控制器管理下的交换机上安装特定流表项。该流表项指导流请求应该转发至哪个控制器,即把流请求重定向给其他的控制器处理,从而均衡控制平面负载。但balanceflow结构并没有改变交换机与控制器之间的静态映射关系。为了解决交换机与控制器之间的静态映射问题,dixit等提出交换机迁移方案,该方案使交换机可以从一个控制器迁移到另一个控制器,从而改变交换机与控制器之间的静态映射关系。然而关于如何选择需要迁移的交换机和空闲控制器还没有详细的解决方案。zhou等提出的负载均衡算法dalb对此进行了研究。dalb允许过载控制器收集其他控制器的负载,并根据集群内所有控制器负载来判断是否需要进行负载均衡。同时,dalb迁移过载控制器下负载最大的交换机至负载最小的控制器。但dalb没有考虑距离因素对选择需要迁移的交换机和空闲控制器的影响,负载分布不均匀。



技术实现要素:

本发明提供了一种软件定义网络负载均衡方法、系统及装置,解决了背景技术中披露的问题。

为了解决上述技术问题,本发明所采用的技术方案是:

一种软件定义网络负载均衡方法,包括,

根据接收的集群内各控制器的负载信息,确定需要迁移交换机的过载控制器;

根据过载控制器与其所连交换机之间的距离以及预设的迁移概率模型,确定需要迁移的交换机;

根据过载控制器与剩余控制器之间的距离以及预设的空闲概率模型,确定剩余控制器中接收迁移交换机的空闲控制器;

发出迁移指令,控制需要迁移的交换机向空闲控制器迁移。

根据接收的集群内各控制器的负载信息,计算集群的平均负载和负载标准差,基于预设规则,确定需要迁移交换机的过载控制器。

平均负载和负载标准差公式为,

其中,为集群的平均负载,cn为集群内的控制器数量,lci为控制器i的负载,σ为集群的负载标准差。

预设规则为:

响应于集群的平均负载不超过平均负载阈值且负载均衡,没有需要迁移交换机的过载控制器;其中为集群的平均负载,σ为负载标准差,λ为参数,为集群的平均负载阈值;

响应于集群的平均负载不超过平均负载阈值但负载不均衡,没有需要迁移交换机的过载控制器;

响应于集群的平均负载超过平均负载阈值,集群需增加新的控制器;

响应于集群负载不均衡,将负载最大的控制器作为需要迁移交换机的过载控制器。

根据过载控制器与其所连交换机之间的距离以及预设的迁移概率模型,计算过载控制器所连各交换机的迁移概率,将迁移概率最大的交换机作为需要迁移的交换机。

迁移概率模型为,

其中,pkx为过载控制器x所连交换机k被迁移的概率,lcx为过载控制器x的负载,为集群的平均负载,lskx为过载控制器x所连交换机k的负载值,lskj为过载控制器x所连第j个交换机的负载值,hkx为过载控制器x所连交换机k的距离,hjx为过载控制器x所连第j个交换机的距离,sn为过载控制器x所连交换机数量。

根据过载控制器与剩余控制器之间的距离以及预设的空闲概率模型,计算各剩余控制器的空闲概率,将空闲概率最大的作为接收迁移交换机的空闲控制器。

空闲概率模型为,

其中,qy为剩余控制器y的空闲概率,cn为集群内的控制器数量,hxy为过载控制器x与剩余控制器y的距离,hxt为过载控制器x与剩余控制器t的距离,lcy为剩余控制器y的负载,lct为剩余控制器t的负载。

一种软件定义网络负载均衡系统,包括,

负载监控模块:根据接收的集群内各控制器的负载信息,确定需要迁移交换机的过载控制器;

决策模块:根据过载控制器与其所连交换机之间的距离以及预设的迁移概率模型,确定需要迁移的交换机;根据过载控制器与剩余控制器之间的距离以及预设的空闲概率模型,确定剩余控制器中接收迁移交换机的空闲控制器;

动作模块:发出迁移指令,控制需要迁移的交换机向空闲控制器迁移。

一种软件定义网络负载均衡管理装置,内部装载有软件定义网络负载均衡系统,所述软件定义网络负载均衡管理装置与集群各控制器连接。

本发明所达到的有益效果:本发明在迁移过程中考虑了距离因素,使得负载分布更均匀;同时本发明的控制器不负责监控网络负责、不收集其他控制器的负载信息、不进行决策,控制器之间不存在频繁的通信,降低网络延时,提高了控制器性能。

附图说明

图1为本发明的流程图;

图2为smlb结构框架;

图3为交换机迁移前状态;

图4为交换机迁移后状态;

图5为控制器负载状况;

图6为网络连接时延比较;

图7为控制器性能比较。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

如图1所示,一种软件定义网络负载均衡方法,包括以下步骤:

步骤1,接收集群内各控制器发送的负载信息。

控制器的负载主要由以下四个因素决定:(1)处理packet_in事件;(2)维护本控制器管理的网络视图;(3)与其他控制器之间的通信;(4)安装流表项。在不同的网络环境中,处理packet_in事件对负载影响最大,因此把周期内交换机发给控制器的packet_in事件数目作为周期内该控制器的负载。

在sdn中,一个控制器可以控制多个交换机,每个交换机产生的packet_in事件都将发送到控制器,并排队等待控制器处理。以单位时间内到达控制器的packet_in事件数目作为该控制器的负载值,如下式所示:

其中,lci为控制器i的负载,pij为周期t内交换机j发送到控制器i的packet_in事件数目。

步骤2,根据集群内各控制器的负载信息,确定需要迁移交换机的过载控制器。

根据集群内各控制器的负载信息,计算集群的平均负载和负载标准差,基于预设规则,确定需要迁移交换机的过载控制器。

平均负载和负载标准差公式为:

其中,为集群的平均负载,cn为集群内的控制器数量,σ为集群的负载标准差,反映了集群中负载分布情况。

预设规则如下:

1)响应于集群的平均负载不超过平均负载阈值且负载均衡,即集群内各控制器负载大多低于其负载阈值且负载均衡,没有需要迁移交换机的过载控制器;其中λ为参数,具体为0.4,为集群的平均负载阈值,lti为控制器负载阈值。

2)响应于集群的平均负载不超过平均负载阈值但负载不均衡;虽然负载不均衡但集群内各控制器负载大多低于其负载阈值,理论上如果频繁地进行负载均衡会削弱网络系统的稳定性,造成数据请求时延增大,所以这种在阈值范围内的适量过载是被允许的,即没有需要迁移交换机的过载控制器。

3)响应于集群的平均负载超过平均负载阈值,此时单纯靠迁移交换机已经不能达到均衡的目的,集群需增加新的控制器,以减轻控制平面负载。

4)响应于集群负载不均衡,将负载最大的控制器作为需要迁移交换机的过载控制器。

步骤3,根据过载控制器与其所连交换机之间的距离以及预设的迁移概率模型,确定需要迁移的交换机。

根据过载控制器与其所连交换机之间的距离以及预设的迁移概率模型,计算过载控制器所连各交换机的迁移概率,将迁移概率最大的交换机作为需要迁移的交换机。

迁移有以下两个考虑的准则:1、优先考虑去除后接近均值的交换机,即去除交换机后该控制器的负载接近均值;2、迁移距离过载控制器较近的交换机,减少交换机与过载控制器之间的通信开销。基于上述准则构建如下迁移概率模型:

其中,pkx为过载控制器x所连交换机k被迁移的概率,lcx为过载控制器x的负载,为集群的平均负载,lskx为过载控制器x所连交换机k的负载值,lskj为过载控制器x所连第j个交换机的负载值,hkx为过载控制器x所连交换机k的距离,hjx为过载控制器x所连第j个交换机的距离,sn为过载控制器x所连交换机数量。

步骤4,根据过载控制器与剩余控制器之间的距离以及预设的空闲概率模型,确定剩余控制器中接收迁移交换机的空闲控制器。

根据过载控制器与剩余控制器之间的距离以及预设的空闲概率模型,计算各剩余控制器的空闲概率,将空闲概率最大的作为接收迁移交换机的空闲控制器。

通常选择距离过载控制器较近的控制器作为空闲控制器,但是这样的做法可能会造成过载控制器周围的控制器负载相对较大,而距离过载控制器较远的控制器负载相对较小,造成负载分布不均匀,为了使得控制器负载有更好的分布性,这里选择负载较小且距离过载交换机距离较远的控制器作为空闲控制器。基于上述准则构建如下空闲概率模型:

其中,qy为剩余控制器y的空闲概率,cn为集群内的控制器数量,hxy为过载控制器x与剩余控制器y的距离,hxt为过载控制器x与剩余控制器t的距离,lcy为剩余控制器y的负载,lct为剩余控制器t的负载。

上述模型中,不需要知道迁移的具体交换机和本身负载情况,进一步降低控制器之间的通信开销增加。

步骤5,发出迁移指令,控制需要迁移的交换机向空闲控制器迁移。

一种软件定义网络负载均衡系统,包括,

负载监控模块:根据接收的集群内各控制器的负载信息,确定需要迁移交换机的过载控制器。

决策模块:根据过载控制器与其所连交换机之间的距离以及预设的迁移概率模型,确定需要迁移的交换机;根据过载控制器与剩余控制器之间的距离以及预设的空闲概率模型,确定剩余控制器中接收迁移交换机的空闲控制器。

动作模块:发出迁移指令,控制需要迁移的交换机向空闲控制器迁移。

一种软件定义网络负载均衡管理装置,内部装载有软件定义网络负载均衡系统,所述软件定义网络负载均衡管理装置与集群各控制器连接。

上述软件定义网络负载均衡管理装置与现有的软件定义网络构成如图2所示的smlb结构框架,该框架包括控制器管理层(即软件定义网络负载均衡管理装置)、控制器集群和数据层。其中openflow协议将集群内控制器分为三种:equal控制器、slave控制器和master控制器。equal控制器对交换机具有所有权限,不仅能够接受交换机发来的异步消息(例如packet_in、flow-removed消息等),还可以发送控制器-交换机消息以修改交换机的状态。slave控制器不接受任何交换机异步消息,但可以处理slave控制器的角色请求消息。master控制器与equal控制器对交换机所具有的权限类似,但每个交换机只能有一个master控制器,可以拥有多个equal控制器或slave控制器。如果master控制器发生故障无法使用,equal控制器可以转变为master控制器。图2中用实线表示该控制器是交换机的master控制器,用虚线表示该控制器是交换机的slave控制器。

如图3和4,控制器ca发生过载,控制器管理层决定迁移交换机s2a至空闲控制器cb。根据openflow协议,交换机同时与多个控制器连接,其中一个为master控制器,其他为equal或slave控制器。交换机迁移过程如下,共分为五个步骤:(1)控制器管理层根据决策模块发送“迁移s2a(即迁移指令)”消息给控制器集群内过载控制器ca和空闲控制器cb;(2)空闲控制器cb接收到“迁移s2a”消息后向过载控制器ca发送“请求迁移”;(3)过载控制器ca接收到“迁移s2a”和“请求迁移”后同意迁移,向空闲控制器cb发送“开始迁移”消息;(4)过载控制器ca发送“更改角色”消息给交换机s2a,请求将空闲控制器cb的角色先从slave过渡到equal,最终更改为master;(5)交换机s2a接收到消息后将空闲控制器cb角色改成equal,同时与过载控制器ca进行事务交接之后将过载控制器ca角色更改为slave,接着更改空闲控制器cb角色为master,最后回复空闲控制器cb“更改成功”消息;至此交换机迁移成功。

进行仿真实验,集群部署了3个控制器,13台交换机,每台交换机配备了一台主机,系统初始化时给3个控制器分别分配了6、5、2台交换机,并通过安装iperf模拟交换机发包来测试系统性能。

控制器负载情况:

如图5所示,以时间轴来看,在0s时,每个交换机发送报文到其master控制器,紧接着5s后再次发送新的报文,此时能够看到,三台控制器的负载情况如图所示,其比例正好接近于交换机数量之比6:5:2。控制器管理层经过数据处理,此时的负载是均衡的。40s的时候,增加控制器a控制下交换机的发送报文数量,很明显可以看出,控制器a的负载增加,40s-85s之间,控制器管理层检测到负载不均衡,触发负载均衡机制,实现交换机的迁移来达到负载均衡目的,在85时,控制器a的一个交换机迁移到控制器c,使得控制平面达到新的平衡。100s时,控制器b的负载增加,但此时检测到控制平面负载依然处于均衡状态。

网络连接时延:

在上述试验中10、30、50、70、90、110、130s分别使用ping命令来测量网络连接时延,在以上实验环境不变情况下,运行dalb算法,同时时间节点上运行ping命令来测量网络连接时延。通过实验,其网络连接时延的对比情况如下图6所示,可以看出,两种方法在交换机迁移过后,网络连接时延都有所减少,但是本申请的方法(即图中的smlb)减少幅度更大,这说明本申请的方法能够有效实现均衡负载。

集群性能比较:

在dalb中,控制器负载是比较重的,不仅要负责转发交换机发送的流请求,同时还需要监控自身负载情况,从而来判断是否需要交换机的迁移操作。这种情况或许会对控制器本身的性能有所影响。本实验假设在同样交换机负载情况下,利用cbench测试控制器性能,设置控制器性能为latency,模拟交换机连接到控制器,发送packet_in消息给控制器,并等待控制器下发flow-mods消息,由flow-mods值计算延迟值,同时改变交换机发包速率进行多次实验。实验结果如图7所示,本次实验只记录averagelatency数据,通过对比可知本申请的控制器性能略优于dalb控制器性能。

综上,本发明在迁移过程中考虑了距离因素,使得负载分布更均匀;同时本发明的控制器不负责监控网络负责、不收集其他控制器的负载信息、不进行决策,控制器之间不存在频繁的通信,降低网络延时,提高了控制器性能。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1