一种用于软件定义光网络的控制器负载均衡算法的制作方法

文档序号:12949513阅读:241来源:国知局
一种用于软件定义光网络的控制器负载均衡算法的制作方法与工艺

本发明属于光通信网络领域,涉及在包含多个控制器的大规模软件定义光网络中一种用于控制器实现负载均衡的算法。



背景技术:

软件定义光网络(sdon)是软件定义网络(sdn)向光层的扩展,是一种新型的智能光网络。sdon实现传输平面和控制平面的分离,形成独立的控制平面完成对网络的控制和配置。sdon相比于sdn网络规模大幅增加,一个sdon网络中需要包含多个网络控制器,一方面是网络规模增大的需要,另一方面多控制器可以提升网络可靠性避免出现单控制器网络控制器失效后全网瘫痪的局面。

当存在多个控制器的情况下,对于控制器的管理成了必须解决的问题。控制器负载均衡是控制器管理的重点内容之一。sdon控制器负载均衡算法针对性解决的问题是数据平面通过应用编程接口(api)得到的业务请求如何合理的向多个控制器进行映射,使得控制器资源利用率整体得到优化,并且保证业务请求的服务质量(qos)需求。

目前最典型使用的控制器负载均衡算法主要是最小负载均衡算法,最小均衡负载算法仅考虑了控制器整体资源利用率情况,没有考虑业务qos需求。随着信息技术的高速发展,业务类型成指数增长,“面向业务”已经成为未来网络的发展趋势,而作为新一代智能光网络的sdon必须具备“面向业务”的特点。而“面向业务”的一个重要体现就是对于业务qos的满足,所以用于sdon控制器的负载均衡算法设计必须考虑业务qos需求。



技术实现要素:

为了克服现有技术的不足,本发明提供一种基于时间延迟约束的sdon控制器负载均衡算法(tdclb),能够适应sdon“面向业务”的特点,在进行控制器负载均衡的同时考虑业务qos需求,其中重点考虑业务时间延迟需求,使得sdon控制器在考虑业务qos需求的情况下完成负载均衡。

本发明解决其技术问题所采用的技术方案包括以下步骤:

a)在sdon多个控制器中选择性能最优的作为核心控制器;若有多个控制器的性能指标一致则选择位于控制器网络拓扑中心位置的控制器为核心控制器,保证其他控制器到达核心控制器的路径总和最短;若有多个性能指标一致且均位于控制器网络拓扑中心位置的控制器,则随机选择其中一个为核心控制器;

b)核心控制器对汇聚得到的业务依据时间延迟需求进行分级,分为时延敏感型业务和非时延敏感型业务;

c)核心控制器优先处理时延敏感型业务,获取该业务特征信息,特征信息包括业务类型和业务大小;将时延敏感型业务的特征信息播发到可选普通控制器集合内负载最小的一个或多个普通控制器;

d)收到核心控制器发送的特征信息的普通控制器结合自己处理速度以及排队业务情况给出等待时延,并将等待时延回传给核心控制器;

e)核心控制器将普通控制器回传的等待时延与设定的阈值时延比对,如果存在若干普通控制器的等待时延小于阈值,则将该时延敏感型业务分配给等待时延最小的普通控制器;若存在多个等待时延最小的普通控制器,则选择距离核心控制器路径最短的普通控制器;若存在多个等待时延最小且距离核心控制器路径最短的普通控制器,则随机分配给其中一个;

f)如果回传的等待时延均大于阈值时延,则将业务分配给负载最小的控制器,此时若存在多个负载最小的普通控制器,则选择距离核心控制器路径最短的普通控制器,若存在多个负载最小且距离核心控制器路径最短的普通控制器,则随机分配给其中一个;

g)核心控制器在处理非时延敏感型业务,将非时延敏感型业务分配到负载最小的普通控制器,此时若存在多个负载最小的普通控制器,则选择距离核心控制器路径最短的普通控制器,若存在多个负载最小且距离核心控制器路径最短的普通控制器,则随机分配给其中一个。

本发明的有益效果是:在对sdon控制器进行负载均衡的同时,基于面向业务的策略考虑了业务qos需求。首先依据qos中延时需求对业务进行分类,分为时延敏感型业务和非时延敏感型业务。tdclb负载均衡算法在完成sdon控制器负载均衡的同时尽量保障时延敏感型业务对于qos中延时的要求。tdclb负载均衡算法中利用api接口获取业务特征信息,通过传递业务特征信息由普通控制器预先计算业务排队处理时延,特征信息仅提供计算排队时延的信息所以包较小,占用控制器网络带宽较小,并且tdclb负载均衡算法的复杂度较小,易于实现。

附图说明

图1是tdclb算法流程图;

图2是算法仿真网络模型示意图;

图3是负载均衡率仿真结果示意图;

图4是时延敏感型业务平均等待时延仿真结果示意图。

具体实施方式

下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。

本发明提出的一种基于时间延迟约束的sdon控制器负载均衡算法(tdclb),将进行负载均衡的多个控制器分为两类:普通控制器和核心控制器,而且核心控制器与普通控制器直接存在通信连接。普通控制器即sdon网络中具备通用化功能的控制器。核心控制器与普通控制器不同,主要完成对于普通控制器的监测、管理和控制,主要具备以下功能:1)由普通控制器向核心控制器上报实时负载情况,核心控制器监测普通控制器负载情况;2)接入的业务通过api接口汇聚到核心控制器,核心控制器解析业务属性依据qos需求中的时间延迟需求对业务进行分级;3)结合qos需求和各个普通控制器负载情况,将接入业务分配给普通控制器进行处理。

本发明包括以下步骤:

a)sdon中多个控制器中选择性能最优的作为核心控制器,如果性能指标一致,则选择位于控制器网络拓扑中心位置的控制器为核心控制器,保证其他控制器到达核心控制器的路径总和最短,当存在上述多种条件一致的情况则随机选择一个控制器为核心控制器;

b)核心控制器依据对汇聚得到的业务依据时间延迟需求进行分级,分为时延敏感型业务和非时延敏感型业务;

c)核心控制器优先处理时延敏感型业务,获取该业务特征信息,特征信息包括业务类型和业务大小等。将时延敏感型业务的特征信息播发到可选普通控制器集合内负载最小的一个或多个普通控制器;

d)收到核心控制器发送的业务特征信息的普通控制器结合自己处理速度以及排队业务情况给出等待时延,并将计算等待时延回传给核心控制器;

e)核心控制器将普通控制器回传的等待时延与设定的阈值时延比对,如果小于阈值则将该时延敏感型业务分配给等待时延最小的普通控制器,若存在多个等待时延最小的普通控制器,则选择距离核心控制器路径最短的,若存在多个等待时延最小的普通控制器距离核心控制器路径最短,则随机分配给其中一个。

f)如果该回传的等待时延大于阈值时延,则放弃该普通控制器,将该业务将时延敏感型业务的特征信息播发到可选普通控制器集合内负载次小的一个或多个普通控制器,重复步骤d)、e)和f);

g)直至将业务分配给等待时延小于阈值时延的普通控制器;

h)如果经过轮询后所有普通控制器的等待时延均大于阈值时延,则将业务分配给负载最小的控制器,此时若存在多个负载最小的普通控制器,则选择距离核心控制器路径最短的,若存在多个负载最小的普通控制器距离核心控制器路径最短,则随机分配给其中一个;

i)核心控制器在处理非时延敏感型业务,将非时延敏感型业务分配到负载最小的普通控制器,此时若存在多个负载最小的普通控制器,则选择距离核心控制器路径最短的,若存在多个负载最小的普通控制器距离核心控制器路径最短,则随机分配给其中一个。

如图1所示,本发明的实施例包括以下步骤:

1)sdon中多个控制器中通过人为设定或者依据选择机制产生一个核心控制器

sdon中多个控制器可以通过人为设定的方式确定某一个为核心控制器,也可以依据某种机制进行选择。本发明中提出的选择机制是:在sdon多个控制器中选择性能最优的作为核心控制器,如果性能指标一致,则选择位于控制器网络拓扑中心位置的控制器为核心控制器,保证其他控制器到达核心控制器的路径总和最短,当存在上述多种条件一致的情况则随机选择一个控制器为核心控制器。

2)核心控制器依据对汇聚得到的业务依据时间延迟需求进行分级,并通过api获取该业务特征信息

业务请求首先被汇聚到核心控制器,核心控制器解析其qos需求信息,依据qos中时延指标对业务进行分类,如果对时延有要求的分为时延敏感型业务,否则分为非时延敏感型业务。通过应用编程接口(api)获取该业务特征信息,特征信息包括业务类型、业务大小和时延要求等。

核心控制器对业务进行分配处理的顺序遵循,基于时延敏感型业务优先的情况下的先来先处理原则。即在核心控制器的排队序列中时延敏感型业务优先,同一类型的业务先到达的先被处理。

3)将时延敏感型业务的特征信息播发到可选普通控制器集合内负载最小的一个或多个普通控制器

核心控制器通过与普通控制器的状态传递信息,获悉与之连接的所有普通控制器的负载情况,将所有可用的普通控制器组成一个集合c={c1,c2…cn},其中c1,c2…cn表示不同的普通控制器,而lc1,lc2…lcn表示普通控制器的负载情况。

将时延敏感型业务分配到可选普通控制器集合内负载最小的普通控制器可以表示为:

min(lc1,lc2...lcn)(1)

负载最小的普通控制器可以是一个或者多个。

4)普通控制器接收到业务特征信息后,结合自己处理速度以及排队业务情况给出等待时延,并将计算等待时延回传给核心控制器

等待时延由普通控制器结合自身情况进行计算,排队业务数目为nl,排队队列中第i个业务的体量为si,而普通控制器ci的处理速度用vi表示,第i个业务的处理时延为:

新到达业务在普通控制器ci的等待时延wi为:

5)核心控制器将普通控制器回传的等待时延与设定的阈值时延比对,如果小于阈值则将该时延敏感型业务分配给负载最小的普通控制器集合中等待延时最短的。

阈值时延tt是静态的固定值,主要由整体接入业务的qos中时延要求所决定,需要通过对全网业务长期观察统计得到。

若存在多个等待时延最小的普通控制器,则选择距离核心控制器路径最短的,若存在多个等待时延最小的普通控制器距离核心控制器路径最短,则随机分配给其中一个。

6)如果该回传的等待时延大于阈值时延,则放弃该普通控制器,将该业务的业务特征信息发送给负载次小的普通控制器,重复步骤d)、e)和f);

求出当前可用普通控制器集合中负载最小的普通控制器min{lc1,lc2…lcn},例如普通控制器c2,通过步骤5)进行比对后,如果普通控制器c2的等待时延大于阈值时延,则将c2从集合c中剔除,新的集合c’={c1,c3…cn},在集合c’的基础上重复步骤4)、5)和6)。

7)直至将业务分配给等待时延小于阈值时延的普通控制器;

通过轮训,直至找到等待时延小于阈值时延的普通控制器。

8)如果经过轮询后所有普通控制器的等待时延均大于阈值时延,则将业务分配给负载最小的控制器;

经过轮询,普通控制器集合中可用的普通控制器逐渐减小,当为空集的时候停止轮询。此时,将业务分配给当前负载最小的控制器min{lc1,lc2…lcn}。

9)核心控制器在处理非时延敏感型业务,将时延敏感型业务分配到负载最小的普通控制器;

核心控制器在处理非时延敏感型业务时不需要考虑等待时延问题,直接将时延敏感型业务分配到负载最小的普通控制器min{lc1,lc2…lcn}。

此时若存在多个负载最小的普通控制器,则选择距离核心控制器路径最短的,若存在多个负载最小的普通控制器距离核心控制器路径最短,则随机分配给其中一个。

在上述具体实施方式基础上,通过omnet++仿真软件对算法进行了实现,通过仿真对算法性能进行了评估,分析证明算法的可行性。构建的多控制器网络模型为3×3mesh网络,网络模型如图2所示。

图2所示的3×3mesh网络包括9个控制器,通过人为设定将c5设定为核心控制器,其余控制器为普通控制器。普通控制器的重要参数为处理时延(deal_delay),而deal_delay表征普通控制器的处理能力,普通控制器deal_delay越小表示该控制器的处理能力越强、处理速度越快。本仿真系统中每个普通控制器的deal_delay设置如下:

表1普通控制器处理时延设置

仿真系统产生的业务到达满足泊松分布,泊松分布的参数λ表示业务到达强度。业务包括时延敏感型业务和非时延敏感型业务,二者产生服从均匀分布。设定标准处理时延(pro_delay)表征业务大小,pro_delay包括三个值100ms、150ms和200ms,标准处理时延为该业务由deal_delay=1的普通处理器处理所需要的时间,例如当一个deal_delay=3的普通处理器处理一个pro_delay=150ms的业务则需要耗时450ms。仿真过程中设定阈值时延tt=200ms,与最大pro_delay值相同。

为了更好地对本发明提出的算法进行性能评估,用经典的负载均衡算法:轮询算法和最小负载均衡算法与本发明提出的算法从负载均衡率和时延敏感业务平均等待时延两个方面进行对比。

首先从负载均衡率的角度出发进行比较,定义负载均衡率为各个普通控制器的资源利用率的标准差,如公式(4)所示。

公式(4)中,σc表示负载均衡率,n表示普通控制器个数,lci表示第i个普通控制器的负载情况,表示所有普通控制器平均负载情况。仿真结果如图3所示。

通过图3可以看出,在业务到达强度较小,λ≤25的情况下三种算法负载均衡率基本一致,随着业务到达强度逐步增大,基于轮询算法负载均衡率快速增加表明各个普通控制器负载快速失衡,而本发明提出的tdclb算法负载均衡率略大于最小负载均衡算法,在λ=25的情况下tdclb算法负载均衡率仍保持小于0.2,略高于最小负载均衡算法的负载均衡率(0.18)。当业务到达强度增大至40的时候,各个服务器负载趋于饱和,tdclb算法和轮询算法的负载均衡率均开始回落,tdclb算法的负载均衡率回落到与最小负载均衡算法一致。通过上述放着结果可以得出,在负载均衡率方面tdclb算法与最小负载均衡算法相当,只有当业务到达强度达到较大值时tdclb算法负载均衡率会略高于最小负载均衡算法。

从时延敏感业务平均等待时延角度出发进行比较,最小负载均衡算法,轮询算法和本发明提出的tdclb算法对应的时延敏感型业务平均等待时延曲线如图4所示。

图4中横轴为为业务到达强度,随着业务到达强度的逐渐增加,三种算法对应的时延敏感型业务平均等待时延均呈上升趋势,但是可以看出tdclb算法对应的时延敏感型业务平均等待时延要明显小于最小负载均衡算法和轮询算法,体现出了tdclb算法对时延敏感型业务在等待时延方面的qos保证。

通过上述仿真验证可以得出,本发明提出的tdclb算法在负载均衡方面与传统的最小负载均衡算法相当,而明显小于轮询算法;tdclb算法在时延敏感型业务等待时延方面明显优于最小负载均衡算法和轮询算法。

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