一种虚拟机部署位置的调整方法、装置及系统的制作方法_3

文档序号:8322349阅读:来源:国知局
计,并将统计结果作为下一阶段虚拟机部署方案的调整依据,典型的应用场景例如:在每天的O点,统计前I天的系统内节点流量情况,然后根据前I天的流量情况确定当天的虚拟机部署方案。
[0112]假设监测到在某段历史时期内,图1所示的初始部署方案的流量情况如下:
[0113]节点I与节点2之间流量:D12= 2G ;
[0114]节点I与节点3之间流量-D13= 2G ;
[0115]节点I与节点4之间流量-D14= 2G ;
[0116]节点I与节点5之间流量:D15= IG ;
[0117]节点I与节点13之间流量:D113= IG ;
[0118]S104,根据Ci/和Dij,计算两个虚拟机节点i和j之间的修正邻接度Ai/
[0119]根据S102获得的Ci/以及S103获得的Dij,利用Ai/ = Ci/ *DU可以计算得到,图1所示的系统节点间修正邻接度分别为:
[0120]节点I与节点2之间的修正邻接度:A12’ = 2*2.875 = 5.75 ;
[0121]节点I与节点3之间的修正邻接度:A13’ = 2*2.875 = 5.75 ;
[0122]节点I与节点4之间的修正邻接度:A14’ = 2*2.875 = 5.75 ;
[0123]节点I与节点5之间的修正邻接度:A15’ = 1*3.375 = 3.375 ;
[0124]节点I与节点13之间的修正邻接度:A113’ = 1*4.25 = 4.25。
[0125]S105,对网络中的虚拟机节点构成的修正邻接度图采用最小割算法,得到至少两个集合;
[0126]这里的修正邻接度图是根据网络中的虚拟机节点生成,对于任一修正邻接度图而言,图中的不同的顶点分别对应一个不同的虚拟机节点、且所述两个虚拟机节点i和j所对应的两个顶点之间存在一条以Ai/为权重值的边。
[0127]在本发明的一种【具体实施方式】中,可以先根据预设的聚类规则,对N个虚拟机节点进行聚类,得到至少一个类簇,在同一个类簇中,对于任意一个节点P,存在至少另一个节点P’,使得P’与P之间的修正邻接度不小于预设的阈值;然后根据预定义的物理邻接域划分规则,确定所述网络中每个物理邻接域所能容纳的虚拟机节点数量M,对各个类簇对应的修正邻接度图分别迭代使用2阶最小割算法,得到对应于各个类簇的分割结果;其中,每组分割结果中包含至少一个集合,且每个集合中的虚拟机节点数量不大于M。
[0128]上述实施方式中,对虚拟机节点进行聚类的目的是:将交互关系比较密切的虚拟机节点划分到相同的类簇中,使得同一类簇中的节点能够优先被分配到物理连接较为紧密的位置。
[0129]相应地,“物理邻接域”可以按照实际需求灵活定义,例如,可以定义每台物理服务器为一个物理邻接域,也可以定义通信代价较小的多台服务器为一个物理邻接域。物理邻接域划分规则以预设信息的形式存储,该预设信息可以被在最小割计算过程中被读取,从而确定最小割算法中需要使用的参数M。
[0130]根据S104的计算结果,假设预设的修正邻接度阈值为3,由于计算得到的6个修正邻接度均大于该阈值,因此,确定节点1、2、3、4、5、13属于同一类簇。进而以节点1、2、3、4、5、13为顶点、修正邻接度为边权重值,生成节点一张修正邻接度图。
[0131]在本实施例中,定义每台物理服务器为一个物理邻接域,即:每个物理邻接域所能容纳的虚拟机数量为2 ;
[0132]对修正邻接度图迭代使用2阶最小割算法,直至各个子集合中的节点个数不大于2,最后得到包含5个虚拟机节点子集合的分割结果:5,13,4,3,(1,2)。可见,每个子集合中的节点数量均小于物理服务器所能容纳的虚拟机数量2。另外,分割结果实际是一个子集合序列,各个子集合在序列中的相对位置,体现了在最小割迭代算法中分割子集合的先后顺序:
[0133]第一次分割,根据修正邻接度最小的A15’,将节点5分割为一个子集,
[0134]第二次分割,根据修正邻接度次小的A113’,将节点13分割为一个子集,
[0135]......
[0136]以此类推,得到最终的分割结果5,13,4,3,(I, 2)。
[0137]可以理解的是,最小割算法的目的是:从图的所有割中,确定边权值之和最小的害J,因此,划分结果可能并不唯一,例如在上例的划分结果中,节点2、3、4是可以彼此调换的。另外为描述方便,在本实施例中仅涉及了节点I与其他节点间的流量,并未涉及其他节点间(例如节点2和3之间)的流量,而最小割算法本身能够适应各种可能出现的情况,并不仅限于处理上述简化情况。
[0138]在本发明的另一种【具体实施方式】中,还可以对包含N个虚拟机节点的修正邻接度图使用K阶最小割算法,得到K个虚拟机节点子集合。这里的K是预设的数值,K值可以根据实际需求设置,例如根据网络中物理邻接域数量设置,或者根据系统业务的逻辑分组数量设置,等等。
[0139]预先设置K值的目的是:按照实际需求,直接把虚拟机节点划分到K个组中。例如,对于图1所示系统,假设预设的数值K = 5,则直接对节点1-16构成的修正邻接度图进行5阶最小割运算,得到5个虚拟机节点子集合。
[0140]S106,根据最小割算法得到的至少两个集合,对网络中的虚拟机节点的部署位置进行调整。
[0141]可以理解的是,最小割算法仅是从数学的角度上,给出了对虚拟机部署方案的建议,但是该建议并不一定与系统的实际情况完全符合。因此在实际应用中,可能需要进一步结合系统的实际情况,对最小割算法的结果进行优化,总的优化原则是:在调整后的虚拟机部署方案中,对于任意虚拟机节点X,若存在虚拟机节点y与X属于相同的集合、虚拟机节点z与X属于不同的集合,则X与y之间的通信代价不大于X与z之间的通信代价。具体的优化策略可参考现有技术的实现方式,本发明实施例对此不做详细介绍。
[0142]例如,在迭代使用最小割算法的情况下,根据迭代原理,各个子集合在序列中的相对位置,体现了迭代分割子集合的先后顺序,而最先分割出的节点集,应该部署到通信代价较小的位置。
[0143]根据S105中的分割结果5,13,4,3,(I, 2),确定最终的虚拟机部署方案,由控制器对虚拟机的部署位置进行迀移,调整后的虚拟机部署方案如图6所示。可见,数据交互量较大的虚拟机I和2、虚拟机I和3或虚拟机I和4被调整到通信代价较小的位置,而数据交互量较小的虚拟机I和13、虚拟机I和5则被调整到通信代价较大的位置,该调整结果与实际期望的调整结果相符。
[0144]可见,本发明实施例所采用的方案,通过对节点间通信代价Cij进行修正,使得修正后的节点间通信代价既能体现对虚拟机部署位置调整结果的影响,又使得通信流量在调整结果中起到主导影响作用,从而可以得到更为合理的虚拟机部署位置调整结果。
[0145]相应于上面的方法实施例,本发明实施例还提供一种虚拟机部署位置调整装置,该装置可以应用于云计算系统中的控制器,或者应用于其他网络管理实体中。参见图7所示,该虚拟机部署位置调整装置100可以包括:
[0146]通信代价确定模块110、数据平滑模块120、流量统计值获得模块130、修正邻接度计算模块140、最小割计算模块150、调整模块160。以下详细对各个模块的工作原理及协作关系进彳丁介绍。
[0147]通信代价确定模块110,用于根据虚拟机所在网络的拓扑结构,以及根据所述网络中任意两个虚拟机节点i和j所述属的物理服务器情况确定所述节点i和j之间的通信代价 CijQ 幸 j),
[0148]Cij为表示节点i和节点j之间的通信代价,两个节点之间的通信代价一般可以理解为两个节点之间的通信距离,通信代价由网络拓扑结构决定,也就是说,在一个确定的网络中,任意两个给定位置之间的通信代价是不会变化的。
[0149]为方便计算,两个虚拟机节点之间的通信代价可以根据节点间的交换机数量确定,另外,同一台物理服务器内的虚拟机之间不需要经过交换机即可通信,因此可以统一规定:同一台物理服务器中的两个节点通信代价为一个预设数值。也就是说:在i和j不属于同一物理服务器的情况下,Cij为i和j之间的交换机数量,在i和j属于同一物理服务器的情况下,Ci#预设的数值。一般而言,该预设数值可以在区间(0,1]中选取。
[0150]假设系统初始的虚拟机部署方案如图1所示,并且规定:同一台物理服务器中的两个节点通信代价为I ;则按照图1的部署方案,虚拟机的总数N = 16,可以得到如图2所示的大小为16*16通信代价矩阵。
[0151]根据图2所示的通信代价矩阵,可以看出=Cij= Cji,即两个节点间的正反向通信代价相同。另外,由于节点与其自身事实上并不存在通信代价的概念,因此当i = j时,Cij并无实际意义,图2所示矩阵中,将主对角线上的值用表示,这些数值不需要参与后续计算。
[0152]数据平滑模块120,用于对通信代价确定模块110得到的Cij使用数据平滑算法,得到两个虚拟机节点i和j之间的通信代价的修正值Ci/ ;
[0153]在本发明的实施例中,使用数据平滑算法的目的是:减小Cu中最大值和最小值的差距,减小Cij的数值范围。本领域技术人员可以根据实际需求选择数据平滑模块120所使用的具体的数据平滑算法,例如式(2.1)、(2.2)、(2.3)所示的平滑算法等,本发明实施例对此并不需要进行限定。
[0154]在本实施例中,数据平滑模块120使用公式(2.1)对(^_进行平滑处理。
[0155]根据系统的网络拓扑结构,统计各种通信代价的取值可能出现的概率,例如:根据图1所示系统的网络拓扑结构,统计结果如下:
[0156]通信代价取值I在网络中的出现概率为1/4 ;
[0157]通信代价取值3在网络中的出现概率为1/4 ;
[0158]通信代价取值5在网络中的出现概率为1/2 ;
[0159]根据统计结果,计算出整个网络中任意两点之间的通信代价平均值Ce:
[0160]Ce= 1*1/4+3*1/4+5*1/2 = 3.5
[0161]根据Ci/ = Ci^Pij+C^(1-Pij)对节点之间的通信代价进行修正,其中P
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1