一种基于SDN的动态负载均衡方法与流程

文档序号:12492416阅读:565来源:国知局
一种基于SDN的动态负载均衡方法与流程

本发明涉及网络技术领域,特别是涉及一种基于SDN的动态负载均衡方法。



背景技术:

SDN是起源于2006年美国斯坦福大学实验室的研究项目的技术;2007年,Nick McKeown在SIGCOMM会议上发表文章“OpenFlow:Enabling Innovation in Campus Networks”,首次提出了将OpenFlow协议用于校园网络的试验创新;2011年初,在Google、Facebook、Yahoo等业界重量级企业共同成立了ONF(Open Networking Foundation,开放网络基金会),并正式提出了软件定义网络的概念;2014年,Facebook推出Wedge SDN交换机,ON.Lab发布开源SDN操作系统ONOS,Cisco加入开放计算项目OCP;2015年,VMware NSX部署超过1000家,营收超5亿美金,数据中心网络(DCN)成为SDN的主航道和主战场,Big Switch、Cumulus、云杉网络等SDN新兴力量斩露头角,SDN产业处于百花齐放的状态;2016年,SDN产生大爆发,芯片即可编程交换机厂商Barefoot完成1.3亿美元B轮融资,Big Switch完成4850万美元C轮融资,VMware收购网络自动化公司Arkin Net。SDN技术的诞生,它的使命就是加快网络创新,打破设备的封闭性,使整个网络更加开放,以适应不断更新的网络需求。

随着网络技术的迅猛发展,SDN加速发展,但是也存在着许多值得研究和进一步优化的问题。针对传统路由协议只是按照最短路径进行流量路由和转发,当最短路径流量已经满负荷时仍然将新的流量导入而不分流处理的问题。



技术实现要素:

本发明所要解决的技术问题是提供一种基于SDN的动态负载均衡方法,能够提高整个系统的稳定性和路径选择的最优化,提高整体链路的利用率。

本发明解决其技术问题所采用的技术方案是:提供一种基于SDN的动态负载均衡方法,包括以下步骤:

(1)找到源主机到目的主机的最优路径;

(2)给系统设定动态负载均衡阈值,当检测到的负载均衡参数超过动态负载均衡阈值时,则触发并行动态调度策略对负载进行动态调整,将部分数据流调度到负载较小的节点上,否则,将全部的数据流以最优路径进行传输。

所述步骤(1)具体为:对所有主机遍历整个网络拓扑,对整体有个镜像,得到每台主机之间的所有可能路径集合,并找到最优路径。

所述步骤(2)中的负载均衡参数为其中i=(1,2…N)为主机编号,XA(t)为主机的平均负载,Xi(t)为主机i在时刻t时的负载量,N为总的主机数量。

有益效果

由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:

本发明选择在SDN的网络架构下分析负载均衡算法,从设备可编程转变为网络可编程,SDN提供了灵活的可编程能力,它不仅仅针对单个网络节点而言,而且可以针对整个网络,使得网络自动化管理和控制能力得到了极大地提升,这种灵活的特性比传统网络更好的对网络流量进行管理,更有利于实现流量负载均衡的调度。SDN是控制与转发分离的架构,控制器是整个网络架构的核心,它具有全局的拓扑,可计算任意端点之间的路由,并控制转发路径,对网络中流量的监控,实时调度流量,为数据中心网络提供负载均衡服务带来了极大地方便。

本发明采用Dijkstra算法进行改进,在传统网络中Dijkstra算法是实现最短路径算法中公认的好算法,且有名的OSPF协议就根据链路状态数据库计算出从本路由器到域内其他所有路由器的最短路径。

本发明每台主机遍历整个拓扑结构,传统Dijkstra算法没有考虑网络中整体负载的分布情况,所以每一台主机遍历整个网络拓扑,有效的避免了传统Dijkstra算法选出的最短路径可能不是整个系统的最短路径,而只是局部最短路径。

本发明采用给系统设定一个平衡度,避免了多个数据流选择同一条路径,而造成局部拥塞,负载均衡参数采用方差的形式,更能体现网络负载的不均衡情况,理想状态是γ(t)=0,即每台主机的负载字节数相等,达到完全均衡。γ(t)的值越小表示负载差异越小,在保证不超过阈值η的前提下,选择最短路径提高效率。

附图说明

图1是本发明的流程图;

图2是网络拓扑示意图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

本发明的实施方式涉及一种基于SDN的动态负载均衡方法,包括以下步骤:找到源主机到目的主机的最优路径;给系统设定动态负载均衡阈值,当检测到的负载均衡参数超过动态负载均衡阈值时,则触发并行动态调度策略对负载进行动态调整,将部分数据流调度到负载较小的节点上,否则,将全部的数据流以最优路径进行传输。

SDN的显著特点即控制与转发分离,控制器作为核心,具有全局拓扑,可计算任意节点间的路由,并控制转发路径,与传统网络相比,SDN网络架构对网络中流量监控,并实时调度流量提供了更大的方便。Dijkstra算法是实现最短路径算法中公认的好算法,但是传统Dijkstra算法容易导致数据流集中到同一条路径进行转发,从而导致网络拥塞,整体链路利用率较低。对此首先对所有主机遍历整个网络拓扑,对整体有个镜像,得到每台主机之间的所有可能路径集合,为了避免最短路径局部拥塞,再给系统设定一个平衡度(即动态负载均衡阈值η)当检测到负载均衡参数γ(t)超过这个阈值,则触发并行动态调度策略对负载进行动态调整。

如图1所示,本发明的整体流程框图,包括每台主机遍历整个网络拓扑、Dijkstra算法基本流程、判断框(平衡度)三大框架。本发明在Dijkstra算法的基础上,增加让所有主机遍历整个网络拓扑的功能,控制器可以预先计算出网络中所有主机之间两两存在的所有路径,每条路径都包括从源主机到目的主机之间所需要经过的所有链路,可根据这条路径上所有链路的当前可用带宽/链路开销/距离/费用等为每条路径生成一个权重,用来衡量此路径的均衡程度。

一组由带宽/链路开销/距离/费用等所形成的带权邻接矩阵(如下),利用改进的Dijkstra算法找到节点S5—节点S8的最优路径及其经过的所有节点。其组网拓扑图如图2所示。

传统Dijkstra算法具体步骤如下:

1、从S5出发,S5标记为Source,S8标记为Target此时D(S8)=∞;

2、S5到S2的一步路径最短,D(S5—S2)=40,D(S5-S6)=100,S2被标记为临时节点;

3、S2到S3的一步路径最短,D(S5-S3)=40+40=80,D(S5-S6)=100,D(S5-S7)=40+95=135,S3被标记为临时节点;

4、S3到S7的一步路径最短,D(S5-S4)=40+40+60=140,D(S5-S7)=40+40+50=130,D(S5-S8)=40+40+100=180,S7被标记为临时节点;

5、D(S7-S8)=60,标记S8,找到Target。

所以由传统Dijkstra算法找到的最短路径即为D(S5-S2-S3-S7-S8)=190。

每台主机遍历整个网络,找到从源端点到目的端点的所有可能路径:

D(S5-S2-S3-S7-S8)=190

D(S5-S2-S7-S8)=245

D(S5-S6-S7-S8)=260

D(S5-S6-S3-S8)=290

D(S5-S2-S3-S8)=180

……

会发现,传统Dijkstra算法找到的只是局部最短路径,通过S5遍历整个网络拓扑得到实际最短路径应该为S5-S2-S3-S8。

本实施方式中负载均衡参数定义为:

其中i=(1,2…N)为主机编号,XA(t)为主机(服务器)的平均负载,Xi(t)为主机(服务器)节点i在时刻t时的负载量,N为总的主机(服务器)节点数目(例子中为8台主机,现实生活中成千上万台主机(服务器)),以方差的形式来定义负载均衡参数,能更好的体现网络负载不均衡现象,以便及时作出策略。

在上述举例中,假如同时有多条数据流需要从S5-S8,每条数据流都会根据Dijkstra算法最短路径选择S5-S2-S3-S8,此时S3-S8这条链路上一旦负载均衡参数γ(t)大于动态负载均衡阈值η,负载则会出现倾斜,触发并运行动态流调度策略对负载进行动态调整,将部分数据流调度到负载较小的节点上,比如S3-S7-S8,以平衡节点负载,实现整体动态平衡,避免局部拥塞。

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