一种基于SDN的负载均衡实现系统及方法与流程

文档序号:20874781发布日期:2020-05-26 16:20阅读:901来源:国知局
一种基于SDN的负载均衡实现系统及方法与流程

本发明涉及负载均衡技术领域,具体地说,涉及一种基于sdn的负载均衡实现系统及方法。



背景技术:

软件定义网络将网络设备的数据转发和控制平面分离,通过集中式的控制器以标准化的接口对各设备进行管理和配置,已广泛应用在网络资源的设计、管理和使用等方面。但现有的负载均衡方法没有考虑服务器的负载量变化,导致负载分配不合理,无法实现负载均衡效果。



技术实现要素:

本发明的目的在于提供一种基于sdn的负载均衡实现系统及方法,以解决上述背景技术中提出的问题。

为实现上述目的,一方面,本发明提供一种基于sdn的负载均衡实现系统,包括服务器单元、负载信息处理单元和负载均衡调控单元,所述服务器单元用于获取服务器单元的负载和内存使用率;所述负载信息处理单元用于对负载信息进行测量,并对测量的负载信息进行收集;所述负载均衡调控单元结合根据服务器单元测量的负载信息和负载信息处理单元测量的负载信息,生成调度方案;所述服务器单元包括cpu负载平均值计算模块、内存使用率计算模块、计算差异程度模块和分配权重计算模块,所述负载信息处理单元包括负载信息测量模块和负载均衡率计算模块;所述负载均衡调控单元包括链路带宽传输速率模块和系统负载权衡模块。

作为优选,所述cpu负载平均值计算模块的算法公式如下:

记:server={si|i=1,2,3,...,n},每个服务器si有两个重要属性,即cpu负载cpu和内存使用率mem,因此服务器的总状态为:si=(cpu,mem)。一段时间t内服务器si的cpu负载cpu平均值为:

其中si代表各服务器,cpu负载为cpu。

作为优选,所述内存使用率计算模块的算法公式为:

其中si代表各服务器,cpu负载为cpu,内存使用率为mem。

综上,根据服务器集合server以及过载服务器集合overserver,可以筛选出可用服务器集,记作为:

作为优选,所述计算差异程度模块的算法公式如下:

其中,degreek,r为cpu负载和内存使用率相对于门限值的差异程度,影响因子r∈{cpu,mem}。将r分别取cpu和mem带入(公式3)进行计算,并将所得结果中degreek,r最小值作为当前服务器sk的可利用度degreek,记:

degreek=min{degreek,cpu,degreek,mem}......(式3-1)。

作为优选,所述分配权重计算模块的计算公式如下:

作为优选,所述负载信息测量模块的计算公式如下:

当一个控制器超载时,需要决定哪些交换机应该迁移到其他控制器,选择条件包括流表的数量、平均消息到达率和往返时间。平均消息到达率随流表数目的增多而增加,会给控制器带来更多负载,此外往返时间也是一个影响因素,负载计算公式为:

lload=wnn+wff+wrr......(式5);

其中,n为表条目的数量,f为各个交换机的平均消息到达率,r为交换机到控制器的往返时间,wn、wf和wr分别为三者的权重系数,其和为1.0。

作为优选,所述负载均衡率计算模块的计算公式如下:

如果有两个控制器的负载超过阈值y,负载均衡率ρ值都小于0.5,则这两个控制器会同时将交换机迁移到目标控制器,导致目标控制器超载。因此,过载控制器迁移时需要满足ρ小于0.5的同时,只对负载最大的进行迁移,负载均衡率的表达式为:

其中,{l1,l2,...,ln}代表表控制器负载列表,包括超载的控制器的负载,ρ的值在0和1之间,如果ρ接近1,表示负载均匀分布。设置ρ初始值为0.5,ρ值小于0.5,则表明控制器需要采取迁移操作,ρ值大于0.5,表明各个控制器的负载相对均衡。

作为优选,所述链路带宽传输速率模块包括计算端口的数据传输速率,计算链路吞吐量和计算链路的可用带宽:

计算端口的数据传输速率的公式如下:

其中,durationsec和durationnsec表示数据流的持续时间,byte-count表示数据流的比特大小;

计算链路吞吐量的公式如下:

其中,tx_bytes表示发送字节,rx_bytes表示接收字节数;

计算链路的可用带宽的公式如下:

freebandwith=capacity-speed......(式7-2)。

作为优选,所述系统负载权衡模块的计算公式如下:

thi,cpu=cpus×cores×0.7......(式8)。

另一方面,本发明提供一种基于sdn的负载均衡实现方法,包括上述中任意一项所述的基于sdn的负载均衡实现系统,其方法包括如下步骤:

s1、获取cpu负载的平均值;

s2、获取cpu内存使用率;

s3、计算cpu负载的平均值和cpu内存使用率的差异程度;

s4、对服务器进行分配权重计算;

s5、对负载信息进行测量,并对测量的负载信息进行收集;

s6、生成调度方案。

与现有技术相比,本发明的有益效果:

1、该基于sdn的负载均衡实现系统及方法中,设置服务器单元,获取cpu负载平均值、内存使用率、差异程度并分配权重,能够精准获取服务器的负载和内存使用率,便于根据服务器自身的状态调节负载量,实现负载均衡。

2、该基于sdn的负载均衡实现系统及方法中,设置负载信息处理单元,对负载信息进行测量并计算负载均衡率,实时监控负载变换,能够进行及时调整。

3、该基于sdn的负载均衡实现系统及方法中,设置负载均衡调控单元,以服务器单元和负载信息处理单元为基础,合理调配负载量,实现负载均衡。

附图说明

图1为本发明的服务器单元模块图;

图2为本发明的负载信息处理单元模块图;

图3为本发明的负载均衡调控单元模块图;

图4为本发明的整体流程框图。

图中各个标号意义为:

1、服务器单元;11、cpu负载平均值计算模块;12、内存使用率计算模块;13、计算差异程度模块;14、分配权重计算模块;

2、负载信息处理单元;21、负载信息测量模块;22、负载均衡率计算模块;

3、负载均衡调控单元;31、链路带宽传输速率模块;32、系统负载权衡模块。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1-图4所示,本发明提供一种技术方案:

本发明提供一种基于sdn的负载均衡实现系统,包括服务器单元1、负载信息处理单元2和负载均衡调控单元3,服务器单元1用于获取服务器单元1的负载和内存使用率;负载信息处理单元2用于对负载信息进行测量,并对测量的负载信息进行收集;负载均衡调控单元3结合根据服务器单元1测量的负载信息和负载信息处理单元2测量的负载信息,生成调度方案;服务器单元1包括cpu负载平均值计算模块11、内存使用率计算模块12、计算差异程度模块13和分配权重计算模块14,负载信息处理单元2包括负载信息测量模块21和负载均衡率计算模块22;负载均衡调控单元3包括链路带宽传输速率模块31和系统负载权衡模块32。

本实施例中,cpu负载平均值计算模块11的算法公式如下:

记:server={si|i=1,2,3,...,n},每个服务器si有两个重要属性,即cpu负载cpu和内存使用率mem,因此服务器的总状态为:si=(cpu,mem)。一段时间t内服务器si的cpu负载cpu平均值为:

其中si代表各服务器,cpu负载为cpu。

具体的,内存使用率计算模块12的算法公式为:

其中si代表各服务器,cpu负载为cpu,内存使用率为mem。

综上,根据服务器集合server以及过载服务器集合overserver,可以筛选出可用服务器集,记作为:

进一步的,计算差异程度模块13的算法公式如下:

其中,degreek,r为cpu负载和内存使用率相对于门限值的差异程度,影响因子r∈{cpu,mem}。将r分别取cpu和mem带入(公式3)进行计算,并将所得结果中degreek,r最小值作为当前服务器sk的可利用度degreek,记:

degreek=min{degreek,cpu,degreek,mem}......(式3-1)。

值得说明的是,分配权重计算模块14的计算公式如下:

具体的,负载信息测量模块21的计算公式如下:

其中,当一个控制器超载时,需要决定哪些交换机应该迁移到其他控制器,选择条件包括流表的数量、平均消息到达率和往返时间。平均消息到达率随流表数目的增多而增加,会给控制器带来更多负载,此外往返时间也是一个影响因素,负载计算公式为:

lload=wnn+wff+wrr......(式5);

其中,n为表条目的数量,f为各个交换机的平均消息到达率,r为交换机到控制器的往返时间,wn、wf和wr分别为三者的权重系数,其和为1.0。

进一步的,负载均衡率计算模块22的计算公式如下:

如果有两个控制器的负载超过阈值y,负载均衡率ρ值都小于0.5,则这两个控制器会同时将交换机迁移到目标控制器,导致目标控制器超载。因此,过载控制器迁移时需要满足ρ小于0.5的同时,只对负载最大的进行迁移,负载均衡率的表达式为:

其中,{l1,l2,...,ln}代表表控制器负载列表,包括超载的控制器的负载,ρ的值在0和1之间,如果ρ接近1,表示负载均匀分布。设置ρ初始值为0.5,ρ值小于0.5,则表明控制器需要采取迁移操作,ρ值大于0.5,表明各个控制器的负载相对均衡。

本实施例中,链路带宽传输速率模块31包括计算端口的数据传输速率,计算链路吞吐量和计算链路的可用带宽:

具体的,计算端口的数据传输速率的公式如下:

其中,durationsec和durationnsec表示数据流的持续时间,byte-count表示数据流的比特大小;

进一步的,计算链路吞吐量的公式如下:

其中,tx_bytes表示发送字节,rx_bytes表示接收字节数;

具体的,计算链路的可用带宽的公式如下:

freebandwith=capacity-speed......(式7-2)。

值得说明的是,系统负载权衡模块32的计算公式如下:

thi,cpu=cpus×cores×0.7......(式8)。

另一方面,本发明提供一种基于sdn的负载均衡实现方法,包括上述中任意一项的基于sdn的负载均衡实现系统,其方法包括如下步骤:

s1、获取cpu负载的平均值;

s2、获取cpu内存使用率;

s3、计算cpu负载的平均值和cpu内存使用率的差异程度;

s4、对服务器进行分配权重计算;

s5、对负载信息进行测量,并对测量的负载信息进行收集;

s6、生成调度方案。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

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