CN105072049A - 面向数据中心多层次弹性应用的资源分配方法及装置 - Google Patents
面向数据中心多层次弹性应用的资源分配方法及装置 Download PDFInfo
- Publication number
- CN105072049A CN105072049A CN201510546681.6A CN201510546681A CN105072049A CN 105072049 A CN105072049 A CN 105072049A CN 201510546681 A CN201510546681 A CN 201510546681A CN 105072049 A CN105072049 A CN 105072049A
- Authority
- CN
- China
- Prior art keywords
- request
- link
- user
- virtual machine
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种面向数据中心多层次弹性应用的资源分配方法及装置,属于多层次云应用技术领域。本发明方法首先获取用户提出的多层次应用请求;其次对各层的带宽需求进行降序排列;接下来按照各层的带宽需求从高到低的顺序为各层分配虚拟机资源,具体如下:首先对该层请求需要的虚拟机数量根据当前云平台下的树形拓扑结构计算所有分配方案的可行向量FVl,其次,通过递归方法获取每条链路对该层的最优分配方案;接下来计算“按需运行”虚拟资源的数量,并在数据中心中进行预留;最后输出该用户多层次应用请求的最优分配方案。对比现有技术,本发明的资源分配方案兼顾到资源利用率和弹性,在保证弹性的同时,提高了整个系统的效率。
Description
技术领域
本发明涉及一种资源分配方法,特别涉及一种面向数据中心多层次应用的弹性资源分配方法,属于数据中心领域,具体属于多层次应用中资源分配的效率与弹性请求这两个矛盾之间的平衡处理问题。
背景技术
近几年,越来越多的应用迁移到了形如亚马逊EC2、微软Azure和阿里云等的公共云平台之上。很多这些应用都是多个服务组件的复杂结合体,并能组成多层虚拟网络,而多层次程度因商业和应用需求而异。在多层次应用中,表示层用于管理用户交互,提供易于操作的前端;业务逻辑层管理业务规则,控制和操作整个应用框架;数据存储层用于存储和供应底层数据。每一层包含一个或多个运行在单个虚拟机上的虚拟实例。
在多层次应用的虚拟网络资源分配中,有两个需要面临的问题:(1)从用户角度来讲,其应用在面对可预见的负载变化或突发负载增加等的工作量变化时,能够避免其性能退化。因此,用户希望分配到的虚拟网络资源具有一定的弹性,能够自动应对工作量的变化,即用户应用能应对资源需求突然增加,且初始阶段无需花费较大成本申请较多资源。(2)从云运营商角度来讲,他们希望提高虚拟网络资源利用率和服务质量,尽可能地满足用户需求,例如提高需求接收率、最大化虚拟网络资源分配的利益,这对于运营商长远发展具有非常重要的意义。但是,实现这两个目标具有非常大的挑战性,一方面,作为虚拟网络资源分配的第一步,应该有合适的抽象模型用于描述用户对虚拟网络资源的需求,并促进云服务运营商资源的分配。该模型能够明确每一次虚拟网络资源请求的虚拟机和带宽请求,已有的方法要么从运营商角度出发,要么从应用角度出发,并没有关注到用户的弹性资源需求。因此,需要处理弹性应用需求和高效分配资源这两者之间的平衡关系。另一方面在于设计一个虚拟网络资源分配算法,现有的一些算法通过全局优化虚拟机放置和带宽分配策略来提高虚拟网络资源分配需求的效率,但是,当考虑针对弹性应用进行虚拟网络资源分配时,这些方法变得无效。
在本发明中,我们提出了一种面向数据中心多层次弹性应用的虚拟网络资源分配方法,该方法能够同时实现效率和弹性的需求,这是目前第一个解决虚拟网络资源分配的弹性问题的方法。
发明内容
本发明的目的是为解决现有技术无法实现兼顾效率和弹性的需求进行资源分配的问题,提出一种面向数据中心多层次弹性应用的资源分配方法,该方法具有灵活性高,适应性强,高效而具有弹性等的优点。
本发明的思想是根据用户提出的请求,系统对用户应用的每一层请求计算每条链路的可行向量,并根据该向量分配虚拟资源,最终达到资源分配效率和弹性的平衡,实现合理的资源分配。
本发明的目的是通过以下技术方案实现的:
在介绍本发明的技术方案之前,需要对本发明涉及到的一些术语进行简单说明,具体如下:
1.为了获取多层次应用中虚拟网络资源分配的弹性,本发明将每一层中的虚拟机划分为“始终运行”和“按需运行”两大类,“始终运行”虚拟机主要针对资源正常加载的情况,是保证最差性能的最小虚拟机资源需求,而“按需运行”虚拟机主要针对资源动态变化情况,是峰值或突发负载情况下的动态调整。
2.根据对多层次应用通信特征的观察,本发明中弹性的模型将每个虚拟机的带宽需求划分为层内和层间需求,这种解耦能够在源于供应商和源于应用之间建立平衡,保证了资源分配的简单性,避免了带宽资源的过度分配。
一种面向数据中心多层次弹性应用的资源分配方法,包括以下步骤:
1.用户提出虚拟网络资源需求T={Ti,i∈[1,k]},k为应用包含的层数,Ti表示用户对于应用第i层的需求,Ti是一个五元组变量,表示形式为其中,表示“始终运行”的虚拟机数量,表示“按需运行”的虚拟机数量,表示层内通信所需的带宽,表示层间通信所需的带宽,Si表示加载“按需运行”虚拟机的阈值;
例如,假设Si为“CPU利用率为80%”,则当CPU利用率超过80%时(即Si条件满足),数量的虚拟机会启动使用;
2.运营商对于用户应用请求T中的每一层请求Ti,分别计算其带宽需求并对各层的带宽需求进行降序排列,存储到集合T'中;
3.i=1;
4.对于集合T'中的元素Ti,运营商根据当前数据中心拓扑结构G=(V,L)(其中,V表示服务器集合,L表示链路集合,这里根链路为root)以及资源分配记录分别计算数据中心中每一条链路l相连子树分配虚拟机数量的可行向量FVl,其中,可行向量FVl的形式如表1所示:
表1链路l对应的可行向量FVl
在数据中心树形拓扑中,规定链路l直接相连的子树为lIn,除去lIn之后的拓扑结构为lOut;对于新应用T的每一层i,和分别表示lIn和lOut中分配到的虚拟机数量。可行向量FVl表示当lIn中分配x个虚拟机,即时,该层的分配方案是否可行(y=1表示可行,否则不可行);对于变量x,若满足x≤rv和bl≤rb,则对应的y值为1,其中,rv表示服务器v空槽的数量,bl表示分配方案所产生的链路l的带宽开销,rb表示链路剩余的带宽开销,即服务器v中分配的虚拟机资源数量不大于服务器v中剩余空槽数量,且由此产生的链路带宽开销不大于链路剩余带宽时,方案是可行的(y=1);rv,rb均能在数据中心中直接获得,带宽开销bl由通过该链路的层内通信和层间通信组成,具体可通过公式(1)计算:
所以,表示i层内通信链路带宽最小值之和,表示i层间通信链路带宽的最小值;
5.运营商根据可行向量FVl通过遍历方法获得第i层最优的虚拟资源分配方案;作为优选,所述的遍历方法为递归方法alloc(r,l,n),该方法获得给第i层应用分配的虚拟资源数量,并与用户请求进行对比,如果两者相等,则返回true,即存在第i层应用的分配方案;如果两者不相等,则返回false,说明不存在第i层应用的分配方案;其中,参数r表示用户请求,参数l表示链路,参数n表示用户请求分配的虚拟资源数量;并且,将跟链路root作为方法alloc的初始执行链路,即将Ti,root,Ni代入方法alloc(r,l,n)中;alloc(r,l,n)的工作流程如下:
(1)若level(l)=0(level表示链路l在数据中心所处的层次,level(l)=0时,链路l与服务器直接相连),在链路l相连的服务器中分配的虚拟资源数量为count=max{j|FVj=1&j≤n},count表示当FVj=1时,j取得的最大值,此时j≤n;判断count在可行向量FVj中是否合法(即当x=count时,y是否为1),如果不合法,则alloc方法返回-1;如果合法,则返回count值,即给第i层应用在链路e相连的服务器v内分配数量为count的虚拟机资源,数学表达为fiv=count;
(2)若level(l)≠0,设set(l)为链路l子树level(l)-1层的链路集合,链路l'∈set(l)。计算剩余虚拟资源可用数量base=n-∑l'∈set(l)Ql'。对于set(l)中的每条链路l',计算nl'=Ql'+base和tmp=alloc(r,l',nl'),tmp是递归执行方法alloc(步骤3)得到数值。如果tmp≠-1,则base和count进行如下赋值:base←base-(tmp-Ql')和count←count+tmp;如果tmp=-1,则alloc返回-1值,即没有分配方案。在执行完set(l)中的每条链路l'操作之后,判断count在可行向量FVj是否合法(即当x=count时,y是否为1),如果不合法,则返回-1,即没有分配方案;如果合法,则返回count值。
6.i=i+1;如果i≤k,转到步骤4;否则,转到步骤7;
7.根据每一次步骤5的执行结果,获得最终的虚拟资源分配方案F={fiv},1≤i≤k,v∈V,fiv表示给应用的第i层在服务器v中分配的虚拟资源的数量;
8.上述步骤3~7获得应用每一层的“始终运行”虚拟机需求分配方案,数据中心在获得该分配方案之后,为该应用的“按需运行”虚拟机数量在服务器中预留出相应空槽,并在资源分配记录中对“始终运行”虚拟机需求的分配方案和为该应用预留的“按需运行”虚拟机空槽的数量及对应的服务器中的位置进行记录,为以后新的用户请求的资源分配以及为原有已有应用调度“按需运行”的虚拟机做准备;具体分为以下两个方面:
(1)若原有已有应用资源需求突然增加,则数据中心调用之前为该应用预留的“按需运行”虚拟机来解决资源调度问题(即本发明中的针对弹性应用的资源分配方案);
(2)当新的用户请求到来时,数据中心将当前有效的虚拟资源(即去除已分配的资源和预留的资源)分配给新的请求,分配方法同步骤3~7。
一种面向数据中心多层次弹性应用的资源分配装置,包括依次连接的用户请求接收模块、请求计算模块、资源分配模块、可用资源计算模块和资源分配输出模块;
用户请求接收模块用于接收用户提出的请求T={Ti,i∈[1,k]},并向请求计算模块输出该用户请求;
请求计算模块用于根据用户请求T、当前数据中心拓扑结构G=(V,L)和资源分配记录分别计算每条链路的可行向量,并向资源分配模块输出用户请求和可行向量计算结果;
资源分配模块用于采用遍历方法根据用户请求、可行向量为应用的每一层计算最优的虚拟机资源分配方案,并将该分配方案以及用户请求输出到可用资源计算模块;
可用资源计算模块用于在资源分配记录中登记当前请求的虚拟机资源分配方案,以及计算当前请求中“按需运行”的虚拟机数量并在资源分配记录中进行登记,该模块将来自资源分配模块的分配方案输出给资源分配输出模块;
资源分配输出模块用于将用户请求的最优资源分配方案输出给运营商。
作为优选,所述遍历方法为递归方法。
有益效果
在现有技术下,很多研究都是针对提高数据中心的弹性或者资源利用率(即带宽开销),没有将两者结合在一起的研究,这就会导致数据中心要么弹性差,不能应对用户需求的突然增加,要么资源利用率低,两者很难同时达到最优平衡效果。而本发明提出的一种面向数据中心多层次应用的弹性资源分配方法,提高了数据中心的弹性和资源利用率。本发明能够解决数据中心所有树形拓扑结构的弹性资源分配问题,具有灵活性高的特点;本发明提出的方法能够立刻部署在数据中心之上,具有可用性强的特点;同时,本发明的资源分配方案兼顾到资源利用率和弹性,保证了弹性的同时,提高了整个系统的效率。
附图说明
图1是三层应用示意图;
图2是三层应用结构逻辑连接方式示意图;
图3是某数据中心树形网络拓扑结构示意图;
图4是资源分配后示意图;
图5是新请求到达后的弹性资源分配方法示意图;
图6是是本发明方法流程示意图;
图7是本发明方法装置结构示意图;
图8是本发明方法试验结果对比图。
具体实施方式
为使本发明的目标,技术方案及优点更加清楚明确,下面将结合附图对本发明的实施例进行详细的描述。本实施例以本发明的技术方案为指导进行实际的实践核验,同时给出了详细的实施方式和具体的操作流程,但本发明的保护范围并不只限于如下的实施例。
图1表示具有三层应用的结构,第一层为表示层(PR),用于管理用户交互,提供易于操作的前端;第二层为业务逻辑层(BL),用于管理业务规则,控制和操作整个应用框架;第三层为数据存储层(DB),用于存储和供应底层数据。每一层包含一个或多个运行在单个虚拟机上的虚拟实例。
图2表示三层应用的结构在逻辑上的一种连接方式,每一层通过虚拟交换机进行交互。
图3表示某数据中心树形网络拓扑结构示意图,在该拓扑结构中包含有A、B、C、D四个服务器,每个服务器能够支持四个虚拟机的运行,该结构中包含两种交换机,分别是ToR交换机和汇聚交换机,ToR交换机用于连接两个服务器,汇聚交换机用于连接两个ToR交换机。
实施例1
如图6所示为本发明的弹性资源分配方法流程图,根据本流程,以如图3所示的数据中心网络拓扑结构为例对本发明的实施过程进行说明。
在本实例中,假设每条物理链路的带宽容量为1Gbps。用户提出如表2所示的请求P,该请求包括三层,每一层的参数见表2。以请求P的第1层参数T1=<1,0,0,150,null>表示为用户请求“始终运行”的虚拟机数量、“按需运行”的虚拟机数量、层内通信所需的带宽、层间通信所需的带宽分别为1、0、0、150,没有加载“按需运行”虚拟机的阈值。另外,从表中可以看出,用户请求“始终运行”的虚拟机数量为6个,“按需运行”的虚拟机数量为2个(在第二层,即业务逻辑层BL)
表2用户请求参数表(单位:Mbps)
根据步骤2,分别计算请求P各层的带宽需求为150、600、700,降序排列存储到T’=<700,600,150>中。
根据降序,分别对第3层、第2层和第1层进行资源分配。
首先对第3层进行资源分配,用户请求的“始终运行”的虚拟机数量为2,此时,根据步骤3,对于数据中心的链路l1、l2、l3、l4、l5、l6的可行向量FV1、FV2、FV3、FV4、FV5、FV6分别为表3,表4,表5,表6,表7、表8。
表3链路l1的可行向量FV1
0 | 1 | 2 |
1 | 1 | 1 |
表4链路l2的可行向量FV2
0 | 1 | 2 |
1 | 1 | 1 |
表5链路l3的可行向量FV3
0 | 1 | 2 |
1 | 1 | 1 |
表6链路l4的可行向量FV4
0 | 1 | 2 |
1 | 1 | 1 |
表7链路l5的可行向量FV5
0 | 1 | 2 |
1 | 1 | 1 |
表8链路l6的可行向量FV6
0 | 1 | 2 |
1 | 1 | 1 |
在分配过程中,根据步骤4,将参数<T3,root,2>代入方法alloc(r,l,n)中,链路root是根链路,level(root)≠0,执行步骤4(2),设root'∈set(root),计算虚拟资源可用量base=2-(0+0)=2。
对于set(root)中的每一条链路l5和l6,首先计算有关l5的变量,并调用alloc方法tmp5=alloc(T3,l5,2),此时level(l5)≠0,执行步骤4(2),计算虚拟资源可用量base=2-(0+0)=2。
对于set(l5)中的每一条链路l1和l2,首先计算有关l1的变量:并调用alloc方法tmp1=alloc(T3,l1,2),此时level(l1)=0,执行步骤4(1),得到count=2,所以tmp1=2,即f31=2,服务器1中给应用第三层分配2个虚拟资源。此时,tmp1≠-1,base=2-(2-0)=0,count=0+2=2。然后计算有关l2的变量:并调用alloc方法tmp2=alloc(T3,l2,0),此时level(l2)=0,执行步骤4(1),得到count=0,所以tmp2=0,即f32=0,服务器2中给应用第三层分配0个虚拟资源。此时,tmp2≠-1,base=0-(0-0)=0,count=2+0=2。
此时,跳出set(l5)的递归,进入l5递归层面,根据set(l5)的递归情况,得到tmp5=2,此时,tmp5≠-1,base=2-(2-0)=0,count=0+2=2。然后用同样的方法计算set(root)中的另一条链路l6相关的变量,得到f33=0,f34=0,即服务器3中给应用第三层分配0个虚拟资源,服务器4中给应用第三层分配0个虚拟资源。
所以,针对应用第三层请求,数据中心的资源分配方式为f31=2,f32=0,f33=0,f34=0,即服务器1给应用第三层分配2个虚拟机资源,其它服务器不对应用第三层分配虚拟机资源。
然后,对第2层进行资源分配,用户请求的“始终运行”的虚拟机数量为3,此时,对于数据中心的链路l1、l2、l3、l4、l5、l6的可行向量FV1、FV2、FV3、FV4、FV5、FV6分别为表9,表10,表11,表12,表13、表14。
表9链路l1的可行向量FV1
0 | 1 | 2 | 3 |
1 | 1 | 1 | 0 |
表10链路l2的可行向量FV2
0 | 1 | 2 | 3 |
1 | 1 | 1 | 1 |
表11链路l3的可行向量FV3
0 | 1 | 2 | 3 |
1 | 1 | 1 | 1 |
表12链路l4的可行向量FV4
0 | 1 | 2 | 3 |
1 | 1 | 1 | 1 |
表13链路l5的可行向量FV5
0 | 1 | 2 | 3 |
1 | 1 | 1 | 1 |
表14链路l6的可行向量FV6
0 | 1 | 2 | 3 |
1 | 1 | 1 | 1 |
在分配过程中,根据步骤4,将参数<T2,root,3>代入方法alloc(r,l,n)中,链路root是根链路,level(root)≠0,执行步骤4(2),设root'∈set(root),计算虚拟资源可用量base=3-(0+0)=3。
对于set(root)中的每一条链路l5和l6,首先计算有关l5的变量,并调用alloc方法tmp5=alloc(T3,l5,3),此时level(l5)≠0,执行步骤4(2),计算虚拟资源可用量base=3-(0+0)=3。
对于set(l5)中的每一条链路l1和l2,首先计算有关l1的变量:并调用alloc方法tmp1=alloc(T2,l1,3),此时level(l1)=0,执行步骤4(1),得到count=2,所以tmp1=2,即f21=2,服务器1中给应用第二层分配2个虚拟资源。此时,tmp1≠-1,base=3-(2-0)=1,count=0+2=2。
计算有关l2的变量:并调用alloc方法tmp2=alloc(T2,l2,1),此时level(l2)=0,执行步骤4(1),得到count=1,所以tmp2=1,即f22=1,服务器2中给应用第二层分配1个虚拟资源。此时,tmp2≠-1,base=1-(1-0)=0,count=2+1=3。
此时,跳出set(l5)的递归,进入l5层面递归,根据set(l5)的递归情况,得到tmp5=3,此时,tmp5≠-1,base=3-(3-0)=0,count=0+3=3。然后用同样的方法计算set(root)中的另一条链路l6相关的变量,得到f23=0,f24=0,即服务器3中给应用第二层分配0个虚拟资源,服务器4中给应用第二层分配0个虚拟资源。
所以,针对应用第二层请求,数据中心的资源分配方式为f21=2,f22=1,f23=0,f24=0,即服务器1中为应用第二层分配2个虚拟机资源,服务器2为应用第二层分配1个虚拟机资源,其它服务器不对应用第二层分配虚拟机资源。
最后,对第1层进行资源分配,用户请求的“始终运行”的虚拟机数量为1,此时,对于数据中心的链路l1、l2、l3、l4、l5、l6的可行向量FV1、FV2、FV3、FV4、FV5、FV6分别为表15,表16,表17,表18,表19、表20。
表15链路l1的可行向量FV1
0 | 1 |
1 | 0 |
表16链路l2的可行向量FV2
0 | 1 |
1 | 1 |
表17链路l3的可行向量FV3
0 | 1 |
1 | 1 |
表18链路l4的可行向量FV4
0 | 1 |
1 | 1 |
表19链路l5的可行向量FV5
0 | 1 |
1 | 1 |
表20链路l6的可行向量FV6
0 | 1 |
1 | 1 |
在分配过程中,根据步骤4,将参数<T1,root,3>代入方法alloc(r,l,n)中,链路root是根链路,level(root)≠0,执行步骤4(2),设root'∈set(root),计算虚拟资源可用量base=1-(0+0)=1。
对于set(root)中的每一条链路l5和l6,首先计算有关l5的变量,并调用alloc方法tmp5=alloc(T1,l5,1),此时level(l5)≠0,执行步骤4(2),计算虚拟资源可用量base=1-(0+0)=1。
对于set(l5)中的每一条链路l1和l2,首先计算有关l1的变量:并调用alloc方法tmp1=alloc(T1,l1,1),此时level(l1)=0,执行步骤4(1),得到count=0,所以tmp1=0,即f11=0,服务器1中给应用第一层分配0个虚拟资源。此时,tmp1≠-1,base=1-(0-0)=1,count=0+0=0。
计算有关l2的变量:并调用alloc方法tmp2=alloc(T1,l2,1),此时level(l2)=0,执行步骤4(1),得到count=1,所以tmp2=1,即f12=1,服务器2中给应用第一层分配1个虚拟资源。此时,tmp2≠-1,base=1-(1-0)=0,count=0+1=1。
此时,跳出set(l5)的递归,进入l5层面递归,根据set(l5)的递归情况,得到tmp5=1,此时,tmp5≠-1,base=1-(1-0)=0,count=0+1=1。然后用同样的方法计算set(root)中的另一条链路l6相关的变量,得到f13=0,f14=0,即服务器3中给应用第一层分配0个虚拟资源,服务器4中给应用第一层分配0个虚拟资源。所以,针对应用第一层请求,数据中心的资源分配方式为f11=0,f12=1,f13=0,f14=0,即服务器2中为应用第一层分配1个虚拟机资源,其它服务器不对应用第一层分配虚拟机资源。
按照上述对第3层、第2层和第1层的资源分配,最终的分配方案如图4所示。数学表达为
F={f31=2,f32=0,f33=0,f34=0,f21=2,f22=1,f23=0,f24=0,f11=0,f12=1,f13=0,f14=0},即在服务器1为应用第三层分配2个虚拟机资源,为应用第二层分配2个虚拟机资源,服务器2为应用第二层分配1个虚拟机资源,为应用第二层分配1个虚拟机资源。此时,在链路l1和l2上预留的带宽均为350Mbps,均未超过各个链路的带宽容量。
所以,针对请求P的最终资源分配方案是F={f12=1,f21=2,f22=1,f31=2},如图4所示。
由于请求P的应用第二层有2个“按需运行”虚拟资源需求,故应该在数据中心剩余可用资源中预留出2个虚拟机空槽供该应用以后使用,如图5所示,在剩余资源中紧随其后预留出2个虚拟机空槽,即在服务器2中进行预留,数据中心此时也会进行记录,此时由于服务器1和服务器2的虚拟机资源已经用尽,当再有应用请求Q到来时,将在剩余的服务器3和服务器4中进行分配,而不会占用为请求P预留出的资源(如图5服务器2中虚线所示)。为请求Q分配资源的方式与之前请求P分配资源的方式相同,这里不再赘述。
综上,本发明可实现面向数据中心多层次弹性应用的资源分配。
实施例2
如图7所示为本发明一种面向数据中心多层次弹性应用的资源分配装置结构示意图,从图中可知,该装置包括依次连接的用户请求接收模块、请求计算模块、资源分配模块、可用资源计算模块和资源分配输出模块;
用户请求接收模块用于接收用户提出的请求T={Ti,i∈[1,k]},并向请求计算模块输出该用户请求;
请求计算模块用于根据用户请求T和当前数据中心拓扑结构G=(V,L)分别计算每条链路的可行向量(每条链路连接的子树中分配的虚拟机数量的所有可行值),并向资源分配模块输出用户请求和可行向量计算结果;
资源分配模块用于采用遍历方法根据用户请求、可行向量为应用的每一层计算最优的虚拟机资源分配方案,并将该分配方案和用户请求输出到可用资源计算模块;
作为优选,所述遍历方法为实施例1中所述递归方法alloc;
可用资源计算模块用于在数据中心拓扑结构中记录当前请求的虚拟机资源分配方案,以及计算当前请求中“按需运行”的虚拟机数量并在数据中心拓扑结构中进行预留,以及将资源分配方案输出到资源分配输出模块;
资源分配输出模块用于将用户请求的最优资源分配方案输出给运营商。
实验结果
以下通过仿真实验验证本发明的有益效果。
实验使用的数据中心网络为三层树形拓扑,共包含4,000台服务器。每40台服务器连接至1台ToR(架顶)交换机,每10台ToR交换机连接至1台Agg(汇聚)交换机,全部10台Agg交换机连接至1台核心层交换机。每台服务器支持4个虚拟机,网络支持的虚拟机总数为16,000。每台服务器与ToR交换机之间的链路带宽为1Gbps,每台ToR交换机与Agg交换机之间的链路带宽为10Gbps,每台Agg交换机与核心层交换机之间的链路带宽为25Gbps。
实验共模拟了5000个应用请求,请求的到达次序符合泊松分布。如果请求到达时,它所需要的虚拟资源无法得到满足,则该请求被拒绝(即成功调度失败);否则,该请求被接受。通过控制请求达到的平均速率,分别模拟数据中心网络预期资源利用率为10%、20%、30%、40%、50%、60%、70%、80%、90%和100%的情形。
实验对比了两种方法,分别是:本发明提出的考虑请求动态扩展需求的弹性资源分配方法,简称弹性方法;已有的、不考虑请求动态扩展需求的贪婪资源分配方法,简称贪婪方法。
图8表示在不同预期负载情形下,本发明方法(弹性方法)与贪婪方法在资源成功调度率方面的差异。可见,弹性方法始终优于贪婪方法。并且,数据中心负载越高,弹性方法的优势越明显。
以上所述的具体描述,对发明的目的、技术方案和优点益处都进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种面向数据中心多层次弹性应用的资源分配方法,其特征在于:包括以下步骤:
(1)用户提出虚拟网络资源需求T={Ti,i∈[1,k]},k为应用包含的层数,Ti表示用户对于应用第i层的需求,Ti是一个五元组变量,表示形式为其中,表示“始终运行”的虚拟机数量,表示“按需运行”的虚拟机数量,表示层内通信所需的带宽,表示层间通信所需的带宽,Si表示加载“按需运行”虚拟机的阈值;
(2)运营商对于用户应用请求T中的每一层请求Ti,分别计算其带宽需求并对各层的带宽需求进行降序排列,存储到集合T'中;
(3)i=1;
(4)对于集合T'中的元素Ti,运营商根据当前数据中心拓扑结构G=(V,L)(其中,V表示服务器集合,L表示链路集合,这里根链路为root)以及资源分配记录分别计算数据中心中每一条链路l相连子树分配虚拟机数量的可行向量FVl;在数据中心树形拓扑中,规定链路l直接相连的子树为lIn,除去lIn之后的拓扑结构为lOut;对于新应用T的每一层i,和分别表示lIn和lOut中分配到的虚拟机数量;可行向量FVl表示当lIn中分配x个虚拟机时,该层的分配方案是否可行(y=1表示可行,否则不可行);对于变量x,若满足x≤rv和bl≤rb,则对应的y值为1,其中,rv表示服务器v空槽的数量,bl表示分配方案所产生的链路l的带宽开销,rb表示链路剩余的带宽开销;其中,带宽开销bl由通过该链路的层内通信和层间通信组成,具体通过如下公式计算:
(5)运营商根据可行向量FVl通过遍历方法获得第i层最优的虚拟资源分配方案;
(6)i=i+1;如果i≤k,转到步骤(4);否则,转到步骤(7);
(7)根据每一次步骤(5)的执行结果,获得最终的虚拟资源分配方案F={fiv},1≤i≤k,v∈V,fiv表示给应用的第i层在服务器v中分配的虚拟资源的数量;
(8)通过上述步骤(3)~(7)获得应用每一层的“始终运行”虚拟机需求的分配方案,数据中心在获得该分配方案之后,为该应用的“按需运行”虚拟机数量在服务器中预留出相应空槽,并在资源分配记录中对“始终运行”虚拟机需求的分配方案和为该应用预留的“按需运行”虚拟机空槽的数量及对应的服务器中的位置进行记录,为以后新的用户请求的资源分配以及为原有已有应用调度“按需运行”的虚拟机做准备。
2.根据权利要求1所述的一种面向数据中心多层次弹性应用的资源分配方法,其特征在于:步骤(5)所述遍历方法为递归方法alloc(r,l,n),该方法获得给第i层应用分配的虚拟资源数量,并与用户请求的进行对比,如果两者相等,则返回true,说明存在第i层应用的分配方案;如果两者不相等,则返回false,说明不存在第i层应用的分配方案;其中,参数r表示用户请求,参数l表示链路,参数n表示用户请求分配的虚拟资源数量;其具体实现过程如下:
(1)若level(l)=0,在链路l相连的服务器中分配的虚拟资源数量为count=max{j|FVj=1&j≤n},count表示当FVj=1时,j取得的最大值,此时j≤n;判断count在可行向量FVj中是否合法(即当x=count时,y是否为1),如果不合法,则alloc方法返回-1;如果合法,则返回count值,即给第i层应用在链路e相连的服务器v内分配数量为count的虚拟机资源,数学表达为fiv=count;
(2)若level(l)≠0,设set(l)为链路l子树level(l)-1层的链路集合,链路l'∈set(l),计算剩余虚拟资源可用数量base=n-Σl'∈set(l)Ql';对于set(l)中的每条链路l',计算nl'=Ql'+base和tmp=alloc(r,l',nl'),tmp是递归执行方法alloc得到的数值;如果tmp≠-1,则base和count进行如下赋值:base←base-(tmp-Ql')和count←count+tmp;如果tmp=-1,则alloc返回-1值;在执行完set(l)中的每条链路l'操作之后,判断count在可行向量FVj是否合法,如果不合法,则返回-1;如果合法,则返回count值。
3.一种面向数据中心多层次弹性应用的资源分配装置,其特征在于:包括依次连接的用户请求接收模块、请求计算模块、资源分配模块、可用资源计算模块和资源分配输出模块;
用户请求接收模块用于接收用户提出的请求T={Ti,i∈[1,k]},并向请求计算模块输出该用户请求;
请求计算模块用于根据用户请求T、当前数据中心拓扑结构G=(V,L)和资源分配记录分别计算每条链路的可行向量,并向资源分配模块输出用户请求和可行向量计算结果;
资源分配模块用于采用遍历方法根据用户请求、可行向量为应用的每一层计算最优的虚拟机资源分配方案,并将该分配方案以及用户请求输出到可用资源计算模块;
可用资源计算模块用于在资源分配记录中登记当前请求的虚拟机资源分配方案,以及计算当前请求中“按需运行”的虚拟机数量并在资源分配记录中进行登记,该模块将来自资源分配模块的分配方案输出给资源分配输出模块;
资源分配输出模块用于将用户请求的最优资源分配方案输出给运营商。
4.根据权利要求3所述的一种面向数据中心多层次弹性应用的资源分配装置,其特征在于:所述遍历方法为权利要求2所述的递归方法alloc(r,l,n)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510546681.6A CN105072049B (zh) | 2015-08-31 | 2015-08-31 | 面向数据中心多层次弹性应用的资源分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510546681.6A CN105072049B (zh) | 2015-08-31 | 2015-08-31 | 面向数据中心多层次弹性应用的资源分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105072049A true CN105072049A (zh) | 2015-11-18 |
CN105072049B CN105072049B (zh) | 2018-06-12 |
Family
ID=54501335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510546681.6A Expired - Fee Related CN105072049B (zh) | 2015-08-31 | 2015-08-31 | 面向数据中心多层次弹性应用的资源分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105072049B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446817A (zh) * | 2015-11-23 | 2016-03-30 | 重庆邮电大学 | 移动云计算中一种基于鲁棒优化的联合资源预留配置算法 |
CN106612324A (zh) * | 2016-08-23 | 2017-05-03 | 四川用联信息技术有限公司 | 移动云计算中一种带宽受限情况下的虚拟机动态调度算法 |
WO2020125427A1 (zh) * | 2018-12-18 | 2020-06-25 | 深圳先进技术研究院 | 针对递归树建模程序的资源关键树算法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331948A (zh) * | 2011-09-01 | 2012-01-25 | 杭州湾云计算技术有限公司 | 一种基于资源状态的虚拟机结构调整方法和调整系统 |
CN104317916A (zh) * | 2014-10-28 | 2015-01-28 | 用友优普信息技术有限公司 | 数据关联单元扩展业务单据的装置和方法 |
-
2015
- 2015-08-31 CN CN201510546681.6A patent/CN105072049B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331948A (zh) * | 2011-09-01 | 2012-01-25 | 杭州湾云计算技术有限公司 | 一种基于资源状态的虚拟机结构调整方法和调整系统 |
CN104317916A (zh) * | 2014-10-28 | 2015-01-28 | 用友优普信息技术有限公司 | 数据关联单元扩展业务单据的装置和方法 |
Non-Patent Citations (2)
Title |
---|
殷波: "《面向云环境的资源分配关键技术研究》", 《中国优秀博士论文》 * |
王磊: "《弹性光网络中动态资源分配与调度技术研究》", 《中国优秀硕士论文》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446817A (zh) * | 2015-11-23 | 2016-03-30 | 重庆邮电大学 | 移动云计算中一种基于鲁棒优化的联合资源预留配置算法 |
CN105446817B (zh) * | 2015-11-23 | 2019-01-22 | 重庆邮电大学 | 移动云计算中一种基于鲁棒优化的联合资源预留配置算法 |
CN106612324A (zh) * | 2016-08-23 | 2017-05-03 | 四川用联信息技术有限公司 | 移动云计算中一种带宽受限情况下的虚拟机动态调度算法 |
CN106612324B (zh) * | 2016-08-23 | 2019-12-10 | 广东铭百科技有限公司 | 移动云计算中一种带宽受限情况下的虚拟机动态调度算法 |
WO2020125427A1 (zh) * | 2018-12-18 | 2020-06-25 | 深圳先进技术研究院 | 针对递归树建模程序的资源关键树算法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105072049B (zh) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109962940B (zh) | 一种基于云平台的虚拟化实例调度系统及调度方法 | |
CN107534583B (zh) | 在管理节点中实现的方法和相关装置 | |
CN104270421B (zh) | 一种支持带宽保证的多租户云平台任务调度方法 | |
CN108845874B (zh) | 资源的动态分配方法及服务器 | |
CN107087019A (zh) | 一种端云协同计算架构及任务调度装置及方法 | |
CN110221920B (zh) | 部署方法、装置、存储介质及系统 | |
CN110162388A (zh) | 一种任务调度方法、系统及终端设备 | |
CN106293950A (zh) | 一种面向集群系统的资源优化管理方法 | |
CN107346264A (zh) | 一种虚拟机负载均衡调度的方法、装置和服务器设备 | |
CN104021040A (zh) | 基于时间约束条件下的云计算关联任务调度方法和装置 | |
CN105677441B (zh) | 虚拟机迁移方法、虚拟设施管理器及协调器 | |
CN109947574A (zh) | 一种基于雾网络的车辆大数据计算卸载方法 | |
WO2020134133A1 (zh) | 一种资源配置方法、变电站及计算机可读存储介质 | |
CN110191155B (zh) | 一种面向胖树互连网络的并行作业调度方法、系统及存储介质 | |
CN106909462A (zh) | 一种云资源调度方法及装置 | |
CN106161603B (zh) | 一种组网的方法、设备及架构 | |
CN105072049A (zh) | 面向数据中心多层次弹性应用的资源分配方法及装置 | |
WO2013082742A1 (zh) | 资源调度方法、装置和系统 | |
CN111159859B (zh) | 一种云容器集群的部署方法及系统 | |
CN100558071C (zh) | 一种链路资源管理方法及传送网络和网络设备 | |
Tseng et al. | An mec-based vnf placement and scheduling scheme for ar application topology | |
CN106407007A (zh) | 面向弹性分析流程的云资源配置优化方法 | |
CN109039694A (zh) | 一种面向业务的全局网络资源分配方法及装置 | |
CN112749008A (zh) | 一种基于OpenStack的云资源分配系统及其搭建方法 | |
CN106776034A (zh) | 一种任务批处理计算方法、主站计算机及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180612 Termination date: 20210831 |