一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于SDN多控制器的数据中心网络负载均衡方法

2022-11-19 18:40:56 来源:中国专利 TAG:

一种基于sdn多控制器的数据中心网络负载均衡方法
技术领域
1.本发明涉及数据中心网络流量调度方法,特别涉及一种基于sdn多控制器的数据中心网络负载均衡方法。


背景技术:

2.数据中心网络承载着大量的业务应用和基于云的服务,近年来发展非常迅速,网络规模和服务器的数量也在不断增加。目前数据中心网络一般使用多根数网络拓扑或者fat-tree胖树网络拓扑,但这类拓扑很难去适应云计算、大数据等“东西向”流量为主的新型数据中心应用流量模式,无法满足吞吐量和实时通信的要求,同时也没有较强的扩展性。
3.在数据中心网络引入sdn技术,使用sdn控制器进行数据中心网络的实时流量调度,为传统的网络管理问题带来了新的解决方式。但是单一控制器处理数据流的能力有限,单一控制器的集中式管控往往会成为影响系统性能的瓶颈,特别当数据中心网络同时涌入大量数据流时,数据无法及时被处理,导致控制器资源超负荷,增加响应时延,降低控制平面的运行效率,甚至会导致控制器单点失效问题,导致数据中心网络负载不均衡,单一控制器越来越无法适用于现在高速发展的数据中心网络。
4.目前的交换机迁移方法大都是简单的选取网络利用率最低的控制器作为交换机的迁移对象,但这种搜索过程比较复杂,会导致sdn控制器消耗大量资源进行通信交互,降低了控制器的流量调度性能。
5.天牛须搜索算法(beetle antennae search-bas)是一种高效的智能优化算法,对比其它智能优化算法,天牛须搜索算法不需要知道函数的具体形式,不需要梯度信息,就可以实现高效寻优,并且运算量大大降低。但是天牛须算法收敛速度慢,搜索效率较低,并且局部搜索能力较弱,尤其是在初期的迭代过程中,并没有对局部极小区域进行充足的探索,容易遗漏更好的解。
6.目前多数基于交换机迁移的sdn架构的负载均衡算法在交换机完成迁移之后就终止算法,并没有考虑交换机迁移之后的网络流量状况,还是使用原先的数据流转发方式,没有根据实际情况使用适合迁移之后网络状态的路由算法,容易导致数据中心网络负载拥塞。


技术实现要素:

7.发明目的:本发明的目的是针对以上问题,提供一种基于sdn多控制器的数据中心网络负载均衡方法,改善数据中心网络传输性能。
8.技术方案:本发明的数据中心网络负载均衡方法中,数据中心网络的网络模型由1个sdn主控制器,n个子控制器和n个fat-tree拓扑结构的数据中心网络构成,sdn主控制器与n个子控制器相连,每个子控制器与1个fat-tree拓扑结构的数据中心网络相连,每个数据中心网络均含有多台交换机和主机,包括步骤如下:s1,子控制器周期性地检测网络链路状态信息,获得网络状态信息;
s2,每个子控制器周期性的计算自身网络负载值;s3,对每个子控制器设置过载门限值和接收门限值,负载值大于过载门限值时,表明此时需要向别的子控制器迁移交换机;负载值小于接收门限值时,表明此时自身能接收别的子控制器迁移的交换机;s4,当子控制器判断网络过载时,询问邻居子控制器的网络负载值,若负载值低于接收门限值,过载子控制器进入主动迁移模块,执行步骤s5;若负载值高于接收门限值,过载子控制器进入被动迁移模块,执行步骤s7;s5,过载子控制器根据迁移概率函数选取其要迁移的交换机;s6,过载子控制器进行交换机迁移操作,然后执行步骤s11;s7,过载子控制器会向主控制器发送负载均衡请求,主控制器接收到请求之后,从所有负载值低于接收门限值的子控制器集合里选取接收子控制器分配给过载子控制器;s8,过载子控制器根据迁移概率函数选取其要迁移的交换机,再进入步骤s9;s9,主控制器根据匹配优先级函数来分配接收子控制器;s10,过载子控制器与被主控制器分配的接收子控制器完成交换机迁移操作;s11,接收子控制器采用改进的天牛群爆炸算法重新规划最优路径;s12,接收子控制器根据最优路径对数据流进行处理,完成数据流的转发。
9.进一步,步骤s2中,负载值公式如下:其中表示带宽利用率,表示丢包率,表示控制器内存负载;是权重因子,。
10.进一步,步骤s5中,所述迁移概率函数如下:其中 是交换机被选择的概率,是第x个交换机到过载子控制器的传输时延,u是过载子控制器所管理的所有交换机组成的集群。
11.进一步,步骤s6中,过载子控制器进行交换机迁移操作,实现步骤如下:s61,过载子控制器向将要进行迁移的接收控制器发送迁移请求消息,接收子控制器收到消息后与过载子控制器一起进入迁移状态;s62,接收子控制器向待迁移交换机发送“控制器角色切换为equal”消息,交换机收到接收子控制器的请求后,修改接收子控制器的角色为equal,并将操作成功信息反馈给接收子控制器,之后进行交换机迁移;s63,过载子控制器向待迁移交换机发送flow-mod添加消息和barrier请求消息,交换机回复过载子控制器barrier删除消息,同时过载子控制器向待迁移交换机发送flow-mod删除消息,交换机再回复flow-removed消息,过载子控制器之后就不再处理交换机的任何消息,并向接收子控制器发送删除流表信息flow-removed消息;s64,过载子控制器收到待迁移交换机回复的barrier消息后,结束与待迁移交换机之间的连接关系,随后接收子控制器接管待迁移交换机;s65,接收子控制器向待迁移交换机发送请求,请求将自己和待迁移交换机的角色
关系修改为master,交换机收到消息后,将交换机中所连接的接收子控制器角色修改为master,同时回复接收子控制器修改完成,完成交换机迁移过程。
12.进一步,步骤s9中,主控制器根据匹配优先级函数来分配接收子控制器的具体实现步骤如下:s91,计算待迁移交换机与接收子控制器之间的传输时延::是待迁移交换机与接收子控制器的路径中各个节点之间的传输时延;s92,计算k个要迁移的交换机到接收子控制器的平均时延:;s93,计算转发成本:其中 是数据包到接收控制器的平均速率;是待迁移交换机到接收控制器在t时刻的流请求速率;是接收控制器与待迁移交换机之间的最短路径距离;s94,计算同步成本:其中 是控制器状态信息的平均传输速率;s95,计算迁移成本:;s96,计算匹配优先级函数f(d,c):其中 是权重因子,;s97,主控制器计算待迁移交换机与所有可能的接收子控制器之间的匹配优先级;将所有子控制器计算完成之后,选取匹配优先级函数值最高的子控制器作为过载控制器的接收控制器。
13.进一步,步骤s11中,接收子控制器采用改进的天牛群爆炸算法重新规划最优路径的具体实现步骤如下:s111,初始化最大迭代次数和n个天牛个体的随机位置,天牛个体的位置就是可行解,随机位置生成公式如下:其中, 表示生成的可行解,是解的维度,是[-1,1]区间内的随机数,是维度j的上界,为维度j的下界,n
是生成天牛个体的数量, ;s112,计算每个天牛个体位置的适应度值,适应度函数 的值越大,对应的解越好,适应度公式如下:其中,表示路径 的已用带宽,表示路径数据包丢失数量,表示路径的时延,路径与第i个天牛的位置相对应;是权重因子,;s113,使用烟花爆炸算子机制在每个天牛个体周围爆炸生成包含多只新天牛的天牛群,生成数目公式如下:式中 表示第i个天牛爆炸生成的新天牛数目;是限制新天牛生成数目的常数;表示当前情况下适应度值最大的个体的适应度值;表示第i个个体的适应度值;表示一个极小常数;生成幅度公式如下:式中 表示第i个天牛爆炸的幅度,爆炸时生成的所有新天牛都不能超出这个范围;是最大爆炸幅度;表示当前情况下适应度值最小的个体的适应度值;s114,在步骤113中生成的n个天牛群中,计算每个天牛群中所有个体位置的适应度值并比较大小,最终每个天牛群只保留适应度值最高的一个天牛个体;s115,为保留下来的每只天牛都生成一个随机方向,随机方向公式如下:其中,表示 间的随机函数,表示变量的维数;s116,计算左、右须的位置,并计算左右须对应的适应度值;天牛左右须的坐标公式如下:其中 为天牛当前的位置,为天牛触须的长度,即天牛的搜索距离, 为随机方向;
s117,预计算天牛的下一步更新位置,并计算对应的适应度值;其中 为迭代时的步长;s118,如果预更新位置的适应度值优于当前位置,则进行更新当前位置至预更新位置并更新步长及搜索距离,否则保持当前位置不变并更新步长及搜索距离;s119,更新步长及搜索距离,公式如下:其中,为上一次迭代时的步长;为初始步长,是一个固定常数;为步长的衰减系数,通常为(0,1)之间的一个常数,为搜索距离和步长的比例系数;s1110,若迭代次数达到了设定的最大迭代次数,则停止迭代,并输出使用步骤119所更新的n个天牛个体的位置;若迭代次数没有达到设定的最大迭代次数,则返回步骤116继续更新迭代;s1111,将更新的n个天牛个体位置的适应度值进行排序比较,输出其中适应度值最高的天牛个体位置作为最优解。
[0014]
本发明与现有技术相比,其显著效果如下:1、本发明提出了一种由sdn主控制器和多个sdn子控制器组成的数据中心网络模型,对比普通的fat-tree架构和单控制器架构的数据中心网络,本发明的子控制器在网络过载之后可以进行交换机的迁移来降低自身的负载程度,不会出现控制器单点失效的问题,提高了网络的稳定性;sdn主控制器能够对整个网络状态进行监控,可以为过载子控制器分配最优的接收控制器进行交换机的迁移,实现不同子控制器之间的资源调配,提高网络利用率,从而更高效地实现网络的负载均衡;2、本发明基于主动迁移和被动迁移两种形式,在子控制器过载之后会先判断相邻子控制器的负载情况,不会盲目的迁移交换机而加重相邻子控制器的负担;只有在相邻子控制器无法接收时才会请求主控器,大幅减少了主控制器的工作次数和工作时间,减轻了主控制器的工作负荷,提高了交换机迁移效率;3、本发明提出了一种主控制器依据匹配优先级函数分配最优接收控制器的方法,对比现有的只是简单选取负载最低的控制器作为接收控制器的一些方法,本发明使接收控制器的选择更加合理,减少了控制器与交换机的迁移成本,提高了网络资源利用率和服务质量;4、本发明改进了传统的天牛须搜索算法,传统的天牛须搜索算法只依靠一只天牛进行搜索,本发明初始化多只天牛,并引入烟花爆炸算法,生成多个天牛群并取其最优个体进行下一步的搜索,借助烟花爆炸算法全局搜索能力强的特点,解决了普通天牛算法局部搜索能力较弱的问题,大幅减少了陷入局部最优解的情况,更容易求得全局最优解;5、本发明在交换机完成迁移之后再使用改进的天牛群爆炸算法重新规划最优路径,根据当前网络状况使用更高效的路由算法,实现了网络负载的动态调节,提升网络的利
用率,最终实现数据中心网络的负载均衡。
附图说明
[0015]
图1为本发明的网络模型图;图2为本发明的负载均衡方法流程图;图3为本发明的改进的天牛群爆炸算法流程图。
具体实施方式
[0016]
下面结合说明书附图和具体实施方式对本发明做进一步详细描述,网络模型如图1所示;模型由1个sdn主控制器,n个子控制器和n个fat-tree拓扑结构的数据中心网络构成,sdn主控制器与n个子控制器相连,每个子控制器与1个fat-tree拓扑结构的数据中心网络相连,每个数据中心网络都含有多台交换机和主机。本发明的负载均衡具体方法流程如图2所示,主要由门限值判别、主动迁移模块、被动迁移模块、天牛群爆炸算法组成;具体步骤如下:步骤1,sdn子控制器会周期性地检测网络链路状态信息,获得链路带宽,链路时延,数据包数量等信息,其中2种重要链路状态信息检测方式简述如下:带宽利用率的测量:sdn子控制器通过openflow协议来测量带宽,openflow协议通过统计报文来获取端口、流表、流表项、组表等统计信息。将把两个不同时间的统计消息的字节数相减,再除以统计时间差可以得到流量带宽,用流量带宽除以端口最大带宽就可以得到带宽利用率。
[0017]
丢包率的测量:sdn子控制器设定一个适当的时间间隔,然后使用openflow协议对链路中交换设备的端口信息进行监测,再对这些流量信息进行统计,将端口发送包数目减去接收回应包数量,再除以发送包数,就能计算出链路的丢包率。
[0018]
步骤2,每个子控制器都周期性的计算其网络负载值,负载值公式如下:其中,表示带宽利用率,表示丢包率,表示控制器内存负载;是权重因子,。
[0019]
负载值的大小代表着此时子控制器所控制的数据中心网络的拥塞情况,负载值越大,表明此时链路负载越重,负载值越小,表明此时链路负载越轻。
[0020]
步骤3,设置子控制器过载门限值和接收门限值,当负载值大于等于过载门限值时,表明此时网络处于过载状态,该子控制器需要向其它控制器进行交换机迁移;当负载值小于接收门限值时,表明此时网络负载状况良好,可以接收其它过载控制器的交换机。本发明将过载门限值设置为85%,接收门限值设置为50%。
[0021]
步骤4,当子控制器根据网络负载值函数以及过载门限值判断自己所控制的网络过载时,发出询问信息给与其直接相邻的子控制器,询问邻居子控制器的网络负载值是否低于接收门限值,若负载值低于接收门限值,则过载子控制器进入主动迁移模块,主动将自己的部分交换机迁移给相邻控制器管理,通过步骤5选择要迁移的交换机并完成交换机迁移。
[0022]
若负载值高于接收门限值,邻居子控制器无法接收交换机,则进入被动迁移模块,过载子控制器通过步骤7向主控制器发送负载均衡请求,由主控制分配可接收的子控制器,使过载子控制器完成被动的交换机迁移。
[0023]
其他现有算法有的只让过载控制器向其他控制器迁移交换机,却没有考虑其他控制器当前的负载状况,有可能加重其他控制器的负载拥塞;有的算法只通过主控制器来管控交换机的迁移,然而随着迁移请求的不断增多,主控制器的负荷会越来越大,从而导致网络阻塞。本发明基于主动迁移和被动迁移两种形式,在子控制器过载之后会先判断相邻子控制器的负载情况,不会盲目的迁移交换机而加重相邻子控制器的负担;只有在相邻子控制器无法接收时才会请求主控器,大幅减少了主控制器的工作次数和工作时间,减轻了主控制器的工作负荷,提高了交换机迁移效率。
[0024]
步骤5,过载子控制器根据迁移概率函数选取其要迁移的交换机。交换机与控制器之间的传输时延越大,管理成本就越高,所以优先选择具有传输时延较大的交换机进行迁移来提高网络负载效率。所述迁移概率函数如下:其中是交换机被选择的概率,是第x个交换机到过载子控制器的传输时延,u是过载子控制器所管理的所有交换机组成的集群, 为指数函数。交换机的迁移概率越大,越容易被选择迁移。
[0025]
步骤6,过载子控制器进行交换机迁移操作,详细过程如下:步骤61,过载子控制器向将要进行迁移的接收控制器发送迁移请求消息,接收子控制器收到消息后与过载子控制器一起进入迁移状态。
[0026]
步骤62,接收子控制器向待迁移交换机发送“控制器角色切换为equal”消息,交换机收到接收子控制器的请求后,修改接收子控制器的角色为equal,并将操作成功信息反馈给接收子控制器,之后进行交换机迁移。
[0027]
步骤63,过载子控制器向待迁移交换机发送flow-mod添加消息和barrier请求消息,交换机回复过载子控制器barrier删除消息,同时过载子控制器向待迁移交换机发送flow-mod删除消息,交换机再回复flow-removed消息,过载子控制器之后就不再处理交换机的任何消息,并向接收子控制器发送删除流表信息flow-removed消息。
[0028]
步骤64,过载子控制器收到待迁移交换机回复的barrier消息后,就结束与待迁移交换机之间的连接关系,随后接收子控制器接管待迁移交换机。
[0029]
步骤65,接收子控制器向待迁移交换机发送请求,请求将自己和待迁移交换机的角色关系修改为master,交换机收到消息后,将交换机中所连接的接收子控制器角色修改为master,同时回复接收子控制器修改完成,完成交换机迁移过程;然后执行步骤11。
[0030]
步骤7,当相邻子控制器的网络负载值高于接收门限值时,表明此时相邻子控制器也没有能力去接收过载子控制器的交换机。此时过载子控制器会向主控制器发送负载均衡请求,主控制器接收到请求之后,会从它所相连的所有负载值低于接收门限值的子控制器集合里选取接收子控制器分配给过载子控制器;然后执行步骤8。
[0031]
步骤8,过载子控制器使用步骤5中的方法选择其要迁移的交换机,再进入步骤9,由主控制器根据匹配优先级函数来分配接收控制器。
[0032]
步骤9,主控制器根据匹配优先级函数来分配接收子控制器,具体过程如下:步骤91,计算待迁移交换机与接收子控制器之间的传输时延:式中,是待迁移交换机与接收子控制器的路径中各个节点之间的传输时延。
[0033]
步骤92,计算k个要迁移的交换机到接收子控制器的平均时延:步骤93,计算转发成本:其中 是数据包到接收控制器的平均速率;是待迁移交换机到接收控制器在t时刻的流请求速率;是接收控制器与待迁移交换机之间的最短路径距离。
[0034]
步骤94,计算同步成本:其中 是控制器状态信息的平均传输速率。
[0035]
步骤95,计算迁移成本:步骤96,计算匹配优先级函数f(d,c):其中 是权重因子,。
[0036]
步骤97,主控制器计算待迁移交换机与所有可能的接收子控制器(与主控制器相连的所有负载值低于接收门限值的子控制器)之间的匹配优先级,优先级越高,代表此子控制器越适合作为接收控制器;将所有子控制器计算完成之后,选取匹配优先级函数值最高的子控制器作为过载子控制器的接收控制器。
[0037]
步骤10,过载控制器使用步骤6中的方法与被主控制器分配的接收控制器完成交换机迁移操作。
[0038]
步骤11,在交换机完成主动或被动迁移之后,接收控制器使用改进的天牛群爆炸算法重新规划最优路径;具体算法流程图如图3所示;详细步骤如下:步骤111,初始化最大迭代次数和n个天牛个体的随机位置,天牛个体的位置就是可行解,随机位置生成公式如下:式中,表示生成的可行解,是解的维度,是[-1,1]区间内的随机数,是维度j的上界,为维度j的下界,n是生成天牛个体的数量,。
[0039]
步骤112,计算每个天牛个体位置 所代表的路径的适应度值(即每个天牛的位置代表一个路径,第i个天牛的位置表示为路径),适应度函数的值越大,对应的解越好,适应度公式如下:其中 表示路径的已用带宽,表示路径数据包丢失数量,表示路径的时延;是权重因子,。
[0040]
步骤113,使用烟花爆炸算子机制在每个天牛个体周围爆炸生成包含多只新天牛的天牛群,生成数目公式如下:式中 表示第i个天牛爆炸生成的新天牛数目;是限制新天牛生成数目的常数; 表示当前情况下适应度值最大的个体的适应度值; 表示第i个个体的适应度值;表示一个极小常数,防止分母为零。
[0041]
生成幅度公式如下:式中,表示第i个天牛爆炸的幅度,爆炸时生成的所有新天牛都不能超出这个范围;是最大爆炸幅度;表示当前情况下适应度值最小的个体的适应度值; 表示第i个个体的适应度值;表示一个极小常数,防止分母为零。
[0042]
步骤114,在步骤113中生成的n个天牛群中,计算每个天牛群中所有个体位置的适应度值并比较大小,最终每个天牛群只保留适应度值最高的一个天牛个体。
[0043]
步骤115,为保留下来的每只天牛都生成一个随机方向,随机方向公式如下:其中,表示 间的随机函数,表示变量的维数。
[0044]
步骤116,计算左、右须的位置,并计算左右须对应的适应度值;天牛左右须的坐标公式如下:其中,为天牛当前的位置;为天牛触须的长度,即天牛的搜索距离;为随机方向。
[0045]
步骤117,预计算天牛的下一步更新位置,并计算对应的适应度值;
其中,为迭代时的步长,sign( ) 为符号函数。
[0046]
步骤118,如果预更新位置 的适应度值优于当前位置,则进行更新当前位置至预更新位置并更新步长及搜索距离,否则保持当前位置不变并更新步长及搜索距离。
[0047]
步骤119,更新步长 及搜索距离,公式如下:其中,为上一次迭代时的步长;为初始步长,是一个固定常数;为步长的衰减系数,通常为(0,1)之间的一个常数;为搜索距离和步长的比例系数。
[0048]
步骤1110,若迭代次数达到了设定的最大迭代次数,则停止迭代,并输出使用步骤119所更新的n个天牛个体的位置。若迭代次数没有达到设定的最大迭代次数,则返回步骤116继续更新迭代。
[0049]
步骤1111,将更新的n个天牛个体位置的适应度值进行排序比较,输出其中适应度值最高的天牛个体位置作为最优解。
[0050]
步骤12,sdn接收控制器根据上述改进的天牛群爆炸算法计算得到的最优解路径对数据流进行处理,完成数据流的高效转发,实现数据中心网络负载均衡。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献