一种基于遗传算法的虚拟网络功能放置方法及电子装置与流程

文档序号:23550778发布日期:2021-01-05 21:08阅读:140来源:国知局
一种基于遗传算法的虚拟网络功能放置方法及电子装置与流程

本发明涉及计算机网络领域,尤其涉及一种基于遗传算法的虚拟网络功能放置方法及电子装置。



背景技术:

为满足用户日益增长的基础设施需求,传统网络通常需要采用一系列专用设备提供所需服务,如防火墙、深度包检测、加密等。使用服务商特定硬件平台提供的网络服务灵活程度较低,无法满足用户较高的可扩展性要求,而且运营成本及高耦合度都变得难以接受。为此,网络功能虚拟化技术得到空前发展。网络功能虚拟化通过采用通用性硬件设备承载不同软件的方式为用户提供各种服务,能够更加灵活地进行资源配置管理,实现软硬件解耦。

通常,用户的请求需要经过多个服务功能节点,流量按照一定顺序被服务功能节点处理。在网络功能虚拟化技术中,各种服务功能节点被称为虚拟网络功能(virtualnetworkfunction,vnf)。vnf是特定网络功能在虚拟资源上的软件实现。一个节点向另一个节点通信,之间需要经过若干个vnf处理,我们把若干个vnf有序组合形成的虚拟链路称为服务功能链(servicefunctionchain,sfc)。

服务功能链是虚拟链路,最终需要部署在底层物理网络中。所以,服务功能链上各个vnf如何放置到具体的物理网络是一个重要问题。需要结合底层物理网络的具体情况和用户对服务功能链的资源需求,在保证网络开销尽可能优化的情况下,对vnf进行有效放置。vnf放置需要考虑众多关键因素:物理节点资源提供情况,如虚拟cpu、虚拟内存、虚拟硬盘提供量;物理节点资源使用情况,如虚拟cpu使用量;物理链路资源情况,如带宽、时延;虚拟节点资源请求情况,如虚拟cpu请求量;服务功能链上各vnf特性、先后顺序、依赖关系等。除此之外,还应考虑重要的约束条件,如节点资源约束、链路带宽约束、物理拓扑的连通性约束。总之,将服务功能链上各vnf放置到物理网络是一个np-hard问题,难以在多项式时间内获取最优解。

已有研究中,通常服务功能链的两端仅仅是单节点,vnf放置问题只需考虑链两端的单一节点对服务功能链的影响。目前各类vnf放置方法以减少节点资源与链路资源开销、保证负载均衡、提高服务质量等为优化目标,对虚拟网络拓扑或服务功能链进行映射,但对于服务功能链两端是多个节点集合的场景缺乏考虑,仍有进一步优化的空间。

随着用户需求的增多以及复杂应用的推广,越来越多的服务功能链两端是多个节点组成的集合,又称之为多节点域。如图1所示,图中服务功能链的起始端为四个节点的集合,目的端为三个节点的集合,而非传统的单一节点。用户的多样性需求、分布式应用的复杂性使得同时选择多个物理节点作为服务功能链的起始端与目的端成为了普遍现象。服务功能链两端多节点域中的各节点位置及相关请求量影响链上vnf的放置,已有的研究无法更加有效地进行服务功能链映射。

综上所述,如何在服务功能链两端是节点集合域而非传统单一节点情况下,对vnf进行有效合理放置是云上复杂服务功能链应用面临的核心问题。



技术实现要素:

针对现有技术中存在的技术问题,本发明的目的是提供一种基于遗传算法的虚拟网络功能放置方法及电子装置,针对服务功能链两端是多个节点集合域的场景,对服务功能链两端是节点集合的场景进行适配。

本发明的技术方案为:

一种基于遗传算法的虚拟网络功能放置方法,其步骤包括:

1)采集服务功能链的系统信息,获取若干种虚拟网络功能放置方案,并将虚拟网络功能放置方案集合作为初种群,每一虚拟网络功能放置方案作为初代种群的一个体,通过每一个体所包含的虚拟网络功能及各虚拟网络功能所在的物理节点,获取各个体的基因组成;

2)根据各物理节点的最小化总带宽消耗,构造适应度函数;

3)根据适应度函数对每一代中各个体的基因组成进行变异,获取种群的进化方向,得到该服务功能链的最优虚拟网络功能放置方案。

进一步地,所述系统信息包括物理拓扑信息、各请求内容、请求数量以及各资源使用状况。

进一步地,通过以下步骤获取若干种虚拟网络功能放置方案:

1)根据服务功能链两端集合中虚拟节点所在的位置,对物理拓扑信息中的物理节点进行打分;

2)根据各物理节点的分数对物理节点进行排序,并将各物理节点划分为不同分数层次;

3)种群中个体初始化时,有较大概率去分数层次高的集合中随机挑选初始值,有较小概率去分数层次低的集合中随机挑选初始值,从而对不同分数层次中物理节点进行选择,获取若干种功能放置方案。

进一步地,通过以下策略对不同分数层次中物理节点进行选择:

1)服务功能链节点上各虚拟网络功能的资源请求量之和不大于相应物理节点的资源提供量;

2)服务功能链每段虚拟链路上的带宽资源请求量不大于映射的相应物理链路的带宽提供量;

3)一种虚拟网络功能只能放置在一个物理节点上;

4)每一物理节点可放置一或多个虚拟网络功能。

进一步地,适应度函数其中,x是种群中某个个体,t(x)是该个体所对应的功能放置方案的总带宽消耗量,tmax是总带宽消耗量的上限。

进一步地,通过以下步骤对每一代中各个体的基因组成进行变异:

1)采用轮盘赌选择算法为当代种群中所有个体选择配对的对象;

2)使用均匀交叉算法对每对配对结果进行交叉,产生后代个体;

3)通过适应变异算法动态调整各后代个体的变异概率。

进一步地,通过以下步骤产生后代个体:

1)通过适应度函数,分别计算配对结果中第一个体与第二个体的适应度,并获取适应度之和;

2)计算配对结果中第一个体的适应度与适应度之和的比值;

3)对于任一基因位,若生成的数值大于该比值,则选择第二个体相应基因位作为后代个体的基因位;若生成的数值不大于该比值,则选择第一个体相应基因位作为后代个体的基因位。

进一步地,当最年轻的若干代数种群中没有产生适应度更高的个体时,将现有的最佳虚拟网络功能放置方案设置为该服务功能链的最优虚拟网络功能放置方案。

一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述所述的方法。

一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机以执行上述所述的方法。与现有技术相比,本发明具有以下优点:

1)采取选举策略快速提高个体质量,优化初始化种群的产生,减少了系统的平均总带宽消耗,提高用户的请求成功率;

2)使用自适应变异算子,自适应地动态调整变异概率,加快收敛速度,防止收敛时间过长。

附图说明

图1为多节点域示意图。

图2为本发明一实施例的个体编码方案示意图。

图3为轮盘赌选择的示例图。

图4为本发明一实施例与随机算法、遗传算法的请求成功率变化示意图。

具体实施方式

为使本发明的目的、原理、技术方案和优点更加清晰明白,以下将结合具体实施例,并参照附图对本发明做详细的说明。

本方法进行vnf放置的具体步骤如下:

1)接收实时的物理拓扑信息、服务功能链请求以及各项资源使用状况与请求数量,这些信息一般由系统的其他组件提供。

2)根据选举策略产生初代种群,并通过适应度函数计算种群中所有个体的适应度,选出初代种群中适应度最大的个体作为当前最优个体。

3)使用轮盘赌选择算子为当代种群中所有个体选择配对的对象。

4)使用均匀交叉算子对每对配对结果进行交叉以产生后代个体,并加入下一代种群中。

5)使用自适应变异算子概率地对下一代种群中个体进行变异。

6)下一代种群替代父代种群作为当代种群,并进行适应度计算、选出当代最优个体。如果当代最优个体优于当前最优个体则替换。

7)判断是否到达结束条件,例如最年轻的80代种群中没有产生更高适应度的个体。如果未达到,则重复第3步;否则,继续进行。

8)当前最优个体所代表的vnf放置方案即为最佳vnf放置方案。

种群中的每个个体代表了一种vnf放置方案。每个个体由一条染色体上的全部基因组成,基因的个数取决于请求的服务功能链上vnf的总数,每个基因代表一个vnf。例如,一个服务功能链上一共有5个vnf,那么本方法中每个个体的基因个数就是5。同时为物理拓扑中所有物理节点编号,假设物理拓扑中共有n个物理节点,那么它们的编号依次为0到n-1之间的整数。个体中每个基因的取值范围就是物理节点的编号,代表该基因所表示的vnf放置的物理节点位置。图2为本发明一实施例的个体编码方案示意图。其中,物理节点node0上放置了三个vnf:vnf1、vnf4、vnf5;物理节点node1上放置了两个vnf:vnf2、vnf6;物理节点node2上放置了三个vnf:vnf3、vnf7、vnf8。所以,个体的基因为01200122,分别代表vnf1-8所放置的物理节点的编号。

在初始化种群时,采用选举策略进行优化。根据服务功能链两端集合中虚拟节点所在的位置,对物理网络拓扑中物理节点进行打分。距离集合中虚拟节点越近的物理节点可以获得越高的分数,离集合中虚拟节点较远的物理节点获得较低的分数或不得分。之后根据物理节点的分数对物理节点进行排序,并划分为不同分数层次的集合中供个体初始化时挑选。种群中个体初始化时,有较大概率去分数层次高的集合中随机挑选初始值,有较小概率去分数层次低的集合中随机挑选初始值。

适应度函数决定了种群中个体的适应度,同时也为之后选择算子、变异算子对个体的操作提供数据基础。本方法的目标是最小化总带宽消耗,所以适应度函数如下所示。

其中,x是种群中某个个体,t(x)是该个体所对应的vnf放置方案的总带宽消耗量,tmax是总带宽消耗量的上限。当x满足前面如下约束时,则被认为是可行解:

-节点约束:服务功能链上各vnf所需的cpu、内存、磁盘请求量必须小于等于其所放置物理节点的资源提供量;

-链路约束:服务功能链每段虚拟链路上的带宽资源请求量必须小于等于其映射的物理链路的带宽提供量;

-映射约束:一个vnf只能放置在一个物理节点上,而每个物理节点在资源足够的情况下可以放置多个vnf;每段虚拟链路只能映射到一段确定的物理路径。

否则,只要x不满足其中任一约束,则被视为不可行解。该适应度函数会对违反这些约束的不可行解进行惩罚,使这些个体的适应度小于可行解个体的适应度。而且当个体所表示的vnf放置方案的总带宽消耗量越小,个体的适应度越高。

在为种群中个体选择配对对象时,轮盘赌选择会根据个体适应度数值占整个种群中所有个体适应度总和的比例,决定个体被选中的机会。图3是一个轮盘赌选择的示例,示例中共有4个个体:个体1-4。个体1的适应度为4;个体2的适应度为5;个体3的适应度为7;个体4的适应度为9;四个个体总适应度为25。个体1的适应度占总适应度的比例为16%,所以个体1被选中的概率为16%;同理个体2-4被选中的概率依次为20%、28%、36%。可以看出,个体适应度越高,被选中的概率越大,从而保证了种群个体向适应度高的方向发展。

选定配对对象后,需要交配的两个个体采用均匀交叉产生后代个体,即两个配对的个体上每个相同位置的基因都要以某种概率交叉。首先通过适应度函数分别计算两个父代个体的适应度,将其中一个父代个体的适应度与两个父代个体的适应度和之比作为一个临界值。之后根据0-1间随机生成的数值与临界值比较,依照比较结果选择两个父代个体中的某个个体相应的基因位,从而产生子代个体的基因。假如,父代个体a的适应度为5,父代个体b的适应度为15,那么临界值为5/(5+15)=0.25。对于某个基因位,随机生成的数值为0.4(0.4>0.25),那么则选择父代个体b该基因位的值作为子代个体该基因位的值;对于另一个基因位,随机生成的数值为0.2(0.2<0.25),那么则选择父代个体a该基因位的值作为子代个体该基因位的值。

本方法采用的自适应变异算子可以自适应地动态调整变异概率。对于适应度高的个体将其变异概率降低,而适应度低的个体需要适当调大变异概率;同时,随着遗传代数的增多,需要适当降低变异的概率。首先设置较低变异概率mutprolower和较高变异概率mutprobigger;拿到个体的适应度f;计算该种群中所有个体的平均适应度,与适应度系数的乘积作为设置变异概率大小的临界值,记为mutcriticalvalue。该临界值确保对于适应度高的个体将降低其变异概率,而对适应度低的个体增大变异概率。之后为个体产生一个0-1间的随机数r,并将当前种群代数与增量系数乘积的倒数作为概率增量increment,令r=r+increment。r作为个体是否变异的决定数值,保证了随着遗传代数的增多适当降低变异概率的效果。如果f<mutcriticalvalue且r>mutprolower则随机选中个体某一基因位,将其设置为随机选取的物理节点的编号;如果f≥mutcriticalvalue且r>mutprobigger则随机选中个体某一基因位,将其设置为随机选取的物理节点的编号;其他情况个体不变异。

进一步地,根据上述本发明的实施例,本发明的技术特征还包括:

1.根据本发明实施例,本发明设置的vnf放置的方法必须满足下边的约束条件,vnf放置才是有效的。

本方法的目标是优化最小化总带宽消耗。公式1体现了最小化总带宽消耗的目标:

其中,l是物理链路集合,li是某段物理链路,u(li)是这段物理链路上的带宽消耗量。

在vnf放置过程中,需要考虑各类约束条件:服务功能链上各vnf所需的虚拟cpu、内存、磁盘请求量必须小于等于其所放置物理节点的资源提供量;服务功能链每段虚拟链路上的带宽资源请求量必须小于等于其映射的物理链路的带宽提供量;一个vnf只能放置在一个物理节点上,而每个物理节点在资源足够的情况下可以放置多个vnf;每段虚拟链路只能映射到一段确定的物理路径。只有符合所有约束条件的vnf放置方案才是有效的。下面将公式化表述vnf放置过程中的各类约束条件。

a.节点约束

节点约束是vnf放置过程中需要遵循的约束之一,它保证了服务功能链上各vnf所需的虚拟cpu、内存、磁盘请求量必须小于等于其所放置物理节点的资源提供量。与节点约束相关的表达式如2和3所示:

其中,n是底层网络拓扑中物理节点集合,ni是某一物理节点。是ni物理节点上已放置的所有虚拟机实例集合,由放置在该物理节点的服务功能链上各vnf集合与服务功能链两端所有业务虚拟机组成的集合构成。mj是ni物理节点上已放置的所有虚拟机实例集合中的一个单位元素。r是vnf请求的资源类型集合,r是某一资源类型。是mj对于r资源类型的请求量,而是ni对于r资源类型的提供量。

b.链路约束

vnf放置问题中,链路包含两类:一类是服务功能链上相邻vnf之间构成的虚拟链路,另一类是底层网络拓扑中的物理链路。链路约束是vnf放置过程中需要遵循的约束之一,它保证了服务功能链每段虚拟链路上的带宽资源请求量小于等于其映射的物理链路的带宽提供量。与链路约束相关的表达式如4和5所示:

其中,l是物理链路集合,li是某段物理链路。u(li)是这段物理链路上的带宽消耗量,sli是这段物理链路上的带宽提供总量。对于任意一段物理链路,u(li)必须小于等于sli才能满足链路约束。c是需要映射的服务功能链请求集合,p是该服务功能链请求集合中的某个服务功能链请求。pj是这个请求中服务功能链上一段虚拟链路。w(pj)是pj这段虚拟链路所映射的物理路径集合。x(w(pj),li)是一个布尔类型的值,如果li这段物理链路包含在w(pj)所代表的物理路径集合中,那么它的值为1;如果w(pj)物理路径集合中没有包含li,它的值取0。是pj虚拟链路的带宽资源请求量。

c.映射约束

在vnf放置过程中映射约束也是需要遵循的约束之一。一个vnf只能放置在一个物理节点上,而每个物理节点在资源足够的情况下可以放置多个vnf。与节点映射约束相关的表达式如6和7所示:

其中,n是物理节点集合,ni是某个物理节点。是ni物理节点上所放置的vnf集合。v是服务功能链请求中所有vnf的集合。全部物理节点上放置的vnf集合的并集需要等同于服务功能链请求中所有vnf的集合,才能保证请求中所有的vnf均进行了放置。是另一个物理节点nj上所放置的vnf集合,它与的交集需要是空集,保证每个vnf只能放置在一个物理节点上

2根据本发明实施例,本发明设置的vnf放置的步骤1的物理拓扑输入信息特征如下:

物理拓扑信息包括物理网络的整体拓扑(即物理网络中节点和链路的整体布局及互联情况)、物理节点资源(如cpu个数、内存容量和磁盘容量等)的最大值及被使用的情况、物理链路资源(如带宽等)的最大值及被使用的情况等。服务功能链请求包括服务功能链的整体拓扑(即链上各vnf互联情况、起始集合与目的集合各节点的位置信息)、各vnf资源请求量(如请求的cpu个数、内存容量和磁盘容量等)、虚拟链路资源请求量(如带宽等)。

3根据本发明实施例,本发明初始化种群时,采用选举策略进行优化。这样可以快速提高个体质量,很大程度上避免不可行解对结果的影响,有效减少遗传算法在取得最优解时种群的代数。

下述为本发明的一实施例与随机算法、遗传算法的实验对比:

选择随机算法(radom)、遗传算法(ga)和本发明(mvp)三种算法在openstack云平台上进行部署实验,随机生成较大规模的物理拓扑以及大量服务功能链请求。评估指标包括平均总带宽消耗、请求成功率及平均遗传代数等。

对于本实验物理拓扑,共设置了1个核心层交换机、5个聚合层交换机、40个边缘层交换机以及240个主机节点。核心层交换机与聚合层交换机间的带宽提供量在6000至12000mbps间随机产生。聚合层交换机与边缘层交换机间的带宽提供量在1200至4200mbps间随机产生。边缘层交换机与主机节点间的带宽提供量在300至3300mbps间随机产生。每个主机节点的各类虚拟资源提供量在40至440个单位中随机产生。

通过不断增加的请求次数,实验进行平均总带宽消耗、请求成功率、平均遗传代数三个实验。服务功能链请求总数为500次。服务功能链的vnf数量在1至13中随机产生。vnf对各类资源的请求量在1至10个单位中随机产生。服务功能链两端业务虚拟机集合的元素个数在1至5中随机产生,其带宽消耗量在1至50mbps间随机产生。在vnf数量与平均遗传代数实验中,共进行20次测试,服务功能链上vnf数量由1增至20,每次测试设置的服务功能链请求数为20。

mvp中每代种群的个体总数设置为80。初始化种群采取的选举策略中,baseratio1、baseratio2、baseratio3均设置为1。自适应变异算子中fitratio设置为2,increratio设置为4,mutprolower设置为0.35,mutprobigger设置为0.8。种群繁衍的终止条件设置为最年轻的80代种群中没有产生更高适应度的个体。作为对比实验,遗传算法相关参数与mvp设置相同。

1)平均总带宽消耗

在请求次数与平均总带宽消耗实验中,输入相同的物理拓扑与服务功能链请求,对比了随机算法、遗传算法和mvp的平均总带宽消耗。实验表明,虽然随机算法实现简单、计算效率很高,但它的平均总带宽消耗远远大于遗传算法和mvp。随着服务功能链请求数量增多,mvp对于遗传算法在平均总带宽消耗指标上的提升率稳定在13.1%左右。

2)请求成功率

在请求次数与请求成功率实验中,输入相同的物理拓扑与服务功能链请求,对比了随机算法、遗传算法和mvp的请求成功率。图4为请求成功率变化示意图。横坐标为用户发起的服务功能链请求数量,纵坐标为请求成功率。可以看出,随机算法的请求成功率远远低于遗传算法和mvp。对比遗传算法和mvp可以发现,随着服务功能链请求数量增多,在请求成功率指标上mvp要高于遗传算法约16.3%,这是由于总带宽消耗上的开销减少可以在一定程度上提高用户的请求成功率。

3)平均遗传代数

在请求次数与平均遗传代数实验中,输入相同的物理拓扑与服务功能链请求,对比了遗传算法和mvp的平均遗传代数。发现随着服务功能链请求数量增多,相对于遗传算法,mvp可以减少约27.2%的遗传代数。这是由于mvp在初始化种群时采用选举策略进行优化,快速提高个体质量,很大程度上避免不可行解对结果的影响;同时自适应地动态调整变异概率,随着遗传代数的增多逐步降低变异的概率,加快收敛速度。

以上所述实施例仅为更好的说明本发明的目的、原理、技术方案和有益效果。所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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