[0007] 本发明提出了基于时间互补性的虚拟机多配对放置方法。利用不同虚拟机的时间互补性,进行迭代循环配对,对一次配对进行改进。减少了系统资源的浪费和总的物理机资源的使用量,并且保持用户的服务质量处于用户可以接受的范围内。
[0008] 本发明的特点是,通过多次迭代互补配对的方法来解决资源利用率不高以及随机配对或者一次配对的配对不合理的问题,并且通过设定一个资源利用率的饱和度来控制迭代程度,从而将系统的性能以及用户的服务质量控制在可以接受的范围内。
[0009] 本发明所采用的技术方案的具体实现步骤如下:
[0010] 一种负载相关的虚拟机放置方法包括以下步骤:
[0011] 步骤1:收集虚拟机的历史资源利用率,根据(1)式对每一台虚拟机进行资源饱和度的分析,判断该台虚拟机是否处于高消耗状态,如果该台虚拟机处于高消耗状态,则移出虚拟机配对队列;
[0012] 所述的高消耗状态取决于资源利用率,当资源利用率大于设定阈值时,则认为虚拟机处于高消耗状态;
[0013] 资源饱和度的算法如下:
[0014] (1)
[0015] 为CPU资源利用率的时间序列。
[0016] 其中 表示资源饱和度值;i表示编号i=1,2,3,…;T表示总的时间次数;Cit表示第i台虚拟机在t时刻的CPU使用率,t=1,2,3,…,T;
[0017] 步骤2:通过步骤1完成一遍移出虚拟机操作后,根据皮尔森相关系数求解,计算在剩下的虚拟机配对队列中所有虚拟机的两两相关系数,并取最小值。如果只有一台虚拟机则直接移出虚拟机队列。
[0018] 相关系数算法如下所示:
[0019] (2)
[0020] 最大互补度即最小相关系数算法如下所示:
[0021] ,m,n∈(t=1,2,3,…,T) (3)
[0022] 其中r表示相关系数; 表示第i台虚拟机的负载; 表示第i台虚拟机负载的平均值;R表示最小相关系数;m,n表示时间序列中的m,n时刻;
[0023] 步骤3:根据步骤2得到互补度最大值对应的两台虚拟机,将该两台虚拟机的负载根据(4)式叠加合并成一台新虚拟机。通过配对后的虚拟机饱和度判断是否将其移出虚拟机队列。如果新虚拟机的饱和值不小于设定的饱和度值,则此次配对结束,将配对对应的所有虚拟机都移出虚拟机队列。如果小于设定的饱和度值,则将这台叠加起来的新虚拟机放入虚拟机队列继续求解互补度。
[0024] 叠加算法如下所示:
[0025] , t=1,2,3,…,T (4)
[0026] 其中Wt表示在t时刻一个虚拟机组的叠加CPU使用率;k表示配对后对应的虚拟机的编号,k=1,2,3,…,n。
[0027] 步骤4:重复步骤2操作,直到虚拟机配对后备队列为空。
[0028] 本发明的明显效益有以下几点:
[0029] 第一:本发明使用多迭代虚拟机方法,利用资源的时间互补性,能够在不降低用户服务质量的同时,较深层次地提高虚拟机的资源利用率。
[0030] 第二:本发明通过虚拟机迭代配对方法,统一分配资源,减少了总体的资源使用量,虚拟机重新分配放置后减少了物理机的台数,从而降低了能耗,节约了物理资源。
[0031] 第三:本发明利用历史负载信息进行自动识别,根据时间互补特征进行迭代配对,统一分配资源,减少了人力的投入。
[0032] 第四:本发明可用于大规模数据中心的虚拟机的放置及容量规划,可以用于各种不同规模的虚拟机集群,提高虚拟机的放置密度,即相同数量和配置物理机可以放置更多虚拟机台数,同时不影响用户的请求质量。