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

文档序号:21271655发布日期:2020-06-26 22:58阅读:313来源:国知局
一种在软件定义网络中实现控制器负载均衡的方法与流程

本发明属于计算机网络技术领域,具体涉及一种在软件定义网络中实现控制器负载均衡的方法。



背景技术:

软件定义网络(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为本发明离线学习流程图;

图2为本发明在线决策流程图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明中,将分布式控制平面建模为多智能体系统,以分布式方式处理交换机迁移问题。每个控制器具有一个强化学习代理,这些强化学习代理采用多智能体强化学习来生成交换机迁移操作,包括离线学习和在线决策两个阶段。离线学习阶段通过对每个控制器上的深度强化学习代理进行训练,得到训练后的深度强化学习代理;在线决策阶段,利用训练后的深度强化学习代理,结合网络状态,产生交换机迁移策略,根据策略来迁移交换机,实现控制器负载均衡分配,可见,在线决策阶段深度强化学习代理可以快速准确地决定如何在控制器之间迁移交换机。

离线学习原理具体如下:

在多智能体强化学习中,每个智能体都作为马尔可夫决策过程,可将其工作元素建模为m=(s,a,r,p,γ),其中s代表状态空间,a代表行动空间,r代表奖励空间,p代表转移概率函数p(st+1,st,at),即根据时间节点t时刻的状态st(st∈s)及交换机迁移动作at(at∈a),判断网络环境下一个状态st+1(st+1∈s)不同取值的概率。γ∈[0,1]是折扣因子。每个智能体都旨在寻找特定环境状况(例如,一个状态转移函数t:s×a×s→[0,1])下的行动策略来最大化预期的折扣化收益总和其中k代表行动步骤次数。本实施例中,环境为sdn网络,状态、行动、奖励定义如下:

状态:状态为每一个控制器的资源使用率,状态信息会被标准化后作为输入数据传输给强化学习代理的循环神经网络。

行动:一个行动元组p=(p1,p2,…,pj,…,pn)是所有控制器集合c={c1,c2,…,cj,…,cn}的联合行动,其中pj代表控制器cj的行动准则。

奖励:奖励的计算主要基于资源使用率平衡的提高,也可以考虑其他参数,如交换机迁移的网络成本。假设有控制器ci和控制cj,交换机迁移前控制器ci和控制cj的资源使用率为ui和uj,交换机迁移后控制器ci和控制cj的资源使用率为u'i和u'j,交换机迁移的网络成本为控制器和交换机之间的通信延迟为μ。奖励可以表示为:

reward=(ui-uj)2-(u'i-u'j)2-μ(1)

其中

其中wj代表交换机sj所产生的进程请求数量,代表控制器cj所管理的交换机集合,xj、yj、zj分别代表交换机sj请求的控制器的带宽、cpu和存储资源占用量。

在线决策原理具体如下:

将多智能体强化学习模型应用于控制平面的负载均衡问题,首先要进行设计一个博弈模型,以便智能体可以知道如何在彼此之间执行交换机迁移,以及何时停止迁移。博弈模型的目标是达到控制平面中的最佳资源分配的纳什均衡。在该博弈过程期间,在每个控制器采用多智能体强化学习方法,计算不同交换机迁移动作的优势以得到最佳博弈结果。

本发明将交换机迁移问题映射为商品交易模型,交换机和控制器分别被视为市场上的商品和参与者。交换机在控制器之间交易,在此过程中每个控制器都试图最大化其利润。通常,交换机只能交易到其临时所有者附近的控制器,这可以通过通信延迟惩罚来实现。例如,控制远离本控制器的交换机可能引入很大延迟。同时,交换机迁移过程仅在某些情况下发生,例如,交换机的工作负载低于阈值或者交换机的工作负载高于阈值。

本发明中为了确保控制器的状态一致性,一个控制器只能同时参与一个交换机迁移流程,从而简化了多智能体强化学习训练过程,从而无需考虑两个交换机迁移操作的冲突。在交换机迁移过程中,一个动作元组p=(p1,p2,…,pj,…,pn)来自于控制器行动集合c={c1,c2,…,cj,…,cn},其中pj代表控制器cj的动作策略,如果满足那么动作元组是本实施例均衡的,便可以得出

离线学习阶段包括如下步骤:

步骤1,初始化:将由控制器组成的分布式控制平面建模为多智能体系统,每个控制器运行一个深度强化学习代理;获得正在使用控制器集合c={c1,c2,…,cj,…,cn};设定整个训练过程的迭代总次数t;

步骤2,在每个控制器中计算集合中所有控制器的资源使用率集合u={u1,u2,…,uj,…,un},对于第j个控制器的资源使用率采用公式(2)计算;

步骤3,将资源使用率最大的控制器作为主控制器cmaster;

步骤4,主控制器cmaster按照概率选一个控制器作为执行控制器cactor并通知,其中对于控制器cj,被选为执行控制器的概率为

步骤5,执行控制器cactor将网络状态输入到该控制器的深度强化学习代理中,得到交换机迁移策略,并将该策略广播给其余n-1个控制器;

每个控制器利用交换机迁移策略更新其带宽、cpu和存储资源占用量信息;

执行控制器cactor利用公式(1)计算交换机迁移策略计算对应的奖励,利用奖励更新其深度强化学习代理;

步骤6,判断是否为第t次迭代,若是则训练结束,获得所有控制器当前的深度强化学习代理,完成离线学习;否则迭代次数加1,进行下一次迭代,执行步骤2-6。

本实施例的多智能体强化学习模型中,每个深度学习代理的深度强化学习算法采用门控循环单元gru与两层前馈神经网络连接作为主要神经网络结构,输入层为gru的输入层,gru的输出层连接到前馈神经网络的输入层,前馈神经网络的输出层作为整体输出。使用gru处理网络负载数据,能够提取网络负载的时间相关性从而得到更优的网络负载数据处理效果。

在线决策阶段将控制平面中的工作负载作为算法输入,根据离线学习阶段每个控制器上产生的深度强化学习代理的深度强化学习模型和当前的网络状态网络的状态,决策控制器的合并操作以及交换机的迁移操作,并生成迁移决策作为输出。其中,迁移决策共有三种:导入,保持静止和导出。

在线决策阶段包括如下步骤:

步骤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,每个控制器判断其做出的策略对应的奖励是否为最大值,若是,则该控制器执行其迁移策略,否则不进行操作。

通过实验模拟对本实施例的性能进行了评估,结果表明本发明将控制平面对于请求的处理能力提高了至少27.3%,同时将处理时间减少了约25%。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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