一种基于路径拆分和能耗感知的虚拟网络映射方法与流程

文档序号:17984888发布日期:2019-06-22 00:20阅读:166来源:国知局
一种基于路径拆分和能耗感知的虚拟网络映射方法与流程

本发明涉及虚拟网络映射技术领域,具体涉及一种基于路径拆分和能耗感知的虚拟网络映射方法。



背景技术:

网络功能虚拟化近来已经被提出用来实现从特定硬件到通用软件中间件的转变,它使得虚拟网络功能可以不用部署在昂贵的物理硬件上而是部署在灵活的软件中间件上,大大提高了虚拟网络的可用性。虚拟网络服务链是指一组虚拟节点和虚拟链路连接形成的虚拟拓扑。服务链映射通常不仅包括了对节点和链路的约束,而且它需要部署到一条按序流经运行有特定网络功能的物理节点的路径。在映射实现中,物理网络需要分配资源给相应的服务链。这样,在部分的请求提供了服务后,物理网络总会留下一些量小甚至于无法再被其他服务链利用的碎片化资源。长期如此,网络存在大量的碎片资源因无法使用而被浪费。其次,由于服务链的映射过程中往往需要用到多个物理节点来运行服务链要求的网络功能,为了满足要求,很多处于关闭状态的节点可能需要启动来完成服务。但实际上,在满足cpu能力的情况下,不同服务链甚至同一服务链可能存在一些网络功能它们是可以共同运行在同一个物理节点上的。如果我们在部署虚拟网络的时候,尽可能地重复使用那些处于开启状态的节点,这样既能减少节点的使用还能减少节点在状态切换过程消耗的能量。由于网络中资源利用率低下,同时节点上的能源消耗大,这样资源消耗速度很快,大部分的物理网络的请求接收率不尽如人意。因此,合理利用物理网络上的资源,提高资源的使用率,减少能源消耗,增加请求的接受率是在网络功能映射问题中亟待解决的问题。



技术实现要素:

针对现有技术的不足,本发明提供了一种基于路径拆分和能耗感知的虚拟网络映射方法,合理利用物理网络上的资源,提高资源的使用率,减少能源消耗,增加请求的接受率。

本发明提供的技术方案为:一种基于路径拆分和能耗感知的虚拟网络映射方法,包括以下步骤:

s1.根据物理网络的节点和链路情况,将一个物理网络表示成一个无向图g=(ns,es);其中,ns和es分别表示物理节点和物理链路的集合;根据虚拟网络请求的节点和链路情况,将虚拟网络表示成多个虚拟服务链的集合s={s1,s2…sx…sz|z=|s|,x∈(1,z)},其中z表示服务链集合中服务链的个数,sx表示服务链集合中的第x条服务链;对于任一条服务链sx,它由多个虚拟节点组成表示第x条服务链中的第y个虚拟节点;y=1,2,……,w;w表示sx中的虚拟节点个数;

s2.将每一个到来的服务链sx拆分成多条服务链分块其中(y+1)=|sx|,每个服务链分块是一条由两个虚拟节点和一条虚拟边组成的虚拟链路;对于每一个服务链分块,根据其对节点网络功能的类型、cpu容量与链路带宽的要求和物理网络中各节点具有的网络功能、cpu能力与链路具有的带宽能力,建立得到无向无权值的增广网络图;

s3.将无向无权值的增广网络图转换为有向有代价权值的网络流图,所述代价权值根据节点的开启状态来设置;

s4.在网络流图中上依次为每一个服务链分块寻找从起点到终点的满足带宽要求的流路径,同时根据路径的代价选择一条代价最小的路径作为映射方案;若不存在满足条件的路径,不分配任何资源,整个请求映射失败,退出映射过程;若存在满足条件的路径,则分配相应的资源给该服务链分块,继续选择下一条服务链分块,重复执行步骤s4,直至所有分块都完成映射;此时连接所有分块各自的映射路径,则得到整个虚拟服务请求的映射路径。

步骤s2实现过程包括:对于每一个服务链分块的每一个虚拟节点将所有满足其要求的物理节点放在一个集合中,称这个集合为虚拟节点的候选节点集合建立所有虚拟节点的候选节点集合后,把所有虚拟节点添加到物理网络中形成增广节点同时把增广节点和其候选节点集合中的所有物理节点连接,形成增广边最后增广节点、增广边和物理网络共同构成了增广网络gs′=(ns′,es′),

步骤s3实现过程包括:首先根据节点的状态为无向无权值的增广网络图上所有节点确定一个代价值,若节点状态为开启,则设定其代价为一个较小常数值l;若节点状态为关闭,则设定其代价为一个较大的常数值h;将无向无权值的增广网络图中除增广边之外的所有无向边用两条方向相反的有向边表示,同时为其设定代价值为常数b,容量则是其具有的带宽;将所有增广边用一条单向的有向边表示,其方向只能从起点指向候选节点或者从候选节点指向终点,其代价值设定为b,容量设定为无穷大;最后,把每一个节点用两个节点和一条连接这两点的单向有向边的结构表示,这两个点一个表示入点,一个表示出点,连接边从入点指向出点;两点之间的连接边的代价值设定为原节点的代价值,容量设定为无穷大,完成网络流图的构造。

步骤s4中,在网络流图上依次为每一个服务链分块寻找从起点到终点的满足带宽要求的流路径,同时根据路径的代价选择一条代价最小的路径作为映射方案的具体实现过程为:依次处理服务链分块,对于每一条服务链分块,在网络流图上找出所有从起点到终点的满足带宽要求的流路径,对于每一条符合要求的路径计算其代价值,将具有最小代价值的路径赋为最佳路径

本发明通过把服务链映射到可分离的路径来提高资源使用率,同时通过最小化网络中已开启物理节点的数目来减少能源消耗。在映射过程中,为了能同时考虑节点映射和链路映射并进一步地重用已开启节点,我们先将服务链拆分成服务链分块,再根据物理网络和服务链请求情况建立增广图。其次,要使网络中链路碎片资源尽可能被利用从而也提高节点利用率,考虑到网络流最大割的概念符合路径拆分的操作,而最大割这一概念是通常建立于网络流模型中的,于是我们通过将节点的状态作为设定网络流图中代价值的根据在增广网络图的基础上建立了网络流图。最后,在网络流图中寻找符合要求的路径,直至找到代价最小的路径,即为最佳映射路径。下面详细介绍拆分服务链、建立网络流模型和服务链约束的最小网络流算法这三部分的设计。

(1)拆分服务链为服务链分块,建立增广图

为了能够协同考虑虚拟节点和虚拟链路的映射,更进一步地通过重用已开启节点来减少能量消耗,于是我们将一条虚拟服务链拆分成多个服务链分块,每个服务链分块可能是由两个虚拟节点和它们连接的一条虚拟边组成。根据服务链上的所有虚拟节点对网络功能类型与cpu容量的要求和物理网络中各节点的网络功能集合与cpu容量相比,对于每一个虚拟节点,在物理网络上寻找满足其要求的物理节点,再将所有满足其要求的物理节点放在一个集合中,称这个集合为该虚拟节点的候选节点集合。建立所有虚拟节点的候选节点集合后,把所有虚拟节点添加到物理网络中形成增广节点,同时把虚拟节点与在其候选节点集合中的所有物理节点连接,形成增广边,最后增广节点、增广边和物理网络共同构成了增广网络图。

(2)建立网络流模型

根据上一步骤建立的增广网络图来建立网络流图,因为在网络流图中,最小费用最大流的概念正好与方法中寻找可分离又满足流量的想法一致。我们要利用的最小费用最大流有三个特征:1.最大流路径是起始于单个节点,终止于单个节点;2.网络流图中所有的边有方向、容量和代价的属性;3.最小费用最大流路径指的是网络流图中从起点出发到终点结束,容量满足要求,同时代价最小的路径。为了建立网络流图,首先根据节点的状态(开启或关闭)为增广图上所有节点确定一个代价值,若节点状态为开启,则设定其代价为一个较小常数值l;若节点状态为关闭,则设定其代价为一个较大的常数值h,要注意的是增广节点永远处于开启状态;接下来,将增广图中除增广边之外的所有无向边用两条方向相反的有向边表示,同时为其设定代价值为常数b,容量则是其具有的带宽;对于所有增广边用一条单向的有向边表示,该边只能从服务链分块起点流出流向候选节点或者从候选节点流出流向分块终点,其代价值设定为b,容量设定为无穷大;最后,把每一个节点用两个节点in与out和一条连接这两点的方向有向边(in,out)表示,这两个点一个表示入点in,一个表示出点out,这条边只能从入点in进入,从出点out流出。两点之间的连接边的代价值设定为原节点的代价值,容量设定为无穷大;这样,就完成了网络流图的构造。

(3)服务链约束的最小费用流算法

a1:依次处理服务链分块,对于每一条服务链分块,确定其起点和终点,以及要满足的带宽大小。

a2:从该服务链分块起点的候选节点开始,到服务链分块终点的候选节点结束,两两配对,分别设定为目标流的起点和终点。对于每一对起点和终点,运用最小费用流算法找到满足要求的流路径,同时记录下其最小代价值。

a3:比较该服务链分块求得的所有最小费用流可行路径的代价值,选取代价最小的路径作为该服务链分块的目标路径,该路径对应的起点和终点也就是服务链分块中虚拟节点所要放置的位置。

若不存在满足要求的路径,则该服务链分块映射失败,那么整个服务链也映射失败;若存在这样的最佳路径,则分配相应的资源给该分块,物理网络的剩余资源作相应的减少,之后继续处理下一条分块,为每一条服务链分块寻找最佳路径。直至所有服务链分块处理完毕,连接所有映射路径,则得到整个服务链请求的最佳映射路径。

本发明的有益效果为:

1.本发明在保证满足虚拟服务链要求的同时,通过最小物理网络中的已开启节点数目来节省能源,减少能源消耗;同时通过映射服务链到可分离的路径,最大程度地利用了链路上的带宽资源,保证了只要当网络的总剩余资源大于服务链要求的资源时,总能提供一条可分离的路径,分配相应的链路资源和节点资源给服务链,这样使得物理网络的资源利用率得到提升,更提高了物理网络的服务请求接收率。另一方面,本发明提出将虚拟服务链分段处理,考虑已开启节点的重用率,进一步减少了网络中的已开启节点,而且发明将无向无权图转换为已节点开启状态为导向的有向有权图,使得寻找可分离同时能耗最小的路径的问题转化为在网络流图中寻找最小费用流的问题,减小了目标路径查找的难度。

2.通过在两个真实的网络拓扑easynet和grnet上进行仿真模拟实验,比较本发明提出的方法和其他三个映射方法在开启节点数目和请求接受率两个方面的效果,我们发现本发明的算法大大优于现有技术其他三个方法。

附图说明

图1为无向无权网络拓扑图示意图;

图2为将到来的虚拟服务链请求抽象为无向无权的网络拓扑示意图;

其中(a)为服务链1;(b)为服务链2;

图3为服务链1到达后增广节点和候选节点用虚线连接形成的增广图;

图4为服务链2到达后增广节点和候选节点用虚线连接形成的增广图;

图5为增广图转变为网络流图所需进行的操作,(a)为对边的操作,(b)为对节点的操作;

图6为网络流图;

图7为费用流路径图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员能更好地理解发明。

s1:对底层物理网络按照图论的知识抽象为无向无权网络拓扑图,如图1所示,并且根据网络上各节点和链路的情况,注明节点的cpu容量与网络功能容量和链路的可用带宽容量,以及对开启节点使用灰色圆点表示,对关闭节点使用白色节点表示;如图1所示的物理网络图有7个节点ns={a,b,c,d,e,f,g},其中开启的节点有{b,e,f,g},未开启节点有{a,c,d}。每个节点有个标签表示了其可用的cpu容量和网络功能集合,比如a节点的可用容量为32个单位值,可以运行的网络功能有(f2,f7)。(我们假设整个网络中的网络功能集合用k表示,在这个模型中,我们涉及10种网络功能,那么有k={f1,f2,……f9,f10}。)每条边有个数字表示其可用的带宽容量,如边(a,b)的可用带宽容量为89个单位值。

s2:将到来的虚拟服务链请求抽象为无向无权的网络拓扑,如图2中(a)的服务链1所示,并且根据虚拟服务链的请求条件,服务链上各节点上的标签注明该节点对cpu容量与网络功能类型的要求,各链路边上的数字注明了对映射路径带宽的要求;在图2中(a)的服务链1我们可以看到该请求包括了4个虚拟节点{a,b,c,d}和3条虚拟边{(a,b),(b,c),(c,d)}。比如节点a它需要24个单位的cpu容量和网络功能f2,虚拟链路边(a,b)需要31个单位的带宽容量。

s3:将虚拟服务链分成多个服务链分块,按照图2中(b)把服务链1拆分成3个服务链分块,分别有服务链分块1(a,b),服务链分块2(b,c),服务链分块3(c,d)。其中每个分块上也有各自对节点和链路的要求。拆分完服务链后,需要建立增广网络图。首先,为服务链分块中节点在物理网络上找到对应的候选节点。比如说服务链分块1,它有两个节点a和b以及链路(a,b),节点a要求运行f2功能,我们在物理网络图1发现,能够运行f2功能的物理节点包括(a,b),同时节点a还要求需要24个单位的cpu容量,a,b两节点均有大于24的cpu容量,那么这时可以确定a的候选节点集合是{a,b}。对于节点b我们也使用同样的方法确定其候选节点集合是{e}。按照同样的方法,则可以确定整个服务链上所有虚拟节点对应的候选节点集合。下一步则是要添加增广节点和增广链路。我们把所有的虚拟节点用虚线图形添加到原本的物理网络图中表示增广节点,再根据上一步匹配的候选节点集合,对应地用虚线把增广节点和候选节点连接起来形成增广边,这样就建立了增广图,如图3所示。对于图4,目前有一条服务链分块{e,f},其节点e要求27单位的cpu容量和f5功能,节点f要求33单位的cpu容量和f7功能,边上带宽的要求为23。根据上述步骤我们可以知道,e的候选节点集合为{e},f的候选节点为{g}。

s4:将增广图转换为网络流图。首先第一步我们考虑的是给增广图上的所有的节点设定一个代价值。由于使用网络流图的目的是为了寻找一条最小费用流来使得目标路径中开启节点数目最少。因此,在网络流中设置代价值时,我们把增广图上节点的状态作为设定代价值的依据。由于该实例中的数值尺度在100以内,因此对于转换过程中的代价值,我们将l设置为0.1,h设置为100,b设置为1。那么,若节点处于开启状态,则给该节点,设置一个较低的代价值0.1;若节点处于关闭状态,则给该节点设置一个较高的代价值100。在图4中,根据增广图中各节点的状态,给所有开启节点{b,c,e,f,g}设定代价值均为1,给所有关闭节点{a,d}设定代价值均为100。

当代价值设定完毕,接下来要做的是把增广图中的无向边转换为有向边。根据图5中(a)所示,把增广图中属于原物理网络的每一条无向边转换为两条有向的边,边上的容量即原边的带宽容量,边上的代价值设为常数b。比如在图4中的(a,b)和(e,g)等均属于原物理网络中的无向边,都可以转换成两条方向相反的有向边。另一方面把增广图上的每一条无向的增广边转换为一条有向边,具体方向是,所有增广边都从服务链分块的起点指向候选节点,从候选节点指向服务链分块的终点。

最后把所有增广图上的节点转换为由两个节点和一条边表示的结构。每个节点用一个入节点和一个出节点表示,同时有且仅有一条从该入节点指向该出节点的边,如图5中(b)所示。比如图4中的a节点可以表示成图6中的ai和ao以及一条从ai指向ao的边(ai,ao)。最后根据以上的方法描述,把增广图图4转换图6所示的网络流图。s5:根据服务链分块的要求,我们要找到一条从服务链分块起点的候选节点到服务链分块的终点的候选节点的流路径,同时保证该路径的节点开启数目最少。根据起点e的候选节点集合,任选一候选节点ei,再根据终点f的候选节点结合,任选一候选节点go,此时则变成需要找到一条从ei到go带宽要求为23的最小费用流。通过最小费用流的寻找,我们能够找到一条如图7加粗黑色实线实现所示的路径,路径中黑色节点即为该服务链映射路径流经的节点。由于起点和终点的候选节点集合均只有一个节点,因此该最小费用流路径,即为该服务链的最优路径。

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