基于SDN的云数据中心负载可感知的请求路由方法与流程

文档序号:12694465阅读:202来源:国知局
基于SDN的云数据中心负载可感知的请求路由方法与流程

本发明涉及一种基于SDN的云数据中心负载可感知的请求路由方法。



背景技术:

云数据中心基础设施中的物理服务器被虚拟化和池化后变成多个相互隔离的虚拟机。云数据中心接受的请求首先需要经过云数据中心网络,然后到达底层的虚拟机上进行处理。因此,一个请求的总延迟时间是请求在网络和虚拟机中的延迟时间的总和。研究表明云数据中心中应用的延迟时间对于用户的体验具有较大的作用,并且会给云数据中心提供商带来利润的损失。

近来出现的软件定义的网络技术能够通过可编程的基于OpenFlow协议的网络设备对网络提供集中式的统一控制。这些网络设备包括软件定义网络(Software-Defined Networking,SDN)控制器和传输设备(包括交换机和路由器)等。SDN实现了控制平面和数据平面的分离,从而能够对云数据中心网络提供集中式的统一的全局优化的路由决策。在SDN网络结构中,传统网络设备中的控制和管理功能被迁移到远端的SDN控制器中。在SDN环境中,支持OpenFlow协议的网络元素需要包含数据平面,并且向远程的SDN控制器提供OpenFlow接口。OpenFlow协议是SDN控制器和数据平面之间信息交换的标准通信协议。SDN控制器需要控制网络,并且提供转发、虚拟专用网络、安全、带宽分配、QoS、网络虚拟化和负载均衡等功能。

然而,现有的SDN架构仍然存在很多挑战和问题。现有的软件定义网络的控制器目前只能够获得数据中心网络中的信息并对其延迟时间进行优化,因此该控制器仅仅能够对网络中支持OpenFlow协议的交换机和路由器进行控制。然而,一个请求的总延迟时间是请求在网络和虚拟机中的延迟时间的总和,因此,在底层的虚拟机中的处理延迟时间在用户体验中同样具有很重要的影响。如果请求被路由到某一发生异常的或已经过载的虚拟机上,那么这将会导致较大的虚拟机处理时间。此外,现有的控制器中的路由机制通常都比较简单,如Floodlight仅仅根据最短路径原则选择目标虚拟机。这种简单的路由方法可能会由于网络拥塞或虚拟机过载在网络中导致较大的网络延迟或者在虚拟机中导致较大的处理延迟,因而可能会导致较大的总响应时间。此外,出于可扩展性和稳定性的考虑,云数据中心中的每一个应用均部署在多个同构或者异构的虚拟机上。因此,对每一个应用而言,云数据中心中均存在多个对应的可以处理每一个应用请求的虚拟机。随着云数据中心的多个应用的请求的越来越多,如何降低请求的延迟时间,提高用户体验成为了一个难题。



技术实现要素:

针对以上现有技术的不足,本发明提供一种基于SDN的云数据中心负载可感知的请求路由方法,以实现为当前应用的请求指定最优的虚拟机和网络路由路径的组合,实现虚拟机和网络的负载均衡,从而最小化每一个请求的总响应时间。

根据本发明的一个方面,提供了云数据中心对某一个应用请求处理时间的计算模型,包括:提供一种启发式的算法来为每一个应用f的请求指定最佳的网络路由路径pf和虚拟机df的组合,从而最小化该应用请求的总响应时间。针对每一个应用f的请求,对能够处理该请求的所有的虚拟机进行遍历,针对每一个潜在的虚拟机,分别依次寻找可以通向该虚拟机的网络路由路径,并最终为每一个应用f的请求确定最佳的网络路由路径和虚拟机组合,从而最小化每一个应用的请求的总响应时间。

根据本发明的另一方面,提供了获得所有可达路径的模型,包括:根据Knapsack函数确定允许通过链路的所有应用的集合,由于多个应用共享一条链路,将如何分配使得所有应用优先级之和最大这一问题抽象为一个背包问题,提供启发式的遗传算法解决这一问题,同时结合轮盘赌选择方法和精英机制选择下一代染色体,最终找到最优解。

根据本发明的上述方面,针对目前云数据中心处理应用请求的模式,基于SDN的负载可感知的请求路由方法基础上,实现了降低请求的延迟时间,提高用户体验,使得云数据中心提供商的效益最大化。

本发明的目的通过以下技术方案来实现:

一种基于SDN的云数据中心负载可感知的请求路由方法,该方法包括如下步骤:

1)当某一个应用向云数据中心发送请求时,负载可感知的控制器获得该应用对应的所有虚拟机详细信息以及到达该虚拟机所有路径的详细信息;

2)遍历所有虚拟机,计算当前虚拟机处理该请求所需要的时间;

3)根据2)中获得该应用请求能够到达当前虚拟机的所有路径;

4)基于启发式的遗传算法获得每一条链路允许通过请求的最佳应用组合;

5)在3)和4)的基础上得到该应用可以将请求送达当前虚拟机的所有路径,并计算每条路径的延迟时间,最终获得响应时间最小的虚拟机与链路组合。

进一步,所述实现虚拟机和网络的负载均衡,最小化每一个请求的总响应时间。

进一步,所述总响应时间由两部分构成,即网络中的延迟时间和虚拟机上的处理时间:

其中

i)是应用请求的总响应时间;

ii)是虚拟机对该应用请求的处理时间;

iii)是该应用请求在网络链路的延迟时间。

进一步,在网络中的延迟时间考虑链路中各种网络设备后可以计算得出,即

其中,

i)f表示当前应用;

ii)pf表示应用f请求的网络路由路径;

iii)表示表示网络路由路径pf上所有网络设备的个数;

iv)表示网络路由路径pf上第i个网络设备为应用f的请求所分配的带宽;

v)λf表示应用f的请求的到达率;

vi)sf表示应用f的每一个请求的大小。

进一步,所述虚拟机上的处理时间可以通过虚拟机的状态信息计算得出,即:

其中,

i)df表示应用f的请求的虚拟机;

ii)表示虚拟机df上的剩余的尚未被处理的请求的个数;

iii)表示虚拟机df的处理能力;

进一步,对于一条路径中的每一条链路,所有允许通过该链路的应用请求的总带宽需求不能超过该链路的带宽容量限制,即:

其中,

i)e表示路径中的当前链路;

ii)RTe表示允许通过链路e的所有应用的集合;

iii)Cape表示链路e的带宽容量限制。

进一步,每一个应用的请求的带宽需求均不能超过选定的网络路由路径上每一个网络设备为应用的请求所分配的带宽,即:

其中,

i)i是指网络路径中当前网络设备。

进一步,为了确定一个应用的请求的可达路径,首先要确定一条路径中每条链路允许通过的应用集合RTe。链路中每一个应用对应一个优先级,最终确定的应用集合要达到在保证允许通过的所有应用请求的带宽需求不超过该链路带宽容量限制的前提下最大化允许通过的所有应用请求的优先级之和,即:

其中,

i)totalPe指的是通过链路e的优先级之和;

ii)T指应用的数量;

iii)xf表示当前应用是否允许通过该链路;

iv)reqLevelf表示应用f的优先级;

进一步,允许通过链路e的所有应用的请求不能超过该链路的带宽容量限制,即:

进一步,求通过链路e的优先级之和前,要首先判断应用是否被允许通过当前链路e,即:

本发明的优点在于:

1.综合考虑到了网络中的拥塞信息和虚拟机中的负载信息,并为每一个应用的请求指定最佳的网络路由路径和虚拟机组合,从而最小化每一个应用请求的总响应时间。

2.解决了现有的软件定义网络中控制器仅能够优化应用请求的网络延迟时间的问题,并考虑了应用请求在虚拟机上的处理延迟时间,从而能够提高云数据中心虚拟机的利用率,并且降低应用请求的数据包丢失率。

附图说明

图1一种基于SDN的云数据中心负载可感知的请求路由方法组成示意图;

图2负载可感知的请求路由流程图;

图3确定允许通过每条链路的应用集合的算法流程图;

具体实施方式

下面将给出一种负载可感知的请求路由方法的具体步骤。

第一步提出了一种负载可感知的请求路由方法

该方法综合考虑网络拥塞和虚拟机中的请求队列信息,为每一个应用发来的请求分配响应时间最小的虚拟机和网络路由路径组合,结合图2详细介绍负载可感知的控制器如何为向云数据中心中的应用请求分配虚拟机和网络路由路径,最终为每一个应用返回处理其请求的最佳网络路由路径和虚拟机组合。

首先根据应用和云数据中心(包括网络和底层服务器)的详细信息,负载可感知的控制器可以获得当前应用的请求到达率,每一个应用对应的虚拟机个数,以及每个应用请求的大小,该虚拟机上待处理请求的数目以及虚拟机的处理能力。此外,负载可感知的控制器可以获取可到达每一个虚拟机的网络路由路径集合,以及每一条可达路径上的网络设备数以及带宽容量等信息。

获取上述信息之后,负载可感知的控制器采用一种启发式的算法来为应用f的请求指定最佳的网络路由路径和虚拟机组合,从而最小化该应用请求的总响应时间在此之前系统默认,当前应用的响应时间设定为正无穷,当前应用对应每一台虚拟机的响应时间设定为正无穷。接下来处理流程如图2所示,首先从发送待处理请求的应用集中依次获取应用。针对获取应用的请求,然后对能够处理该请求的所有虚拟机进行遍历,针对每一个潜在的虚拟机,接下来计算其处理当前应用请求的时间,继而分别依次寻找可以通向该虚拟机的网络路由路径,计算每一条路径的延迟时间,从而得到当前虚拟机每一条可达路径的响应时间,将虚拟机处理时间与路径延迟时间相加之和与当前得到的总处理时间相比较,取其中最小的时间最为当前路由的最小处理时间,遍历完当前虚拟机的所有可达路径之后,总时间最小的路径和该虚拟机即为当前最佳的路由路径和虚拟机组合。

第二步建立可达链路分析模型

一个应用从数据中心入口网关路由器到达指定虚拟机有很多路由路径。然而,对于一个应用的请求而言,并不是每一条链路都被允许通过。不同的应用请求会共享所共同经过的每一条链路,每个应用都需要占用一定的带宽资源。一条链路的带宽是有限的,所以所有可能通过该链路的请求会竞争该链路上有限的带宽资源。每个应用都对应有不同的优先级,因此,不同应用的请求需要非公平地共享共同经过链路的带宽资源,为了判别一条共享链路可以通过哪些应用的请求,本发明建立了可达链路分析模型。

该模型将上述问题抽象为一个背包问题,并建立了Knapsack函数,该函数能够确定最终能够通过当前链路的应用请求的集合,达到在保证允许通过的所有应用请求的带宽需求不超过该链路带宽容量限制的前提下最大化允许通过的所有应用请求的优先级之和totalPe。所求背包问题可以形式化为如下形式。

s.t.

首先将一个链路的带宽表示为一个背包的容量Cape,每一个应用f的请求代表一个等待被放入背包的物品,每一个应用的带宽需求sf抽象为物品的大小,而其优先级reqLevelf则对应于物品的价值,这样就获得了该背包问题具体的参数。

接下来,上述背包问题是一个典型的NP难问题。因此本发明采用遗传算法解决该难题。目前已经证明针对通常被视为很难计算得到解的NP难问题,遗传算法能够高效快速地找到一个接近于最优的问题解。本发明采用的遗传算法的实现中结合了比较常用的轮盘赌选择方法和精英机制来选择再生下一代的染色体。轮盘赌选择方法是一种典型的在产生新的种群时按照染色体的适应度值成比例地进行选择染色体的方法。而精英机制首先选择当前种群中适应度最好的一定数目的染色体,并将这些染色体直接复制到下一代种群中。通过精英机制,适应度值较好的部分染色体被很好地保留了下来,从而提高了最终寻找到的解的质量。

参照流程图中的介绍,本发明中涉及的Knapsack函数中的遗传算法首先初始化一个由ps个长度为cs的染色体构成的初始种群。该算法采用二进制编码,其中每一条染色体被编码为由数字0和1构成的字符串,当染色体包含某一应用时,对应于染色体中该应用的编码为1,否则为0。对应于上述背包问题的优先级之和,在遗传算法中表现为染色体的适应度。接下来初始化所有应用的请求的带宽需求集合vols,以及对应的优先级集合pris,接下来对种群进行迭代。每一次迭代首先对当前种群中的染色体进行排序,然后采用轮盘赌选择方法和精英机制来随机地选择染色体并进一步对它们进行交叉操作。通过随机地选择交叉位置,种群中相邻的两个染色体从交叉位置开始交换对应的染色体编码序列,从而产生出新的染色体。接下来为了防止程序陷入局部最优解,对交叉后产生的染色体按照一定的概率执行变异操作。当迭代次数达到设定好的次数时或者当前种群中超过90%以上的染色体的适应度值相同时,遗传算法直接终止。通过遗传算法获得最终的近似最优的染色体后,根据染色体的序列为每一条链路e确定能够通过该链路的应用的集合,最后该算法返回最终确定的能够通过每一条链路e的应用的集合RTe

在得到每一条链路允许通过的应用集合RTe之后,本发明即可从每一个应用到对应虚拟机的所有路径Reachf,s,d,中选择出可以将请求发送成功的路径APf,s,d。具体转化过程如表1所示:

表1将Reachf,s,d转化为APf,s,d算法的伪代码

首先获取向云数据中心发送请求的所有应用后,本发明获得各个应用到其所有虚拟机的所有路径,遍历每一条路径,通过Knapsack(e)函数计算这条路径上的所有链路允许通过应用的集合,如果所有链路的RTe中都有当前应用,那么将这条路径标记为可达路径。遍历结束后,我们便得到了每一个应用到达每一台虚拟机的所有可达的网络路由路径。

第三步建立虚拟机处理时间计算模型

在第一步得到的云数据中心响应时间计算模型的基础之上,本发明进一步给出了应用请求在虚拟机中处理时间的计算模型。云数据中心基础设施中的物理服务器被虚拟化和池化后变成多个相互隔离的虚拟机,所以本发明获取虚拟机的详细信息后,即可计算虚拟机处理某一应用请求所需要的时间。

首先根据硬件设备提供商提供的信息我们可以得到虚拟机的处理能力其次考虑到虚拟机上可能存在一个待处理的应用请求序列,所以还需要获取虚拟机df上的剩余的尚未被处理的请求的个数加上每一个应用的请求的大小sf。考虑上述因素后得到处理时间

最终得到虚拟机处理时间计算模型如下:

第四步链路延迟时间计算模型

在第一、二步的基础上,为了进一步得到应用请求在网络中的延迟时间为简单起见,假定请求从数据中心入口网关路由器到虚拟机的网络延迟时间与请求处理完成后返回数据中心入口网关路由器的网络延迟时间是相同的,所以应用请求在接下来的路由事件计算过程介绍中,传入时间的二倍即为总时间。实际应用中,本发明仍然严格按照链路中实际参数计算回程事件。

应用f的请求从数据中心入口网关路由器到虚拟机的网络延迟时间是选定的网络路由路径pf上该请求通过所有网络设备所需要的时间。所以本发明在根据第二步确定最优路径后,要获得该路径上每一台网络设备的具体状况,首先获得路径pf上网络设备数目其次确定每一台设备i为当前应用f分配的带宽最后结合应用请求的请求到达率和请求大小计算路由时间。最终得到如下计算模型:

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