一种满足通用带宽请求的云计算虚拟机部署方法及系统与流程

文档序号:12375843阅读:300来源:国知局
一种满足通用带宽请求的云计算虚拟机部署方法及系统与流程

本发明属于网络技术领域,具体涉及满足通用带宽请求的云计算虚拟机部署方法及系统。



背景技术:

企业通常将自己的应用部署在云数据中心中,这样不仅可以降低成本,同时便于管理。而在多租户数据中心中为租户的应用提供可靠的带宽保障是非常重要的,因为不当的自由竞争会让租户应用的表现变得不可预测,从而可能损害租户的利益。根据不同的应用,租户通常会请求一定数量的虚拟机和一定量的网络带宽资源,而对于数据中心的管理者来说,一个最基本的问题就是如何对数据中心中的资源进行分配。

设计一套良好带宽保障的数据中心虚拟机部署方案需要能够准确的描述用户的带宽请求,并且高效的将用户的虚拟网络部署到实际物理网络中去。然而目前的大部分研究方案依然存在很多问题,譬如多数模型只是针对某一类流量类型的应用制定了虚拟机部署方案,而对于用户自定义的多样化的带宽请求的虚拟机部署没有很好的支持,无法满足通用的带宽请求。因此这些方案都会不可避免的浪费数据中心的带宽资源,难以容纳更多的租户请求。



技术实现要素:

本发明基于以上现有技术的不足,提出一种满足通用带宽请求的云计算虚拟机部署方法及系统,克服了现有虚拟机部署方案无法支持多样化宽带请求的缺陷,避免了数据中心带宽资源的浪费。

为了实现上述目的,本发明技术方案如下:

一种满足通用带宽请求的云计算虚拟机部署方法,包括步骤:

S1:选定目标层中的一棵子树作为目标子树T。

S2:计算目标子树T中的剩余虚拟机槽资源,判断虚拟机通信图中的虚拟机个数是否超过了目标子树T剩余虚拟机槽个数;若为是,则选择该层的下一棵子树作为目标子树T,并重复S2;若为否,则执行S3。

S3:从目标子树T的最底层开始自顶向下将虚拟机通信图中的虚拟机递归分配到目标子树T的剩余虚拟机槽中。

S4:判断虚拟机是否分配成功;若为是,则返回成功,并得到分配的结果值;若为否,则执行S5。

S5:判断目标子树T所在层是否还有其它的子树;若为是,则选择其中的一棵子树的下一棵子树作为目标子树T,并执行S2;若为否,则返回失败。

进一步地,S3包含步骤:

S31:判断目标子树T的当前子树所在层是否为最底层;若为是,则将虚拟机通信图中的虚拟机部署到当前子树上,并执行S37;若为否,则执行S32。

S32:将目标子树T的所有子树按照可用资源的多少进行降序排列。

S33:选择目标子树T的一个子树t;确定待分配的虚拟机数量和子树t中剩余的虚拟机槽数量的较小值。

S34:从待选虚拟机集合中选择出x个待分配的虚拟机。

S35:计算子树t需要预留的出口带宽,然后递归地进入子树t的虚拟机分配;

S36:判断对子树t的虚拟机分配是否成功;若为是,则预留带宽,并且执行子树内的虚拟机部署,执行S37;若为否,则将x自减1,返回到S34。

S37:判断虚拟机是否全部部署完成;若为是,则返回部署结果,完成部署;若为否,则执行S38。

S38:判断目标子树T是否还存在其它子树;若为是,则选择其它的子树,并返回到S33;若为否,则清除已分配的资源,返回分配结果。

进一步地,S34包含步骤:

S341:从接收到的虚拟机通信图请求中挑选出一个具有最大化聚合带宽的虚拟机,将其放入一个空集S中。

S342:判断空集S中的虚拟机个数是否已经达到x;若为是,则执行S344,若为否,则执行S343。

S343:判断空集S中的虚拟机个数是否小于虚拟机通信图中虚拟机数量的一半;若为是,则从待选虚拟机集合中挑选一个虚拟机,使得其跟剩余虚拟机的带宽需求最小;若为否,则从待选虚拟机集合中挑选一个虚拟机,使得其跟剩余虚拟机的带宽需求最大,将此虚拟机加入空集S,并且返回到S342。

S344:返回选出的虚拟机集合S。

进一步地,S35中采用最大流最小割算法计算子树t需要预留的出口带宽。

进一步地,虚拟机通信图是由若干个虚拟机和VS构成的拓扑结构。

一种满足通用带宽请求的云计算虚拟机部署系统,包括:

目标子树选定模块,用于选定目标层中的一棵子树作为目标子树T。

虚拟机槽资源计算模块,用于计算目标子树T中的剩余虚拟机槽资源,并判断虚拟机通信图中的虚拟机个数是否超过了目标子树T剩余虚拟机槽个数;若为是,则选择该层的下一棵子树作为目标子树T,并重新计算并判断目标子树T中的剩余虚拟机槽资源;若为否,则触发虚拟机分配模块。

虚拟机分配模块,用于从目标子树T的最底层开始自顶向下将虚拟机通信图中的虚拟机递归分配到目标子树T的剩余虚拟机槽中。

虚拟机分配检测模块,用于判断虚拟机是否分配成功;如果为是,则返回成功,并得到分配的结果值;如果为否,则触发目标子树重选模块。

目标子树重选模块,用于判断目标子树T所在层是否还有其它的子树;若为是,则选择其中的一棵子树的下一棵子树作为目标子树T,并触发虚拟机槽资源计算模块;若为否,则返回失败。

进一步地,虚拟机分配模块包含:

物理机判单元,用于判断目标子树T的当前子树所在层是否为最底层;若为是,则将虚拟机通信图中的虚拟机部署到当前子树上,并触发虚拟机部署检测单元;若为否,则触发子树排列单元。

子树排列单元,用于将目标子树T的所有子树按照可用资源的多少进行降序排列。

子树选定单元,用于选择目标子树T的一个子树t;确定待分配的虚拟机数量和子树t中剩余的虚拟机槽数量的较小值。

虚拟机选择单元,用于从待选虚拟机集合中选择出x个待分配的虚拟机。

虚拟机分配单元,用于计算子树t需要预留的出口带宽,然后递归地进入子树t的虚拟机分配。

虚拟机分配检测单元,用于判断对子树t的虚拟机分配是否成功;若为是,则预留带宽,并且执行子树内的虚拟机部署;若为否,则将x自减1,并触发虚拟机选择单元。

虚拟机部署检测单元,用于判断虚拟机是否全部分配完成;若为是,则返回分配结果,完成部署;若为否,则触发子树重选单元。

子树重选单元,用于判断目标子树T是否还存在其它子树;若为是,则选择其它的子树,并触发子树选定单元;若为否,则清除已分配的资源,返回分配结果。

进一步地,虚拟机选择单元包含:

最大聚合带宽虚拟机选择部,用于从接收到的虚拟机通信图请求中挑选出一个具有最大化聚合带宽的虚拟机,将其放入一个空集S中。

虚拟机数量一次比较部,用于判断空集S中的虚拟机个数是否已经达到x;若为是,则执行S344,若为否,则执行S343。

虚拟机数量二次比较部,用于判断空集S中的虚拟机个数是否小于虚拟机通信图中虚拟机数量的一半;若为是,则从待选虚拟机集合中挑选一个虚拟机,使得其跟剩余虚拟机的带宽需求最小;若为否,则从待选虚拟机集合中挑选一个虚拟机,使得其跟剩余虚拟机的带宽需求最大,将此虚拟机加入空集S,并且返回到S342。

虚拟机集合返回部,用于返回选出的虚拟机集合S。

进一步地,虚拟机分配单元采用最大流最小割算法计算子树t需要预留的出口带宽。

进一步地,虚拟机通信图是由若干个虚拟机和VS构成的拓扑结构。

本发明的有益效果在于:

本发明中的方法或系统尽可能的将VM集中放置,能够更加精确的描述多样的带宽模型,并且满足通用的带宽请求,减少上层链路带宽消耗,从而接受更多的租户请求。

附图说明

图1是本发明中虚拟机通信图模型。

图2是本发明中的方法流程示意图。

图3是图2中步骤3的流程示意图。

具体实施方式

下面结合附图,对实施例作详细说明。

本发明提出一种新型的带宽保障模型VCG(VM Communication Graph,虚拟机通信图)模型,它是一种针对通用带宽请求的网络带宽抽象模型,用户可以使用VCG来描述他们的网络应用的带宽需求。VCG由虚拟机、虚拟交换机以及它们之间的带宽需求共同构成的流量模型图,可以用来描述用户任意的虚拟机通信请求。具体地,VCG可以被抽象成一个有向图G=(V,E),其中点集合V由两部分构成,一部分是虚拟机(VM),另一部分是虚拟交换机(VS),V=vs+vm。边集合E包含四种不同类型的有向边,VM到VM的边集合Emm,VM到VS的边集合Ems,VS到VM的边集合Esm,以及VS到VS的边集合Ess。每条有向边上的权重v(·)代表着有向的带宽需求。在VCG中Vvm代表用户实际请求的用来执行他们的任务的虚拟机,而Vvs只是用来构建一个完整的虚拟网络,它并不参与实际的数据中心部署,也不提供实际的功能。VS在虚拟网络中作为一个桥梁,可以表达用户不同的带宽请求。

如图1,展示了一个简单的VCG的实例图。用户请求的VCG中包6个VM和2个VS。通过这样一个简单VCG模型,用户实际上表达了很复杂的网络需求。两个VM之间直连可以表达点对点的带宽需求,对应隧道或者一个pipe(如e1)。VM和VS之间的连接可以表达hose情况,即一对多的情况下只约束聚合带宽而不约束每一个虚拟机对之间带宽(如e2)。同理VS和VS之间的连接可以表达两个VM集群之间的带宽需求,而不对集群内部虚拟机之间带宽需求做限定(如e3)。VCG通过引入虚拟交换机的概念,使得用户能够准确并且有效的描述自己应用程序实际的带宽需求模式。

对于用户请求的实际部署,就是把VCG模型放置到数据中心中的过程。我们的部署算法首先自底向上预测可能容纳下VCG的子树,然后对于该子树采用自顶向下搜索的方式,逐步将VM最终部署到物理服务器上去。由于数据中心越靠上层带宽资源越稀缺,本发明的算法尽可能将租户请求的VM部署到临近的子树中去,以此减少上层链路带宽的损耗。

首先,用户根据自己的带宽需求建立VCG:用户根据自己的需求,确定自己需要多少虚拟机来进行计算(假设每个虚拟机具有固定的计算和存储资源),然后确定自己的虚拟机之间的数据传输模式。然后按照VCG模型,租户将自己的虚拟机连接成一个虚拟网络图,并提交给数据中心的管理者。

实施例1:

如图2所示,基于用户提出的VCG请求,本发明设计了一种满足通用带宽请求的云计算虚拟机部署方法,数据中心拓扑为树型结构。该方法包括以下步骤:

S1:选定目标层中的一棵子树作为目标子树T。

S2:计算目标子树T中的剩余虚拟机槽资源,判断虚拟机通信图中的虚拟机个数是否超过了目标子树T剩余虚拟机槽个数;若为是,则选择该层的下一棵子树作为目标子树T,并重复S2;若为否,则执行S3。

S3:从目标子树T的最底层开始自顶向下将虚拟机通信图中的虚拟机递归分配到目标子树T的剩余虚拟机槽中。

S4:判断虚拟机是否分配成功;如果为是,则返回成功,并得到分配的结果值;如果为否,则执行S5。

S5:判断目标子树T所在层是否还有其它的子树;若为是,则选择其中的一棵子树的下一棵子树作为目标子树T,并执行S2;若为否,则返回失败。

具体地,如图3所示,所述S3包含以下步骤:

S31:判断目标子树T的当前子树所在层是否为最底层;若为是,则将虚拟机通信图中的虚拟机部署到当前子树上,并执行S37;若为否,则执行S32。

S32:将目标子树T的所有子树按照可用资源的多少进行降序排列。

S33:选择目标子树T的一个子树t;确定待分配的虚拟机数量和子树t中剩余的虚拟机槽数量的较小值。

S34:从待选虚拟机集合中选择出x个待分配的虚拟机。

S35:采用最大流最小割算法计算子树t需要预留的出口带宽,然后递归地进入子树t的虚拟机分配。

S36:判断对子树t的虚拟机分配是否成功;若为是,则预留带宽,并且执行子树内的虚拟机部署,执行S37;若为否,则将x自减1,返回到S34。

S37:判断虚拟机是否全部部署完成;若为是,则返回部署结果,完成部署;若为否,则执行S38。

S38:判断目标子树T是否还存在其它子树;若为是,则选择其它的子树,并返回到S33;若为否,则清除已分配的资源,返回分配结果。

更具体地,所述S34包含步骤:

S341:从接收到的虚拟机通信图请求中挑选出一个具有最大化聚合带宽的虚拟机,将其放入一个空集S中。

S342:判断空集S中的虚拟机个数是否已经达到x;若为是,则执行S344,若为否,则执行S343。

S343:判断空集S中的虚拟机个数是否小于虚拟机通信图中虚拟机数量的一半;若为是,则从待选虚拟机集合中挑选一个虚拟机,使得其跟剩余虚拟机的带宽需求最小;若为否,则从待选虚拟机集合中挑选一个虚拟机,使得其跟剩余虚拟机的带宽需求最大,将此虚拟机加入空集S,并且返回到S342。

S344:返回选出的虚拟机集合S。

实施例2:

基于用户提出的VCG请求,本发明设计了一种满足通用带宽请求的云计算虚拟机部署系统,数据中心拓扑为树型结构。该系统包括:

目标子树选定模块,用于选定目标层中的一棵子树作为目标子树T。

虚拟机槽资源计算模块,用于计算目标子树T中的剩余虚拟机槽资源,并判断虚拟机通信图中的虚拟机个数是否超过了目标子树T剩余虚拟机槽个数;若为是,则选择该层的下一棵子树作为目标子树T,并重新计算并判断目标子树T中的剩余虚拟机槽资源;若为否,则触发虚拟机分配模块。

虚拟机分配模块,用于从目标子树T的最底层开始自顶向下将虚拟机通信图中的虚拟机递归分配到目标子树T的剩余虚拟机槽中。

虚拟机分配检测模块,用于判断虚拟机是否分配成功;如果为是,则返回成功,并得到分配的结果值;如果为否,则触发目标子树重选模块。

目标子树重选模块,用于判断目标子树T所在层是否还有其它的子树;若为是,则选择其中的一棵子树的下一棵子树作为目标子树T,并触发虚拟机槽资源计算模块;若为否,则返回失败。

具体地,虚拟机分配模块包含:

物理机判单元,用于判断目标子树T的当前子树所在层是否为最底层;若为是,则将虚拟机通信图中的虚拟机部署到当前子树上,并触发虚拟机部署检测单元;若为否,则触发子树排列单元。

子树排列单元,用于将目标子树T的所有子树按照可用资源的多少进行降序排列。

子树选定单元,用于选择目标子树T的一个子树t;确定待分配的虚拟机数量和子树t中剩余的虚拟机槽数量的较小值。

虚拟机选择单元,用于从待选虚拟机集合中选择出x个待分配的虚拟机。

虚拟机分配单元,用于采用最大流最小割算法计算子树t需要预留的出口带宽,然后递归地进入子树t的虚拟机分配。

虚拟机分配检测单元,用于判断对子树t的虚拟机分配是否成功;若为是,则预留带宽,并且执行子树内的虚拟机部署;若为否,则将x自减1,并触发虚拟机选择单元。

虚拟机部署检测单元,用于判断虚拟机是否全部分配完成;若为是,则返回分配结果,完成部署;若为否,则触发子树重选单元。

子树重选单元,用于判断目标子树T是否还存在其它子树;若为是,则选择其它的子树,并触发子树选定单元;若为否,则清除已分配的资源,返回分配结果。

更具体地,虚拟机选择单元包含:

最大聚合带宽虚拟机选择部,用于从接收到的虚拟机通信图请求中挑选出一个具有最大化聚合带宽的虚拟机,将其放入一个空集S中。

虚拟机数量一次比较部,用于判断空集S中的虚拟机个数是否已经达到x;若为是,则执行S344,若为否,则执行S343。

虚拟机数量二次比较部,用于判断空集S中的虚拟机个数是否小于虚拟机通信图中虚拟机数量的一半;若为是,则从待选虚拟机集合中挑选一个虚拟机,使得其跟剩余虚拟机的带宽需求最小;若为否,则从待选虚拟机集合中挑选一个虚拟机,使得其跟剩余虚拟机的带宽需求最大,将此虚拟机加入空集S,并且返回到S342。

虚拟机集合返回部,用于返回选出的虚拟机集合S。

VCG模型可以充分的描述网络应用的带宽需求,具有通用性。网络带宽需求可以分为三大类:点到点的,点到多点的以及多点到多点的,而且每一类都可以是异构的。VCG模型可以完全支持这三种类型,用户通过VCG模型可以构建自己虚拟网络拓扑图。本发明中的方法或系统尽可能的将VM自顶向下的集中放置,相对于现有的国际最新提出的hose模型、TAG模型,能够更加精确的描述多样的带宽模型,并且满足通用的带宽请求,减少上层链路带宽消耗,从而接受更多的租户请求。

此实施例仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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