CN117931378B - 虚拟机迁移方法及装置 - Google Patents
虚拟机迁移方法及装置 Download PDFInfo
- Publication number
- CN117931378B CN117931378B CN202410324634.6A CN202410324634A CN117931378B CN 117931378 B CN117931378 B CN 117931378B CN 202410324634 A CN202410324634 A CN 202410324634A CN 117931378 B CN117931378 B CN 117931378B
- Authority
- CN
- China
- Prior art keywords
- servers
- virtual machine
- server
- list
- virtual machines
- 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
Links
- 238000013508 migration Methods 0.000 title claims abstract description 68
- 230000005012 migration Effects 0.000 title claims abstract description 68
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000002922 simulated annealing Methods 0.000 claims abstract description 80
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本申请涉及计算机技术领域,提供一种虚拟机迁移方法及装置。所述方法包括:根据模拟退火算法将虚拟机放置于服务器中;根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移。本申请提供的虚拟机迁移方法及装置可以在多种不同资源规格,尤其是资源规格相差较大的服务器上采用资源利用率优化方案进行虚拟机的放置和迁移,有效提高各服务器的资源利用率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种虚拟机迁移方法及装置。
背景技术
服务器通常拥有强大的处理能力和大量的存储空间,通过虚拟化技术,可以将这些资源有效地分割和利用,使得多个虚拟机能够在同一台服务器上运行,从而提高了资源的利用率。
传统的虚拟机迁移方法,只考虑服务器是相同资源规格的情况,即每台服务器有相同的核数和相同的总内存。当服务器规格不同,尤其是规格相差较大时,通常以资源最小的服务器的规格作为所有服务器的规格,然后按照该最小规格为虚拟机分配资源进行迁移,这就导致其他比最小规格的服务器资源多很多的服务器无法将多出的资源分配至虚拟机,造成服务器资源的浪费,即降低了服务器资源的利用率。
发明内容
本申请实施例提供一种虚拟机迁移方法及装置,用以解决传统的虚拟机迁移方法按照所有服务器的资源最小规格为虚拟机分配资源进行迁移,导致其他比最小规格的服务器资源多很多的服务器无法将多出的资源分配至虚拟机,造成服务器资源的浪费,即降低了服务器资源的利用率的技术问题。
第一方面,本申请实施例提供一种虚拟机迁移方法,包括:
根据模拟退火算法将虚拟机放置于服务器中;
根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移。
在一个实施例中,所述根据模拟退火算法将虚拟机放置于服务器中,包括:
若多个服务器的当前模拟退火温度均大于第一终止温度,则随机打乱所述多个服务器的位置标识列表,并将打乱后的所述多个服务器的位置标识列表的前两个位置标识进行交换,得到所述多个服务器的新位置标识列表;
若多个虚拟机的当前模拟退火温度均大于第二终止温度,则随机打乱所述多个虚拟机的位置标识列表,并将打乱后的所述多个虚拟机的位置标识列表的前两个位置标识进行交换,得到所述多个虚拟机的新位置标识列表;
根据所述多个服务器的新位置标识列表中位置标识顺序和所述多个虚拟机的新位置标识列表中位置标识顺序,将所述虚拟机放置于所述服务器中;
所述第一终止温度是所述多个服务器共同的模拟退火终止温度,所述第二终止温度是所述多个虚拟机共同的模拟退火终止温度。
在一个实施例中,所述根据所述多个服务器的新位置标识列表中位置标识顺序和所述多个虚拟机的新位置标识列表中位置标识顺序,将所述虚拟机放置于所述服务器中,包括:
判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机;
若是,则将所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中第一个位置标识对应的服务器中;
若否,则将所述多个虚拟机的当前模拟退火温度调低,将所述多个服务器的新位置标识列表中第二个位置标识作为所述多个服务器的新位置标识列表中第一个位置标识,返回判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机的步骤,直至所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中任一位置标识对应的服务器中。
在一个实施例中,所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中任一位置标识对应的服务器中之后,包括:
将所述多个服务器的当前模拟退火温度调低,并将所述多个虚拟机的新位置标识列表中第二个位置标识作为所述多个虚拟机的新位置标识列表中第一个位置标识,返回判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机的步骤,直至所述多个虚拟机的新位置标识列表中所有位置标识对应的虚拟机均放置于所述多个服务器的新位置标识列表中位置标识对应的服务器中,或所述多个服务器的当前模拟退火温度小于或等于所述第一终止温度,或所述多个虚拟机的当前模拟退火温度小于或等于所述第二终止温度。
在一个实施例中,所述根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移,包括:
对多个服务器按照当前资源利用率由小到大排序,得到目标服务器列表;
将所述目标服务器列表的第一个放置有虚拟机的服务器中的虚拟机迁出,得到待放置虚拟机;
根据所述模拟退火算法将所述待放置虚拟机迁入所述目标服务器列表中其他放置有虚拟机的服务器中后,返回对所述多个服务器按照当前资源利用率由小到大排序,得到目标服务器列表的步骤,直至所有待放置虚拟机均根据所述模拟退火算法迁入所述目标服务器列表中其他放置有虚拟机的服务器中。
在一个实施例中,所述所有待放置虚拟机均根据所述模拟退火算法迁入所述目标服务器列表中其他放置有虚拟机的服务器中之后,包括:
更新所述待放置虚拟机的服务器信息,并记录所述待放置虚拟机的迁出服务器ID和迁入服务器ID。
第二方面,本申请实施例提供一种虚拟机迁移装置,包括:
虚拟机放置模块,用于:根据模拟退火算法将虚拟机放置于服务器中;
虚拟机迁移模块,用于:根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面所述的虚拟机迁移方法的步骤。
第四方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的虚拟机迁移方法的步骤。
第五方面,本申请实施例提供一种非暂态计算机可读存储介质,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的虚拟机迁移方法的步骤。
本申请提供的虚拟机迁移方法及装置,根据模拟退火算法将虚拟机放置于服务器中,根据服务器的当前资源利用率对服务器中的虚拟机进行迁移。在将虚拟机放置于服务器时,能够利用模拟退火算法,不断在解决方案空间中随机寻找服务器为虚拟机分配资源的全局最优解,并最终趋向服务器资源利用率的全局最优,从而提高服务器资源的利用率,虚拟机放置完成后,又将服务器资源利用率作为主要考虑因素进行虚拟机迁移,即根据实际的资源利用率对虚拟机的放置进行进一步调整,以进一步提高服务器的资源利用率。综上所述,本申请能够在多种不同资源规格,尤其是资源规格相差较大的服务器上采用资源利用率优化方案进行虚拟机的放置和迁移,有效提高各服务器的资源利用率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的虚拟机迁移方法的流程示意图之一;
图2是本申请实施例提供的虚拟机迁移方法的流程示意图之二;
图3是本申请实施例提供的虚拟机迁移方法的流程示意图之三;
图4是本申请实施例提供的虚拟机迁移方法中虚拟机迁入迁出示意图;
图5是本申请实施例提供的虚拟机迁移装置的结构示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请的描述中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
图1是本申请实施例提供的虚拟机迁移方法的流程示意图之一。参照图1,本申请实施例提供一种虚拟机迁移方法,可以包括:
101、根据模拟退火算法将虚拟机放置于服务器中;
102、根据服务器的当前资源利用率对服务器中的虚拟机进行迁移。
步骤101之前,可以初始化虚拟机列表和服务器列表,例如有n个虚拟机,其列表可以是list_vms=[vm_1,vm_2,...,vm_n],有m个服务器,其列表可以是list_device=[device_1,device_2,...,device_m]。其中,虚拟机列表中的每个元素都是一个实例化对象,对象属性包括虚拟机名称、虚拟机核数和虚拟机内存;服务器列表中的每个元素也是实例化对象,对象属性包括服务器名称、服务器总CPU、服务器剩余CPU、服务器总内存和服务器剩余内存。
另外,还可以初始化服务器和虚拟机的模拟退火参数,例如服务器的模拟退火初始温度100.0、服务器的模拟退火终止温度1.0、服务器的温度下降系数0.95、虚拟机的模拟退火初始温度100.0、虚拟机的模拟退火终止温度1.0和虚拟机的温度下降系数0.95。
另外,还可以初始化预设的服务器数量和预设的虚拟机数量,初始时,可以按照资源利用率最低的情况,将预设的服务器数量和预设的虚拟机数量设置为相等,即预设一个服务器只放置一个虚拟机。
另外,还可以初始化服务器和虚拟机的位置标识列表,例如服务器的位置标识列表可以是dice_device=[1,2,...,m],该列表中的每个元素与服务器列表中的每个元素的位置依次一一对应,虚拟机的位置标识列表可以是dice_vm=[1,2,...,n],该列表中的每个元素与虚拟机列表中的每个元素的位置依次一一对应。
本实施例提供的虚拟机迁移方法,根据模拟退火算法将虚拟机放置于服务器中,根据服务器的当前资源利用率对服务器中的虚拟机进行迁移。在将虚拟机放置于服务器时,能够利用模拟退火算法,不断在解决方案空间中随机寻找服务器为虚拟机分配资源的全局最优解,并最终趋向服务器资源利用率的全局最优,从而提高服务器资源的利用率,虚拟机放置完成后,又将服务器资源利用率作为主要考虑因素进行虚拟机迁移,即根据实际的资源利用率对虚拟机的放置进行进一步调整,以进一步提高服务器的资源利用率。综上所述,本实施例能够在多种不同资源规格,尤其是资源规格相差较大的服务器上采用资源利用率优化方案进行虚拟机的放置和迁移,有效提高各服务器的资源利用率。
图2是本申请实施例提供的虚拟机迁移方法的流程示意图之二。参照图2,在一个实施例中,根据模拟退火算法将虚拟机放置于服务器中,可以包括:
201、若多个服务器的当前模拟退火温度均大于第一终止温度,则随机打乱多个服务器的位置标识列表,并将打乱后的多个服务器的位置标识列表的前两个位置标识进行交换,得到多个服务器的新位置标识列表;
202、若多个虚拟机的当前模拟退火温度均大于第二终止温度,则随机打乱多个虚拟机的位置标识列表,并将打乱后的多个虚拟机的位置标识列表的前两个位置标识进行交换,得到多个虚拟机的新位置标识列表;
203、判断多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机;
204、若是,则将多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于多个服务器的新位置标识列表中第一个位置标识对应的服务器中;
205、若否,则将多个虚拟机的当前模拟退火温度调低,将多个服务器的新位置标识列表中第二个位置标识作为多个服务器的新位置标识列表中第一个位置标识,返回步骤203;
206、若多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于多个服务器的新位置标识列表中任一位置标识对应的服务器中,则将多个服务器的当前模拟退火温度调低,并将多个虚拟机的新位置标识列表中第二个位置标识作为多个虚拟机的新位置标识列表中第一个位置标识,返回步骤203;
207、若多个虚拟机的新位置标识列表中所有位置标识对应的虚拟机均放置于多个服务器的新位置标识列表中位置标识对应的服务器中,或多个服务器的当前模拟退火温度小于或等于第一终止温度,或多个虚拟机的当前模拟退火温度小于或等于第二终止温度,则停止流程,输出放置方案。
第一终止温度是多个服务器共同的模拟退火终止温度,第二终止温度是多个虚拟机共同的模拟退火终止温度。
本实施例在放置服务器之前,先随机打乱服务器和虚拟机的位置标识列表,并进一步交换服务器的位置标识列表的前两位以及虚拟机的标识列表的前两位,以增加随机性,根据服务器的新位置标识列表对服务器列表的映射来顺序选取服务器时,相当于在实际并未对服务器列表进行随机打乱的情况下按照随机打乱后的顺序选取服务器,同理,根据虚拟机的新位置标识列表对服务器列表的映射来顺序选取虚拟机时,相当于在实际并未对虚拟机列表进行随机打乱的情况下按照随机打乱后的顺序选取虚拟机,在保证服务器列表和虚拟机列表的稳定性的同时,实现了对服务器和虚拟机的随机选取。
本实施例中,先将虚拟机的新位置标识列表中第一个位置标识对应的虚拟机按照服务器的新位置标识列表中位置标识的顺序依次尝试放置于对应的服务器中,即判断服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足够,若足够,则将该虚拟机放入,若不足,则判断服务器的新位置标识列表中第二个位置标识对应的服务器的资源是否足够,若足够,则将该虚拟机放入,若不足,则判断服务器的新位置标识列表中第三个位置标识对应的服务器的资源是否足够,以此类推,直至该虚拟机放置于某一服务器中,再将虚拟机的新位置标识列表中第二个位置标识对应的虚拟机按照同样的方法放置于某一服务器中。在各虚拟机不断寻找可放置的服务器的过程中,通过不断调低服务器和虚拟机的模拟退火温度,使得资源匹配过程趋于稳定,直至服务器或虚拟机的模拟退火温度小于或等于对应的模拟退火终止温度,或全部虚拟机均放置完毕,则停止流程,输出放置方案。由于采用了随机打乱、遍历寻优、放置结果控制以及模拟退火温度控制,能够使得每个虚拟机与每个服务器之间平稳地达到最佳的资源匹配,从而提高服务器的资源利用率。
需要说明的是,若在各虚拟机不断寻找可放置的服务器的过程中,任一虚拟机无法放置于所有的服务器中,即所有服务器的资源均不足以分配给该虚拟机时,放弃该虚拟机的放置,选择虚拟机的新位置标识列表中的下一个位置标识对应的虚拟机进行服务器匹配,并输出之前虚拟机成功放置的放置方案。
另外,若所有虚拟机全部完成放置时,实际用于放置虚拟机的服务器数量大于预设的服务器数量,则可以调整预设的服务器数量为实际使用数量,从而节约服务器资源,进一步提高服务器的资源利用率。
图3是本申请实施例提供的虚拟机迁移方法的流程示意图之三;
图4是本申请实施例提供的虚拟机迁移方法中虚拟机迁入迁出示意图。
参照图3,在一个实施例中,根据服务器的当前资源利用率对服务器中的虚拟机进行迁移,可以包括:
301、对多个服务器按照当前资源利用率由小到大排序,得到目标服务器列表;
302、将目标服务器列表的第一个放置有虚拟机的服务器中的虚拟机迁出,得到待放置虚拟机;
303、根据模拟退火算法将待放置虚拟机迁入目标服务器列表中其他放置有虚拟机的服务器中后,返回步骤301;
304、若所有待放置虚拟机均根据模拟退火算法迁入目标服务器列表中其他放置有虚拟机的服务器中,则停止流程,输出迁移方案。
资源利用率可以是CPU利用率、内存利用率等,将多个服务器按照当前资源利用率由小到大排序,即排序越靠前,说明当前资源利用率越低,是造成资源浪费的主要因素,因此,可以从当前资源利用率最低的服务器开始,迁出其中的所有虚拟机,并尝试将迁出的虚拟机迁入其他已经放置了虚拟机但还有剩余资源的服务器中,以停止清空的服务器的使用,并最大化其他虚拟机的使用,从而减少资源浪费,提高服务器资源的利用率。
每次迁出的虚拟机可以看做是初始化的虚拟机列表中的虚拟机,除了被清空的服务器之外,已经放置了虚拟机但还有剩余资源的服务器中,其剩余资源可以看做是特定服务器的资源,则该特定服务器可以看做是初始化的服务器列表中的服务器,则可以利用前述的模拟退火算法将每次迁出的虚拟机依次迁入除了被清空的服务器之外,已经放置了虚拟机但还有剩余资源的服务器中,直到所有迁出的虚拟机均完成迁入。
进一步地,在所有迁出的虚拟机均完成迁入之后,还可以更新这些虚拟机的服务器信息,并记录其迁出服务器ID和迁入服务器ID,以追踪各虚拟机的迁移路径。
需要说明的是,若在各迁出的虚拟机不断寻找可迁入的服务器的过程中,任一虚拟机无法迁入除了被清空的服务器之外,所有已经放置了虚拟机但还有剩余资源的服务器中时,将该虚拟机放回原服务器中,并选择下一个迁出的虚拟机进行服务器匹配,并输出之前虚拟机成功迁入的迁移方案。
另外,由于每从服务器迁出一次虚拟机并对这些迁出的虚拟机完成一次迁入,均会导致各服务器的资源利用率发生变化,因此在进行下一次虚拟机迁出前,需要再根据各服务器的当前资源利用率重新进行由小到大排序。
参照图4,服务器指标包括服务器ID、服务器CPU和服务器内存,服务器1中放置有虚拟机1、虚拟机2和虚拟机3,服务器2中放置有虚拟机4和虚拟机5,服务器3中放置有虚拟机6,服务器4中并未放置任何虚拟机。根据各服务器的资源使用情况,按照本实施例方法,可以确定需要迁出虚拟机的服务器有服务器1和服务器2,可以迁入虚拟机的服务器有服务器3和服务器4,但由于服务器4原本并未放置任何虚拟机,因此服务器4不参与虚拟机的迁入,而是直接停止使用,最终从服务器1中迁出虚拟机2,从服务器2中迁出虚拟机4,并将虚拟机2和4迁入服务器3中。虚拟机1、虚拟机3、虚拟机5和虚拟机6均未找到其他资源充足的服务器,因而重新放回各自原本的服务器中。
本实施例在虚拟机放置于服务器之后,再结合服务器的资源利用率和模拟退火算法,对服务器已分配的资源进行进一步的优化,停止资源利用率低的服务器的使用,并提高其他尚有剩余资源的服务器的资源利用率,从而提高服务器整体的资源利用率。
下面对本申请实施例提供的虚拟机迁移装置进行描述,下文描述的虚拟机迁移装置与上文描述的虚拟机迁移方法可相互对应参照。
图5是本申请实施例提供的虚拟机迁移装置的结构示意图。参照图5,本申请实施例提供一种虚拟机迁移装置,可以包括:
虚拟机放置模块501,用于:根据模拟退火算法将虚拟机放置于服务器中;
虚拟机迁移模块502,用于:根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移。
本实施例提供的虚拟机迁移装置,根据模拟退火算法将虚拟机放置于服务器中,根据服务器的当前资源利用率对服务器中的虚拟机进行迁移。在将虚拟机放置于服务器时,能够利用模拟退火算法,不断在解决方案空间中随机寻找服务器为虚拟机分配资源的全局最优解,并最终趋向服务器资源利用率的全局最优,从而提高服务器资源的利用率,虚拟机放置完成后,又将服务器资源利用率作为主要考虑因素进行虚拟机迁移,即根据实际的资源利用率对虚拟机的放置进行进一步调整,以进一步提高服务器的资源利用率。综上所述,本实施例能够在多种不同资源规格,尤其是资源规格相差较大的服务器上采用资源利用率优化方案进行虚拟机的放置和迁移,有效提高各服务器的资源利用率。
在一个实施例中,虚拟机放置模块501,具体用于:
若多个服务器的当前模拟退火温度均大于第一终止温度,则随机打乱所述多个服务器的位置标识列表,并将打乱后的所述多个服务器的位置标识列表的前两个位置标识进行交换,得到所述多个服务器的新位置标识列表;
若多个虚拟机的当前模拟退火温度均大于第二终止温度,则随机打乱所述多个虚拟机的位置标识列表,并将打乱后的所述多个虚拟机的位置标识列表的前两个位置标识进行交换,得到所述多个虚拟机的新位置标识列表;
根据所述多个服务器的新位置标识列表中位置标识顺序和所述多个虚拟机的新位置标识列表中位置标识顺序,将所述虚拟机放置于所述服务器中;
所述第一终止温度是所述多个服务器共同的模拟退火终止温度,所述第二终止温度是所述多个虚拟机共同的模拟退火终止温度。
在一个实施例中,虚拟机放置模块501,具体用于:
判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机;
若是,则将所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中第一个位置标识对应的服务器中;
若否,则将所述多个虚拟机的当前模拟退火温度调低,将所述多个服务器的新位置标识列表中第二个位置标识作为所述多个服务器的新位置标识列表中第一个位置标识,返回判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机的步骤,直至所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中任一位置标识对应的服务器中。
在一个实施例中,虚拟机放置模块501,具体用于:
将所述多个服务器的当前模拟退火温度调低,并将所述多个虚拟机的新位置标识列表中第二个位置标识作为所述多个虚拟机的新位置标识列表中第一个位置标识,返回判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机的步骤,直至所述多个虚拟机的新位置标识列表中所有位置标识对应的虚拟机均放置于所述多个服务器的新位置标识列表中位置标识对应的服务器中,或所述多个服务器的当前模拟退火温度小于或等于所述第一终止温度,或所述多个虚拟机的当前模拟退火温度小于或等于所述第二终止温度。
在一个实施例中,虚拟机迁移模块502,具体用于:
对多个服务器按照当前资源利用率由小到大排序,得到目标服务器列表;
将所述目标服务器列表的第一个放置有虚拟机的服务器中的虚拟机迁出,得到待放置虚拟机;
根据所述模拟退火算法将所述待放置虚拟机迁入所述目标服务器列表中其他放置有虚拟机的服务器中后,返回对所述多个服务器按照当前资源利用率由小到大排序,得到目标服务器列表的步骤,直至所有待放置虚拟机均根据所述模拟退火算法迁入所述目标服务器列表中其他放置有虚拟机的服务器中。
在一个实施例中,虚拟机迁移模块502,具体用于:
更新所述待放置虚拟机的服务器信息,并记录所述待放置虚拟机的迁出服务器ID和迁入服务器ID。
图6示例了一种电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communication Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的计算机程序,以执行虚拟机迁移方法的步骤,例如包括:
根据模拟退火算法将虚拟机放置于服务器中;
根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各实施例所提供的虚拟机迁移方法的步骤,例如包括:
根据模拟退火算法将虚拟机放置于服务器中;
根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移。
另一方面,本申请实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行上述各实施例提供的方法的步骤,例如包括:
根据模拟退火算法将虚拟机放置于服务器中;
根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移。
所述处理器可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (7)
1.一种虚拟机迁移方法,其特征在于,包括:
根据模拟退火算法将虚拟机放置于服务器中;
根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移;
所述根据模拟退火算法将虚拟机放置于服务器中,包括:
若多个服务器的当前模拟退火温度均大于第一终止温度,则随机打乱所述多个服务器的位置标识列表,并将打乱后的所述多个服务器的位置标识列表的前两个位置标识进行交换,得到所述多个服务器的新位置标识列表;
若多个虚拟机的当前模拟退火温度均大于第二终止温度,则随机打乱所述多个虚拟机的位置标识列表,并将打乱后的所述多个虚拟机的位置标识列表的前两个位置标识进行交换,得到所述多个虚拟机的新位置标识列表;
根据所述多个服务器的新位置标识列表中位置标识顺序和所述多个虚拟机的新位置标识列表中位置标识顺序,将所述虚拟机放置于所述服务器中;
所述第一终止温度是所述多个服务器共同的模拟退火终止温度,所述第二终止温度是所述多个虚拟机共同的模拟退火终止温度;
所述根据所述多个服务器的新位置标识列表中位置标识顺序和所述多个虚拟机的新位置标识列表中位置标识顺序,将所述虚拟机放置于所述服务器中,包括:
判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机;
若是,则将所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中第一个位置标识对应的服务器中;
若否,则将所述多个虚拟机的当前模拟退火温度调低,将所述多个服务器的新位置标识列表中第二个位置标识作为所述多个服务器的新位置标识列表中第一个位置标识,返回判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机的步骤,直至所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中任一位置标识对应的服务器中;
所述根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移,包括:
对多个服务器按照当前资源利用率由小到大排序,得到目标服务器列表;
将所述目标服务器列表的第一个放置有虚拟机的服务器中的虚拟机迁出,得到待放置虚拟机;
根据所述模拟退火算法将所述待放置虚拟机迁入所述目标服务器列表中其他放置有虚拟机的服务器中后,返回对所述多个服务器按照当前资源利用率由小到大排序,得到目标服务器列表的步骤,直至所有待放置虚拟机均根据所述模拟退火算法迁入所述目标服务器列表中其他放置有虚拟机的服务器中。
2.根据权利要求1所述的虚拟机迁移方法,其特征在于,所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中任一位置标识对应的服务器中之后,包括:
将所述多个服务器的当前模拟退火温度调低,并将所述多个虚拟机的新位置标识列表中第二个位置标识作为所述多个虚拟机的新位置标识列表中第一个位置标识,返回判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机的步骤,直至所述多个虚拟机的新位置标识列表中所有位置标识对应的虚拟机均放置于所述多个服务器的新位置标识列表中位置标识对应的服务器中,或所述多个服务器的当前模拟退火温度小于或等于所述第一终止温度,或所述多个虚拟机的当前模拟退火温度小于或等于所述第二终止温度。
3.根据权利要求1所述的虚拟机迁移方法,其特征在于,所述所有待放置虚拟机均根据所述模拟退火算法迁入所述目标服务器列表中其他放置有虚拟机的服务器中之后,包括:
更新所述待放置虚拟机的服务器信息,并记录所述待放置虚拟机的迁出服务器ID和迁入服务器ID。
4.一种虚拟机迁移装置,其特征在于,包括:
虚拟机放置模块,用于:根据模拟退火算法将虚拟机放置于服务器中;
虚拟机迁移模块,用于:根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移;
所述根据模拟退火算法将虚拟机放置于服务器中,包括:
若多个服务器的当前模拟退火温度均大于第一终止温度,则随机打乱所述多个服务器的位置标识列表,并将打乱后的所述多个服务器的位置标识列表的前两个位置标识进行交换,得到所述多个服务器的新位置标识列表;
若多个虚拟机的当前模拟退火温度均大于第二终止温度,则随机打乱所述多个虚拟机的位置标识列表,并将打乱后的所述多个虚拟机的位置标识列表的前两个位置标识进行交换,得到所述多个虚拟机的新位置标识列表;
根据所述多个服务器的新位置标识列表中位置标识顺序和所述多个虚拟机的新位置标识列表中位置标识顺序,将所述虚拟机放置于所述服务器中;
所述第一终止温度是所述多个服务器共同的模拟退火终止温度,所述第二终止温度是所述多个虚拟机共同的模拟退火终止温度;
所述根据所述多个服务器的新位置标识列表中位置标识顺序和所述多个虚拟机的新位置标识列表中位置标识顺序,将所述虚拟机放置于所述服务器中,包括:
判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机;
若是,则将所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中第一个位置标识对应的服务器中;
若否,则将所述多个虚拟机的当前模拟退火温度调低,将所述多个服务器的新位置标识列表中第二个位置标识作为所述多个服务器的新位置标识列表中第一个位置标识,返回判断所述多个服务器的新位置标识列表中第一个位置标识对应的服务器的资源是否足以分配给所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机的步骤,直至所述多个虚拟机的新位置标识列表中第一个位置标识对应的虚拟机放置于所述多个服务器的新位置标识列表中任一位置标识对应的服务器中;
所述根据所述服务器的当前资源利用率对所述服务器中的虚拟机进行迁移,包括:
对多个服务器按照当前资源利用率由小到大排序,得到目标服务器列表;
将所述目标服务器列表的第一个放置有虚拟机的服务器中的虚拟机迁出,得到待放置虚拟机;
根据所述模拟退火算法将所述待放置虚拟机迁入所述目标服务器列表中其他放置有虚拟机的服务器中后,返回对所述多个服务器按照当前资源利用率由小到大排序,得到目标服务器列表的步骤,直至所有待放置虚拟机均根据所述模拟退火算法迁入所述目标服务器列表中其他放置有虚拟机的服务器中。
5.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至3任一项所述的虚拟机迁移方法的步骤。
6.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3任一项所述的虚拟机迁移方法的步骤。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3任一项所述的虚拟机迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410324634.6A CN117931378B (zh) | 2024-03-21 | 2024-03-21 | 虚拟机迁移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410324634.6A CN117931378B (zh) | 2024-03-21 | 2024-03-21 | 虚拟机迁移方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117931378A CN117931378A (zh) | 2024-04-26 |
CN117931378B true CN117931378B (zh) | 2024-06-11 |
Family
ID=90755919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410324634.6A Active CN117931378B (zh) | 2024-03-21 | 2024-03-21 | 虚拟机迁移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117931378B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077082A (zh) * | 2013-01-08 | 2013-05-01 | 中国科学院深圳先进技术研究院 | 一种数据中心负载分配及虚拟机迁移节能方法及*** |
CN107491352A (zh) * | 2017-08-22 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种资源调度方法及装置 |
CN107748693A (zh) * | 2017-11-30 | 2018-03-02 | 成都启力慧源科技有限公司 | 云计算环境下的群组虚拟机调度策略 |
CN109800058A (zh) * | 2019-01-23 | 2019-05-24 | 山东超越数控电子股份有限公司 | 一种虚拟机自动迁移方法 |
CN116431281A (zh) * | 2023-03-24 | 2023-07-14 | 桂林电子科技大学 | 一种基于鲸鱼优化算法的虚拟机迁移方法 |
CN117667299A (zh) * | 2022-08-31 | 2024-03-08 | 华为云计算技术有限公司 | 虚拟机迁移方法、芯片、网卡、处理设备、***及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060069761A1 (en) * | 2004-09-14 | 2006-03-30 | Dell Products L.P. | System and method for load balancing virtual machines in a computer network |
US11720408B2 (en) * | 2018-05-08 | 2023-08-08 | Vmware, Inc. | Method and system for assigning a virtual machine in virtual GPU enabled systems |
-
2024
- 2024-03-21 CN CN202410324634.6A patent/CN117931378B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077082A (zh) * | 2013-01-08 | 2013-05-01 | 中国科学院深圳先进技术研究院 | 一种数据中心负载分配及虚拟机迁移节能方法及*** |
CN107491352A (zh) * | 2017-08-22 | 2017-12-19 | 郑州云海信息技术有限公司 | 一种资源调度方法及装置 |
CN107748693A (zh) * | 2017-11-30 | 2018-03-02 | 成都启力慧源科技有限公司 | 云计算环境下的群组虚拟机调度策略 |
CN109800058A (zh) * | 2019-01-23 | 2019-05-24 | 山东超越数控电子股份有限公司 | 一种虚拟机自动迁移方法 |
CN117667299A (zh) * | 2022-08-31 | 2024-03-08 | 华为云计算技术有限公司 | 虚拟机迁移方法、芯片、网卡、处理设备、***及介质 |
CN116431281A (zh) * | 2023-03-24 | 2023-07-14 | 桂林电子科技大学 | 一种基于鲸鱼优化算法的虚拟机迁移方法 |
Non-Patent Citations (3)
Title |
---|
Simulated Annealing based approach for Virtual Machine Live Migration;Avita Katal 等;2021 8th International Conference on Smart Computing and Communications (ICSCC);20210906;全文 * |
一种改进模拟退火算法在弱化虚拟机放置中的应用;李尉;陈雨;高小龙;;现代计算机(专业版);20181005(28);全文 * |
面向负载均衡的VM迁移调度方法;陈昊;郭雅娟;黄伟;;南京理工大学学报;20160430(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117931378A (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100487659C (zh) | 用于优化分段资源分配的方法和设备 | |
US9436516B2 (en) | Virtual machines management apparatus, virtual machines management method, and computer readable storage medium | |
CN105491149B (zh) | 一种数据存储方法及终端 | |
CN110765026A (zh) | 自动化测试方法、装置、存储介质及设备 | |
CN104199739B (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
CN112416585A (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN107273195A (zh) | 一种大数据的批处理方法、装置及计算机*** | |
CN113672375B (zh) | 资源分配预测方法、装置、设备及存储介质 | |
CN108241531A (zh) | 一种在集群中为虚拟机分配资源的方法和装置 | |
CN110580195A (zh) | 一种基于内存热插拔的内存分配方法和装置 | |
JP2008090507A (ja) | ジョブ実行のスケジューリングプログラム、ジョブ実行のスケジューリング方法、ジョブ実行のスケジューリング装置 | |
CN117931378B (zh) | 虚拟机迁移方法及装置 | |
CN112925792B (zh) | 数据存储控制方法、装置、计算设备及介质 | |
WO2024119930A1 (zh) | 调度方法、装置、计算机设备和存储介质 | |
CN114995770B (zh) | 一种数据处理方法、装置、设备、***及可读存储介质 | |
CN114880157B (zh) | 一种故障注入方法及装置 | |
JP5519583B2 (ja) | 仮想マシン制御システム、仮想マシン制御装置、仮想マシン制御方法及びプログラム | |
CN113271323B (zh) | 集群扩容方法、装置和存储介质 | |
CN112783441B (zh) | 一种调整虚拟机磁盘读写限速的方法、装置及计算设备 | |
CN115061813A (zh) | 集群资源的管理方法、装置、设备及介质 | |
CN108958889A (zh) | 云数据***中虚拟机的管理方法和装置 | |
US10296227B2 (en) | System and method for dynamic cache distribution for in-memory data grids | |
CN112748850B (zh) | 用于存储管理的方法、设备和计算机程序产品 | |
CN110297692A (zh) | 一种分布式软件任务动态管理的方法及其*** | |
WO2015040282A1 (en) | Parallel solution generation |
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 |