本发明属于资源优化分配技术领域,尤其涉及一种基于虚拟交换机的虚拟数据中心资源分配系统及方法。
背景技术:
目前,最接近的现有技术:vdc技术能将虚拟资源与物理资源分离,因此允许多个vdc在同一物理数据中心(pdc)上运行。但是,由于pdc中物理资源总量的限制,pdc提供商(称为基础设施提供商,inps)必须谨慎处理租户的请求。为了降低运营成本并获得更多利润,inps必须决定接受哪些vdc请求(vdcrs)被接受,并为这些请求分配相应的资源。该资源分配问题通常被称为嵌入问题。vdc嵌入被认为是为未云计算的成功提供性能保证的关键技术。vdc嵌入问题对于inps说非常重要,因为它决定了inps的收入。vdc嵌入问题源于虚拟网络嵌入(vne)问题。然而,与isp网络中传统的vne问题不同,vdc嵌入问题具有以下特点:(1)pdc和vdc由更多不同类型的网络元素、实体组成。(2)pdc和vdc有特殊的拓扑结构,例如fat-tree,bcube。(3)pdc和vdc具有良好的可扩展性。(4)pdc通常拥有冗余链路,可实现负载均衡。(5)因为pdc中的物理实体设备分布集中,所以vdc嵌入问题对位置和延迟不敏感。基于以上观察,传统的vne解决方案不适用于vdc嵌入问题。因此有必要深入研究vdc嵌入问题。
目前,一些相关工作研究了vdc嵌入问题。但是,这些现有的工作并未充分考虑上述特征以及各种类型的资源。特别是在物理交换机(pss)和物理机(pms)上嵌入vss。因为vss具有灵活控制网络流的功能,所以在软件定义网络(sdn)领域被广泛地研究。sdn支持的交换机在工业领域被划分为两类:一种是基于软件实现,并集成到负责计算虚拟化的管理程序中;另一种是基于支持openflow协议的硬件交换机(如pica8,bigswitch)。因此,在映射vss时应同时考虑pms和pss。vss嵌入问题及其可能的嵌入位置,提高了vdc嵌入问题的灵活性和可扩展性,以及pdc的利用率和vdcrs的接受率,并进一步提高了inp的利润。与此同时,它带了vdc嵌入问题建模的差异性,及不同的解决方案。
当前,许多租户并不满足单个的虚拟机的租用,许多大客户希望从数据中心租用多个虚拟机、虚拟交换机、带宽及其他虚拟网络功能(virtualnetworkfuntions,vnf),这形成了所谓的虚拟数据中心(virtualdatacenter,vdc)。vdc嵌入被认为是为未云计算的成功提供性能保证的关键技术。但是,vdc嵌入问题是np难的,其计算时间与vdc的数量和规模呈指数级增长。虽然近年,一些相关工作被提出以提高嵌入问题的效率,但是现有绝大多数工作忽略了虚拟交换机,尤其是将其嵌入在物理交换机上,从而导致物理资源的利用率降低。此外,大多数已有的相关工作,假设多个虚拟节点不能被嵌入到同一个物理节点上。这种假设进一步降低了数据中心的资源的利用率。
综上所述,现有技术存在的问题是:现有虚拟数据中心的嵌入方案未充分考虑多类资源的分配,尤其是虚拟交换机的嵌入问题。其它技术方案并未考虑到虚拟交换机的多种嵌入位置(物理机和物理交换机),也未对虚拟交换机独立进行讨论,导致物理资源的利用率降低。
解决上述技术问题的难度:虚拟数据中心的资源分配问题是np难的,其计算时间复杂度和空间复杂度与多个因素相关:物理数据中心的资源规模,虚拟数据中心的数量和需求规模。该资源分配问题(嵌入问题)的计算复杂度随这些因素的规模增长呈指数级增长。从数据角度看,这类资源分配问题属于线性或非线性整数规划问题,在计算机复杂理论中,整数规划问题属于np难问题,无法在多项式时间内求得最优解。尤其是在本发明中考虑了虚拟交换机的嵌入及其多个嵌入位置,更是为整数规划问题增加了求解变量的个数和计算复杂度。根据实验,以一小规模数据中心为例,描述其计算复杂度。例如,一小型物理数据中心包含50台物理服务器和10台物理交换机,每台服务器包含4核处理器,32g内存,每台交换机包含1核处理器和2g内存,物理节点之间带宽为1000m。一批小规模的虚拟数据中心请求包含15个虚拟数据中心,平均每个请求包含6个虚拟服务器和2个虚拟交换机。其中每个虚拟服务器提出2核处理器需求,8g内存需求;每交换机提出1核需求和1g内存需求,虚拟节点之间链路带宽需求为100m。在上述这种小规模数据中心里求解一批小规模的虚拟数据中心请求,按照常规计算求解资源最优分配,需要花费6个多小时甚至更长时间。这对数据中心服务提供者和租户说是无法接受的。因此设计合理的解决方案,使得vdc资源分配问题能在合理时间内解决是虚拟数据中心嵌入问题的关键。
解决上述技术问题的意义:虚拟数据中心的资源分配问题不同于虚拟网络嵌入问题,需要考虑的网络元素更多。其中,虚拟交换机作为虚拟数据中心的重要设备,影响着数据中心网络流的的分布。有别于其它虚拟网络嵌入的相关工作,本发明将虚拟交换机作为独立元素,纳入虚拟数据中心资源分配问题的建模中。并且考虑了虚拟交换机的多个可能放置位置(物理交换机、物理服务器)。这一设计使得资源分配问题建模有别于其它类似工作。
本虚拟数据中心的资源分配问题就是np难的,其计算复杂度与资源请求规模和数量呈指数增长关系。在考虑虚拟交换机的前提下,进一步增大了这类问题的难度,尤其是本发明提出的批处理模型下,多个虚拟请求的同时处理更是非线性整数规划问题。在考虑当前服务器计算能力情况下,处理小规模资源分配问题耗时长达数小时;更大规模情况下,计算时间长达几天或者无法计算出结果。本发明提出的5个算法,其中2个主算法,3个辅助算法。5个算法共同协作,使得在多项式时间内找到虚拟数据中心嵌入问题的次优解。通过大量的仿真评估了算法的性能,结果表明,本发明提出的模型在请求接受率,提供商利润和资源利用率方面优于现有方案。
技术实现要素:
针对现有技术存在的问题,本发明提供了一种基于虚拟交换机的虚拟数据中心资源分配系统及方法。
本发明是这样实现的,一种基于虚拟交换机的虚拟数据中心资源分配方法,所述基于虚拟交换机的虚拟数据中心资源分配方法包括以下步骤:
步骤一,创建批处理模型,利用快速转换算法tafb将批处理模型转化为实时处理模型;
步骤二,创建实时处理模型,利用快速启发式取整嵌入算法fhre进行资源分配;使vdc嵌入问题可在多项式时间内找到次优解。
进一吧,所述批处理模型使用集合
capacity约束:
mfcl约束:
domain约束:
在优化目标中,πi=0表示inps拒绝请求gi,那么所有属于该gi的虚拟请求vms、vss和vls都不会消耗任何物理资源;从约束1.25到约束1.30中,πi都乘以了它所对应的gi的请求;在域约束中,πi用于限制
进一步,所述步骤一创建批处理模型:利用快速转换算法tafb将批处理模型转化为实时处理模型具体包括:
(1)在转化过程中,计算不同vdcrs的加权分数,优先嵌入高分数的组合,即多个资源需求和延迟分数更高的vdcrs组合;
(2)多次调用frva算法对vdcrs组合所请求的资源与可用资源进行对比预验证;初始化各种变量和数组;排除两种明显不合需求的情况;
(3)对于验证失败组合,再选取其它组合进行验证,对于验证成功的组合就按照实时模型处理;
(4)frva调用递归函数resverf判断是否所有虚拟节点嵌入到当前的pdc中;
(5)判断虚拟节点的类型并设置它们的嵌入范围;如果vreq(vidx)>pres(pidx),当前虚拟节点无法被嵌入到当前物理节点中;将跳到下一个物理节点,否则,被嵌入到物理节点pres(pidx)上,并且函数resverf进入递归并检查下一个虚拟节点。
进一步,所述快速转换算法tafb具体包括:使用规则验证和筛选符合当前可用物理资源的vdcrs组合,并从中选出最大化inps利润的组合,调用rvem模型解出该组合;使用算法frva过滤掉不可行的vdcrs,更新完它们的延迟权重因子后,将不可行的vdcrs放入等待队列中;从剩余的
公式是每个vdcrs的加权系数,是各种所需资源和延迟因子的加权求和表达式,其中
进一步,所述实时处理模型为
容量约束:
mfcl约束:
域约束:
约束(1.13)、(1.14)和(1.15)是确保每个pm的资源足够分配给该请求,其中ac(mp),am(mp)和ad(mp)分别表示当前可用的cpu、内存和存储资源;约束(1.13)和(1.14)包含有变量
约束(1.21)确保
进一步,所述步骤二创建实时处理模型,利用快速启发式取整嵌入算法fhre进行资源分配;使vdc嵌入问题可在多项式时间内找到次优解具体包括:
(1)在fhre算法中,将模型中的所有0-1变量进行松弛得到rvem-lp模型;解松弛后的线性问题,得到对应的小数变量;
(2)将rvem中的所有0-1变量进行松弛;接着调用rrvc算法嵌入最佳候选虚拟节点;
(3)从rvem-lp中移除已被嵌入的虚拟节点vns及对应的变量,更新该rvem-lp,并重新求解,直到所有变量都被嵌入,就完成虚拟数据中心申请的资源分配。
进一步,所述快速启发式取整嵌入算法fhre包括:
(1)将rvem中的所有0-1变量进行松弛,称为rvem-lp问题;解这个松弛后的线性问题,得到对应的小数变量
(2)将rvem中的所有0-1变量进行松弛,称为rvem-lp利用
(3)调用rrvc算法嵌入最佳候选虚拟节点,在rrvc算法中,对ev的所有pip和ptp对进行构造和排序,并将对应的嵌入变量
(4)从rvem-lp中移除已被嵌入的vns及其对应的变量,更新该rvem-lp,并重新求解;同样,解出的结果用于更新ω,f;(1)-(4)重复执行,直到所有的虚拟节点vns都被嵌入;无法求解rvem-lp时,inps拒绝该gv。
所述启发式取整嵌入算法进一步还包括:
对于虚拟链路ev的
如果所有约束被满足,则意味着向上取整成功;然后正式地将变量设置为1,与
本发明的另一目的在于提供一种实施所述基于虚拟交换机的虚拟数据中心资源分配方法的基于虚拟交换机的虚拟数据中心资源分配系统,所述基于虚拟交换机的虚拟数据中心资源分配系统包括:
高分数组合嵌入模块,用于优先嵌入高分数的组合,资源需求和延迟分数更高的vdcrs;
变量和数组初始化模块,用于多次调用算法对某个vdcr请求的资源与可用资源进行对比预验证;初始化各种变量和数组;排除两种明显不合需求的情况;
虚拟节点嵌入判断模块,用于调用递归函数resverf判断是否所有虚拟节点嵌入到当前的pdc中;
嵌入范围判断模块,用于判断虚拟节点的类型并设置它们的嵌入范围;
模型求解模块,用于将rvem中的所有0-1变量进行松弛,解松弛后的线性问题,得到对应的小数变量;将rvem中的所有0-1变量进行松弛;调用rrvc算法嵌入最佳候选虚拟节点;从rvem-lp中移除已被嵌入的vns及其对应的变量,更新该rvem-lp,并重新求解。
本发明的另一目的在于提供一种实现所述基于虚拟交换机的虚拟数据中心资源分配方法的信息数据处理终端。
综上所述,本发明的优点及积极效果为:针对现有的虚拟交换机的资源分配方式忽略虚拟交换机,导致物理资源的利用率降低的问题,本发明提出了在线模型和批量模型有效地描述vdc嵌入问题。在在线模型和批量模型两类模型中,考虑了多种类型的资源分配和虚拟交换机的两种可能的嵌入位置。为了允许多个虚拟节点在同一物理节点上共存,改进了传统的流守恒定律。本发明的在线模型和批量模型的目标是在确保嵌入解决方案在多项式时间内可行的同时,最大化云提供商的收入。
本发明使用了有效的嵌入算法解决这两个np-hard问题。与现有方法相比,本发明提出的启发式算法利用了原模型松弛后的信息,使vdc嵌入问题可在多项式时间内找到次优解。通过大量的仿真评估了算法的性能,结果表明,本发明提出的模型在请求接受率,提供商利润和资源利用率方面优于现有方案。
本发明首先,在vdc嵌入问题中,本发明考虑了多种类型的资源和虚拟交换机的嵌入,并提出了精确的数学模型。据本发明所知,这是首次在pms和pss上考虑vss的嵌入,将导致vdc嵌入问题建模时引入新的约束。为了允许同一vdc请求内的多个虚拟节点(vns)嵌入在同一物理节点(pns)上,本发明修改了传统的流守恒定律,以确保建立正确的虚拟路径。本发明提出了多个启发式算法有效地解决原始np难问题。与其他方法相比,本发明的算法提高了vdc请求的接受率和降低了虚拟链路的嵌入成本,inps的利润被大幅提高。4)本发明的启发式算法充分利用了松弛解的信息,因此计算时间大幅降低。仿真结果表明本发明提出的模型在vdc请求接受率、inps收益和资源利用率方面优于现有方法。
附图说明
图1是本发明实施例提供的基于虚拟交换机的虚拟数据中心资源分配系统的结构示意图;
图中:1、高分数组合嵌入模块;2、变量和数组初始化模块;3、虚拟节点嵌入判断模块;4、嵌入范围判断模块;5、模型求解模块。
图2是本发明实施例提供的基于虚拟交换机的虚拟数据中心资源分配方法流程图。
图3是本发明实施例提供的创建批处理模型的方法流程图。
图4是本发明实施例提供的创建实时处理模型的方法流程图。
图5是本发明实施例提供的在考虑虚拟交换机的情况下vdc嵌入问题。虚拟交换机vs可以映射在pm或ps上,虚拟机vm只能嵌入在pm上示意图。
图6是本发明实施例提供左图两个pms的可用资源数为28,两个vdcrs总请求资源为30;如果不使用ps资源,则其中一个请求将被拒绝;右图所示,在使用ps资源的情况下,两个vdcrs都能被成功嵌入。
图7是本发明实施例提供的两个vdcrs被嵌入的例子示意图;(a)、(b)和(c)分别显示了在不考虑ps的情况下,两个请求被嵌入的可能情况。可以观察到,这三种情况都会产生较高带宽消耗;(d)显示了在利用ps的情况下,带宽占用大大降低。
图8是本发明实施例提供的vl的vip和vtp嵌入实例示意图;圆圈表示vm或pms,矩形表示vss或pss,箭头表示流动方向;vsn表示虚拟节点,psn表示物理节点;虚线箭头表示可能的嵌入。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于虚拟交换机的虚拟数据中心资源分配系统及方法,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的基于虚拟交换机的虚拟数据中心资源分配系统包括:
高分数组合嵌入模块1,用于优先嵌入高分数的组合,资源需求和延迟分数更高的vdcrs。
变量和数组初始化模块2,用于多次调用算法对某个vdcr请求的资源与可用资源进行对比预验证;初始化各种变量和数组;排除两种明显不合需求的情况。
虚拟节点嵌入判断模块3,用于调用递归函数resverf判断是否所有虚拟节点嵌入到当前的pdc中。
嵌入范围判断模块4,用于判断虚拟节点的类型并设置它们的嵌入范围。
模型求解模块5,用于将rvem中的所有0-1变量进行松弛,解松弛后的线性问题,得到对应的小数变量;将rvem中的所有0-1变量进行松弛;调用rrvc算法嵌入最佳候选虚拟节点;从rvem-lp中移除已被嵌入的vns及其对应的变量,更新该rvem-lp,并重新求解。
如图2-图4所示,本发明实施例提供的基于虚拟交换机的虚拟数据中心资源分配方法包括以下步骤:
s101:创建批处理模型,利用快速转换算法(tafb)将批处理模型转化为实时处理模型;
s1011:在转化过程中,计算不同vdcrs的加权分数,优先嵌入高分数的组合,即多个资源需求和延迟分数更高的vdcrs组合。
s1012:多次调用frva算法对vdcrs组合所请求的资源与可用资源进行对比预验证;初始化各种变量和数组;排除两种明显不合需求的情况。
s1013:对于验证失败组合,再选取其它组合进行验证,对于验证成功的组合就按照实时模型处理。
s1014:frva调用递归函数resverf判断是否所有虚拟节点嵌入到当前的pdc中。
s1015:判断虚拟节点的类型并设置它们的嵌入范围;如果vreq(vidx)>pres(pidx),当前虚拟节点无法被嵌入到当前物理节点中;将跳到下一个物理节点,否则,被嵌入到物理节点pres(pidx)上,并且函数resverf进入递归并检查下一个虚拟节点。
s102:创建实时处理模型,利用快速启发式取整嵌入算法(fhre)进行资源分配;使vdc嵌入问题可在多项式时间内找到次优解。
s1021:在fhre算法中,将模型中的所有0-1变量进行松弛得到rvem-lp模型;解松弛后的线性问题,得到对应的小数变量。
s1022:将rvem中的所有0-1变量进行松弛;接着调用rrvc算法嵌入最佳候选虚拟节点。
s1023:从rvem-lp中移除已被嵌入的虚拟节点(vns)及对应的变量,更新该rvem-lp,并重新求解,直到所有变量都被嵌入,就完成虚拟数据中心申请的资源分配。
下面结合附图对本发明的技术方案作进一步的描述。
1.本发明研究vdc嵌入问题时考虑了虚拟交换机的嵌入。为了最大化inps的利润,提出了两种专用模型:在线模型和批量模型。两种模型都考虑了多种类型的资源和改进的流量守恒定律。然而这两种vdc嵌入问题被证明是np难的。为了在多项式时间内解决这两个问题,本发明采用了一个转换算法用于将批量模型转化为在线模型,然后根据松弛解的启发信息设计了一种快速嵌入算法。本发明分别分析两种算法的时间复杂度。最后,评估了两种嵌入算法的性能。图5显示了本发明考虑虚拟交换机嵌入的整体框架,它表明vss可以嵌入在pms或pss上。pss的资源被充分利用,并且单个vdc的所有元素可被嵌入到同一个pms中,例如图3中的vdc3请求。
1.1相关工作
虚拟化技术使pdc能够在隔离环境中操作多个vdc,并提高硬件的利用率。然而,如何有效地分配多个物理资源(即cpu、存储、带宽等)仍然是一个关键的挑战。目前,租户倾向于租用多个vm、带宽保证的虚拟链路、虚拟交换机和其他虚拟网络功能(vnf),用于构建企业内部网络并部署相关服务。虽然过去十多年学术界对vm放置问题进行了深入的研究,但vdc嵌入问题包含了更多的因素,因此vm放置问题的研究需要被更新和拓展。
2.vdc嵌入问题的描述及建模
本发明提出了改进的流守恒定律描述虚拟路径。最后,给出了vdc嵌入问题的两种数学模型,即在线模型和批量模型。本发明常用的变量和符号如表1所示。
表1符号列表
2.1vss嵌入到pss所带的优势
如前所述,vss可以被嵌入到两个位置:其一是与虚拟机管理程序绑定,共同运行在pms上,其二是运行在pss的操作系统上,即嵌入到pss中。与以往假定vms只嵌入在pms的情况相比,vss的两种可能嵌入的位置大大提高了嵌入方案的灵活性和成功率,其原因有两个:(1)物理硬件的利用率被提高,特别是pss的资源利用;(2)嵌入成本可被降低。例如,vls的嵌入成本。为了详细说明,本发明以下面两个简单的例子进行说明。
图6给出了两个vdc请求(vdcrs)的示例,并支持了上述第一条原因。在图中,矩形和圆形分别代表交换机和服务器。vdcrs中的数字表示某种类型的资源的需求(为了简单起见,本发明只列举一种类型的资源,即cpu核数)。物理网络中的数字代表了目前可用的资源数。显然,仅考虑两个pms的资源时,不能满足所有vdcrs请求的资源数,则两个请求中的其一将被拒绝。该图右侧显示了在考虑pss资源的情况下,两个vdcrs都被成功地嵌入。
图7展示了vls嵌入成本被降低的情况。该示例演示了两个vdcrs的不同嵌入解决方案。图7(a)、图7(b)和图(c)都没有使用ps的资源嵌入vs。本发明注意到,为了满足vdcrs的带宽请求,这三种情况都需要在两条物理链路上预留非常高的带宽。尤其是在图图7(c)中,两个物理链路上所需的带宽都达到280,超出了实际可用带宽。相比之下,图7(d)中解决方案嵌入成本低很多。由于其中一个vs被嵌入到了ps中,不仅节省了pms的资源,而且大大减少了物理链路上的带宽分配。一般情况下,两个虚拟节点之间的vl可能跨越多段pls,为了降低vls的嵌入成本,vls的两端应尽量靠近。而pss作为数据中心多个pms的中间节点,是vss的最佳嵌入位置,能够极大地降低vls的嵌入成本。从这两个简单的例子中本发明可以看出,在pss和pms中嵌入vss为vdc嵌入带诸多好处。这些优点将提高vdc嵌入请求的接受率,并进一步增加inps的收入。
2.2网络模型和资源表示
本发明将pdc网络建模成一个无向图,表示为gp=(mp;sp;ep),其中符号mp表示pdc网络中所有pms的集合,sp表示包括核心交换机、聚合交换机和tor交换机的集合。ep表示所有物理链路的集合。每一个物理机mp∈mp提供多种类型资源,如cpu、内存和磁盘等。在本发明中,主要考虑三种类型的资源,并使用ac(mp),am(mp)和ad(mp)表示当前可用的cpu、内存和磁盘资源。同样,每个物理交换机sp∈sp提供由ac(sp)和am(sp)表示的cpu和内存资源。本发明忽略交换机上的存储资源是因为交换机上的闪存是有限的。只用于存储交换机的操作系统。
本发明将vdc嵌入问题考虑为离散时间模型,其中inps的服务时间被划分为多个时间槽。在每个时间槽中,inps收集所有vdcrs并提交给一个调度器。该调度器(例如sdn控制器)拥有所有pms、pss和pls的全局信息。它决定接受或拒绝这些请求,并尽可能地将这些请求映射到pdc中,以最大化inps的利润。一个vdcr记为
inps总收入与嵌入的vdcrs的个数成比例。本发明首先定义单个vdcr被成功嵌入后带的毛利润。
其中αt和βt分别是对应vms和vss的不同资源的单价。实际上,这5个参数(αc,αm,αd,βc,βm)应该根据pdc的特性设置。例如,如果pdc的硬件配置中,pms的内存资源充足,inps可以设置较低的αm以鼓励那些高内存需求的vdcrs被嵌入。每个vdcrs具有自身的特点:有些请求是计算密集型,有些请求是内存消耗型,还有一些请求是存储导向型或高带宽需求的。总之,inps应根据其物理硬件特点和vdcrs特点制定价格策略,即通过设置参数t∈{c;m;d}和γ。
2.3决策变量和流变量
本发明考虑了vss的嵌入,vdc嵌入问题应该包含三个子问题:vms的嵌入、vss的嵌入和vls的嵌入。相对于vne嵌入问题,vss的嵌入为vdc的嵌入带了更多的麻烦:是应该先嵌入vms还是vss,还是应该首先考虑三个子问题的协调,以及如何协调它们在vne嵌入问题分类时,可分为单阶段模型和双阶段模型。其中,在双阶段模型中,由于相邻的vms在物理拓扑中可能被放置得相距较远,所以无论是基于协调的双阶段策略还是没有协调的双阶段策略,最终的vne嵌入性能都会降低。为了获得更好的性能,在本发明中,本发明拟打算建立单阶段模型,同时解决三个子问题。首先,本发明引入了相关的决策变量。
同样,设
正如本发明在引言部分指出的,vss也可以嵌入到任意的sp∈sp中,因此本发明设置了另一个决策变量
对于每一个虚拟交换机
对于任意的虚拟链路
2.4改进的流守恒定律和虚拟路径
由于单条虚拟链路vl可以跨越多个pls,因此必须将“虚拟路径”表示出,以确保vl被正确嵌入。有两种方法可以寻找“虚拟路径”:一种是传统的最优(最短)路径搜索,即bfs、dfs、bellman-ford、dijkstra、a*等路径搜索算法;另一种是采用流守恒定律和优化方法计算最优路径。事实上,当虚拟链路的起始点和终点的位置未知时,第一种方法并不适用。如果本发明考虑在同一个阶段内同时解决vms和vls的嵌入问题,那么本发明就不能预先知道vls的起始点和终点的实际物理位置,因此本发明采用了流守恒定律(flowconservationlaw,fcl)刻画虚拟路径。
在流守恒定律(fcl)中,源节点“产生”流,而汇聚节点“消耗”流。中间节点的输入和输出是相等的。本发明将虚拟链路的起点和终点分别定义为“虚拟起点”(virtualinitialpoint,vip)和“虚拟终点”(virtualterminalpoint,vtp)。本发明将虚拟起点(vip)和虚拟终点(vtp)所在的两个物理节点称为“物理起始点”(pip)和“物理终点”(ptp)。pip和ptp之间的多段相互连接的物理链路称为“虚拟路径”。对于任意虚拟路径
根据传统流守恒定律,本发明得到以下公式:
上述公式表达了从pip所在物理节点的所有链路上输出的关于ev的总流量,即等于该ev的带宽需求。lo(·)表示物理节点的输出链接集。同理,关于ptp的流守恒公式表达为:
li(·)是物理节点的输入链接集合。除pip和ptp外,其他中间物理节点
通常情况下,公式(1.6)-(1.8)能确保单条虚拟链路vl被成功嵌入到多条pls并形成“虚拟路径”。
但是,在本发明的vdc嵌入场景中,这三个方程并不能表示同一个vdcr中的相邻虚拟节点被嵌入到同一物理节点的情况。因为在这种情况下,相邻虚拟节点所对应的该物理节点的所对应的输出链路pip和输入链路ptp上应当不存在关于虚拟链路ev的流量,这违反了公式(1.6)和(1.7)。与传统vne嵌入问题不同,如果物理节点具有足够的资源,则vdc嵌入问题允许上述情况。这种情况的允许使得vdc嵌入问题具有节省链路成本和降低传输时延的优点。
所以本发明需要改进传统的流守恒定律。本发明分析了一条虚拟链路vl的vip和vtp可能的嵌入情况,如图8所示。定向虚拟链路有四种情况:从vm指向vs,从vs指向vm,从vs指向vs,从vm指向vm。vm只能嵌入pms中,而vss可以嵌入pss或pms。可能的嵌入组合达到9种,本发明以情况(b)为例,定向虚拟链路ev从vs指向vm。如果该链路的vip,即vs嵌入在一个pm中,链路的vtp,即vm嵌入在另一个pm中。则本发明采用以下公式(1.9)代替传统流守恒公式(1.6),(1.7)以及(1.8)。
本发明分别解释公式(1.9)如何包含了(1.6),(1.7)以及(1.8)。对于任意的物理机
当vls被嵌入到pls上时,mfcl确保了正确的“虚拟路径”和预留带宽,不管该vls穿过多少个pls或物理节点。
2.5在线处理模型
在本发明中,本发明考虑了两种处理vdcrs的方法:一种是实时(在线)模式,另一种是批处理(离线)模式。两种模式各有其特点。接下,本发明分别讨论了两种模式,并给出了两种模式的数学模型。在实时模式下,inps会立即处理vdcr,并且一个接一个地处理,也就是说,inps只在特定的时间点处理单个vdcr。首先,本发明给出了inps嵌入一个vdcr请求
在公式(1.11)中变量
本发明的目标是使inps的利润最大化。下面,本发明提供了一个名为rvem的在线模型(实时vdc嵌入模型):
容量约束:
mfcl约束:
域约束:
约束(1.13)、(1.14)和(1.15)是确保每个pm的资源足够分配给该请求,其中ac(mp),am(mp)和ad(mp)分别表示当前可用的cpu、内存和存储资源。因为vss可以嵌入到pms中,并且只考虑cpu、内存资源,所以约束(1.13)和(1.14)包含有变量
同样,约束(1.21)确保
在rvem模型中,只有当该vdcr的所有元素都可被嵌入时,vdcr才被接受。否则,将被拒绝或推迟。尽管rvem模型的目标是嵌入单个的vdcr,但是本发明可以根据策略构建一个等待队列存储所有的vdcr,还可以依据vdcr规模的大小、vdcr提供的额外费用、公平性、优先级等。被拒绝的vdcr可以插入该队列以等待重新被调度。在该rvem模型中,解出上述模型就是同时求解了vms、vss和vls的嵌入问题,这种单阶段嵌入策略避免了多阶段嵌入问题需要协调所带的麻烦。
2.6批处理模型
rvem模型能够实时处理提交的请求,但是rve模型缺乏前瞻性,从长远看,它可能不是最佳的嵌入策略。例如,reve模型在第一个vdcr到达时立即执行嵌入。为了使嵌入成本最小化或利润最大化,该vdcr将会整体地被嵌入到左边的pm中或右边的pm中。无论第一个vdcr被嵌入到哪个pm中,当第二个vdcr到达时,由于剩余pm资源不足,inps将会拒绝第二个vdcr。但是,当这两个vdcr请求被同时处理时,它们可以被成功地嵌入。总之,将第一个vdcr的所有元素嵌入到同一个物理节点对当前情况说可能是最佳选择,但是从长远看,这种策略并不是最佳的方案。
为了解决这种“近视”问题,本发明提出了一种批量的vdc嵌入模型(bvem)。在该模型中,几个vdcrs请求被组合在一起被同时处理,而不是像rvem模型一个接一个地被处理。该策略避免了资源利用的不平衡,并进一步提高了inps的利润。在一段时间内,inps收集到达的vdcrs请求,这些请求被发送到一个中心节点(如sdn控制器)处理。本发明使用用集合
capacity约束:
mfcl约束:
domain约束:
在优化目标中,πi=0表示inps拒绝请求gi,那么所有属于该gi的虚拟请求(包括vms、vss和vls)都不会消耗任何物理资源。所以从约束1.25到约束1.30中,πi都乘以了它所对应的gi的请求。在域约束中,πi用于限制
3两类模型的快速求解方案
本发明首先证明了上述两个优化问题的难度为np-hard。为了降低bvem的复杂度,本发明提出了一个算法用于将bvem转换为rvem。最后,提出了一个快速启发式算法用于在多项式时间内求解rvem。
3.1np-hard证明
从数学角度看,rvem是混合整数线性规划(milp),bvem是混合整数非线性规划(minlp)。rvem是bvem的一个特例,如果能证明rvem是nphard,则bvem也是np-hard。在给出关于rvem问题的np-hard证明之前,本发明首先给出了通用分配问题(gap)的定义。
定义3.1(gap).给定m种类型的箱子b1至bm,n种商品a1至an。每个箱子有一定容量ti。gap问题的目标是找到一个最大利润的分配,使得商品放置不超过每个箱子容量ti。
定理3.1.rvem和bvem是np-hard问题。
3.2bvem问题的松弛与近似
本发明已经证明了bvem和rvem都是np-hard。此外,在bvem问题中,二元变量πi与其他变量在多个约束中相互耦合,使得求解更为困难。虽然目前一些商业求解器可以求解minlp问题(如cplex、gurobi等),但这些求解器只适用于小规模问题。当前商用数据中心已经发展到了较大的规模:几千台服务器(pms)通过规模庞大的链路相互连接,vdcrs的数量和规模也迅速增加。bvem和rvem问题的求解时间与物理资源的规模和vdcrs请求数量、规模呈指数级增长,因此传统求解器的计算时间超出了客户和服务供应商(inps)的容忍度。本发明必须提供多项式时间方法快速求解bvem。通过观察bvem,本发明发现:如果物理资源足够丰富,能够批量容纳所有vdcrs,那么每个πi=1。这意味着变量πi不起作用。基于以上事实,本发明有以下定理和算法。
定理3.2.假设当前的物理资源足够容纳该批次中所有的vdcrs请求,那么在该批次中嵌入多个vdcrs就相当于嵌入一个更大的vdcr,且该vdcr请求的资源等于所有请求的总和。
在定理3.2的保证下,本发明可以通过算法1.1(tafb)将bvem问题简化为rvem问题。该算法的核心思想是使用一些规则验证和筛选符合当前可用物理资源的vdcrs组合,并从中选出最大化inps利润的组合,然后调用rvem模型解出该组合。在tafb算法第1行中,本发明首先使用算法1.2(frva)过滤掉一些不可行的vdcrs,更新完它们的延迟权重因子后,将这些不可行的vdcrs放入等待队列中。算法1.2是一种验证资源的快速算法,本发明将在后面分析。经过上述过滤操作后,在第4行中,本发明从剩余的
公式(1.36)是每个vdcrs的加权系数。它是各种所需资源和延迟因子的加权求和表达式,其中
在算法第6行中,本发明将此选择中的vdcrs合并为单个
算法1.1多次调用算法1.2对某个vdcr请求的资源与可用资源进行对比预验证,这有助于inps快速剔除无法被满足的vdcrs。在算法1.2中,从第1行到第5行,本发明初始化各种变量和数组。从第6行到第11行,本发明首先排除了两种明显不合需求的情况:在该vdcrgv中,所有vms的t类总资源的需求超过了所有pms中该类型的资源;所有vss的t类总资源的需求超过了该类资源在所有物理节点的可用量减去vms的需求。接下,本发明调用递归函数resverf判断是否所有虚拟节点都可以嵌入到当前的pdc中。如果递归调用结果返回1,表示当前pdc的资源足以嵌入此vdcr请求,否则,pdc不能嵌入此vdcr。因为vreq()是按降序排序的,所以函数resverf会从资源需求最高的虚拟节点开始检查。递归函数resverf的代码列举在算法1.3中。从第3行到第7行,本发明判断虚拟节点的类型并设置它们的嵌入范围。如果vreq(vidx)>pres(pidx),即当前虚拟节点无法被嵌入到当前物理节点中,本发明将跳到下一个物理节点,否则,本发明就假设它被嵌入到物理节点pres(pidx)上,并且函数resverf进入递归并检查下一个虚拟节点,如第18行所示。递归函数resverf简洁高效。与真正的嵌入不同的是resverf只做快速检查。一旦递归函数resverf找到嵌入所有虚拟节点的可行解决方案,它就会立即返回。
4rvem的快速解决方案
算法1.1表明,bvem的求解过程依赖于rvem的求解。然而,正如本发明之前分析的,rvem仍然是np-hard的。现有的求解器在搜索全局优化解时会带巨大的计算开销和延迟。因此,在本发明采用启发式算法在多项式时间内求解rvem。
4.1变量松弛和启发式凑整法
传统的求解器通常使用分支定界法、割平面法、回溯等方法处理milp问题,这些方法在状态空间树中寻找可行的解。然而,在vdc嵌入问题中,由于物理节点(pns)和物理链路pls,以及vdc中的虚拟节点(vns)、虚拟链路vls的大量存在,使得状态空间树非常庞大。当问题规模增大时,状态空间树会呈指数倍增长。显然,在这种庞大的状态空间中进行最优结果搜索的方法是不可取的,其计算延迟对inps和租户都无法接受。以往的一些相关工作试图松弛整数约束,并使用随机取整。然而随机取整法容易导致资源冲突,进而使本轮取整失败。因此在本发明中,本发明采用基于线性规划模型松弛的启发式算法求解rvem。通过对inps的收益分析,本发明基于事实得出了以下结论。
定理4.1.inps的利润与嵌入的vdc数量成正比,与vls嵌入成本成反比。
这两个提示促使本发明设计了快速启发式嵌入算法1.4。
4.2启发式凑整算法
与随机凑整法相比,算法1.4从松弛的rvem-lp结果和vdcr的拓扑结构中获取启发式信息。为了降低vls的嵌入成本,vl所对应的虚拟路径应尽可能短。
因此,本发明首先考虑具有高带宽需求的vls,尽可能以最短路径尽早嵌入这些vls的vip和vtp。在算法1.4中,第3行到第18行表达了这个观点。相对于嵌入过程的后期,在嵌入过程的初始阶段,可用的物理资源相对充足。此时,嵌入那些高需求的虚拟节点vns和虚拟链路vls更容易成功。
在算法1.4中,本发明的启发式嵌入算法可以分为四个步骤。在第一步中,本发明首先将rvem中的所有0-1变量进行松弛,称为rvem-lp问题。解这个松弛后的线性问题,得到对应的小数变量
本发明并不是直接选择带宽最高的ev,而是将松弛模型rvemlp中的
4.3复杂度分析
算法1.4(fhre)的时间复杂度和空间复杂度均为多项式的。算法fhre的总时间复杂度是:
o(fhre)=o(|nv|·|ev|0.5·(|ep||np|+|np|log|np|))
≈o|nv||np||ev|0.5(|ep|+log|np|))
解决bvem的算法1.1(tafb)时间复杂度是
算法bvem的时间复杂度是:
为了简单地表达,本发明省略了log(*)项。
虽然o(bvem)包含一个指数项
本发明提出了一个描述vdc嵌入问题的实用框架,提出了两种解决在线嵌入和批嵌入的新粒度模型,并考虑了内存和存储器等多种类型的资源。此外,为了使虚拟交换机能够嵌入到以前工作中很少考虑的物理交换机上,本发明引入了更多的嵌入变量,并使的模型区别于现有技术。此外,为了克服同一请求中的多个虚拟节点不能嵌入同一物理节点的缺点,改进了传统的fl低守恒律。这个改进给本发明的模型带了弹性和敏捷性。
针对这两个问题,提出了几种启发式算法。在一定的条件下,本发明设计了一个将一个批次中的多个vdcrs合并为单个vdcr的变换算法。预先验证的阳离子算法排除了大部分未鉴定的vdrs及其结合。接下,本发明从放宽的lp问题和vdcr的拓扑中使用启发式信息设计确定的舍入算法。与随机取整相比,本发明的决定是圆的,提高了验收率,提高了inps的性能。同时,可以在多项式时间求解,使本发明的框架在实际部署中更加实用。
本发明的实施方式可以通过硬件、软件或者软件和硬件的结合实现。硬件部分可以利用专用逻辑实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。