首页> 中国专利> 一种基于cloudsim平台的虚拟机批量部署方法

一种基于cloudsim平台的虚拟机批量部署方法

摘要

本发明公开一种基于cloudsim平台的虚拟机批量部署方法,扩展混合蚁群算法并将其作为虚拟机批量部署的策略,所述混合蚁群算法采用如下公式进行信息素全局更新:

著录项

  • 公开/公告号CN104461739A

    专利类型发明专利

  • 公开/公告日2015-03-25

    原文格式PDF

  • 申请/专利权人 中山大学;

    申请/专利号CN201410767818.6

  • 发明设计人 卞静;李焱;詹宏钊;朱庆勇;

    申请日2014-12-15

  • 分类号G06F9/50;G06N3/00;

  • 代理机构广州粤高专利商标代理有限公司;

  • 代理人邱奕才

  • 地址 510275 广东省广州市新港西路135号

  • 入库时间 2023-12-18 08:05:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-05

    授权

    授权

  • 2015-04-22

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20141215

    实质审查的生效

  • 2015-03-25

    公开

    公开

说明书

技术领域

本发明涉及互联网云计算领域,尤其涉及一种基于cloudsim平台的虚拟机批量部署方法。

背景技术

随着计算机技术的蓬勃发展和互联网技术的飞速进步,云计算作为一种革新性的计算模式应运而生。基础设施即服务是云计算的基础,它的核心是将数据中心的计算资源通过虚拟化技术形成资源池,并按照用户提交任务规格和资源请求进行合理的分配,为用户提供规模可伸缩的实体或虚拟的计算、存储和网络等资源。云数据中心部署了大量虚拟机向用户提供服务。

虚拟机放置问题是云资源调度的一个重要研究问题,虚拟机放置旨在解决虚拟机与物理机之间的映射关系,重点是根据所设定的放置策略,寻找优化的虚拟机放置方案。

贪心算法策略能实现单个虚拟机的最优部署,但是不能使得整个虚拟机群的部署达到最优。而要使得机器更加地负载均衡、功率的消耗更加减少,就必须考虑全局最优的问题。

发明内容

为了解决系统的负载均衡和资源利用率低的问题,本发明采用的技术方案如下:

一种基于cloudsim平台的虚拟机批量部署方法,扩展混合蚁群算法并将其作为虚拟机批量部署的策略,其特征在于,所述混合蚁群算法采用(1)式进行信息素全局更新:

                                                                       (1)

其中rho是信息素残留因子,

是虚拟机j到物理机i的信息素矩阵;其中ants[k].pheromoneDeltaMatrix代表第k只蚂蚁的信息素变化矩阵,antNum是蚂蚁数量。

进一步的,所述混合蚁群算法中加入了禁忌表搜索,所述禁忌表搜索具体为:在蚂蚁为虚拟机分配物理机时,若为虚拟机选择了物理机i则从尚未使用的物理机数组unUsedHosts中去掉被选择的物理机i,若unUsedHosts为空而仍有虚拟机待分配,则往unUsedHosts添加所有的物理机编号。

进一步的,所述混合蚁群算法中加入了物理机性能参数动态更新策略。

进一步的,所述物理机性能参数动态更新策略具体为:若蚂蚁为虚拟机j选择了物理机i,则减去虚拟机j的相应的归一化数组来更新物理机的cpuMips的归一化数组、内存的归一化数组、带宽的归一化数组和硬盘大小的归一化数组。

虚拟机cpuMips的归一化数组vmCpuMipsNormalArray由(2)式和(3)式计算:

当时,   

       (2)

当时,

                               (3)

其中虚拟机cpuMips数组元素vmCpuMipsArray[i]是虚拟机i的mips和虚拟机i的cpu个数的乘积。和分别是虚拟机cpuMips数组元素vmCpuMipsArray中的最大值和最小值。

物理机cpuMips的归一化数组hostCpuMipsNormalArray的计算与此相似。

虚拟机内存的归一化数组vmRamNormalArray由(4)式和(5)式计算:

时,   

                   (4)

当时,

                                      (5)

其中虚拟机Ram数组元素vmRamArray[i]是虚拟机i的Ram。maxVmRam和minVmRam分别是虚拟机Ram数组元素vmRamArray中的最大值和最小值。

物理机内存的归一化数组hostRamNormalArray的计算与此类似。

虚拟机带宽的归一化数组vmBwNormalArray、主机带宽的归一化数组hostBwNormalArray;虚拟机硬盘大小的归一化数组vmSizeNormalArray、主机硬盘大小的归一化数组hostSizeNormalArray的计算与虚拟机内存的归一化数组vmRamNormalArray的计算类似。

在虚拟机的放置过程中,匹配度的值是动态变化的,若虚拟机j将要部署在物理机i上,则考虑物理机i与其它虚拟机的匹配度时,须使用物理机i部署虚拟机j后的性能参数进行计算。

进一步的,物理机i被虚拟机j选择的概率由(6)式计算:

          (6)

其中,alpha和beta为任意值,建议取值为1.0或5.0,

 。

进一步的,每只蚂蚁在建立自己的部署方案之后都对信息素变化矩阵pheromoneDeltaMatrix进行更新。

进一步的,所述信息素变化矩阵pheromoneDeltaMatrix的更新按(7)式进行:

                                 (7)

是整体匹配度。其中

进一步的,所述混合蚁群算法包括以下步骤:

S81初始化:将相关参数传给该蚁群;

S82产生相应数量的蚂蚁,根据初始信息素initPheromone初始化信息素矩阵pheromone,初始迭代次数I=0;

S83 I=I+1;

S84 antNum只蚂蚁执行自己的任务,找出对应的部署方案;

S85 antNum只蚂蚁完成所有虚拟机部署获得antNum个部署方案后,比较计算每个方案的整体的匹配度cost,对比选择本次迭代的最佳部署方案。

S86更新信息素矩阵pheromone;

S87判断I是否大于等于times,若否,返回S83,进行下一次迭代,若是,则执行停止迭代,输出最佳放置方案bestVmToHost,结束程序。

初始化,将相关参数传给该蚁群,包括蚂蚁数量antNum、迭代代数 times、虚拟机数量 vmNum、物理机数量hostNum、启发因子alpha、期望因子beta、信息素残留因子 rho、初始信息素initPheromone、虚拟机cpuMips的归一化数组vmCpuMipsNormalArray、主机cpuMips的归一化数组hostCpuMipsNormalArray、虚拟机内存的归一化数组vmRamNormalArray、主机内存的归一化数组hostRamNormalArray、虚拟机带宽的归一化数组vmBwNormalArray、主机带宽的归一化数组hostBwNormalArray、虚拟机硬盘大小的归一化数组vmSizeNormalArray和主机硬盘大小的归一化数组hostSizeNormalArray。

所有物理机的初始信息素都由一个初值initPheromone来初始化。在最开始,所有物理机的初始信息素都是相同的。

进一步的,所述步骤S84中蚂蚁执行自己的任务找出对应的部署方案包括以下步骤:

S91对该蚂蚁进行初始化:由蚁群将相关参数传给该蚂蚁;

S92计算出cpuMips的匹配度矩阵cpuMipsMatchDegreeMatrix、内存的匹配度矩阵ramMatchDegreeMatrix、带宽的匹配度矩阵bwMatchDegreeMatrix和硬盘大小的匹配度矩阵sizeMatchDegreeMatrix;

S93初始化信息素变化矩阵pheromoneDeltaMatrix为0,尚未使用的物理机数组unUsedHosts,虚拟机到物理机的映射数组;

S94传入虚拟机编号j和信息素矩阵pheromone,检查unUsedHosts数组是否为空,若否则计算unUsedHosts数组中编号为i的物理机被选择的概率,若是则往unUsedHosts数组中添加所有的物理机编号再计算编号为i的物理机被选择的概率;

S95轮盘赌选择一个物理机i;

S96更新物理机i的cpuMips归一化数组、带宽的归一化数组、内存的归一化数组和硬盘大小的归一化数组,从unUsedHosts数组中去掉被选择的物理机i; 

S97检查是否还有虚拟机未分配,若是则返回S92,若否,则该蚂蚁更新信息素变化矩阵pheromoneDeltaMatrix然后停止自己的任务。

初始化时由蚁群将虚拟机的数量vmNum、主机的数量hostNum、启发因子为alpha、期望因子为beta、虚拟机cpuMips的归一化数组vmCpuMipsNormalArray、主机cpuMips的归一化数组hostCpuMipsNormalArray、虚拟机内存的归一化数组vmRamNormalArray、主机内存的归一化数组hostRamNormalArray、虚拟机带宽的归一化数组vmBwNormalArray、主机带宽的归一化数组hostBwNormalArray、

虚拟机硬盘大小的归一化数组vmSizeNormalArray、主机硬盘大小的归一化数组hostSizeNormalArray传给该蚂蚁。

匹配度矩阵的计算方法是用物理机的归一化数组减去虚拟机相应的归一化数组。

轮盘赌选择是选择方法中比较常用的。适应度越大的个体被选中的概率越大,这样对提高解的质量有很大的帮助。

本发明中的轮盘赌选择详细为

首先随机产生一个(0,1)的概率selectProb,令sum = 0.0,

 for    i  = 0  to  hostNum -1

           

            如果,则物理机i被选中

       end for

如果i从0到hostNum,sum都比小,则默认选择数组的第一个元素为被选择的物理机。

进一步的,本发明的一种基于cloudsim平台的虚拟机批量部署方法包括:

cloudsim的datacenterbrokerAco中的createVmsInDatacenter函数检查是否有未创建的虚拟机集合,如果有,则向datacenterAco发送创建虚拟机的消息,传送要创建的虚拟机集合;

datacenterAco中的processVmCreate函数接收传送过来的虚拟机集合,调用虚拟机分配类VmAllocationPolicyAco中的allocateHostForVmList函数,在allocateHostForVmList函数中根据所述混合蚁群算法来为虚拟机集合分配物理机。

本发明的一种基于cloudsim平台的虚拟机批量部署方法采用云仿真平台cloudsim作为试验仿真工具。通过对VmAllocationPolicyAco类中的管理虚拟机放置方法allocateHostForVmList函数进行编写,实现虚拟机放置算法,并同时修改Vm和Datacenter类。

本发明的有益效果:使用本发明的一种基于cloudsim平台的虚拟机批量部署方法,比现有的贪婪算法和基本蚁群算法能明显改善系统的负载均衡和资源利用率。

附图说明

图1是本发明实施例的整体流程图。

图2是本发明实施例的混合蚁群算法流程图。

图3是本发明实施例的物理机性能参数示意图。

图4是本发明实施例的虚拟机性能参数示意图。

图5是本发明实施例的云任务长度示意图。

图6是本发明实施例的混合蚁群算法蚁群参数设置示意图。

图7是使用本发明的虚拟机批量部署方法的效果图。

图8是使用本发明的虚拟机批量部署方法的效果图。

图9是使用cloudsim自带的贪心策略的效果图。

图10是使用cloudsim自带的贪心策略的效果图。

具体实施方式

如图1所示,通过该流程图可以清楚了解本发明一种基于cloudsim平台的虚拟机批量部署方法的 整体流程。

本发明的一种基于cloudsim平台的虚拟机批量部署方法整体流程如下:

cloudsim的datacenterbrokerAco中的createVmsInDatacenter函数检查是否有未创建的虚拟机集合,如果有,则向datacenterAco发送创建虚拟机的消息,传送要创建的虚拟机集合;

datacenterAco中的processVmCreate函数接收传送过来的虚拟机集合,调用虚拟机分配类VmAllocationPolicyAco中的allocateHostForVmList函数,在allocateHostForVmList函数中根据混合蚁群算法来为虚拟机集合分配物理机。

如图2所示,通过该流程图可以清楚了解混合蚁群算法的处理流程。

本发明混合蚁群算法处理流程包括以下步骤:

S81初始化:将相关参数传给该蚁群;

S82产生相应数量的蚂蚁,根据初始信息素initPheromone初始化信息素矩阵pheromone,初始迭代次数I=0;

S83 I=I+1;

S84 antNum只蚂蚁执行自己的任务,找出对应的部署方案;

S85 antNum只蚂蚁完成所有虚拟机部署获得antNum个部署方案后,比较计算每个方案的整体的匹配度cost,对比选择本次迭代的最佳部署方案。

S86更新信息素矩阵pheromone;

S87判断I是否大于等于times,若否,返回S83,进行下一次迭代,若是,则执行停止迭代,输出最佳放置方案bestVmToHost,结束程序。

其中,步骤S84详细包括:

S91对该蚂蚁进行初始化:由蚁群将相关参数传给该蚂蚁;

S92计算出cpuMips的匹配度矩阵cpuMipsMatchDegreeMatrix、内存的匹配度矩阵ramMatchDegreeMatrix、带宽的匹配度矩阵bwMatchDegreeMatrix和硬盘大小的匹配度矩阵sizeMatchDegreeMatrix;

S93初始化信息素变化矩阵pheromoneDeltaMatrix为0,尚未使用的物理机数组unUsedHosts,虚拟机到物理机的映射数组;

S94传入虚拟机编号j和信息素矩阵pheromone,检查unUsedHosts数组是否为空,若否则计算unUsedHosts数组中编号为i的物理机被选择的概率,若是则往unUsedHosts数组中添加所有的物理机编号再计算编号为i的物理机被选择的概率; 

S95轮盘赌选择一个物理机i;

S96更新物理机i的cpuMips归一化数组、带宽的归一化数组、内存的归一化数组和硬盘大小的归一化数组,从unUsedHosts数组中去掉被选择的物理机i; 

S97检查是否还有虚拟机未分配,若是则返回S92,若否,则该蚂蚁更新信息素变化矩阵pheromoneDeltaMatrix然后停止自己的任务。

为了比较本发明的虚拟机批量部署方法与cloudsim自带的贪心策略的效果,本发明进行了计算机仿真。

仿真任务中物理机的数量为5,每个物理机的性能参数如图3所示;虚拟机的数量为10,每个虚拟机的性能参数如图4所示;云任务数量为16,云任务长度如图5所示;蚁群参数设置如图6所示。使用本发明的部署方法的仿真结果如图7和图8所示,使用cloudsim自带的贪心策略的结果如图9和图10所示。

由图7和图8可知,使用本发明的部署方法时,mipsDifference规范化标准差为0.096609175,ramDifference规范化标准差为0.39440534,bwDifference规范化标准差为0.42309853,sizeDifference规范化标准差为0.8940959,总的规范化标准差为1.0692。

由图9和图10可知,使用cloudsim自带的贪心策略时,mipsDifference规范化标准差为0.2228109,ramDifference规范化标准差为0.39440534,bwDifference规范化标准差为0.5784185,sizeDifference规范化标准差为0.9358696,总的规范化标准差为1.1896675。

由上面的对比可知,使用本发明的部署方法比cloudsim本身自带的贪心策略, mipsDifference、ramDifference、bwDifference、 sizeDifference这4项规范化标准差都有不同程度的减小,总的规范化标准差减少了10%,系统的负载均衡和资源利用率得到明显提高。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号