分布式云中基于聚类的时延带宽极小化虚拟机部署方法_2

文档序号:9910814阅读:来源:国知局
集群来部署被请求的VM,其中每一个VM都 需要一定数量的vCPU。最大的DC间的距离需要被极小化以减少应用延迟。
[0033]首先本发明将给出几个定义:
[0034] a)核心对象:给定一个距离值e,如果一个DC的e邻域内的DC能够容纳至少m个 vCPU,则认为此DC是关于(e,m)的核心对象。
[0035] b)对象i的核心距离:给定DC中一个对象i,一个距离值e,一个自然数m,假设被请 求的VM所需要的vCPU的个数是m,用Ne( i)表示i的e临域,让m-distance( i)是从i到其某个 邻居DC的距离。对于核心对象i,核心距离是从i到它的邻居DC的最小的半径ξ,此半径使得i 是关于(ξ,πι)的核心对象。对于非核心对象,没有定义。请参照附图2,其中,m为5,ξ为核心距 离。
[0036] c)可行子图:给定一个顶点i,如果i和它最近的邻居组成一个子图,而且此子图的 顶点(DC)能容纳至少m个vCPU及其对应的VM,则这个子图被称之为以i为中心的可行子图。
[0037] d)最小可行子图:给定一个可行子图,如果其任何一个子图不再可行,这个子图被 称之为最小可行子图。
[0038] e )寻找最小星型算法ModFindMinStar,本算法被基于聚类的最小直径算法 CBMinDia调用。
[0039]算法1.寻找最小星型算法
[0040]输入(N,E,w):表不DC拓扑的一个完全图,参数分别为顶点、边长矩阵和顶点权重; m:请求的子图权重;i :初始顶点。
[0041 ]输出G' = (Ν',E'):由i和它最近的邻居组成的顶点权重和至少为m的子图。
[0042]将矩阵E的第i列删除后按照非递减次序排序为:ede2< ...en-i,记做e = (ei,e2,· ··,如-丨)。并记其对应的顶点为顶点权重为(%,',···,'-,) Ν' ., 〇 =i ;m = Wi〇
[0043]
[0044] 对于一个给定的DC,ModFindMinStar将其余DC按照到此DC的非降序距离进行排 序,然后将最近的DC加入到集群。如果集群能够容纳所有被请求的vCPU和相应的VM,程序终 止。否则第二近的DC被加入,以此类推,直至满足VM需求或者所有的DC都已经被加入。因为 VM的异构性,容纳具体的VM组合的可行性检查是必要的。但对于实际能提供成千上万的 vCPU的DC来说,这一点可以被忽略。
[0045] f)基于聚类的DC直径最小选择算法。本算法调用ModFindMinStar算法 [0046] 算法2.基于聚类的DC直径最小选择算法CBMinDia。
[0047]输入(N,E,w):表不DC拓扑的一个完全图,参数分别为顶点、边长矩阵和顶点权重; m:请求的子图权重
[0048] 输出G' = (N',E'):由i和它最近的邻居组成的顶点权重和至少为m的子图
[0049] 从N中选择任一个顶点k,初始半径e =Fk的半径
[0050]
[0051 ] k表示具有最小核心距离的顶点,d = D(Fk),可行子图中心center = k
[0052] Ν'=Fk的顶点,E'=Fk的边矩阵 [0053
[0054] CBMinDia算法包括三个阶段:
[0055] 阶段一(第1行)选择任意一个顶点,并将以它为中心的最小可行子图的半径作为 初始半径e (本算法中所有最小可行子图均由ModFindMinStar算法完成)。
[0056] 阶段二(第一个For循环)判断每个顶点是否是关于(e,m)的核心对象并进行标 注。
[0057] 阶段三,所有的非更优的顶点被按照某一标准剪枝,具有最小直径的顶点被找到。 这个标准是d,即以具有最小核心距离的顶点为中心的最小可行子图的直径。这个可行子图 是一个可行解并被用作初始值。我们希望d相当的小,以便更多的顶点可以被排除。可以证 明,对关于(e, m)的核心对象,只有那些核心距离小于d的对象才需要被检查。当更小的直 径被找到后,就会更新检查结果。对关于(e, m)的非核心对象,只有当初始半径e小于d且 其邻域包含了至少m个对象时,才需要被检查。这是因为一个关于比d大的e的非核心对象 不可能产生更优解。进一步的,其邻域必须包含足够的对象,否则它不是可行解。可以证明, 对于同构VM,本算法可以找到一个2-近似解。
[0058] 2、虚拟机分组问题旨在将VM指配到相应的DC中去,以使得DC之间的带宽占用尽可 能的小。这是因为DC间链路一般是长途链路,因此非常昂贵。节省长途带宽以为这成本开支 的节省。另外,可靠性是另一个考量因素,因为可靠性会随着距离的增长而降低。
[0059 ] η个VM的流量可以由一个n*n的对称流量矩阵T表示,其中Ti j是虚拟机i和j的流量, Τ? = 0。对于一个选定的 DC 集群每一个 Dk(k=l,2,'",r#M|gmsi^vCPU。 所有VM被分组到不相交的集合. . .Pr。
[0060]要求每一个分组成份中的被指配的VM和相应的Dk的容量相称。所以VM分组问题的 目标函数是极小彳
。.约束条件是|Pk| < Sk,k=l,2,. . .,r。其中|Pk|是成份Pk 中的vCPU的个数。
[0061]为此,本发明采用半通信模型:对于一个给定的分组的成分Pk,它的所有成员都已 经确定,即所有属于该成份的VM都已经被找到,而且和一个DC相称。
[0062]本发明有以下定义:
[0063][内部流量(InnT)和外部流量(OutT)]:给定请求的VM集合为V,分组成份为 且流量矩阵为T。V/e A,i关于pk的内部流量定义为i和成份pk中其余VM的流量之和。正式 的:类似的,i关于Pk的外部流量定义为i和不在成份Pk中的VM的流量之
j --1 j 和。正式的
[0064] 给定一个分组,任何的VM的InnT和OutT都是确定的值。理想情况下,希望每一个分 组中的每一个VM的InnT最大而OutT最小。然而,在构建成份的过程中,其成员是一个个的加 入的。我们不能事先知道所有的成员,从而也无法事先知道InnT和OutT。对一个候选VM来 说,我们所能知道的是下面的各种近似的流量:[AIT和Α0Τ].
[0065] 对于目标分组成份Pk,对任意候选/ g P,近似内部流量:
。近似外 部流量
[0066] AIT和Α0Τ是构建分组的过程中所能知道的流量,它们可以被看作是InnT和OutT的 一个逼近,所以可以用来表征哪一个VM应该被优先选择并加入到分组中。一旦一个VM成为 一个分组的成员,InnT与OutT的和就等于AIT与Α0Τ的和。这刚好是这个VM和其余所有VM的 总流量。
[0067]以上四个定义揭示了一个VM在一个分组内部的流量和分组外部的流量。从而使得 有可能从分组的角度来研究一个VM的流量。它们被总称为半通信模型(half communication model(HCM)),附图3对此进行了说明。
[0068]本发明观察到如下事实:
[0069] 对于任意候选Vll·和分组成份Pk,考虑构建过程中的Pk以及Pk确定后的情况,则有:
[0070] 1. MnTpt {/) > AITPt (/) :, OutTPt {/) < ΑΟΤ^ (?) "
[0071] 2. -个先前加入的成员的Α0Τ不小于这个成员和以后加入的成员的总流量,而且 所有先前加入的成员的总的Α0Τ不小于后加入的成员的AIT。正式地,对于任意的i,j,j在i 后被加入Pk,
[0072] 3.-个后加入的成员的AIT和Α0Τ比先前加入的成员的AIT和Α0Τ更接近于 其I η η T和0 u t T。正式地,对于任意的i,j,j在i之后被加入P k, /""& (/)-碼:(/) ;; (./)-碼,(.~
[0073] 4.如果i是最后一个加入Pk的成员,则=」/〇_),⑴'奶心(0。
[0074]虽然我们想尽可能的将更多的VM间的流量转化成DC内的流量,以便DC间的流量尽 可能的小。但不能保证每次加入分组成份的V Μ是最好的,或者说有最大的I η η T和最小的 OutT。直观上,在构建分
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1