虚拟机分配方法及装置转让专利

申请号 : CN201811142747.5

文献号 : CN109240805B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐鹏李振豪章润

申请人 : 北京邮电大学

摘要 :

本发明实施例提供一种虚拟机分配方法及装置,该方法包括:根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据预设次数中全局不平衡度中的最小值更新信息素,重复上述选取目标物理机以及确定全局不平衡度并更新信息素的过程,直至最后一轮确定的全局不平衡度中的最小值处于预设范围内;按照最后一轮选取过程中全局不平衡度最小的分配方案,将每一虚拟机分配至每一虚拟机对应的目标物理机。该方法实现了物理机的负载均衡,提高了物理机资源利用率。

权利要求 :

1.一种虚拟机分配方法,其特征在于,包括:

根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据所述预设次数中确定的全局不平衡度中的最小值更新所述信息素,重复上述以所述预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新所述信息素的过程,直至最后一轮以所述预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内;

按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机;

其中,所述倾向程度用于表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度,所述全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,所述信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果。

2.根据权利要求1所述的方法,其特征在于,所述根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,包括:根据所述每一虚拟机的处理器资源需求量与每一物理机的处理器资源剩余量之间的比值、所述每一虚拟机的内存资源需求量与每一物理机的内存资源剩余量之间的比值及所述每一虚拟机的带宽资源需求量与每一物理机的带宽资源剩余量之间的比值,确定所述每一虚拟机分配至每一物理机的倾向程度。

3.根据权利要求1所述的方法,其特征在于,所述根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,包括:生成随机值;

若所述随机值小于预设选择期望值,则根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机;

若所述随机值大于所述预设选择期望值,则从所有物理机中随机选取可用的物理机作为每一虚拟机对应的目标物理机。

4.根据权利要求1或3所述的方法,其特征在于,所述根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,包括:根据每一虚拟机分配至每一物理机时的倾向程度和所述倾向程度对应的重要程度参数,以及所述信息素和所述信息素对应的重要程度参数,从所有物理机中选取每一虚拟机对应的目标物理机。

5.根据权利要求1所述的方法,其特征在于,所述确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,包括:根据第一参数及第二参数,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度;其中,所述第一参数至少包括将每一虚拟机分配至每一虚拟机对应的目标物理机后每一物理机的处理器资源使用率,内存资源使用率及带宽资源使用率;所述第二参数至少包括将每一虚拟机分配至每一虚拟机对应的目标物理机后所有物理机的处理器资源平均使用率,内存资源平均使用率及带宽资源平均使用率。

6.根据权利要求1所述的方法,其特征在于,所述更新所述信息素,包括:

其中,ρ为信息素蒸发系数,IBD为每次选取过程后确定的全局不均衡度,Vi为第i个虚拟机,Hj为第j个物理机,∈为虚拟机与物理机的关系为分配,为虚拟机与物理机的关系为未分配,*为相乘,等号右边的lij为本次第i个虚拟机分配到第j个物理机的信息素,等号左边的lij为更新后的第i个虚拟机分配到第j个物理机的信息素;

其中,uck为分配后的第k个物理机的处理器使用率,umk为分配后的第k个物理机的内存使用率,ubk为分配后的第k个物理机的带宽使用率, 为分配后的所有物理机的处理器平均使用率, 为分配后的所有物理机的内存平均使用率, 为分配后的所有物理机的带宽平均使用率。

7.根据权利要求2所述的方法,其特征在于,所述根据所述每一虚拟机的处理器资源需求量与每一物理机的处理器资源剩余量之间的比值、所述每一虚拟机的内存资源需求量与每一物理机的内存资源剩余量之间的比值及所述每一虚拟机的带宽资源需求量与每一物理机的带宽资源剩余量之间的比值,确定所述每一虚拟机分配至每一物理机的倾向程度,包括:其中,

其中,ηij为第i个虚拟机分配至第j个物理机的倾向程度, 为第i个虚拟机的处理器资源需求量与第j个物理机的处理器资源剩余量的比值, 为第i个虚拟机的内存资源需求量与第j个物理机的内存资源剩余量的比值, 为第i个虚拟机的带宽资源需求量与第j个物理机的带宽资源剩余量的比值。

8.一种虚拟机分配装置,其特征在于,包括:

处理单元,用于根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据所述预设次数中确定的全局不平衡度中的最小值更新所述信息素,重复上述以所述预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新所述信息素的过程,直至最后一轮以所述预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内;

分配单元,用于按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机;

其中,所述倾向程度用于表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度,所述全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,所述信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果。

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述虚拟机分配方法的步骤。

10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述虚拟机分配方法的步骤。

说明书 :

虚拟机分配方法及装置

技术领域

[0001] 本发明涉及云计算领域,特别是涉及一种虚拟机分配方法及装置。

背景技术

[0002] 随着信息技术的飞速发展和互联网应用的普及,越来越多的企业和研发工作者对云计算给予了高度关注。由于云计算能使资源实现有效共享,从而云计算已经成为一种极大节约资源成本的典型方法。在云计算领域,其中一大挑战就是如何有效地为虚拟机分配不同类型的物理资源。
[0003] 目前,虚拟机的分配已经得到了研究组的大量关注并产生了许多分配技术。如虚拟机布局和合并技术,根据不同的虚拟机布局算法,通过使用动态阈值进行实时迁移来优化虚拟机布局,又如基于多背包问题的多租户云数据中心分层渐进式资源分配算法。
[0004] 由于不同用户请求的不同资源和物理资源之间存在异构性,从而目前的虚拟机分配方法很难实现负载均衡,进而导致资源利用率低。

发明内容

[0005] 为了解决上述问题,本发明实施例提供一种虚拟机分配方法及装置。
[0006] 第一方面,本发明提供一种虚拟机分配方法,包括:
[0007] 根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据所述预设次数中确定的全局不平衡度中的最小值更新信息素,重复上述以所述预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新信息素的过程,直至最后一轮以所述预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内;
[0008] 按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机;
[0009] 其中,所述倾向程度用于表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度,所述全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,所述信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果。
[0010] 第二方面,本发明提供一种虚拟机分配装置,包括:
[0011] 处理单元,用于根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据所述预设次数中确定的全局不平衡度中的最小值更新信息素,重复上述以所述预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新信息素的过程,直至最后一轮以所述预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内;
[0012] 分配单元,用于按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机;
[0013] 其中,所述倾向程度用于表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度,所述全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,所述信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果。
[0014] 第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现本发明第一方面虚拟机分配方法的步骤。
[0015] 第四方面,本发明提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本发明第一方面虚拟机分配方法的步骤。
[0016] 本实施例提供的虚拟机分配方法,由于信息素是根据上次迭代选取的全局不平衡度最小值和信息素确定的,全局不平衡度反应了选取后的资源利用率情况,从而每次迭代更新后的信息素随着分配后所有物理机的资源利用率与平均利用率之间的离散程度越小而越大。另外,由于每一虚拟机的目标物理机是根据倾向程度和信息素选取的,每一虚拟机选取目标物理机后信息素越大,表明分配对应的物理机后所有物理机资源利用率越均衡。重复迭代分配直至全局不平衡度的最小值处于预设范围内,则将最后一次的结果作为虚拟机的分配结果,从而实现了物理机的负载均衡,进而提高了物理机资源利用率。

附图说明

[0017] 图1为本发明实施例提供的虚拟机分配方法流程图;
[0018] 图2为本发明另一实施例提供的虚拟机分配方法流程图;
[0019] 图3为本发明实施例提供的虚拟机分配装置结构图;
[0020] 图4为本发明实施例提供的一种电子设备的实体结构示意图。

具体实施方式

[0021] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022] 虚拟机是计算机资源的虚拟共享或分区,虚拟机的资源可以包括一个或多个处理器、存储设备和网卡等。每个虚拟机可以运行自己的操作系统,并可以在操作系统上运行一个或多个应用。在云计算环境中,可以基于对计算机资源和/或功能的需求对虚拟机分配具有物理资源的物理机。但是目前的虚拟机分配方法,由于不同用户请求的不同资源和物理资源之间存在异构性,从而难以实现多维资源负载均衡,进而无法实现物理资源利用率的最大化。
[0023] 为解决这一问题,本发明实施例提供一种虚拟机分配方法。该方法可以用于虚拟机分配的场景,也可以用于其他相似的对任务进行分配的场景,本发明实施例对此不做具体限定。结合不同的使用场景,该方法可以由不同的设备执行,本发明实施例对此也不作具体限定。在虚拟机分配物理机的场景中,本发明实施例的执行主体以物理机的中央服务器示例。
[0024] 图1为本发明实施例提供的虚拟机分配方法流程图,如图所示,本发明实施例提供一种虚拟机分配方法,包括:
[0025] 101,根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据预设次数中确定的全局不平衡度中的最小值更新信息素,重复上述以预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新信息素的过程,直至最后一轮以预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内。
[0026] 在执行101之前,需要说明的是,还包括获取初始信息素的过程,本发明实施例不对获取初始信息素的方法作具体限定,包括但不限于:根据历史经验值或仿真实验得到初始信息素。
[0027] 在101中,虚拟机的分配是多次迭代选取完成的,每次迭代均执行预设次数的为所有虚拟机选择物理机(记预设次数为N),但并不实施物理机真实的分配。每次迭代的N次的选择结果中,选取全局不平衡度最小的方案并根据该方案的全局不平衡度更新信息素,并根据新的信息素进行下一次的迭代。预设次数可根据物理机和虚拟机的数量以及资源供需关系按需设置,若为一次,则在每次迭代执行后无需判断全局不平衡的最小值而直接根据该次迭代得到的唯一全局不平衡度更新信息素。
[0028] 倾向程度是用来表征每一虚拟机分配至每一物理机时占用每一物理机的物理资源程度,若占用程度越大则倾向程度越小。全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,离散程度越小表示此次分配的效果越好,即全局不平衡度越小。信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果,信息素每次迭代完成后根据本次迭代的信息素和N次的选取后确定的全局不平衡度的最小值进行更新,更新后的信息素用于下次迭代,作为下次迭代中每一虚拟机选取对应的目标物理机的依据。
[0029] 对一个虚拟机进行选取目标物理机时,根据此虚拟机分配至每个物理机时的倾向程度及信息素选取物理机,本发明实施例不对选取物理机的方法作具体限定,包括但不限于,选取此虚拟机分配到每一物理机的信息素和倾向程度的乘积最大的物理机作为目标物理机。根据上述方法对所有虚拟机均选取目标物理机,并计算全部虚拟机选取完成后的全局不平衡度。重复执行N次对所有虚拟机均选取目标物理机并计算全局不平衡度的过程,选取N次中全局不平衡度的最小值,并根据N次中全局不平衡度的最小值和本次选取所用的信息素进行更新得到新的信息素,则一次迭代结束。根据倾向程度和新的信息素按上述方法重复迭代执行对每一虚拟机选取目标物理机的操作。
[0030] 每次迭代的N次中获得的全局不平衡度的最小值均和全局不平衡度的预设范围进行比较,若一次迭代选取完成后全局不平衡度的最小值处于预设范围内,则停止更新信息素和停止重复对每一虚拟机选取目标物理机。预设范围是预设的全局平衡度能达到的期望,可以是一个具体数值也可以是一个与迭代次数相关的动态范围,如第100次迭代得到的全局不平衡度最小值为a,第120次为0.99a,全局不平衡度的变化范围不大,即重复迭代得到的收益不大,则可认为120次迭代已处于预设范围内。考虑到可能存在多次迭代后,全局不平衡度仍未达到预设范围的情况。可设置最大迭代次数,用于在重复执行到指定次数后结束对每一虚拟机选取目标物理机的操作。
[0031] 102,按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机。
[0032] 在102中,根据最后一次迭代的N次的选取结果,从中选取全局不平衡度最小的方案,根据此方案对应的每一虚拟机选取目标物理机的结果,将每一虚拟机分配至对应的目标物理机,即实施真正的物理机分配,分配操作完成。
[0033] 本实施例提供的虚拟机分配方法,由于信息素是根据上轮N次迭代选取的全局不平衡度最小值和信息素确定的,全局不平衡度反应了选取后的资源利用率情况,从而每次迭代更新后的信息素随着分配后所有物理机的资源利用率与平均利用率之间的离散程度越小而越大。另外,由于每一虚拟机的目标物理机是根据倾向程度和信息素选取的,每一虚拟机选取目标物理机后信息素越大,表明分配对应的物理机后所有物理机资源利用率越均衡。重复迭代分配直至全局不平衡度的最小值处于预设范围内,则将最后一次的结果作为虚拟机的分配结果,从而实现了物理机的负载均衡,进而提高了物理机资源利用率。
[0034] 基于上述实施例的内容,作为一种可选实施例,本发明实施例不对根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机中倾向程度的获取方法作具体限定,包括但不限于:
[0035] 根据每一虚拟机的处理器资源需求量与每一物理机的处理器资源剩余量之间的比值、每一虚拟机的内存资源需求量与每一物理机的内存资源剩余量之间的比值及每一虚拟机的带宽资源需求量与每一物理机的带宽资源剩余量之间的比值,确定每一虚拟机分配至每一物理机的倾向程度。
[0036] 倾向程度是用来表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度。因此,可以根据虚拟机处理器资源、内存资源及带宽资源的需求量与物理机处理器资源、内存资源及带宽资源的剩余量的比值来获得。通过虚拟机中这三种资源的需求量与物理机中这三种资源的剩余量对应的比值来反映倾向程度,即需求量与剩余量的比例越小说明可用程度越大,对应的倾向程度越大。
[0037] 基于上述实施例的内容,作为一种可选实施例,本发明实施例不对倾向程度具体计算方法作具体限定,包括但不限于根据下述公式计算:
[0038]
[0039]
[0040] 其中,ηij为第i个虚拟机分配至第j个物理机的倾向程度, 为第i个虚拟机的处理器资源需求量与第j个物理机的处理器资源剩余量的比值, 为第i个虚拟机的内存资源需求量与第j个物理机的内存资源剩余量的比值, 为第i个虚拟机的带宽资源需求量与第j个物理机的带宽资源剩余量的比值。
[0041] 由上述公式可见,三种资源需求量与剩余量的比值综合值越小倾向程度就越大,表示更倾向于将虚拟机放置到物理机上。
[0042] 考虑到为避免上述虚拟机分配过程陷入局部最优以及过早收敛的问题,基于上述实施例的内容,作为一种可选实施例,本发明实施例不对根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机的过程作具体限定,包括但不限于:
[0043] 生成随机值;若随机值小于预设选择期望值,则根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机;若随机值大于预设选择期望值,则从所有物理机中随机选取可用的物理机作为每一虚拟机对应的目标物理机。
[0044] 在本实施例中,引入预设选择期望值的概念,使得每次目标物理机的选择不一定总偏向信息素最大的物理机。本发明实施例不对预设选择期望的设置方式作具体限定,包括但不限于将预设选择期望值设置为一个0-1之间的实数,如预设选择期望值设置为0.9。每次从所有物理机中选取每一虚拟机对应的目标物理机时,生成一个0-1的随机值。若随机值小于预设选择期望值,则根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机。若随机值大于预设选择期望值,则从所有物理机中随机选取可用的物理机作为每一虚拟机对应的目标物理机。
[0045] 本发明实施例提供的虚拟机分配方法,通过设置预设随机值,避免因部分物理机由于信息素每次迭代减小导致未分配虚拟机而使整个虚拟机分配过程陷入局部最优及过早收敛的问题。
[0046] 基于上述实施例的内容,作为一种可选实施例,本发明实施例不对根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机的方法作具体限定,包括但不限于:
[0047] 根据每一虚拟机分配至每一物理机时的倾向程度和倾向程度对应的重要程度参数,以及信息素和信息素对应的重要程度参数,从所有物理机中选取每一虚拟机对应的目标物理机。
[0048] 本实施例中,为了区别和调整倾向程度和信息素在每一虚拟机选择物理机时的比重关系,引入每一虚拟机分配至每一物理机时的倾向程度对应的重要程度参数以及信息素对应的重要程度参数。本发明实施例不对倾向程度对应的重要程度参数以及信息素对应的重要程度参数的表现方式作具体限定,包括但不限于倾向程度和信息素均以各自的重要程度参数为指数来实现比重关系的调整。结合上述实施例,本发明实施例不对根据每一虚拟机分配至每一物理机时的倾向程度和倾向程度对应的重要程度参数,以及信息素和信息素对应的重要程度参数,从所有物理机中选取每一虚拟机对应的目标物理机的方法作具体限定,包括但不限于,根据如下公式选取:
[0049]
[0050] 其中,pij为第i个虚拟机分配至第j个物理机的概率,lij为第i个虚拟机分配至第j个物理机的信息素,ηij为第i个虚拟机分配至第j个物理机的倾向程度,ιik为第i个虚拟机分配至第k个物理机的信息素,ηik为第i个虚拟机分配至第k个物理机的倾向程度,k为1到n的自然数,α为信息素对应的重要程度参数,β为信息素对应的重要程度参数。
[0051] 在选取每一虚拟机对应的目标物理机时,选取pij最大的物理机作为目标物理机。如果pij为0,则表示物理机上的资源无法再分配虚拟机。
[0052] 基于上述实施例的内容,作为一种可选实施例,本发明实施例不对确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度的方法作具体限定,包括但不限于:
[0053] 根据第一参数及第二参数,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度;其中,第一参数至少包括将每一虚拟机分配至每一虚拟机对应的目标物理机后每一物理机的处理器资源使用率,内存资源使用率及带宽资源使用率;第二参数至少包括将每一虚拟机分配至每一虚拟机对应的目标物理机后所有物理机的处理器资源使用率,内存资源使用率及带宽资源使用率。
[0054] 全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度。因此,第一参数至少包括将每一虚拟机分配至每一虚拟机对应的目标物理机后每一物理机的处理器资源使用率,内存资源使用率及带宽资源使用率。根据第一参数中每一物理机的处理器资源使用率,内存资源使用率及带宽资源使用率,计算所有物理机的处理器资源平均使用率,内存资源平均使用率及带宽资源平均使用率作为第二参数。根据第一参数和第二参数,计算虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,进而得出全局不平衡度。
[0055] 基于上述实施例的内容,作为一种可选实施例,本发明实施例不对根据第一参数及第二参数,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度的方法作具体限定,包括但不限于,根据如下公式确定:
[0056]
[0057] 其中,IBD为分配后的全局不平衡度,uck为分配后的第k个物理机的处理器使用率,umk为分配后的第k个物理机的内存使用率,ubk为分配后的第k个物理机的带宽使用率,为分配后的所有物理机的处理器平均使用率, 为分配后的所有物理机的内存平均使用率, 为分配后的所有物理机的带宽平均使用率。
[0058] 基于上述实施例的内容,作为一种可选实施例,本发明实施例不对信息素的更新方法作具体限定,包括但不限于根据如下公式计算:
[0059]
[0060] 其中,ρ为信息素蒸发系数,IBD为每次选取过程后确定的全局不均衡度,Vi为第i个虚拟机,Hj为第j个物理机,∈为虚拟机与物理机的关系为分配,为虚拟机与物理机的关系为未分配,*为相乘,等号右边的lij为本次第i个虚拟机分配到第j个物理机的信息素,等号左边的lij为更新后的第i个虚拟机分配到第j个物理机的信息素。
[0061] 基于上述实施例的基础,图2为本发明另一实施例提供的虚拟机分配方法流程图,如图2所示,包括如下步骤:
[0062] 201,初始化信息素、虚拟机计数器及迭代次数i(如i=1);
[0063] 202,将迭代次数i自增用于下次迭代;
[0064] 203,判断迭代次数是否小于等于最大迭代次数,若大于,则分配操作结束,将最后一次迭代的结果中全局不平衡度最小时的分配方案作为分配结果将每个虚拟机分配至每个物理机;若小于等于,则进行下一步判断;
[0065] 204,判断本次迭代的分配执行次数是否超过了预设次数N的分配次数,若是,则回到202进行下一次迭代,并将次数计时器置为1;若否,则执行虚拟机的分配操作,并将次数计数器加1;
[0066] 205,判断所有虚拟机是否都分配完成,若是,则计算全局不平衡度,并回到204;若否,则分配当前虚拟机;
[0067] 206,移至下一个虚拟机,回到205。
[0068] 上述步骤表明了本实施例提供的虚拟机分配方法是多次迭代的过程,每次迭代都会尝试更新最优解,直至达到预设的迭代次数i。可将每次迭代得到的全局不均衡度的最小值达到预设范围作为跳出循环的可选条件,则整个虚拟机分配过程结束。根据最后一次迭代中全局不平衡度最小的分配方案,将每一虚拟机分配至对应的目标物理机,实施对虚拟机分配物理机的操作,则分配操作完成。
[0069] 图3为本发明实施例提供的虚拟机分配装置结构图,如图3所示,该虚拟机分配装置包括:处理单元301和分配单元302。其中,处理单元301用于根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据预设次数中确定的全局不平衡度中的最小值更新信息素,重复上述以预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新信息素的过程,直至最后一轮以预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内;分配单元302用于按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机;其中,倾向程度用于表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度,全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果。
[0070] 在本实施例中,虚拟机的分配是多次迭代选取完成的,每次迭代均执行预设次数的为所有虚拟机选择物理机(记预设次数为N),但并不实施物理机真实的分配。对一个虚拟机进行选取目标物理机时,处理单元301根据此虚拟机分配至每个物理机时的倾向程度及信息素选取物理机,本发明实施例不对选取物理机的方法作具体限定,包括但不限于:选取此虚拟机分配到每一物理机的信息素和倾向程度的乘积最大的物理机作为目标物理机。根据上述方法对所有虚拟机均选取目标物理机,并计算全部虚拟机选取完成后的全局不平衡度。重复执行N次对所有虚拟机均选取目标物理机并计算全局不平衡度的过程,选取N次中全局不平衡度的最小值,并根据N次中全局不平衡度的最小值和本次选取所用的信息素更新得到新的信息素,则一次迭代结束。根据倾向程度和新的信息素按上述方法重复迭代执行对每一虚拟机选取目标物理机的操作。
[0071] 每次迭代的N次中获得的全局不平衡度的最小值均和全局不平衡度的预设范围进行比较,若一次迭代选取完成后全局不平衡度的最小值处于预设范围内,则停止更新信息素和停止重复对每一虚拟机选取目标物理机。预设范围是预设的全局平衡度能达到的期望,可以是一个具体数值也可以是一个与迭代次数相关的动态范围。考虑到可能存在多次迭代后,全局不平衡度仍未达到预设范围的情况。可设置最大迭代次数,用于在重复执行到指定次数后结束对每一虚拟机选取目标物理机的操作。
[0072] 分配单元302根据最后一次迭代的N次的选取结果,从中选取全局不平衡度最小的方案,根据此方案对应的每一虚拟机选取目标物理机的结果,将每一虚拟机分配至对应的目标物理机,即实施真正的物理机分配,分配操作完成。
[0073] 本发明实施例提供的虚拟机分配装置,由于信息素是根据上次迭代选取的全局不平衡度最小值和信息素确定的,全局不平衡度反应了选取后的资源利用率情况,从而每次迭代更新后的信息素随着分配后所有物理机的资源利用率与平均利用率之间的离散程度越小而越大。另外,由于每一虚拟机的目标物理机是根据倾向程度和信息素选取的,每一虚拟机选取目标物理机后信息素越大,表明分配对应的物理机后所有物理机资源利用率越均衡。重复迭代分配直至全局不平衡度的最小值处于预设范围内,则将最后一次的结果作为虚拟机的分配结果,从而实现了物理机的负载均衡,进而提高了物理机资源利用率。
[0074] 本发明实施例提供的装置实施例是为了实现上述各方法实施例的,具体流程和详细内容请参照上述方法实施例,此处不再赘述。
[0075] 图4为本发明实施例提供的一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(Communications Interface)402、存储器(memory)403和总线404,其中,处理器401,通信接口402,存储器403通过总线404完成相互间的通信。通信接口402可以用于电子设备的信息传输。处理器401可以调用存储器403中的逻辑指令,以执行包括如下的方法:根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据预设次数中确定的全局不平衡度中的最小值更新信息素,重复上述以预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新信息素的过程,直至最后一轮以预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内;按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机;其中,倾向程度用于表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度,全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果。
[0076] 此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明上述各方法实施例的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0077] 本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述实施例所提供的虚拟机分配方法,例如包括:根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据预设次数中确定的全局不平衡度中的最小值更新信息素,重复上述以预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新信息素的过程,直至最后一轮以预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内;按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机;其中,倾向程度用于表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度,全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果。
[0078] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。