一种基于运行时长的云计算平台虚拟机调度方法转让专利

申请号 : CN201610248661.5

文献号 : CN105847385B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 付雄赵庆邓松程春玲王俊昌周代明厉道梅

申请人 : 南京邮电大学扬州莱斯信息技术有限公司

摘要 :

本发明涉及一种基于运行时长的云计算平台虚拟机调度方法,能够减少SLA违反次数,清空低载的物理机使之转换为低能耗状态,提高物理机的CPU利用率,同时也能达到减少虚拟机迁移次数,避免不合理的虚拟机迁移的作用,从而做到低能耗和高能效的有益效果。

权利要求 :

1.一种基于运行时长的云计算平台虚拟机调度方法,其特征在于,包括如下步骤:

步骤001.将云计算平台中的各个虚拟机随机分配至N个物理机当中,然后进入步骤

002;

步骤002.针对N个物理机中,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,然后进入步骤003;

步骤003.查找N个物理机当中,CPU使用率超过预设CPU使用率上限阈值的各个物理机,构成过载物理机集合Pover,相应N个物理机当中的其余物理机构成非过载物理机集合P1;然后初始化g=1,g={1、…、G},G表示过载物理机集合Pover中物理机的个数,并进入步骤004;

步骤004.针对过载物理机集合Pover中第g个物理机,分别针对该物理机当中的各个虚拟机,获得由当前时刻开始至虚拟机释放时刻之间的时长,分别作为该物理机当中各个虚拟机的运行时长,并选择最长运行时长所对应的虚拟机,作为过载物理机集合Pover中第g个物理机的待迁移虚拟机,然后进入步骤005;

步骤005.根据非过载物理机集合P1中各个物理机的CPU使用率,分别获得非过载物理机集合P1中各个物理机、不超过预设CPU使用率上限阈值的剩余CPU使用率Bh,然后进入步骤

006,其中,h={1、…、H},H表示非过载物理机集合P1中物理机的个数;

步骤006.针对非过载物理机集合P1中各个物理机,分别获得物理机中各个虚拟机由当前时刻开始至虚拟机释放时刻之间的时长,并将最长运行时长作为对应物理机的运行时长,进而分别获得非过载物理机集合P1中各个物理机的运行时长Th,然后进入步骤007;

步骤007.针对非过载物理机集合P1中各个物理机,根据Bh与Th的比值,分别获得非过载物理机集合P1中各个物理机的最优选择参数αh,并针对各个最优选择参数αh按从小至大的顺序进行排序,选择第一个最优选择参数所对应的物理机,作为过载物理机集合Pover中第g个物理机中待迁移虚拟机的目的物理机,然后进入步骤008;

步骤008.判断过载物理机集合Pover中第g个物理机中待迁移虚拟机的CPU使用率,是否小于其所对应目的物理机不超过预设CPU使用率上限阈值的剩余CPU使用率,是则进入步骤

010;否则进入步骤009;

步骤009.针对非过载物理机集合P1,选择最优选择参数排序中下一个最优选择参数所对应的物理机,更新作为过载物理机集合Pover中第g个物理机中待迁移虚拟机的目的物理机,并返回步骤008;

步骤010.将过载物理机集合Pover中第g个物理机中的待迁移虚拟机,迁移至其对应的目的物理机当中,然后针对N个物理机中,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,并进入步骤011;

步骤011.判断过载物理机集合Pover中第g个物理机的CPU使用率是否超过预设CPU使用率上限阈值,是则返回步骤004;否则进入步骤012;

步骤012.判断g是否等于G,是则进入步骤013;否则用g的值加1针对g进行更新,并返回步骤004;

步骤013.查找N个物理机当中,CPU使用率低于预设CPU使用率下限阈值的各个物理机,构成低载物理机集合Punder,相应N个物理机当中的其余物理机构成非低载物理机集合P2;然后进入步骤014;

步骤014.针对低载物理机集合Punder中各个物理机,分别获得物理机中各个虚拟机由当前时刻开始至虚拟机释放时刻之间的时长,并将最长运行时长作为对应物理机的运行时长,进而分别获得低载物理机集合Punder中各个物理机的运行时长,再针对低载物理机集合Punder中各个物理机按运行时长由大至小顺序进行排序,初始化m=1,lm=1,k=1,同时初始化低载物理机集合Punder中第m个物理机中的待迁移虚拟机集合Wm为空,然后进入步骤015;其中m={1、…、M},M表示低载物理机集合Punder中物理机的个数;lm={1、…、Lm},Lm表示低载物理机集合Punder中第m个物理机中虚拟机的个数;k={1、…、K},K表示非低载物理机集合P2中物理机的个数;

步骤015.将低载物理机集合Punder中第m个物理机中的所有虚拟机构成待对比集合Um,然后进入步骤016;

步骤016.针对低载物理机集合Punder中第m个物理机,将该物理机的第lm个虚拟机放入Wm集合当中,然后进入步骤017;

步骤017.采用步骤005至步骤007的方法,分别获得非低载物理机集合P2中各个物理机的最优选择参数α'n,并针对各个最优选择参数α'n按从小至大的顺序进行排序,选择第k个最优选择参数所对应的物理机,作为低载物理机集合Punder中第m个物理机中第lm个虚拟机的目的物理机,然后进入步骤018;

步骤018.判断低载物理机集合Punder中第m个物理机中第lm个虚拟机的CPU使用率,是否小于其所对应目的物理机不超过预设CPU使用率上限阈值的剩余CPU使用率,是则进入步骤

020;否则进入步骤019;

步骤019.判断k是否等于K,是则将低载物理机集合Punder中第m个物理机中的第lm个虚拟机由Wm集合移出,并进入步骤021;否则用k的值加1针对k进行更新,并针对非低载物理机集合P2,选择最优选择参数排序中第k个最优选择参数所对应的物理机,更新作为低载物理机集合Punder中第m个物理机中第lm个虚拟机的目的物理机,并返回步骤018;

步骤020.将低载物理机集合Punder中第m个物理机中第lm个虚拟机,迁移至其对应的目的物理机当中,然后针对N个物理机中,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,并进入步骤021;

步骤021.判断lm是否等于Lm,是则进入步骤022;否则用lm的值加1针对lm进行更新,并返回步骤016;

步骤022.判断Wm集合中的元素是否与待对比集合Um中的元素相同,是则进入步骤023;

否则针对低载物理机集合Punder中的第m个物理机,回滚步骤015至步骤021对其的所有操作,然后进入步骤023;

步骤023.判断m是否等于M,是则云计算平台虚拟机调度方法结束;否则用m的值加1针对m进行更新,并定义lm等于1,再返回步骤015。

2.根据权利要求1所述一种基于运行时长的云计算平台虚拟机调度方法,其特征在于:

所述针对N个物理机,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,具体包括如下步骤:步骤a01.针对N个物理机,首先分别获得各个物理机当中各个虚拟机的CPU使用率然后进入步骤a02;其中,n={1、…、N},in={1、…、In},In表示N个物理机当中第n个物理机中虚拟机的个数, 表示N个物理机当中第n个物理机中第in个虚拟机的CPU使用率;

步骤a02.根据各个物理机当中各个虚拟机的CPU使用率 按如下公式:

分别获得各个物理机的CPU使用率An。

3.根据权利要求1所述一种基于运行时长的云计算平台虚拟机调度方法,其特征在于,所述虚拟机上由当前时刻开始至虚拟机释放时刻之间的时长,通过如下步骤获得:步骤b01.根据如下公式:

t'r=a×Dr+b

获得虚拟机上第r个任务的运行时长t'r,然后进入步骤b02;其中,a、b为根据任务类型所设的预设参数,r={1、…、R},R表示虚拟机上任务的数量,Dr表示虚拟机上第r个任务所需的数据量;

步骤b02.根据如下公式:

获得虚拟机上由当前时刻开始至虚拟机释放时刻之间的时长t。

4.根据权利要求1所述一种基于运行时长的云计算平台虚拟机调度方法,其特征在于,所述步骤004中,针对过载物理机集合Pover中第g个物理机,选择该物理机中最长运行时长所对应的虚拟机,作为过载物理机集合Pover中第g个物理机的待迁移虚拟机过程中,若该物理机中存在至少两个最长运行时长所分别对应的虚拟机,则随机选择其中一个最长运行时长所对应的虚拟机,作为过载物理机集合Pover中第g个物理机的待迁移虚拟机。

5.根据权利要求1所述一种基于运行时长的云计算平台虚拟机调度方法,其特征在于:

所述步骤007中,所述针对各个最优选择参数αh按从小至大的顺序进行排序,其中,若存在至少两个相同的最优选择参数时,则该各个相同的最优选择参数之间随机进行排序。

6.根据权利要求1所述一种基于运行时长的云计算平台虚拟机调度方法,其特征在于:

所述步骤014中,针对低载物理机集合Punder中各个物理机,按运行时长由大至小顺序进行排序过程中,若存在至少两个运行时长相同的物理机时,则针对该各个运行时长相同的物理机之间,按其CPU使用率由大至小的顺序进行排序;进而实现低载物理机集合Punder中各个物理机的排序。

说明书 :

一种基于运行时长的云计算平台虚拟机调度方法

技术领域

[0001] 本发明涉及一种基于运行时长的云计算平台虚拟机调度方法,属于云计算和能耗技术领域。

背景技术

[0002] 云计算是网格计算、分布式计算、并行计算、效用计算、网络存储、虚拟化、负载均衡等传统计算机技术和网络技术发展融合的产物。它旨在通过网络把多个成本相对较低的计算实体整合成一个具有强大计算能力的完美系统,并借助SaaS、PaaS、IaaS、MSP等先进的商业模式把这强大的计算能力分布到终端用户手中。云计算的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力。
[0003] 云计算技术的兴起,也为传统数据中心的建设带来了新思路。云计算正在分担越来越多的传统数据中心的工作负载。有预测指出,到2016年,接近三分之二的工作负载将在云端处理。未来云端的工作负载量将超过传统数据中心的负载量。
[0004] 与传统数据中心相比,云化的数据中心提供的是弹性服务,可根据用户的需求在一个超大的资源池中动态分配和释放资源,不需要为每个用户预留峰值资源,因而资源利用率可大大提高;并且云数据中心拥有更多用户,可以将成本分摊到更多的服务器中。用户所使用的云资源可以根据其应用的需要进行调整和动态伸缩,能够有效地满足应用和用户大规模增长的需要。进入云计算时代,IT将从自给自足模式转变为规模化运行,传统小型数据中心被超大规模的云化数据中心取代将是一种必然。
[0005] 然而大型数据中心的建设伴随着高耗能的问题来到,大量电能中有50%以上被用于IT设备、制冷系统和配电供电系统,数据中心节能技术成为数据中心的核心竞争力之一。选择绿色数据中心可从以下三个方面考虑:1、IT设备节能;2、制冷系统节能;3、UPS电源。其中IT设备节能是指,在相同负载下,通过虚拟化、自动休眠和计算能力调用等提高物理机里服务器的使用率,从而降低平均使用成本。
[0006] 虚拟化是指通过虚拟化技术,把一台物理机虚拟为多台逻辑计算机,也就是我们所说的虚拟机。目前常见的提高物理机的CPU使用率的方式是虚拟机的整合,通过考虑负载,网络带宽,传输延迟等因素,制定相应整合迁移算法,从过载的物理机中迁出指定的虚拟机,清空低载物理机中的虚拟机,不仅达到提高物理机的使用率,同时也能减少SLA违反次数,最终达到低能耗和高能效的效果。

发明内容

[0007] 本发明所要解决的技术问题是提供一种通过考虑虚拟机运行时长来进行虚拟机迁移整合工作,能够减少SLA违反次数,减少活跃的物理机的数目,解决云计算中高能耗、资源利用率低等问题,达到低能耗和高能效效果的基于运行时长的云计算平台虚拟机调度方法。
[0008] 本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于运行时长的云计算平台虚拟机调度方法,包括如下步骤:
[0009] 步骤001.将云计算平台中的各个虚拟机随机分配至N个物理机当中,然后进入步骤002;
[0010] 步骤002.针对N个物理机中,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,然后进入步骤003;
[0011] 步骤003.查找N个物理机当中,CPU使用率超过预设CPU使用率上限阈值的各个物理机,构成过载物理机集合Pover,相应N个物理机当中的其余物理机构成非过载物理机集合P1;然后初始化g=1,g={1、…、G},G表示过载物理机集合Pover中物理机的个数,并进入步骤004;
[0012] 步骤004.针对过载物理机集合Pover中第g个物理机,分别针对该物理机当中的各个虚拟机,获得由当前时刻开始至虚拟机释放时刻之间的时长,分别作为该物理机当中各个虚拟机的运行时长,并选择最长运行时长所对应的虚拟机,作为过载物理机集合Pover中第g个物理机的待迁移虚拟机,然后进入步骤005;
[0013] 步骤005.根据非过载物理机集合P1中各个物理机的CPU使用率,分别获得非过载物理机集合P1中各个物理机、不超过预设CPU使用率上限阈值的剩余CPU使用率Bh,然后进入步骤006,其中,h={1、…、H},H表示非过载物理机集合P1中物理机的个数;
[0014] 步骤006.针对非过载物理机集合P1中各个物理机,分别获得物理机中各个虚拟机由当前时刻开始至虚拟机释放时刻之间的时长,并将最长运行时长作为对应物理机的运行时长,进而分别获得非过载物理机集合P1中各个物理机的运行时长Th,然后进入步骤007;
[0015] 步骤007.针对非过载物理机集合P1中各个物理机,根据Bh与Th的比值,分别获得非过载物理机集合P1中各个物理机的最优选择参数αh,并针对各个最优选择参数αh按从小至大的顺序进行排序,选择第一个最优选择参数所对应的物理机,作为过载物理机集合Pover中第g个物理机中待迁移虚拟机的目的物理机,然后进入步骤008;
[0016] 步骤008.判断过载物理机集合Pover中第g个物理机中待迁移虚拟机的CPU使用率,是否小于其所对应目的物理机不超过预设CPU使用率上限阈值的剩余CPU使用率,是则进入步骤010;否则进入步骤009;
[0017] 步骤009.针对非过载物理机集合P1,选择最优选择参数排序中下一个最优选择参数所对应的物理机,更新作为过载物理机集合Pover中第g个物理机中待迁移虚拟机的目的物理机,并返回步骤008;
[0018] 步骤010.将过载物理机集合Pover中第g个物理机中的待迁移虚拟机,迁移至其对应的目的物理机当中,然后针对N个物理机中,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,并进入步骤011;
[0019] 步骤011.判断过载物理机集合Pover中第g个物理机的CPU使用率是否超过预设CPU使用率上限阈值,是则返回步骤004;否则进入步骤012;
[0020] 步骤012.判断g是否等于G,是则进入步骤013;否则用g的值加1针对g进行更新,并返回步骤004;
[0021] 步骤013.查找N个物理机当中,CPU使用率低于预设CPU使用率下限阈值的各个物理机,构成低载物理机集合Punder,相应N个物理机当中的其余物理机构成非低载物理机集合P2;然后进入步骤014;
[0022] 步骤014.针对低载物理机集合Punder中各个物理机,分别获得物理机中各个虚拟机由当前时刻开始至虚拟机释放时刻之间的时长,并将最长运行时长作为对应物理机的运行时长,进而分别获得低载物理机集合Punder中各个物理机的运行时长,再针对低载物理机集合Punder中各个物理机按运行时长由大至小顺序进行排序,初始化m=1,lm=1,k=1,同时初始化低载物理机集合Punder中第m个物理机中的待迁移虚拟机集合Wm为空,然后进入步骤015;其中m={1、…、M},M表示低载物理机集合Punder中物理机的个数;lm={1、…、Lm},Lm表示低载物理机集合Punder中第m个物理机中虚拟机的个数;k={1、…、K},K表示非低载物理机集合P2中物理机的个数;
[0023] 步骤015.将低载物理机集合Punder中第m个物理机中的所有虚拟机构成待对比集合Um,然后进入步骤016;
[0024] 步骤016.针对低载物理机集合Punder中第m个物理机,将该物理机的第lm个虚拟机放入Wm集合当中,然后进入步骤017;
[0025] 步骤017.采用步骤005至步骤007的方法,分别获得非低载物理机集合P2中各个物理机的最优选择参数α'n,并针对各个最优选择参数α'n按从小至大的顺序进行排序,选择第k个最优选择参数所对应的物理机,作为低载物理机集合Punder中第m个物理机中第lm个虚拟机的目的物理机,然后进入步骤018;
[0026] 步骤018.判断低载物理机集合Punder中第m个物理机中第lm个虚拟机的CPU使用率,是否小于其所对应目的物理机不超过预设CPU使用率上限阈值的剩余CPU使用率,是则进入步骤020;否则进入步骤019;
[0027] 步骤019.判断k是否等于K,是则将低载物理机集合Punder中第m个物理机中的第lm个虚拟机由Wm集合移出,并进入步骤021;否则用k的值加1针对k进行更新,并针对非低载物理机集合P2,选择最优选择参数排序中第k个最优选择参数所对应的物理机,更新作为低载物理机集合Punder中第m个物理机中第lm个虚拟机的目的物理机,并返回步骤018;
[0028] 步骤020.将低载物理机集合Punder中第m个物理机中第lm个虚拟机,迁移至其对应的目的物理机当中,然后针对N个物理机中,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,并进入步骤021;
[0029] 步骤021.判断lm是否等于Lm,是则进入步骤022;否则用lm的值加1针对lm进行更新,并返回步骤016;
[0030] 步骤022.判断Wm集合中的元素是否与待对比集合Um中的元素相同,是则进入步骤023;否则针对低载物理机集合Punder中的第m个物理机,回滚步骤015至步骤021对其的所有操作,然后进入步骤023;
[0031] 步骤023.判断m是否等于M,是则云计算平台虚拟机调度方法结束;否则用m的值加1针对m进行更新,并定义lm等于1,再返回步骤015。
[0032] 作为本发明的一种优选技术方案:所述针对N个物理机,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,具体包括如下步骤:
[0033] 步骤a01.针对N个物理机,首先分别获得各个物理机当中各个虚拟机的CPU使用率然后进入步骤a02;其中,n={1、…、N},in={1、…、In},In表示N个物理机当中第n个物理机中虚拟机的个数, 表示N个物理机当中第n个物理机中第in个虚拟机的CPU使用率;
[0034] 步骤a02.根据各个物理机当中各个虚拟机的CPU使用率 按如下公式:
[0035]
[0036] 分别获得各个物理机的CPU使用率An。
[0037] 作为本发明的一种优选技术方案:所述虚拟机上由当前时刻开始至虚拟机释放时刻之间的时长,通过如下步骤获得:
[0038] 步骤b01.根据如下公式:
[0039] t'r=a×Dr+b
[0040] 获得虚拟机上第r个任务的运行时长t'r,然后进入步骤b02;其中,a、b为根据任务类型所设的预设参数,r={1、…、R},R表示虚拟机上任务的数量,Dr表示虚拟机上第r个任务所需的数据量;
[0041] 步骤b02.根据如下公式:
[0042]
[0043] 获得虚拟机上由当前时刻开始至虚拟机释放时刻之间的时长t。
[0044] 作为本发明的一种优选技术方案:所述步骤004中,针对过载物理机集合Pover中第g个物理机,选择该物理机中最长运行时长所对应的虚拟机,作为过载物理机集合Pover中第g个物理机的待迁移虚拟机过程中,若该物理机中存在至少两个最长运行时长所分别对应的虚拟机,则随机选择其中一个最长运行时长所对应的虚拟机,作为过载物理机集合Pover中第g个物理机的待迁移虚拟机。
[0045] 作为本发明的一种优选技术方案:所述步骤007中,所述针对各个最优选择参数αh按从小至大的顺序进行排序,其中,若存在至少两个相同的最优选择参数时,则该各个相同的最优选择参数之间随机进行排序。
[0046] 作为本发明的一种优选技术方案:所述步骤014中,针对低载物理机集合Punder中各个物理机,按运行时长由大至小顺序进行排序过程中,若存在至少两个运行时长相同的物理机时,则针对该各个运行时长相同的物理机之间,按其CPU使用率由大至小的顺序进行排序;进而实现低载物理机集合Punder中各个物理机的排序。
[0047] 本发明所述一种基于运行时长的云计算平台虚拟机调度方法及控制方法采用以上技术方案与现有技术相比,具有以下技术效果:本发明所设计基于运行时长的云计算平台虚拟机调度方法,能够减少SLA违反次数,清空低载的物理机使之转换为低能耗状态,提高物理机的CPU利用率,同时也能达到减少虚拟机迁移次数,避免不合理的虚拟机迁移的作用,从而做到低能耗和高能效的有益效果。

附图说明

[0048] 图1是本发明设计的基于运行时长的云计算平台虚拟机调度方法的流程示意图。

具体实施方式

[0049] 下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
[0050] 如图1所示,本发明所设计的一种基于运行时长的云计算平台虚拟机调度方法,在实际应用过程当中,具体包括如下步骤:
[0051] 步骤001.将云计算平台中的各个虚拟机随机分配至N个物理机当中,然后进入步骤002。
[0052] 步骤002.针对N个物理机中,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,然后进入步骤003。
[0053] 上述针对N个物理机,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,具体包括如下步骤:
[0054] 步骤a01.针对N个物理机,首先分别获得各个物理机当中各个虚拟机的CPU使用率然后进入步骤a02;其中,n={1、…、N},in={1、…、In},In表示N个物理机当中第n个物理机中虚拟机的个数, 表示N个物理机当中第n个物理机中第in个虚拟机的CPU使用率。
[0055] 步骤a02.根据各个物理机当中各个虚拟机的CPU使用率 按如下公式:
[0056]
[0057] 分别获得各个物理机的CPU使用率An。
[0058] 步骤003.查找N个物理机当中,CPU使用率超过预设CPU使用率上限阈值的各个物理机,构成过载物理机集合Pover,相应N个物理机当中的其余物理机构成非过载物理机集合P1;然后初始化g=1,g={1、…、G},G表示过载物理机集合Pover中物理机的个数,并进入步骤004。
[0059] 步骤004.针对过载物理机集合Pover中第g个物理机,分别针对该物理机当中的各个虚拟机,获得由当前时刻开始至虚拟机释放时刻之间的时长,分别作为该物理机当中各个虚拟机的运行时长,并选择最长运行时长所对应的虚拟机,作为过载物理机集合Pover中第g个物理机的待迁移虚拟机,然后进入步骤005。
[0060] 一般情况下,一个活跃的物理机中会存在多个虚拟机,每一个虚拟机也会执行多个任务。一个任务的运行时长,即虚拟机上由当前时刻开始至虚拟机释放时刻之间的时长,可以由基于历史数据得到的函数获得。这种函数是可以依据的,因为真正的云计算中确实会有一些相同的任务在重复地运行,而单个虚拟机上的任务与运行该任务所需要的数据量一般成线性关系。因此,上述虚拟机上由当前时刻开始至虚拟机释放时刻之间的时长,通过如下步骤获得:
[0061] 步骤b01.根据如下公式:
[0062] t'r=a×Dr+b
[0063] 获得虚拟机上第r个任务的运行时长t'r,然后进入步骤b02;其中,a、b为根据任务类型所设的预设参数,r={1、…、R},R表示虚拟机上任务的数量,Dr表示虚拟机上第r个任务所需的数据量。
[0064] 步骤b02.根据如下公式:
[0065]
[0066] 获得虚拟机上由当前时刻开始至虚拟机释放时刻之间的时长t。
[0067] 并且上述步骤004中,针对过载物理机集合Pover中第g个物理机,选择该物理机中最长运行时长所对应的虚拟机,作为过载物理机集合Pover中第g个物理机的待迁移虚拟机过程中,若该物理机中存在至少两个最长运行时长所分别对应的虚拟机,则随机选择其中一个最长运行时长所对应的虚拟机,作为过载物理机集合Pover中第g个物理机的待迁移虚拟机。
[0068] 步骤005.根据非过载物理机集合P1中各个物理机的CPU使用率,分别获得非过载物理机集合P1中各个物理机、不超过预设CPU使用率上限阈值的剩余CPU使用率Bh,然后进入步骤006,其中,h={1、…、H},H表示非过载物理机集合P1中物理机的个数。
[0069] 步骤006.针对非过载物理机集合P1中各个物理机,分别获得物理机中各个虚拟机由当前时刻开始至虚拟机释放时刻之间的时长,并将最长运行时长作为对应物理机的运行时长,进而分别获得非过载物理机集合P1中各个物理机的运行时长Th,然后进入步骤007。
[0070] 步骤007.针对非过载物理机集合P1中各个物理机,根据Bh与Th的比值,分别获得非过载物理机集合P1中各个物理机的最优选择参数αh,并针对各个最优选择参数αh按从小至大的顺序进行排序,选择第一个最优选择参数所对应的物理机,作为过载物理机集合Pover中第g个物理机中待迁移虚拟机的目的物理机,然后进入步骤008。
[0071] 步骤008.判断过载物理机集合Pover中第g个物理机中待迁移虚拟机的CPU使用率,是否小于其所对应目的物理机不超过预设CPU使用率上限阈值的剩余CPU使用率,是则进入步骤010;否则进入步骤009。
[0072] 步骤009.针对非过载物理机集合P1,选择最优选择参数排序中下一个最优选择参数所对应的物理机,更新作为过载物理机集合Pover中第g个物理机中待迁移虚拟机的目的物理机,并返回步骤008。
[0073] 步骤010.将过载物理机集合Pover中第g个物理机中的待迁移虚拟机,迁移至其对应的目的物理机当中,然后针对N个物理机中,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,并进入步骤011。
[0074] 步骤011.判断过载物理机集合Pover中第g个物理机的CPU使用率是否超过预设CPU使用率上限阈值,是则返回步骤004;否则进入步骤012。
[0075] 步骤012.判断g是否等于G,是则进入步骤013;否则用g的值加1针对g进行更新,并返回步骤004。
[0076] 步骤013.查找N个物理机当中,CPU使用率低于预设CPU使用率下限阈值的各个物理机,构成低载物理机集合Punder,相应N个物理机当中的其余物理机构成非低载物理机集合P2;然后进入步骤014。
[0077] 步骤014.针对低载物理机集合Punder中各个物理机,分别获得物理机中各个虚拟机由当前时刻开始至虚拟机释放时刻之间的时长,并将最长运行时长作为对应物理机的运行时长,进而分别获得低载物理机集合Punder中各个物理机的运行时长,再针对低载物理机集合Punder中各个物理机按运行时长由大至小顺序进行排序,其中,针对低载物理机集合Punder中各个物理机,按运行时长由大至小顺序进行排序过程中,若存在至少两个运行时长相同的物理机时,则针对该各个运行时长相同的物理机之间,按其CPU使用率由大至小的顺序进行排序;进而实现低载物理机集合Punder中各个物理机的排序;然后初始化m=1,lm=1,k=1,同时初始化低载物理机集合Punder中第m个物理机中的待迁移虚拟机集合Wm为空,然后进入步骤015;其中m={1、…、M},M表示低载物理机集合Punder中物理机的个数;lm={1、…、Lm},Lm表示低载物理机集合Punder中第m个物理机中虚拟机的个数;k={1、…、K},K表示非低载物理机集合P2中物理机的个数。
[0078] 步骤015.将低载物理机集合Punder中第m个物理机中的所有虚拟机构成待对比集合Um,然后进入步骤016。
[0079] 步骤016.针对低载物理机集合Punder中第m个物理机,将该物理机的第lm个虚拟机放入Wm集合当中,然后进入步骤017。
[0080] 步骤017.采用步骤005至步骤007的方法,分别获得非低载物理机集合P2中各个物理机的最优选择参数α'n,并针对各个最优选择参数α'n按从小至大的顺序进行排序,选择第k个最优选择参数所对应的物理机,作为低载物理机集合Punder中第m个物理机中第lm个虚拟机的目的物理机,然后进入步骤018。
[0081] 步骤018.判断低载物理机集合Punder中第m个物理机中第lm个虚拟机的CPU使用率,是否小于其所对应目的物理机不超过预设CPU使用率上限阈值的剩余CPU使用率,是则进入步骤020;否则进入步骤019。
[0082] 步骤019.判断k是否等于K,是则将低载物理机集合Punder中第m个物理机中的第lm个虚拟机由Wm集合移出,并进入步骤021;否则用k的值加1针对k进行更新,并针对非低载物理机集合P2,选择最优选择参数排序中第k个最优选择参数所对应的物理机,更新作为低载物理机集合Punder中第m个物理机中第lm个虚拟机的目的物理机,并返回步骤018。
[0083] 步骤020.将低载物理机集合Punder中第m个物理机中第lm个虚拟机,迁移至其对应的目的物理机当中,然后针对N个物理机中,分别获得各个物理机当中各个虚拟机的CPU使用率,进而分别获得各个物理机的CPU使用率,并进入步骤021。
[0084] 步骤021.判断lm是否等于Lm,是则进入步骤022;否则用lm的值加1针对lm进行更新,并返回步骤016。
[0085] 步骤022.判断Wm集合中的元素是否与待对比集合Um中的元素相同,是则进入步骤023;否则针对低载物理机集合Punder中的第m个物理机,回滚步骤015至步骤021对其的所有操作,然后进入步骤023。
[0086] 步骤023.判断m是否等于M,是则云计算平台虚拟机调度方法结束;否则用m的值加1针对m进行更新,并定义lm等于1,再返回步骤015。
[0087] 上述技术方案所设计基于运行时长的云计算平台虚拟机调度方法,能够减少SLA违反次数,清空低载的物理机使之转换为低能耗状态,提高物理机的CPU利用率,同时也能达到减少虚拟机迁移次数,避免不合理的虚拟机迁移的作用,从而做到低能耗和高能效的有益效果。
[0088] 上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。