一种在软件定义网络中实现控制器负载均衡的方法技术

技术编号:24692336 阅读:37 留言:0更新日期:2020-06-27 11:19
本发明专利技术提出了一种在软件定义网络中实现控制器负载均衡的方法,采用多智能体强化学习的动态控制器工作负载平衡方案,能够实现在控制器中的智能体可以生成针对交换机迁移问题的控制策略。将多智能体强化学习的分布式处理特性应用在动态控制器工作负载均衡中,每个控制器就是一个智能体,采用交换机迁移策略迁移交换机,得到的控制器负载均衡分配结果。由于交换机迁移策略是通过符合网络情况的模型产生的,最大可能的保证了该控制器负载分配结果是均衡的。其中,符合网络情况的模型通过离线学习的方式获得,获得交换机迁移策略时可以直接采用离线学习的获得模型,减少了运算时间,提高了效率。

A method of load balancing in software defined network

【技术实现步骤摘要】
一种在软件定义网络中实现控制器负载均衡的方法
本专利技术属于计算机网络
,具体涉及一种在软件定义网络中实现控制器负载均衡的方法。
技术介绍
软件定义网络(Software-DefinedNetworking,SDN)由于其强大的可编程性和对网络管理的灵活性,引起了学术界和工业界的广泛关注。SDN将控制平面与数据平面分离,因此网络运营商可以通过具有全局网络视图的逻辑集中控制器来方便地监视和操作网络。控制平面在SDN中起着举足轻重的作用。为了解决单个控制器有限的处理能力和单节点的故障,大规模SDN提出使用分布式控制器实现其控制平面。在多控制器控制平面中,一个SDN分为多个域,每个域中有一定数量的交换机并由一个控制器控制,每个控制器管理与其他控制器同步来维持一致的网络视图。称此为多域多控制器SDN。来自交换机的流量请求可能由于用户行为的不可预测性发生不断变化。因此,静态交换机-控制器的关系可能会无法适应动态的流量变化。当前的主流方法是将该问题建模为交换机迁移问题(SwitchMigrationProblem,SMP)。交换机迁移问题通常被视为典型的最优化问题,并且交换机迁移问题的复杂性问题被证明是一个NP难问题。在网络规模扩大的情况下,求解交换机迁移问题最优解需要花费很长时间,在流量动态波动的环境下,基于最优解的算法实用性并不高。为了高效的解决这个问题,Dixit等人首先提出了一种名为ElastiCon的弹性分布式控制器架构,旨在通过动态调整交换机和控制器之间的映射关系来平衡控制器的流量请求。此外,OpenFlow1.4通过在多个控制器之间提供协调机制来实现分布式控制平面。但是,ElastiCon和OpenFlow都没有详细地提出如何实现迁移交换机的交换机迁移问题。Wang等人着重于实现数据中心网络的控制平面的负载平衡,但是并没有考虑交换机迁移的通信成本。Huang等人在控制平面和数据平面之间引入了一个中间层,从而将流量请求分配给多个控制器。BalCon使用图像分区方法对交换机迁移问题进行了处理。但是,现有的控制器负载均衡的方法均采用启发式算法来调整控制器和交换机之间的映射关系,由于启发式算法采用固定的方法来调整关系,得到的控制器负载分配结果无法保证控制器负载分配结果是均衡的,可能导致等待处理的请求会在控制器之间不均匀分布,部分高负载的控制器易于出现满载的情况从而拒绝新的请求,最终会降低控制平面的请求处理能力,进而导致无法动态的将低负载控制器的处理请求进行合理的融合,从而增加了正常运行的控制器的数量,浪费了能耗。另外现有的控制器负载均衡的方法运算时间长。Wang等人和Huang等人的方案可能会因为中间层的插入而显著增加处理延迟。BalCon处理过程十分复杂,因为它需要分析过载控制器的控制区域中所有交换机的通信模式,从而来执行一个迁移步骤。
技术实现思路
有鉴于此,本专利技术提出了一种在软件定义网络中实现控制器负载均衡的方法,采用多智能体强化学习的动态控制器工作负载平衡方案,能够实现在控制器中的智能体可以生成针对交换机迁移问题的控制策略。为实现上述目的,本专利技术技术方案如下:本专利技术的一种在软件定义网络中实现控制器负载均衡的方法,将由控制器组成的分布式控制平面建模为多智能体系统,每个控制器具有一个强化学习代理,所述强化学习代理采用多智能体强化学习方法来生成交换机迁移操作,包括离线学习和在线决策两个阶段;其中,离线学习阶段通过对每个控制器上的深度强化学习代理进行训练,得到训练后的深度强化学习代理;在线决策阶段,利用训练后的深度强化学习代理,结合网络状态,产生交换机迁移策略,根据策略来迁移交换机,实现控制器负载均衡分配。其中,所述离线学习阶段包括如下步骤:步骤1,初始化:每个控制器运行一个深度强化学习代理;获得正在使用控制器集合C={c1,c2,…,cj,…,cN};设定整个训练过程的迭代总次数T;步骤2,在每个控制器中计算集合中所有控制器的资源使用率U={U1,U2,…,Uj,…,UN},对于第j个控制器的资源使用率:其中,wj代表交换机sj所产生的进程请求数量,代表控制器cj所管理的交换机集合,xj、yj、zj分别代表交换机sj请求的控制器的带宽、CPU和存储资源占用量;步骤3,将资源利用率最大的控制器作为主控制器cmaster;步骤4,主控制器cmaster按照概率选一个控制器作为执行控制器cactor并通知,其中对于控制器ci,被选为执行控制器的概率为步骤5,执行控制器cactor将网络状态输入到该控制器的深度强化学习代理中,得到交换机迁移策略,并将该策略广播给其余N-1个控制器;每个控制器利用交换机迁移策略更新其带宽、CPU和存储资源占用量信息;执行控制器cactor交换机迁移策略计算对应的奖励:reward=(Ui-Uj)2-(U'i-U'j)2-μ,利用奖励更新其深度强化学习代理;步骤6,判断是否为第T次迭代,若是则训练结束,获得所有控制器当前的深度强化学习代理,完成离线学习;否则迭代次数加1,进行下一次迭代,执行步骤2-6。其中,所述在线决策阶段包括如下步骤:步骤S1,初始化:每个控制器运行一个通过离线学习后的深度强化学习代理;步骤S2,判断是否需要进行控制器的合并操作,将需要合并的控制器合并,具体判断如下:在每个控制器中计算集合中所有控制器的资源使用率;判断最小资源使用率Umin是否低于设定阈值Thlow,若不低于则不进行合并,若低于则判断是否存在一个控制器cavail,其资源利用率Uavail加上Umin不超过该控制器cavail的资源利用率上限Thhigh,若存在,则将Umin对应的控制器cmin控制的交换机迁移到控制器cavail,关闭控制器cmin并删除,否则不进行合并,重复执行步骤S2,直至没有控制器合并,得到当前控制器集合;步骤S3,在步骤S2得到的控制器集合中,控制器之间执行交换机迁移实现控制器集合中所有控制器的负载均衡,所有控制器的强化学习代理一起工作达到平衡,包括如下子步骤:步骤S3.1,资源利用率低于最小值阈值的控制器向其他控制器发送交换机迁移请求信号;步骤S3.2,所有控制器将自身的以及收到的资源使用率输入到它的强化学习代理,最终产生自己的交换机迁移策略,包括交换机迁移出、可以接受交换机迁移入和交换机不迁移;步骤S3.3,各个控制器将步骤S3.2得到的交换机迁移策略和该策略对应的奖励广播给其余N-1个控制器,等待其余控制器的行动信息和奖励;步骤S3.4,每个控制器判断其作出的策略对应的奖励是否为最大值,若是,则该控制器执行其迁移策略,否则不进行操作。其中,每个深度学习代理的深度强化学习算法采用门控循环单元GRU与两层前馈神经网络连接作为主要神经网络结构,输入层为GRU的输入层,GRU的输出层连接到前馈神经网络的输入层,前馈神经网络的输出层作为整体输出。有益效果:本专利技术使用本文档来自技高网
...

【技术保护点】
1.一种在软件定义网络中实现控制器负载均衡的方法,其特征在于,将由控制器组成的分布式控制平面建模为多智能体系统,每个控制器具有一个强化学习代理,所述强化学习代理采用多智能体强化学习方法来生成交换机迁移操作,包括离线学习和在线决策两个阶段;/n其中,离线学习阶段通过对每个控制器上的深度强化学习代理进行训练,得到训练后的深度强化学习代理;在线决策阶段,利用训练后的深度强化学习代理,结合网络状态,产生交换机迁移策略,根据策略来迁移交换机,实现控制器负载均衡分配。/n

【技术特征摘要】
1.一种在软件定义网络中实现控制器负载均衡的方法,其特征在于,将由控制器组成的分布式控制平面建模为多智能体系统,每个控制器具有一个强化学习代理,所述强化学习代理采用多智能体强化学习方法来生成交换机迁移操作,包括离线学习和在线决策两个阶段;
其中,离线学习阶段通过对每个控制器上的深度强化学习代理进行训练,得到训练后的深度强化学习代理;在线决策阶段,利用训练后的深度强化学习代理,结合网络状态,产生交换机迁移策略,根据策略来迁移交换机,实现控制器负载均衡分配。


2.如权利要求1所述的在软件定义网络中实现控制器负载均衡的方法,其特征在于,所述离线学习阶段包括如下步骤:
步骤1,初始化:每个控制器运行一个深度强化学习代理;获得正在使用控制器集合C={c1,c2,…,cj,…,cN};设定整个训练过程的迭代总次数T;
步骤2,在每个控制器中计算集合中所有控制器的资源使用率U={U1,U2,…,Uj,…,UN},对于第j个控制器的资源使用率:



其中,wj代表交换机sj所产生的进程请求数量,代表控制器cj所管理的交换机集合,xj、yj、zj分别代表交换机sj请求的控制器的带宽、CPU和存储资源占用量;
步骤3,将资源利用率最大的控制器作为主控制器cmaster;
步骤4,主控制器cmaster按照概率选一个控制器作为执行控制器cactor并通知,其中对于控制器ci,被选为执行控制器的概率为
步骤5,执行控制器cactor将网络状态输入到该控制器的深度强化学习代理中,得到交换机迁移策略,并将该策略广播给其余N-1个控制器;
每个控制器利用交换机迁移策略更新其带宽、CPU和存储资源占用量信息;
执行控制器cactor交换机迁移策略计算对应的奖励:reward=(Ui-Uj)2-(U'i-U'j)2-μ,利用奖励更新其深度强化学习代理;
步骤6,判断是否为第T次迭代,若是则训练结束,获得所有控制器当前的深度强化学习代理,完成离线学习;否则迭代次数加1,...

【专利技术属性】
技术研发人员:郭泽华孙鹏浩窦松石夏元清吉鸿海
申请(专利权)人:北京理工大学北方工业大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1