CN109240805B - 虚拟机分配方法及装置 - Google Patents

虚拟机分配方法及装置 Download PDF

Info

Publication number
CN109240805B
CN109240805B CN201811142747.5A CN201811142747A CN109240805B CN 109240805 B CN109240805 B CN 109240805B CN 201811142747 A CN201811142747 A CN 201811142747A CN 109240805 B CN109240805 B CN 109240805B
Authority
CN
China
Prior art keywords
virtual machine
machine
physical
physical machine
global
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811142747.5A
Other languages
English (en)
Other versions
CN109240805A (zh
Inventor
徐鹏
李振豪
章润
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201811142747.5A priority Critical patent/CN109240805B/zh
Publication of CN109240805A publication Critical patent/CN109240805A/zh
Application granted granted Critical
Publication of CN109240805B publication Critical patent/CN109240805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Agricultural Chemicals And Associated Chemicals (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

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

Claims (10)

1.一种虚拟机分配方法,其特征在于,包括:
根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据所述预设次数中确定的全局不平衡度中的最小值更新所述信息素,重复上述以所述预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新所述信息素的过程,直至最后一轮以所述预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内;
按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机;
其中,所述倾向程度用于表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度,所述全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,所述信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果。
2.根据权利要求1所述的方法,其特征在于,所述根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,包括:
根据所述每一虚拟机的处理器资源需求量与每一物理机的处理器资源剩余量之间的比值、所述每一虚拟机的内存资源需求量与每一物理机的内存资源剩余量之间的比值及所述每一虚拟机的带宽资源需求量与每一物理机的带宽资源剩余量之间的比值,确定所述每一虚拟机分配至每一物理机的倾向程度。
3.根据权利要求1所述的方法,其特征在于,所述根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,包括:
生成随机值;
若所述随机值小于预设选择期望值,则根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机;
若所述随机值大于所述预设选择期望值,则从所有物理机中随机选取可用的物理机作为每一虚拟机对应的目标物理机。
4.根据权利要求1或3所述的方法,其特征在于,所述根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,包括:
根据每一虚拟机分配至每一物理机时的倾向程度和所述倾向程度对应的重要程度参数,以及所述信息素和所述信息素对应的重要程度参数,从所有物理机中选取每一虚拟机对应的目标物理机。
5.根据权利要求1所述的方法,其特征在于,所述确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,包括:
根据第一参数及第二参数,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度;其中,所述第一参数至少包括将每一虚拟机分配至每一虚拟机对应的目标物理机后每一物理机的处理器资源使用率,内存资源使用率及带宽资源使用率;所述第二参数至少包括将每一虚拟机分配至每一虚拟机对应的目标物理机后所有物理机的处理器资源平均使用率,内存资源平均使用率及带宽资源平均使用率。
6.根据权利要求1所述的方法,其特征在于,所述更新所述信息素,包括:
Figure FDA0002534198950000031
其中,ρ为信息素蒸发系数,IBD为每次选取过程后确定的全局不均衡度,Vi为第i个虚拟机,Hj为第j个物理机,∈为虚拟机与物理机的关系为分配,
Figure FDA0002534198950000036
为虚拟机与物理机的关系为未分配,*为相乘,等号右边的lij为本次第i个虚拟机分配到第j个物理机的信息素,等号左边的lij为更新后的第i个虚拟机分配到第j个物理机的信息素;
Figure FDA0002534198950000032
其中,uck为分配后的第k个物理机的处理器使用率,umk为分配后的第k个物理机的内存使用率,ubk为分配后的第k个物理机的带宽使用率,
Figure FDA0002534198950000033
为分配后的所有物理机的处理器平均使用率,
Figure FDA0002534198950000034
为分配后的所有物理机的内存平均使用率,
Figure FDA0002534198950000035
为分配后的所有物理机的带宽平均使用率。
7.根据权利要求2所述的方法,其特征在于,所述根据所述每一虚拟机的处理器资源需求量与每一物理机的处理器资源剩余量之间的比值、所述每一虚拟机的内存资源需求量与每一物理机的内存资源剩余量之间的比值及所述每一虚拟机的带宽资源需求量与每一物理机的带宽资源剩余量之间的比值,确定所述每一虚拟机分配至每一物理机的倾向程度,包括:
Figure FDA0002534198950000041
其中,
Figure FDA0002534198950000042
其中,ηij为第i个虚拟机分配至第j个物理机的倾向程度,
Figure FDA0002534198950000043
为第i个虚拟机的处理器资源需求量与第j个物理机的处理器资源剩余量的比值,
Figure FDA0002534198950000044
为第i个虚拟机的内存资源需求量与第j个物理机的内存资源剩余量的比值,
Figure FDA0002534198950000045
为第i个虚拟机的带宽资源需求量与第j个物理机的带宽资源剩余量的比值。
8.一种虚拟机分配装置,其特征在于,包括:
处理单元,用于根据每一虚拟机分配至每一物理机时的倾向程度及信息素,从所有物理机中选取每一虚拟机对应的目标物理机,确定将所有虚拟机分配至每一虚拟机对应的目标物理机后的全局不平衡度,重复上述为每一虚拟机选取目标物理机、确定全局不平衡度的过程直至预设次数并根据所述预设次数中确定的全局不平衡度中的最小值更新所述信息素,重复上述以所述预设次数为每一虚拟机选取目标物理机以及确定全局不平衡度并更新所述信息素的过程,直至最后一轮以所述预设次数选取过程后确定的全局不平衡度中的最小值处于预设范围内;
分配单元,用于按照最后一轮选取过程中全局不平衡度最小时每一虚拟机对应的目标物理机,将每一虚拟机分配至每一虚拟机对应的目标物理机;
其中,所述倾向程度用于表征每一虚拟机在分配至每一物理机时占用每一物理机的物理资源程度,所述全局不平衡度用于表征所有虚拟机在得到分配后所有物理机的资源利用率与平均利用率之间的离散程度,所述信息素用于表示按照每次选取过程的选取结果将所有虚拟机进行分配后的分配效果。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述虚拟机分配方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述虚拟机分配方法的步骤。
CN201811142747.5A 2018-09-28 2018-09-28 虚拟机分配方法及装置 Active CN109240805B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811142747.5A CN109240805B (zh) 2018-09-28 2018-09-28 虚拟机分配方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811142747.5A CN109240805B (zh) 2018-09-28 2018-09-28 虚拟机分配方法及装置

Publications (2)

Publication Number Publication Date
CN109240805A CN109240805A (zh) 2019-01-18
CN109240805B true CN109240805B (zh) 2020-10-20

Family

ID=65054500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811142747.5A Active CN109240805B (zh) 2018-09-28 2018-09-28 虚拟机分配方法及装置

Country Status (1)

Country Link
CN (1) CN109240805B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111478349B (zh) * 2020-04-16 2021-06-04 国网冀北电力有限公司电力科学研究院 基于用电设备智能网络调控物联网的电力三相平衡策略方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195510B2 (en) * 2011-04-04 2015-11-24 Dell Products L.P. Information handling system application decentralized workload management
US8978030B2 (en) * 2011-04-07 2015-03-10 Infosys Limited Elastic provisioning of resources via distributed virtualization
CN103514046B (zh) * 2013-09-24 2017-04-26 华为技术有限公司 一种虚拟机放置方法及集群管理服务器
CN104063261A (zh) * 2014-04-01 2014-09-24 杭州电子科技大学 一种基于云环境下的多目标优化虚拟机放置方法
CN104317646B (zh) * 2014-10-23 2017-10-24 西安电子科技大学 基于OpenFlow框架下云数据中心虚拟机调度方法
CN104461739B (zh) * 2014-12-15 2017-12-05 中山大学 一种基于cloudsim平台的虚拟机批量部署方法
CN106775944A (zh) * 2016-12-12 2017-05-31 天津工业大学 云平台下基于文化‑多蚁群算法虚拟机整合的方法
CN108108224B (zh) * 2017-12-05 2019-10-01 西南交通大学 基于蚁群优化算法的云数据中心中虚拟机放置方法
CN108182115B (zh) * 2017-12-28 2021-08-31 福州大学 一种云环境下的虚拟机负载均衡方法
CN108469983B (zh) * 2018-04-02 2021-10-19 西南交通大学 一种云环境下的基于粒子群算法的虚拟机部署方法

Also Published As

Publication number Publication date
CN109240805A (zh) 2019-01-18

Similar Documents

Publication Publication Date Title
Shafiq et al. A load balancing algorithm for the data centres to optimize cloud computing applications
CN108009016B (zh) 一种资源负载均衡控制方法及集群调度器
Chowdhury et al. Implementation and performance analysis of various VM placement strategies in CloudSim
Banerjee et al. Development and analysis of a new cloudlet allocation strategy for QoS improvement in cloud
Chien et al. Load balancing algorithm based on estimating finish time of services in cloud computing
CN107688492B (zh) 资源的控制方法、装置和集群资源管理系统
CN107124472A (zh) 负载均衡方法及装置、计算机可读存储介质
US11496413B2 (en) Allocating cloud computing resources in a cloud computing environment based on user predictability
US10680975B2 (en) Method of dynamic resource allocation for public clouds
TW201447763A (zh) 虛擬主機控制系統及方法
Fan et al. Simulated-annealing load balancing for resource allocation in cloud environments
Li et al. An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters
US10956541B2 (en) Dynamic optimization of software license allocation using machine learning-based user clustering
CN112328395B (zh) 一种云资源容量规划方法和系统
CN107562537A (zh) 一种基于万有引力搜索的云计算任务调度方法
Manikandan et al. Virtualized load balancer for hybrid cloud using genetic algorithm
CN109240805B (zh) 虚拟机分配方法及装置
Kumar et al. Application of Min-min and Max-min algorithm for task scheduling in cloud environment under time shared and space shared vm models
CN113641448A (zh) 一种边缘计算容器分配和层下载排序体系结构及其方法
Mala et al. Resource allocation in cloud using enhanced max-min algorithm
CN112346861A (zh) 资源分配方法、装置、设备和超融合系统
CN112000477B (zh) 一种pod中负载均衡的方法、装置、设备及介质
Chen et al. A two-level virtual machine self-reconfiguration mechanism for the cloud computing platforms
Chowdhury et al. Clustered based VM placement strategies
Singhi et al. A load balancing approach for increasing the resource utilization by minimizing the number of active servers

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant