一种SDN网络的多控制器负载均衡交换机迁移方法与流程

文档序号:15624850发布日期:2018-10-09 22:43阅读:320来源:国知局

本发明涉及多控制器负载均衡交换机技术领域,尤其涉及一种sdn网络的多控制器负载均衡交换机迁移方法。



背景技术:

多控制器的sdn网络的提出解决了单控制器结构下的控制层的性能瓶颈问题,但又带来了一些新的问题。其中一个比较明显的问题就是控制器的负载均衡问题。由于不同的控制器管理的域内交换机的流量请求是不均匀的,可能由于网络攻击等原因导致某些控制器域内流量出现激增的现象,进而造成在整个sdn网络中某些控制器超过其所能够承受的最大处理能力,而有些控制器却处于几乎闲置状态。对于这种控制层面负载不均衡的状况,则需要根据控制器的负载情况进行调节,减少过载控制器的负载使得网络服务恢复稳定。

目前,对于sdn网络的控制平面的负载均衡问题,现有的负载均衡方法多是基于静态的控制器部署优化或者是单交换机的迁移方法。静态的控制器部署优化方法无法满足软件定义网络动态的流量请求变化,而单交换机的迁移负载策略,无法达到控制平面的整体负载均衡效果。



技术实现要素:

本发明的目的还在于提供一种sdn网络的多控制器负载均衡交换机迁移方法,本方法针对sdn网络中基于单交换机迁移的多控制器负载均衡方法不能使得整体的控制平面负载均衡问题的缺点而提出。通过对控制器的负载问题进行建模,抽象为0-1规划问题,并基于遗传算法对该问题进行求解生成新的控制器交换机映射矩阵,完成交换机全局迁移,使得控制层面的整体负载更加均衡。

为解决上述技术问题,本发明提供了一种sdn网络的多控制器负载均衡交换机迁移方法,包括迁移模型,所述的迁移模型由负载均衡调节层和控制层两部分组成,迁移方法包括以下步骤:顶层的负载均衡调节层通过的监测模块根据交换机状态采样检测方法对过载控制器进行发现,负载调节模块基于遗传算法生成新的交换机控制器映射矩阵,控制层的控制器根据负载调节模块下发的迁移策略基于控制器的角色进行交换机的全局迁移过程;

所述的基于遗传算法生成新的交换机控制器映射矩阵的步骤如下:

1)初始化:为了加快交换机和控制器矩阵建立的速度,而减低负载均衡调节过程对sdn整体网络服务质量的影响,在本文中除了对迭代次数进行了限制外还需要对最终负载运算的方差期望值做限制,在初始化过程中主要就是对迭代次数上限和预期的方差期望值进行初始化,同时将当前迭代次数和当前负载下的控制器利用率方差给定初始值;

2)对控制器编码:为了将控制器负载问题通过遗传算法表示,需要对控制器进行编码,具体的控制器编码根据整个sdn网络控制器的个数而定,当控制器的个数为6时则需进行3位的二进制编码来表示所有控制器,控制器编码将变成000,001,010,011,100,101;

3)生成初始种群:根据交换机和控制器映射关系产生多个可行解对应的关系映射矩阵,并对矩阵进行对应的染色体编码构成最初的染色体种群;

4)计算种群适应度:通过对生成的各个染色体计算适应度,然后降序排序,来评估各个染色体的可保留度;

5)执行遗传算子操作:对于染色体总群进行三个遗传算子操作,选择、交叉和变异。在选择操作中,本文采用轮盘选择算法来对染色体进行选择运算,即每个染色体被选中的概率为其适应度所占的百分比;

接下来对种群的染色体进行交叉运算,在染色体的交叉运算中本文采用多点交叉的交叉运算的方法。对于4个控制器6个交换机的情况,假设两条染色体分别为111110100001和100011101011,则首先通过产生随机数并和交叉概率比较判断是否需要进行交叉运算,当需要交叉运算时,设置交叉点后染色体交叉点为11|11101000|01和10|00111010|11,则交叉后新生成的染色体为100011101011和111110100001;

然后进行变异运算,变异运算是为了保持种群的多样性,在本文中由于是使用二进制进行编码的形式来进行表示染色体,所以采用基于位变异的变异算子,即首先产生随机数,判断该染色体是否需要编译,如果需要编译则随机产生一个位置对其进行当前位的取反操作,如对于上面所提到的染色体111110100001来说,假设变异位在第四位则变异后的染色体为111010100001;

最后将经过三种运算后新生成的染色体加入到原始的染色体种群中构成新的染色体种群,再进行后续的操作;

6)淘汰和保留:由于在交换机染色体矩阵映射中需要满足只有一个主控制器的以及新生成的矩阵不能再有过载控制器的要求,所以需要对生成的不合法的解对应的畸形染色体进行淘汰,进而保证畸形基因不会遗传到下一代当中,同时需要更新并保留高适应度的染色体种群作为下一代迭代的染色体种群,以保证后续迭代种群的基因优越性,同时需要更新控制器利用率的方差ec的值来判断是否已经达到理想预期满足负载均衡度的方差值或者迭代次数最大值,从而使算法进行终止运算。

本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:

本发明对sdn网络的控制层面的负载进行交换机全局迁移的调节,使得多控制器的sdn网络更加均衡,相比于现有的单交换机迁移的负载均衡策略,对于整个控制器层面的负载有很大的性能提升。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1多级控制器负载均衡模型

图2遗传算法求解控制器交换机部署矩阵处理流程

图3域控制器使用率

图4packet_in数据包处理能力提高率。

具体实施方式

为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。

如图1-图4所示,本实施例所述的一种sdn网络的多控制器负载均衡交换机迁移方法,包括迁移模型,所述的迁移模型由负载均衡调节层和控制层两部分组成,迁移方法包括以下步骤:顶层的负载均衡调节层通过的监测模块根据交换机状态采样检测方法对过载控制器进行发现,负载调节模块基于遗传算法生成新的交换机控制器映射矩阵,控制层的控制器根据负载调节模块下发的迁移策略基于控制器的角色进行交换机的全局迁移过程;

所述的基于遗传算法生成新的交换机控制器映射矩阵的步骤如下:

1)初始化:为了加快交换机和控制器矩阵建立的速度,而减低负载均衡调节过程对sdn整体网络服务质量的影响,在本文中除了对迭代次数进行了限制外还需要对最终负载运算的方差期望值做限制,在初始化过程中主要就是对迭代次数上限和预期的方差期望值进行初始化,同时将当前迭代次数和当前负载下的控制器利用率方差给定初始值;

2)对控制器编码:为了将控制器负载问题通过遗传算法表示,需要对控制器进行编码,具体的控制器编码根据整个sdn网络控制器的个数而定,当控制器的个数为6时则需进行3位的二进制编码来表示所有控制器,控制器编码将变成000,001,010,011,100,101;

3)生成初始种群:根据交换机和控制器映射关系产生多个可行解对应的关系映射矩阵,并对矩阵进行对应的染色体编码构成最初的染色体种群;

4)计算种群适应度:通过对生成的各个染色体计算适应度,然后降序排序,来评估各个染色体的可保留度;

5)执行遗传算子操作:对于染色体总群进行三个遗传算子操作,选择、交叉和变异。在选择操作中,本文采用轮盘选择算法来对染色体进行选择运算,即每个染色体被选中的概率为其适应度所占的百分比;

接下来对种群的染色体进行交叉运算,在染色体的交叉运算中本文采用多点交叉的交叉运算的方法。对于4个控制器6个交换机的情况,假设两条染色体分别为111110100001和100011101011,则首先通过产生随机数并和交叉概率比较判断是否需要进行交叉运算,当需要交叉运算时,设置交叉点后染色体交叉点为11|11101000|01和10|00111010|11,则交叉后新生成的染色体为100011101011和111110100001;

然后进行变异运算,变异运算是为了保持种群的多样性,在本文中由于是使用二进制进行编码的形式来进行表示染色体,所以采用基于位变异的变异算子,即首先产生随机数,判断该染色体是否需要编译,如果需要编译则随机产生一个位置对其进行当前位的取反操作,如对于上面所提到的染色体111110100001来说,假设变异位在第四位则变异后的染色体为111010100001;

最后将经过三种运算后新生成的染色体加入到原始的染色体种群中构成新的染色体种群,再进行后续的操作;

6)淘汰和保留:由于在交换机染色体矩阵映射中需要满足只有一个主控制器的以及新生成的矩阵不能再有过载控制器的要求,所以需要对生成的不合法的解对应的畸形染色体进行淘汰,进而保证畸形基因不会遗传到下一代当中,同时需要更新并保留高适应度的染色体种群作为下一代迭代的染色体种群,以保证后续迭代种群的基因优越性,同时需要更新控制器利用率的方差ec的值来判断是否已经达到理想预期满足负载均衡度的方差值或者迭代次数最大值,从而使算法进行终止运算。

下面结合具体实施例对本发明作更详细的描述。

(1)实例环境

实例采用服务器级硬件设备,cpu配置为intel(r)xeon(r)cpue5-26300@2.30ghz,内存大小16g,操作系统选用ubuntu12.04,linux内核版本为2.6.32-5-linx-amd64,实现语言使用python语言。

(2)实施方案

在mininet仿真平台搭建的服务器上创建拓扑脚本,通过制器数目增加到9个,交换机数目增加到32个来达到本实验网络拓扑要求,其中一个控制器为负载均衡层的控制器,用于监测控制器资源负载状态和进行负载均衡的交换机迁移策略的生成。其余的8个控制器作为控制层的域控制器,运行在一台服务器上,控制器监听的端口号设置为从6633一直到6640,每个控制器域内连接4个openflow交换机,每个域内的控制器最初以master角色模式管理交换机对域内的交换机进行管理并处理交换机的建数据包请求,然后各个域内的控制器同时以slave角色模式作为其他域的从控制器,用于重新部署交换机和控制器映射时进行角色转变:

设置控制器负载调节的上限值为8000packets/s,并设置每个控制器的缓存队列的超载比率阈值为0.8。通过脚本封装hping3命令采取随机ip的发包形式,达到向不同的控制器注入不同流量大小的packet_in请求包的目的,并每次使其中的三个控制器达到过载从而触发迁移条件,统计迁移前和使用不同的迁移方法后控制层8个控制器的利用率情况,然后再根据日志记录统计整体的丢包率情况,进而计算网络性能提升结果。

(3)实施结果

图3为在通过openflow交换机向网络中不同的控制器注入不均匀的流量后使用了三种不同的交换机迁移策略的控制器资源使用率统计结果,从实验结果中可以看出在迁移前1,2,4三个控制器的使用率超过了实验设定的阈值,在经过三种负载均衡策略对交换机进行迁移后,本发明的全局交换机迁移策略使得控制器负载分布的最为均匀。相比于其他两种负载均衡方法具有更好的效果。

图4为整个sdn网络控制平面的packet_in数据包处理能力提升数据结果,在交换机请求数据包达到5x104packets/s时,本发明提出的负载均衡算法提升率为12.25%,也就是说对于5万个并发的packet_in数据包,本发明使用的全局交换机迁移负载均衡策略可以使整个控制平面额外多处理6125个packet_in数据包。相比于其他两种交换机迁移方法,本发明提出的方法对packet_in请求包处理的能力处理能力的提升也达到最优。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

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