CN117667299A - 虚拟机迁移方法、芯片、网卡、处理设备、系统及介质 - Google Patents
虚拟机迁移方法、芯片、网卡、处理设备、系统及介质 Download PDFInfo
- Publication number
- CN117667299A CN117667299A CN202211058592.3A CN202211058592A CN117667299A CN 117667299 A CN117667299 A CN 117667299A CN 202211058592 A CN202211058592 A CN 202211058592A CN 117667299 A CN117667299 A CN 117667299A
- Authority
- CN
- China
- Prior art keywords
- migration
- host
- migrated
- virtual machine
- strategy
- 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.)
- Pending
Links
- 238000013508 migration Methods 0.000 title claims abstract description 703
- 230000005012 migration Effects 0.000 title claims abstract description 703
- 238000012545 processing Methods 0.000 title claims abstract description 197
- 238000000034 method Methods 0.000 title claims abstract description 112
- 238000003860 storage Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 abstract description 53
- 230000001976 improved effect Effects 0.000 abstract description 16
- 230000009471 action Effects 0.000 description 104
- 230000015654 memory Effects 0.000 description 68
- 238000004891 communication Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 16
- 230000000977 initiatory effect Effects 0.000 description 13
- 125000004122 cyclic group Chemical group 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000002922 simulated annealing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100263760 Caenorhabditis elegans vms-1 gene Proteins 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003094 perturbing effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了一种虚拟机迁移方法、芯片、网卡、处理设备、系统及介质,涉及计算机技术领域。处理设备在确定VM集群中待迁移VM后,处理设备根据系统中运行VM的主机的资源进行一次决策,确定待迁移VM从源主机到目的主机的迁移策略,该待迁移VM按照该迁移策略进行迁移,处理设备无需在迁移过程中为该待迁移VM进行其他迁移决策,减少了迁移决策的次数和迁移决策所需的资源,利于缩短迁移时长,提升VM在系统中的迁移效率。VM所要迁往的主机只需满足该VM所需的资源,该VM就可进行迁移,避免了通常技术中VM需要等待其他待迁移的VM都迁移完成导致的等待时间较长的问题,进一步减少了VM迁移所需的时间,提升VM在系统中的迁移效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种虚拟机迁移方法、芯片、网卡、处理设备、系统及介质。
背景技术
虚拟机(virtual machine,VM)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,VM可用于实现物理主机中的计算工作。由于主机数量的增减或主机的宕机等问题,需将VM从源主机迁移到目的主机。
在VM迁移过程中,可能先从源主机迁移到中间主机,再从中间主机迁移到目的主机。每次迁移时,需要等待系统中其他待迁移的VM迁移完成后,依据系统中主机的可用资源决策迁移路径,导致VM迁移的时长较长,VM的迁移效率较低。
发明内容
本申请提供一种虚拟机迁移方法、芯片、网卡、处理设备、系统及介质,解决了在虚拟机的迁移过程中,迁移时延较高,导致迁移效率较低的问题。
第一方面,提供了一种虚拟机迁移方法,该虚拟机迁移方法可应用于处理设备,或者支持实现该虚拟机迁移方法的设备,例如该设备包括芯片。该虚拟机迁移方法,还可由包括上述芯片的网卡执行。处理设备为用于通信系统包括的多个主机的控制设备,或者,处理设备为多个主机中任一个,或者,处理设备为多个主机中任一个主机包括的处理器。该虚拟机迁移方法包括:处理设备根据系统中运行VM的主机的资源,确定待迁移VM的迁移策略;以及,处理设备根据迁移条件和迁移路径,将待迁移VM从源主机迁移到目的主机。该迁移策略用于指示待迁移VM的迁移路径和迁移条件,迁移条件用于指示迁移路径中主机所需满足的资源,迁移路径包括待迁移VM所在的源主机和目的主机。
相较于从源主机迁移到目的主机的过程中进行多次决策迁移路径,导致决策次数较多,迁移时长较长,迁移效率低的方案,本申请实施例提供的方案在迁移前,依据系统中运行虚拟机的主机的资源确定对待迁移VM进行迁移过程中的主机,这些主机的资源满足待迁移VM进行迁移所需的资源,从而,对待迁移VM进行迁移过程中只需对迁移路径决策一次,减少了迁移决策的次数和缩短了迁移时长,提升VM在系统中的迁移效率。
在一些可能的情形中,主机的资源包括:主机的可用资源。如计算资源、存储资源和网络资源中至少一种或几种的组合。
在一种可选的实现方式中,迁移路径上源主机和目的主机之间的中间主机的资源满足中间主机的迁移条件。示例性的,若目的主机的可用资源不足以支持运行待迁移VM,或者目的主机处于待机状态需触发后启动等,则该待迁移VM不能直接从源主机迁入目的主机,处理设备可为该待迁移VM的迁移路径分配资源满足待迁移VM所需资源的中间主机,该中间主机可用于对待迁移VM的迁移过程进行中转。从而,在目的主机的可用资源满足待迁移VM所需资源的情况下,将待迁移VM从中间主机迁入目的主机,避免了待迁移VM在源主机中的等待时间较长所导致的VM集群中其他VM的迁移时长增加的问题,提高了VM集群的迁移效率。
在一种可选的实现方式中,中间主机的资源满足中间主机的迁移条件,包括:中间主机中与待迁移VM具有依赖关系的VM从该中间主机迁出。示例性的,处理设备可将中间主机中运行的VM迁出,以使中间主机的可用资源满足待迁移VM所需的资源;其中,从中间主机迁出的VM可称为中间主机中与待迁移VM具有依赖关系的VM(或称待迁移VM的前置VM)。可选的,中间主机中包括一个或多个该待迁移VM的前置VM,该前置VM的数量是根据该待迁移VM所需的资源和中间主机的可用资源之间的资源差值来确定的,本申请对该前置VM的数量不予限定。
上述实现方式是以迁移路径包括一个中间主机为例进行说明的,但在一些情形中,待迁移VM的迁移路径可包括多个中间主机,每个中间主机的资源都需满足各自的迁移条件。
在本实施例中,迁移路径包括的依次连接的源主机、中间主机和目的主机是不同的主机。因而,待迁移VM从源主机迁移到目的主机的过程中,该待迁移VM不会迁入重复的主机,避免了迁移次数增加以及迁移时长增大的问题。
在一种可选的实现方式中,处理设备根据系统中运行VM的主机的资源,确定待迁移VM的迁移策略,包括:处理设备根据系统中满足待迁移VM的资源需求的主机,将获取待迁移VM的至少一条迁移路径;处理设备判断至少一条迁移路径中各迁移路径的迁移耗时,处理设备根据至少一条迁移路径中迁移时长最小的迁移路径,确定待迁移VM的迁移策略。在处理设备为待迁移VM确定了多条可行的迁移路径的情况下,处理设备根据选择出的迁移时长最小的迁移路径获取迁移策略,避免了迁移路径的迁移时长较大导致待迁移VM的迁移效率降低的问题。
在一种可选的实现方式中,处理设备根据系统中运行VM的主机的资源,确定待迁移VM的迁移策略,包括:处理设备根据系统中满足待迁移虚拟机的资源需求的主机,获取待迁移VM的初始迁移策略;处理设备根据预设的规则处理初始迁移策略,获取待迁移VM的迁移策略。该预设的规则用于指示:迁移策略包括的迁移路径不存在重复的主机和迁移路径指示的迁移次数小于或等于设定的阈值中至少一种。在本实施例中,处理设备根据预设的规则对迁移策略进行优化,以减少迁移路径中的迁移次数,或者删除重复的主机等,从而降低处理设备按照迁移策略对待迁移VM进行迁移所需的迁移时长,提高VM的迁移效率。
在一种可能的情形中,若初始迁移策略中迁移路径存在重复的主机,则可称该初始迁移策略包括环形路径,如环形路径是指源主机-主机1-主机2-主机1-目的主机中的:主机1-主机2-主机1,该主机1为初始迁移策略中重复的主机。下面提供三种可能的示例,来说明在初始迁移策略中迁移路径存在重复的主机的情况下,处理设备根据预设的规则处理初始迁移策略,获取待迁移VM的迁移策略的过程。
第一种可能的示例中,处理设备删除环形路径中重复的主机,获取待迁移VM的迁移策略。如处理设备删除环形路径上除第一次出现的重复的主机外的其他重复的主机,使待迁移VM在迁移时直接跳过其他重复的主机,并迁移至在迁移路径上位于其他重复的主机的下一个主机。如处理设备将环形路径“源主机-主机1-主机2-主机1-目的主机”中的一个主机1删除后,获取到待迁移VM的迁移路径为“源主机-主机1-主机2-目的主机”。在本示例中,待迁移VM的迁移过程中,迁移次数减少,在每次迁移所需的最大时间不变的情况下,待迁移VM的总迁移时长降低,提高了待迁移VM的迁移效率。
第二种可能的示例中,处理设备将重复的主机替换为系统中的其他主机,获取待迁移VM的迁移策略。如处理设备将环形路径上除第一次出现的重复的主机外的其他重复的主机替换为系统中的空闲主机,该空闲主机为系统的备用主机、控制主机或者其他可满足待迁移VM所需资源的主机。如处理设备将环形路径“源主机-主机1-主机2-主机1-目的主机”中后一个主机1替换为“主机3”,获取到待迁移VM的迁移路径为“源主机-主机1-主机2-主机3-目的主机”。在本示例中,由于该主机3是空闲主机,因此,待迁移VM可从主机2迁入主机3,无需等待主机3中的VM迁出,减少了待迁移VM的迁移等待时间,提高了待迁移VM的迁移效率。或者,处理设备将环形路径中的一个重复主机替换为两个空闲主机。
第三种可能的示例中,若VM集群包括多个待迁移VM,且这多个待迁移VM对应的多个初始迁移策略被统称为VM集群的初始集群策略。由于多个待迁移VM所要执行的迁移动作可能存在前述的依赖关系,因此,初始集群策略包括的VM集群的迁移路径中存在重复的主机,或者,多个待迁移VM涉及的多个迁移动作存在循环依赖关系,如该循环依赖关系使得前述多个迁移动作关联的VM在重复的主机中不停的往复迁移,使得VM集群的迁移时长增大。其中,迁移动作是指VM从一个主机迁移至另一个主机的原子动作;应理解,一个待迁移VM的迁移路径中迁移动作的个数和迁移次数是一致的。因而,处理设备可对这些存在循环依赖关系的迁移动作进行删除或替换(可参照前述第一、第二种可能的示例),从而减小VM集群的迁移时长,提高VM集群的迁移效率。
在另一种可能的情形中,若初始迁移策略中迁移路径指示的迁移次数大于或等于设定的阈值(如20、35等),则可称该初始迁移策略包括迁移长链,该迁移长链是指待迁移VM从源主机迁移至目的主机所需经过的中间主机的数量较多,如中间主机的数量大于或等于一个阈值,如10、20等;或者,该迁移长链是指待迁移VM从源主机迁移至目的主机所需执行的迁移动作大于或等于另一个阈值。下面提供两种可能的示例,来说明在初始迁移策略中迁移路径指示的迁移次数大于或等于设定的阈值的情况下,处理设备根据预设的规则处理初始迁移策略,获取待迁移VM的迁移策略的过程。
在第一种可能的示例中,处理设备对初始迁移策略包括的迁移路径进行拆分,拆分成多条迁移策略包括的迁移路径。拆分后的迁移路径的迁移次数小于设定的阈值。
在第二种可能的示例中,若VM集群包括多个待迁移VM,且这多个待迁移VM中一些VM具有依赖关系,因此,在VM集群的迁移过程中,该一些VM所要执行的迁移动作的迁移长链的迁移次数较多(如大于或等于设定的阈值),则处理设备可将包括该一些VM的迁移长链进行拆分,将该一些VM中的一部分VM的迁移动作组成一个迁移链、将该一些VM中的另一部分VM的迁移动作组成另一个迁移链,其中,每个迁移链的迁移次数(或迁移链包括的迁移动作的个数)均小于设定的阈值。因而,在VM集群的迁移过程中,在每个迁移动作所需的最大时间不变的情况下,处理设备可并行执行多个迁移链,每个迁移链所需的迁移次数不会超过设定的阈值,从而减少了VM集群所需的迁移时长,提高了VM集群的迁移效率。应理解,处理设备拆分迁移长链的目的在于查询通信系统中的空闲主机,并利用该空闲主机进行VM的迁移中转,以减少VM集群所需的迁移时长。
在一种可能的实现方式中,本实施例提供的虚拟机迁移方法还包括:处理设备在前端显示迁移策略包括的迁移路径和迁移策略包括的迁移条件中至少一种。这里的前端可以是指与处理设备连接的显示器,或者处理设备所具备的显示屏等,本申请对此不予限定。对用户而言,用户根据该可视化的迁移路径或者迁移条件,进行符合用户的需求的调整或删除等,有利于实现VM集群的迁移更符合用户的需求,避免机器实现的VM迁移过程无法被用户干预(如调整或删除),VM迁移效果较差或不符合用户的预期的情况等问题,提高了VM迁移的效率。示例性的,用户的需求可以是指用户对前述的迁移路径和迁移策略中至少一个的修改记录等。
第二方面,本申请提供了一种VM迁移装置,该VM迁移装置应用于处理设备,该VM迁移装置包括用于执行第一方面或第一方面任一种可能实现方式中的VM迁移方法的各个模块。示例的,VM迁移装置包括:策略获取模块和迁移模块。策略获取模块,用于根据系统中运行VM的主机的资源,确定待迁移VM的迁移策略;以及迁移模块,用于根据迁移条件和迁移路径,将待迁移VM从源主机迁移到目的主机。其中,迁移策略用于指示待迁移VM的迁移路径和迁移条件,迁移条件用于指示迁移路径中主机所需满足的资源,迁移路径包括待迁移VM所在的源主机和目的主机。
有益效果可以参见第一方面中任一种可能实现方式中的描述,此处不再赘述。所述虚拟机迁移装置具有实现上述第一方面中任一种可能实现方式中的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请提供一种芯片,包括处理器和供电电路,供电电路用于为所述处理器供电;处理器用于调用并运行计算机指令,以执行上述第一方面及其第一方面任意可能的实现方式中的方法。
第四方面,本申请提供一种网卡,包括:上述第三方面的芯片和接口;接口用于接收来自所述网卡之外的其他装置的信号并发送至芯片;或用于将来自芯片的信号发送给网卡之外的其他装置。
第五方面,本申请提供一种处理设备,包括:上述第四方面的网卡。
第六方面,本申请提供一种通信系统,包括:多个主机和处理设备。示例性的,主机用于运行一个或多个虚拟机;处理设备用于对所述多个主机中的所述一个或多个虚拟机进行迁移,实现第一方面和第一方面中任一种可能实现方式中的方法。
第七方面,本申请提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被处理设备执行时,实现第一方面和第一方面中任一种可能实现方式中的方法。
第八方面,本申请提供一种计算机程序产品,该计算程序产品包括计算机程序或指令,当该计算机程序或指令在处理设备上运行时,使得处理设备执行该计算机程序或指令,以实现第一方面和第一方面中任一种可能实现方式中的方法。
以上第二方面至第八方面的有益效果可参照第一方面或第一方面中任一种实现方式的描述,在此不予赘述。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种通信系统的应用场景图;
图2为本申请提供的一种主机的结构示意图;
图3为本申请提供的一种虚拟机迁移方法的流程示意图;
图4为本申请提供的获取迁移策略的示意图一;
图5为本申请提供的获取迁移策略的示意图二;
图6为本申请提供的获取集群策略的示意图一;
图7为本申请提供的初始集群策略的拆分示意图;
图8为本申请提供的获取集群策略的示意图二;
图9为本申请提供的一种迁移耗时比对图;
图10为本申请提供的获取集群策略的示意图三;
图11为本申请提供的一种虚拟机迁移装置的结构示意图。
具体实施方式
虚拟机迁移是指VM从源主机迁移到目的主机的过程,虚拟机的迁移过程通常包括以下阶段:迭代预拷贝阶段、停机拷贝阶段、脏页拷贝阶段和VM恢复阶段,下面分别对前述4个阶段进行说明。
1、迭代预拷贝阶段:VM迁移开始时,依然在源主机上运行;为了保证VM业务不中断,待迁移VM的数据会被同时写入源主机和目的主机的内存中。
2、停机拷贝阶段:VM在源主机上的运行中断,且VM在源主机的内存页中所存储的数据被传输到目的主机的内存上。
3、脏页拷贝阶段:VM依然在源主机上的运行,源主机监控并记录下迁移过程中所有已被传输的内存页的任何修改(即内存页中的脏页),并在VM所使用的所有内存页都传输完成后,将传输脏页所存储的脏页数据。另外,源主机估计迁移过程中的数据传输速度,当剩余的内存数据量能够在一个可以设定的时间周期(如30毫秒)内传输完成时,关闭源主机上的VM,再将VM剩余的脏页数据传输到目的主机上。
4、VM恢复阶段:在目的主机启动VM,完成该VM的整个迁移过程。
在一种可能的情形中,如果源主机和目的主机共享存储系统,则源主机只需要通过网络发送VM的执行状态、内存中的内容、虚拟机的状态到目的主机上;其中,共享存储系统指的是源和目的VM的镜像文件目录是在一个共享的存储器上的。否则,源主机还需要将VM的磁盘存储发到目的主机上。
值得注意的是,本实施例提供的VM迁移过程是在计算机集群内部的多个主机之间实现的,在一种可选的实现方式中,虚拟机的迁移也可以是在计算机集群中主机与计算机集群外部的其他设备之间的数据迁移,本申请对此不予限定。
在通常技术所提供的虚拟机迁移方案中,待迁移的VM需等待系统中其他待迁移的VM迁移完成后,依据系统中主机的可用资源决策迁移路径,导致VM迁移的时长较长,VM的迁移效率较低。
为至少解决上述问题,本申请提供了一种更有效的虚拟机迁移方法,该虚拟机迁移方法包括:处理设备根据系统中运行VM的主机的资源进行一次决策,确定待迁移的VM从源主机到目的主机的迁移策略,在处理设备按照迁移策略对待迁移的VM进行迁移时,减少了处理设备每次等待多个VM迁移后进行决策的过程,降低了VM的迁移所需的时间,提升了VM在系统中的迁移效率。
以及,待迁移VM所要迁往的主机只需满足该待迁移VM所需的资源,处理设备就可以对该待迁移VM进行迁移,从而避免了通常技术中VM需要等待系统中其他待迁移的VM迁移完成导致的等待时间较长的问题,进一步减少了VM迁移所需的时间,提升VM在系统中的迁移效率。例如该主机满足待迁移VM所需的资源是通过将该主机中运行的其他VM迁出实现的。此外,前述待迁移VM的迁移策略中不包括重复的主机,避免了待迁移VM从不同的主机迁入一个重复的主机的迁移动作,导致待迁移VM的迁移效率降低的问题。
下面对本实施例提供的虚拟机迁移方法进行说明,首先给出相关技术的介绍。
图1为本申请提供的一种通信系统的应用场景图,该通信系统包括计算机集群(computer cluster)110和处理设备120,计算机集群110可以通过网络130与处理设备120进行通信,网络130可以是因特网,或其他网络(如以太网)。网络130可以包括一个或多个网络设备,如网络设备可以是路由器或交换机等。
处理设备120可以是运行有应用程序的计算机,该运行有应用程序的计算机可以是物理机,也可以是虚拟机。例如,若该运行有应用程序的计算机为计算设备,该计算设备可以是主机或终端(Terminal)。其中,终端也可以称为终端设备、用户设备(userequipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端可以是手机、平板电脑、笔记本电脑、桌面电脑、台式计算机、虚拟现实(virtual reality,VR)终端设备、增强现实(augmentedreality,AR)终端设备、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本申请的实施例对处理设备120所采用的具体技术和具体设备形态不做限定。在一些可选的情形中,处理设备120可以是外接在计算机集群110的加速卡,该加速卡可用于获取VM的迁移信息,该迁移信息用于指示VM在迁移过程中的源主机和目的主机;以及,该加速卡还可用于根据该迁移信息和计算机集群110中多个主机的状态信息确定运行在VM集群中多个VM的迁移策略。
在一种可能的实现方式中,该处理设备120可以是运行在计算机集群110中任意一个或多个主机上的软件模块。
计算机集群110是指通过局域网或互联网连接计算机集合,通常用于执行大型任务(也可以称为作业(job)),这里的作业通常是需要较多计算资源并行处理的大型作业,本实施例不限定作业的性质和数量。例如,该作业是指虚拟机集群在计算机集群110中多个主机之间的迁移。
可选的,计算机集群中每台计算设备使用相同的硬件和相同的操作系统;也可以根据业务需求,在计算机集群的主机中采用不同的硬件和不同的操作系统。由于采用计算机集群部署的任务可并发度执行,可以提升总体性能。如图1所示,计算机集群110包括多个主机,例如主机111~主机114,各个主机可以用于提供计算资源。就一台主机来说,它可以包含多个处理器或处理器核,每个处理器或者处理核可以是一个计算资源,因此一台主机可以提供多个计算资源。例如,主机可以是指服务器。
在本文的附图中,虚拟机1至虚拟机5分别以VM 1至VM 5来表示,后续不再赘述。
在一种可能的示例中,一个主机上运行有一个或多个VM,如主机111中运行有2个VM(VM 1和VM 2),主机114中运行有1个VM 5。
在另一种可能的示例中,一个VM运行在多个主机上,如一个VM的处理资源由主机111提供,但该VM的存储资源由主机114提供。
如图1所示,计算机集群110中运行的多个虚拟机(VM)可以是指一个VM集群,该VM集群包含的多个VM可进行通信。图1仅为本实施例提供的示例,不应理解为对本申请的限定,本实施例以一个VM运行在一个主机为例进行说明。
值得注意的是,图1只是示意图,该通信系统中还可以包括其他设备,在图1中未画出,本申请的实施例对该通信系统中包括的主机(计算设备)、处理设备的数量和类型不做限定。示例的,计算机集群110还可以包括更多或更少的计算设备,如计算机集群110包括两个计算设备,一个计算设备用于实现上述主机111和主机112的功能,另一个计算设备用于实现上述主机113和主机114的功能。
针对于图1所示出的通信系统中任一个主机或处理设备,本实施例提供一种可能的硬件实现方式,如图2所示,图2为本申请提供的一种主机的结构示意图,示例性的,图1中的任一个主机可通过图2所示的主机200来实现,该主机200包括:处理器210和通信接口220。处理器210和通信接口220之间相互耦合。可以理解的是,通信接口220可以为收发器或输入输出接口。可选的,主机200还可以包括存储器230,用于存储处理器210执行的指令或存储处理器210运行指令所需要的输入数据或存储处理器210运行指令后产生的数据。
本申请实施例中不限定上述通信接口220、处理器210以及存储器230之间的具体连接介质。本申请实施例在图2中以通信接口220、处理器210以及存储器230之间通过总线240连接,总线在图2中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。例如,该总线可以是,但不限于:外围器件互联(Peripheral Component Interconnect express,PCIe)总线、通用串行总线(Universal Serial Bus,USB),或者集成电路总线(Inter-Integrated Circuit,I2C)、扩展工业标准结构(extendedindustry standard architecture,EISA)总线、统一总线(unifiedbus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cache coherent interconnect for accelerators,CCIX)等。
存储器230可用于存储软件程序及模块,如本申请实施例所提供的虚拟机方法对应的程序指令/模块,处理器210通过执行存储在存储器230内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口220可用于与其他设备进行信令或数据的通信。在本申请中该主机200可以具有多个通信接口220。
其中,上述的存储器可以是但不限于,随机存取存储器(RandomAccess Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
在一些情形中,该存储器230还可以是指内存,也称为主存(mainmemory)。内存通常用来存放操作系统中各种正在运行的软件、输入和输出数据以及与外存交换的信息等。为了提高处理器210的访问速度,内存需要具备访问速度快的优点。在传统的计算机系统架构中,通常采用动态随机存取存储器(dynamic random access memory,DRAM)作为内存。处理器能够通过内存控制器高速访问内存,对内存中的任意一个存储单元进行读操作和写操作。除了DRAM之外,内存还可以是其他随机存取存储器,例如静态随机存取存储器(staticrandom access memory,SRAM)等。本实施例不对内存的数量和类型进行限定。此外,可对内存进行配置使其具有保电功能。保电功能是指系统发生掉电又重新上电时,存储器中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。示例的,内存包括多个内存页(page),内存页是内存的数据I/O操作的最小单位,内存页也称为数据读写的原子单位。每个内存页对应内存的一段存储地址空间,如一个内存页可以用于存储4千字节(kilobytes,KB)的数据,则该内存页对应4KB的存储地址空间。另外,一个内存页也可以对应更大或更小的存储地址空间,如2KB或8KB等。
上述的处理器可以是一种集成电路芯片,具有信号处理能力。该处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
如图2所示,主机200上可以运行有一个或多个VM,如图2所示出VM200A~VM200C。VM所需的计算资源来源于主机200本地的处理器220和存储器230,而VM所需的存储资源既可以来源于主机200本地的硬盘240,也可以来自其他主机中的硬盘。例如,VM200A包括虚拟处理器200A1、虚拟内存200A2和虚拟网卡200A3,虚拟处理器200A1所需的计算资源由处理器200提供、虚拟内存200A2所需的存储资源由存储器230(或硬盘)提供,虚拟网卡200A3所需的网络资源由通信接口所具备的传输带宽提供。此外,VM中可运行各种应用程序,用户可通过VM中的应用程序触发读/写数据请求等业务。
示例的,VM中虚拟内存200A2的存储空间可由存储器230包括的内存页来提供。通常,VM的热迁移可以在保证业务不中断的情况下,将VM从一台主机迁移到另外一台主机,而保证业务不中断的关键技术即为内存数据的迁移,该内存数据是指存储在存储器230包括的内存页的数据。若该内存页中所存储的数据在一段时间内被修改,则该内存页可以被称为该VM热迁移过程中的脏页,因此,该修改后的内存页(脏页)中所存储的数据被称为VM的脏页数据。
图1和图2仅为本申请提供的示例,不应理解为对本申请的限定,在一些情况中,通信系统可包括更多或更少的主机,主机200也可包括更多或更少的硬件等。一个主机上所运行的主机数量可由主机所能提供的计算资源、存储资源和网络资源,以及VM所需的资源大小来确定,本申请对此不予限定。
应理解,为了保证VM运行的可靠性,需要对VM集群中的VM进行迁移,下面提供了几种处理设备触发VM迁移的示例:用户操作、主机的资源使用情况或VM的状态信息等。示例的,该状态信息包括VM的运行所需的资源、VM的服务类型、服务质量要求、迁移标志位以及VM集群中为该VM配置的等级等信息;其中VM的等级可对应于VM对应用户的等级。
在第一种示例中,处理设备根据用户操作来触发VM迁移的过程。
在第二种示例中,处理设备根据主机的资源使用情况来触发VM迁移的过程。
在第三种示例中,处理设备根据VM的状态信息来触发VM迁移的过程。
值得注意的是,以上三种示例仅为本实施例提供的VM迁移的触发条件的几种可能的情况,在一些情形中,处理设备还可以根据多种情况的组合来触发VM迁移的过程。结合上面的第二种以及第三种示例的组合来说明:
在第四种示例中,处理设备根据用户操作、且识别到VM的状态信息触发VM迁移的过程。
在第五种示例中,处理设备根据用户操作、识别到主机的资源使用情况、且还识别到VM的状态信息触发VM迁移的过程。
以上几种示例仅为本实施例提供的触发VM迁移的可选方式,不应理解为对本申请的限定。
可选的,VM集群中可以是每个VM都需要进行迁移,也可以是部分VM需要进行迁移。针对于处理设备120确定待迁移VM的过程,下面给出一种可能的实现方式。
在一种可能的情形中,待迁移VM可以是根据VM集群的迁移信息确定的,如该迁移信息指示了待迁移VM的源主机以及目的主机,和待迁移VM的状态信息。在一种可能的情形中,上述部分的状态信息可从VM用户和VM集群的配置信息中获取,如用户的等级、VM的服务类型等。
示例性的,处理设备120可基于待迁移VM的标识,从VM集群中确定该待迁移VM的状态信息。例如,处理设备120基于迁移信息确定待迁移VM的标识,并根据该标识从VM集群的状态维护表中查询该待迁移VM的状态信息。在一些可选的情形中,该状态维护表也可称为VM标识与VM状态的映射关系表。
下面给出一种可能的具体示例,对迁移信息的获取过程进行说明,该迁移信息的获取过程包括以下第一步至第四步。
第一步,处理设备120获取VM集群中所有VM的状态信息。关于状态信息的内容可参考前述示例,在此不予赘述。
第二步,处理设备120将所有VM中状态信息满足设定条件的VM作为待迁移VM。
在一种可能的情形中,处理设备120为VM集群中的各VM分配一个迁移指标,该迁移指标用于指示VM是否能够迁移。如该迁移指标由分值来表示,分值越高代表该VM越不能迁移,将分值小于或等于设定条件的VM作为待迁移VM。如该分值可根据上述的VM的运行所需的资源、VM服务类型、服务质量要求、迁移标志位以及配置的VM的等级等信息来进行确定,示例性的:处理设备120对VM的运行所需的资源、VM服务类型、服务质量要求、迁移标志位以及配置的VM的等级等信息分别设定对应的权重,处理设备120基于各VM在上述各项信息中的等级以及各项信息对应的权重,进行加权求和得到各VM的分值。
针对于第一VM(如图1所示的VM 1)的迁移指标,下表1给出了一种可能的示例。
表1
迁移指标 | 等级 | 权重 |
VM1的所需资源 | 2 | 0.2 |
服务类型 | 1 | 0.2 |
服务质量要求 | 2 | 0.3 |
VM1等级 | 2 | 0.2 |
迁移标志 | 2 | 0.1 |
示例的,VM 1的运行所需的资源对应的等级为2级,服务类型对应的等级为1级,服务质量要求对应的等级为2级,VM 1的等级为2级,迁移标志位的等级为2级;对应各项信息所占权重为运行所需的资源占0.2、服务类型占0.2、服务质量要求占0.3、VM1的等级占0.2以及迁移标志位占0.1;所以VM 1对应的分值为1.8分。在分值对应的设定条件为2时,VM1的分值小于设定条件,所以处理设备120将VM 1作为VM集群中的待迁移VM。
第三步,处理设备120根据用户的迁移需求,在多个主机中确定待迁移VM的源主机和目的主机。例如,用户的迁移需求指示了一个或多个VM的目标分布情况,该目标分布情况用于指示计算机集群中多个VM将被迁往的目的主机。
在一种可能的情形中,处理设备120从与处理设备120通信的用户端中获取用户的迁移需求。
在一种可能的示例中,当用户的迁移需求中指示的VM不仅包含第二步中确定的待迁移VM,而且还包含其他VM,如迁移需求中指示的VM对应的分值高于设定条件时,将向处理设备120发送确定请求,在收到处理设备120发送的确认信息后,将上述迁移需求中指示的VM加入到待迁移VM中。
在另一种可能的示例中,若用户的迁移需求指示的VM仅包含第二步中确定的部分待迁移VM。对于未包含在用户的迁移需求中的待迁移VM,处理设备将自动为待迁移VM确定目的主机。例如,用户的迁移需求指示了8个VM及其目的主机,待迁移VM包括10个VM。用户的迁移需求指示的8个VM与待迁移VM中包括的8个VM一一对应。对于超出的两个VM由于没有确定目的主机,将为该两个VM自动分配目的主机。
在另一种可能的情形中,处理设备120接收用户在处理设备120上制作或上传的VM的目标分布图。该目标分布图用于指示计算机集群中多个VM将被迁往的目的主机。进而,处理设备120根据计算机集群中多个VM的初始分布图(指示了多个VM当前所位于的主机),以及前述的目标分布图,确定每个待迁移VM的源主机和目的主机。
值得注意的是,以上两种可能的情形仅为本实施例提供的可能实现方式,不应理解为对本申请的限定,在一些可选的情形中,处理设备还可根据其他的信息确定待迁移VM将被迁往的目的主机。
第四步,处理设备120根据所有待迁移的VM所对应的源主机和目的主机,获取前述的迁移信息。
处理设备120基于前述的状态信息,从VM集群中的所有VM中确定满足设定条件的VM,作为待迁移的VM,实现仅对满足设定条件的待迁移的VM进行迁移,以提高主机资源的利用率,并避免了对所有VM都进行迁移造成的资源浪费。其次,处理设备120可根据用户的需求,确定待迁移的VM对应的源主机和目的主机,降低了处理设备长时间对VM集群的状态进行监控后、才对VM进行迁移所产生的资源消耗,节省了VM迁移所需的资源。
在处理设备触发VM集群的迁移过程并确定待迁移VM后,处理设备可以对计算机集群110中多个主机上所部署的VM进行迁移,如图3所示,图3为本申请提供的一种虚拟机迁移方法的流程示意图,该虚拟机迁移方法可应用于图1所示出的通信系统,示例性的,该虚拟机迁移方法由图1所示出的处理设备120执行,该处理设备120的硬件实现可以参照图2的主机200的相关内容。在一些可选的实现方式中,该虚拟机迁移方法也可以由图1中所示出的任一个主机或图2中所示出的主机200来执行,本申请对此不予限定。
图3中的VM集群可以包括图1所示出的多个VM,如图3所示,该VM集群包括VM 1至VM6,本实施例仅为示例,VM集群中的VM数量并不限于6个,该多个VM的计算资源、存储资源和网络资源可以是由图1所示出的多个主机来提供的,也可由图1未示出的其他主机来提供。
请参照图3,本实施例提供的虚拟机迁移方法包括以下步骤S310和S320。
S310、处理设备根据系统中运行虚拟机的主机的资源,确定待迁移虚拟机的迁移策略。
其中,迁移策略用于指示待迁移VM的迁移路径和迁移条件,该迁移条件用于指示迁移路径中主机所需满足的资源。举例来说,迁移条件是指在迁移路径中,待迁移VM将要迁往的主机的资源满足待迁移VM所需的资源。
在本实施例中,主机的资源可以包括,但不限于:主机具有的硬件资源、主机为该主机中的VM提供的资源(已占用资源),和主机中的剩余资源(或称可用资源)等。
以上的资源可以包括:计算资源、存储资源和网络资源等。
其中,计算资源用于指示在单位时间内的浮点运算次数和整点运算次数;如计算资源在单位时间内的浮点运算次数和整点运算次数用于指描述计算资源的处理能力。
存储资源用于指示存储容量、数据读写速度等;如存储资源的数据读写速度用于描述存储资源的处理能力。
网络资源用于指示传输带宽,该传输带宽是指在单位时间内所能传输的最大数据量;如传输带宽用于描述网络资源的处理能力。
可选的,主机的资源还可以包括:主机的CPU中所包含的die的数量,die是指处理器在生产过程中,从晶圆(Silicon Wafer)上切割下来的一个个小方块。die可用于刻录逻辑电路,该逻辑电路可用于实现虚拟机或应用程序等的计算任务等,因而,主机的CPU中所包含的die的数量指示了主机所具有的计算资源的处理能力。在一些情形中,主机的CPU中所包含的die的数量可称为CPU的空间结构,该CPU的空间结构也可用于描述主机的资源。
在一种可能的情形中,待迁移VM的迁移路径包括:待迁移VM所在的源主机和目的主机。举例来说,待迁移VM为图3所示出的VM 2、源主机为主机111、目的主机为主机112,则VM 2执行迁移动作M2-111/112,该迁移动作M2-111/112是指VM2从主机111迁移到主机112。该迁移动作也可称为VM从一个主机迁移到另一个主机的原子动作。
在另一种可能的情形中,待迁移VM的迁移路径包括:待迁移VM所在的源主机、至少一个中间主机和目的主机。示例性的,在目的主机的资源小于待迁移VM所需的资源的情况下,该中间主机可用于对待迁移VM进行中转,以便在目的主机的资源满足待迁移VM所需的资源时,将待迁移VM从中间主机迁往目的主机。举例来说,待迁移VM为图3所示出的VM 1、源主机为主机111、中间主机为主机112、目的主机为主机114,则VM 1经过两个迁移动作M1-111/112、M1-112/114到达目的主机。
应理解,若待迁移VM的迁移路径包括中间主机,则该中间主机的资源也满足迁移策略中该中间主机的迁移条件,换言之,待迁移VM将要迁往的任一个中间主机的资源满足待迁移VM所需的资源。
示例性的,若目的主机的可用资源不足以支持运行待迁移VM,或者目的主机处于待机状态需触发后启动等,则该待迁移VM不能直接从源主机迁入目的主机,处理设备可为该待迁移VM的迁移路径分配资源满足待迁移VM所需资源的中间主机,该中间主机可用于对待迁移VM的迁移过程进行中转。
举例来说,如图3所示出的VM 1所需的资源为:“1G Hz 200MB/s 100MB/s”,即:VM1所需的计算资源的CPU频率为1G Hz、存储资源的数据读写速度为200MB/s、网络资源的带宽为100MB/s,则在该VM 1的迁移动作M1-111/112的执行过程中,主机112的可用资源需满足前述的“1G Hz 200MB/s 100MB/s”,如主机112的可用资源为:“10G Hz 600MB/s300MB/s”,进而,处理设备120才能执行VM 1的迁移动作M1-111/112。
如此,在目的主机的可用资源满足待迁移VM所需资源的情况下,处理设备将待迁移VM从中间主机迁入目的主机,避免了待迁移VM在源主机中的等待时间较长所导致的VM集群中其他VM的迁移时长增加的问题,提高了VM集群的迁移效率。
在一种可选的示例中,为使中间主机的资源满足待迁移VM所需的资源,中间主机的资源满足迁移策略中该中间主机的迁移条件可以是指:该中间主机中与待迁移VM具有依赖关系的VM从该中间主机迁出。
为使待迁移VM所要迁入的主机的可用资源满足该VM所需的资源,该主机中运行的一个或多个VM从该主机中迁出,则处理设备确定该一个或多个VM与前述待迁移VM具有依赖关系,或称待迁移VM的前置VM。可选的,中间主机中包括一个或多个该待迁移VM的前置VM,该前置VM的数量是根据该待迁移VM所需的资源和中间主机的可用资源之间的资源差值来确定的,本申请对该前置VM的数量不予限定。
或者,对迁移路径中的一个主机而言,该主机的后一迁移动作执行的起始时间与前一迁移动作的结束时间一致,则处理设备确定这两个迁移动作具有依赖关系,以及,这两个迁移动作所涉及的VM具有依赖关系,或称该前一迁移动作为后一迁移动作的前置迁移动作。
以待迁移VM是图3所示出的VM 1、中间主机是主机112为例进行说明:在主机112中的VM 3与VM 1具有依赖关系,在主机112的可用资源不满足VM 1所需的资源的情况下,处理设备120先将VM 3从主机112中迁出,再执行迁移动作M1-111/112。可选的,该VM 3所要迁入的主机可以是计算机集群110中的空闲主机,如该空闲主机为计算集群110中的备用主机、控制主机或者其他具有可用资源的主机等。这里以VM 3所要迁入的主机是主机113为例进行说明,在本示例中,迁移动作M1-111/112的执行依赖于M3-112/113的结束,该M3-112/113可称为M1-111/112的前置迁移动作。
因而,在待迁移VM的迁移过程中,处理设备通过将待迁移VM的前置VM从待迁移VM所要迁入的主机中迁出,使得该主机能够满足待迁移VM所需的资源,避免了待迁移VM等待的迁移时长增大的问题,提高了待迁移VM的迁移效率。
关于处理设备获取迁移策略的具体过程,以下图4至图10提供了可能的实现方式,在此不予赘述。
请继续参见图3,本实施例提供的虚拟机迁移方法还包括步骤S320。
S320、处理设备根据迁移条件,在迁移路径上将待迁移虚拟机从源主机迁移到目的主机。
示例性的,在待迁移VM按照迁移路径进行迁移的过程中,处理设备可以对待迁移VM每次所要迁入的主机的资源进行判断,如处理设备判断该迁入的主机的资源是否大于或等于待迁移VM所需的资源,进而确定执行迁移动作,或等待该迁移动作的前置迁移动作结束后再执行该迁移动作。
例如,若待迁移VM所要迁入的主机满足迁移条件,则处理设备将该待迁移VM迁入该主机。举例来说,若主机112的可用资源满足VM 2所需的资源,则处理设备120执行迁移动作M2-111/112。
又如,若待迁移VM所要迁入的主机不满足迁移条件,则处理设备将该主机中的VM迁出后,再该待迁移VM迁入该主机。举例来说,VM 1从主机111迁往主机114的过程中,若主机112中运行有VM 3和从主机111迁入的VM 2,导致主机112的资源不足以支持运行VM 1所需的资源,则待VM 3(或者VM 2)从主机112中迁出后,使得主机112的可用资源满足VM 1所需的资源,并由处理设备120执行迁移动作M1-111/112。
相较于通常技术中设备根据系统中主机的资源,对VM进行多次迁移决策,每次获取迁移决策,需等待本次执行迁移决策的上一轮迁移执行完毕后才进行。即需等待上一轮所有VM迁移完毕后,所有主机的剩余资源都确定好。在获取到本次迁移决策后,设备根据迁移决策进行迁移,待迁移决策中指示的所有VM迁移完毕后,才会获取下一次的迁移决策。所以在通常技术的一轮迁移中,所有VM的迁移时间都将为Tmax,即本轮迁移中,耗时最长的VM对应的迁移时长。
在本实施例中,相较于从源主机迁移到目的主机的过程中进行多次决策迁移路径,导致决策次数较多,迁移时长较长,迁移效率低的方案,本申请实施例提供的方案在迁移前,依据系统中运行虚拟机的主机的资源确定对待迁移VM进行迁移过程中的主机,这些主机的资源满足待迁移VM进行迁移所需的资源,从而,对待迁移VM进行迁移过程中只需对迁移路径决策一次,减少了迁移决策的次数和缩短了迁移时长,提升VM在系统中的迁移效率。
举例来说,待迁移VM每次的等待时间T为:待迁移VM所要迁入的主机将其中运行的VM迁移至其他主机,使该主机的可用资源满足待迁移VM的所需的资源的时间,其中,T≤Tmax。应理解,当待迁移VM所要迁入的主机的可用资源直接满足待迁移VM的所需的资源时,T=0。比对通常技术和本实施例提供的虚拟机迁移方法,在将单个VM从源主机迁移至目的主机的过程中,通常技术所需的迁移时间为N×Tmax,N表示迁移次数;而本实施例虚拟机的迁移时间为N×T。在N次迁移中,至少存在一次T<Tmax,因此,虚拟机迁移的总时间减少,VM的在通信系统中的迁移效率提升。
可选的,针对于以上S310中处理设备获取迁移策略的过程,下面给出了五种可能的实现方式。
在第一种可能的实现方式中,对一个待迁移VM而言,处理设备120可以从一条或多条迁移路径中选择迁移时长最小的迁移路径,进而确定待迁移VM的迁移策略。其中,该一条或多条迁移路径可以是处理设备120根据计算机集群110中满足待迁移VM的资源需求的主机来确定的。
下面在待迁移VM是图3中的VM 1的基础上,给出一种可能的示例,如图4所示,图4为本申请提供的获取迁移策略的示意图一,在处理设备120从计算机集群110中确定满足VM1的资源需求的多个主机后,为VM 1确定了两条迁移路径。
迁移路径1包括的迁移动作有M1-111/112和M1-112/114。
迁移路径2包括的迁移动作有M1-111/112、M1-112/113和M1-113/114。
以上两条迁移路径中,M1-111/112所需的迁移时长为T1-111/112、M1-112/114所需的迁移时长为T1-112/114、M1-112/113所需的迁移时长为T1-112/113、M1-113/114所需的迁移时长为T1-113/114。其中,T1-112/114≤T1-112/113+T1-113/114,因而,迁移路径1所需的总迁移时长小于迁移路径2所需的总迁移时长,则处理设备120根据前述的迁移路径1以及每个迁移动作的前置迁移动作来确定VM 1的迁移策略。
如此,在处理设备为待迁移VM确定了多条可行的迁移路径的情况下,处理设备根据选择出的迁移时长最小的迁移路径获取迁移策略,避免了迁移路径的迁移时长较大导致待迁移VM的迁移效率降低的问题。
在第二种可能的实现方式中,对于一个待迁移VM而言,处理设备120根据计算机集群110中满足待迁移VM的资源需求的主机,确定待迁移VM的初始迁移策略。处理设备120通过预设的规则对初始迁移策略进行优化,得到待迁移VM的迁移策略。预设的规则包括:迁移策略包括的迁移路径不存在重复的主机,即迁移路径不存在环形路径;或者,迁移路径指示的迁移次数小于或等于设定的阈值。举例来说,迁移次数用于指示待迁移VM根据迁移路径经过的主机或待迁移VM对应的迁移动作个数,如VM1的迁移路径为迁移动作M1-111/112,该迁移路径的迁移次数为1次。
在第一种可能的情形中,初始迁移策略包括的迁移路径中存在重复的主机,即存在环形路径,处理设备120通过删除重复出现的主机,得到待迁移VM的迁移策略。
处理设备120通过删除初始迁移策略中重复出现的主机,在删除重复出现的主机后,初始迁移策略包括的迁移路径变为,将待迁移VM直接从重复出现的主机的上一主机迁移至重复出现的主机的下一主机,即待迁移VM的迁移路径将跳过重复出现的主机。
举例来说,如图5所示,图5为本申请提供的获取迁移策略的示意图二。图5示出的VM1的初始迁移策略包括迁移动作依次为M1-111/112、M1-112/113、M1-113/111、M1-111/114。VM1的初始迁移策略指示的迁移路径中,VM 1需两次迁入两次主机111,则第二次出现在迁移路径上的主机111为重复的主机。处理设备120对重复的主机进行删除,从而优化VM 1的迁移路径,例如,优化后的迁移路径包括的迁移动作包括:M1-111/112和M1-113/114。
在本情形中,待迁移VM的迁移过程中,迁移次数减少,在每次迁移所需的最大时间不变的情况下,待迁移VM的总迁移时长降低,提高了待迁移VM的迁移效率。
在第二种可能的情形中,在初始迁移策略存在重复的主机时,处理设备120对重复的主机进行替换,替换为计算机集群110中其他满足待迁移VM所需的资源的空闲主机。空闲主机的实现可参照S310的内容,在此不予赘述。
下面给出两种示例,来说明处理设备120对重复的主机进行替换,从而避免待迁移VM的迁移策略包括环形路径的情况。
示例1,处理设备120将重复的主机替换为计算机集群110中一个空闲主机。
示例2,处理设备120将重复的主机替换为计算机集群110中多个空闲主机。
在本示例中,由于该空闲主机满足待迁移VM所需的资源,因此,待迁移VM可从迁移路径中在重复的主机之前的主机迁入空闲主机,无需等待空闲主机中的VM迁出,减少了待迁移VM的迁移等待时间,提高了待迁移VM的迁移效率。
在第三种可能的情形中,若初始迁移策略中迁移路径指示的迁移次数大于或等于设定的阈值(如20、35等),则可称该初始迁移策略包括迁移长链,该迁移长链是指待迁移VM从源主机迁移至目的主机所需经过的中间主机的数量较多,如中间主机的数量大于或等于一个阈值,如10、20等;或者,该迁移长链是指待迁移VM从源主机迁移至目的主机所需执行的迁移动作大于或等于另一个阈值。示例性的,处理设备120可将初始迁移策略中的迁移路径进行调整,从而减少迁移路径指示的迁移次数,在每次迁移所需的最大迁移时长不变的情况下,迁移次数减少,VM迁移所需的总迁移时长降低,有利于提高VM的迁移效率。
值得注意的是,在VM集群的迁移过程中,通常存在多个待迁移VM同时迁移的情况,且这多个待迁移VM具有依赖关系,或者,各待迁移VM所涉及的迁移动作具有依赖关系,关于依赖关系的内容可参照以上S310的内容,此处不再赘述;以下结合第三种可能的实现方式至第五种可能的实现方式,对处理设备120获取待迁移VM的迁移策略的过程进行说明。
在第三种可能的实现方式中,处理设备基于多个待迁移VM间具有的依赖关系,该多个待迁移VM的初始迁移策略可被统称为初始集群策略。在多个待迁移VM的初始迁移策略组成了环形路径的情况下,处理设备120可以去除该环形路径,从而避免多个待迁移VM之间的循环依赖关系导致迁移时长增大的问题。其中,多个待迁移VM间具有循环依赖关系是指,各待迁移VM的迁移动作的执行,都依赖于对应的前置迁移动作的执行。
应理解,多个待迁移VM间具有循环依赖关系时,多个待迁移VM对应的迁移动作也存在循环依赖关系。由于该多个待迁移VM所要执行的迁移动作可能存在前述的循环依赖关系,或该多个待迁移VM的初始迁移策略存在上述的环形路径,因此导致无法确定前述多个迁移动作中的起始的迁移动作(或称为起始动作)。处理设备通过引入计算机集群110中其他满足待迁移VM所需的资源的主机,对初始集群策略中的一个或多个迁移动作进行拆分,得到一个或多个起始动作。解决初始集群策略中的待迁移VM存在循环依赖的问题,实现对环形路径进行去除,得到集群策略。最后处理设备根据集群策略确定各待迁移VM的迁移策略。
在一种可能的情形中,被拆分的迁移动为拆分代价最小的迁移动作。其中,上述拆分代价最小的迁移动作可为待迁移VM所占计算资源、存储资源、网络资源和空间结构等最小的迁移动作。处理设备120可通过遍历初始集群策略中处于环形路径上的多个迁移动作对应的VM所占计算资源或存储资源等,以得到占用计算资源和存储资源等最小的VM,从而确定对应的迁移动作。关于计算资源、存储资源、网络资源和空间结构的内容可参照以上S310的内容,在此不再赘述。
在另一种可能的情形中,当初始集群策略中包含多个环形路径,处理设备120通过利用求解反馈点集问题得到需要拆分的迁移动作的集合,求解反馈点集问题是指通过输入一个以有向图表示的初始集群策略,确定一个最小的节点子集,使得去除这些节点和其关联的边后有向图是无环的。处理设备确定的节点子集中的节点即是需要拆分的迁移动作,保证了拆分最少的节点使得以有向图表示的初始集群策略中不包含环形路径,从而得到以有向无环图表示的集群策略。
示例的,对于反馈点集问题的求解可以使用启发式优化算法来进行处理,启发式优化算法如模拟退火、禁忌搜索等。
模拟退火算法实质分两层循环,在任一温度水平下,随机扰动产生新解,并计算目标函数值的变化,决定是否被接受。由于算法初始温度比较高,这样,使能量增大的新解在初始时也可能被接受,因而能跳出局部极小值,然后通过缓慢地降低温度,算法就最终可能收敛到全局最优解。
禁忌搜索是一种亚启发式随机搜索算法,它从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探,选择实现让特定的目标函数值变化最多的移动。为了避免陷入局部最优解,禁忌搜索中采用了一种灵活的“记忆”技术,对已经进行的优化过程进行记录和选择,指导下一步的搜索方向。
下面在待迁移VM是图6中的VM 1、VM 3、VM 4和VM 6的基础上,给出一种可能的示例,如图6所示,图6为本申请提供的获取集群策略的示意图一。示出了初始集群策略包括迁移动作M1-111/112、M3-112/113、M4-113/114和M6-114/111,上述迁移动作循环依赖。处理设备根据上述示例确定对迁移动作M3-112/113进行拆分。处理设备通过在迁移动作M3-112/113中引入主机115,将迁移动作M3-112/113拆分为M3-112/115和M3-115/113。由于主机115满足VM3所需的资源,所以迁移动作M3-112/115没有前置迁移动作,迁移动作M3-112/115可以作为起始动作。从而得到的集群策略中的迁移动作,按执行顺序对迁移动作依次排列为M3-112/115、M1-111/112、M6-114/111、M4-113/114、M3-115/113。
处理设备通过将初始集群策略中的环形路径进行去除,避免了初始集群策略中的循环依赖问题,导致待迁移VM的迁移耗时过长。处理设备根据不包含环形路径的集群策略得到多个待迁移VM的迁移策略,基于该迁移策略对待迁移VM进行迁移,减少了因循环依赖问题造成的各待迁移VM的等待时间,提高了VM集群的迁移效率。
在第四种可能的实现方式中,若初始集群策略中多个待迁移VM连续具有依赖关系,导致该初始集群策略的迁移次数大于设定的数值(如20、30等),则可称该初始集群策略包括迁移长链,该迁移长链是指连续具有依赖关系的待迁移VM对应的源主机或目的主机的数量较多,如10、20等;或者,该迁移长链是指连续具有依赖关系的迁移动作的数量大于或等于另一个阈值,如20、35等,其中,当迁移动作可同时执行时,同时执行的迁移动作迁移次数仅算一次。示例性的,如图7所示,图7为本申请提供的初始集群策略的拆分示意图。处理设备可通过以下方式对迁移次数大于设定的数值的初始集群策略进行拆分。
S710,处理设备识别迁移次数大于设定的数值的初始集群策略。
S720,处理设备通过对迁移次数大于设定的数值的初始集群策略进行拆分,得到多个迁移次数小于或等于设定的数值的集群策略。
应理解,图7中各节点不同的字母表示不同的迁移动作。
处理设备120通过在初始集群策略中引入计算机集群110中其他满足待迁移VM所需的资源的主机,对初始集群策略中的一个或多个迁移动作进行拆分,初始集群策略被拆分为多个集群策略;集群策略的迁移次数小于或等于设定的数值。最后处理设备根据集群策略得到各待迁移VM的迁移策略。
举例来说,处理设备通过广度优先算法迭代查找所有初始集群策略中迁移次数最多的初始集群策略,直至迁移次数最多的初始集群策略小于或等于设定的数值,停止迭代,得到需进行拆分的初始集群策略。
下面在待迁移VM是图8中的VM 1、VM 3和VM 4的基础上,给出一种可能的示例,如图8所示,图8为本申请提供的获取集群策略的示意图二,示出了初始集群策略包括迁移动作M1-111/112、M3-112/113、M4-113/114。对应的初始集群策略的迁移次数为3次,当设定的数值为2次时,处理设备将对上述初始集群策略进行拆分。处理设备通过引入满足待迁移VM所需的资源的主机115,将迁移动作M3-112/113拆分为M3-112/115和M3-115/113。由于主机115满足VM3所需的资源且主机114满足VM4所需的资源,所以迁移动作M3-112/115和M4-113/114没有前置迁移动作,迁移动作M3-112/115和M4-113/114可以作为起始动作。得到的集群策略中的迁移动作,按执行顺序对迁移动作依次排列为M3-112/115/M4-113/114、M1-111/112/M3-115/113,M3-112/115/M4-113/114表示M3-112/115和M4-113/114可同时执行,所以得到的集群策略的迁移次数为2次。最后基于集群策略分别确定各待迁移VM的迁移策略。上述的得到的集群策略可分为2个迁移链,如第一迁移链M4-113/114;第二迁移链M3-112/115、M1-111/112/M3-115/113。
如图9所示,图9为本申请提供的一种迁移耗时比对图;处理设备通过以有向无环图表示初始集群策略和集群策略,有向无环图的各节点可表示为不同的迁移动作。箭头表明了执行顺序以及依赖关系。箭头指向的迁移动作依赖于箭头背向的执行动作完成。箭头的指向表明了执行顺序。在判断迁移动作是否具有前置迁移动作时,可通过判断有向无环图中的各节点是否有指向自己的箭头,若没有,则表示没有前置迁移动作。反之,则有。初始集群策略和集群策略的横向长度表示了迁移所需的时间。其中Ts表示基于初始集群策略的迁移耗时与基于集群策略的迁移耗时的差值。
处理设备通过将初始集群策略包括的迁移长链进行拆分,得到集群策略,初始集群策略可从仅包括一个起始动作变为包括多个起始动作。在具有多个起始动作时,各待迁移VM的迁移动作与起始动作间的中间动作变少,进而各待迁移VM的等待时间变短,提高了VM集群的迁移效率。
应理解,中间动作用于指示在集群策略中待迁移VM的迁移动作与起始动作间的其他待迁移VM的迁移动作,该其他待迁移VM的迁移动作的数量为最小值。示例的,上述的初始集群策略有初始动作M4-113/114,该初始动作与M1-111/112间有一个中间,如M3-112/113;在得到集群策略后,M1-111/112与初始动作M3-112/115间没有了中间主机。
在第五种可能的实现方式中,处理设备对初始集群策略中包含的环形路径去除后,得到集群策略,该集群策略的迁移次数大于设定的数值。该集群策略将作为初始集群策略再进行拆分处理,得到多个迁移次数小于或等于设定的数值的集群策略。
下面在待迁移VM是图6中的VM 1、VM 3、VM 4和VM 6的基础上,给出一种可能的示例。如图10所示,图10为本申请提供的获取集群策略的示意图三。处理设备通过将图10中示出的①:M3-112/113进行拆分,得到如上述图6所示的示例中,集群策略包括的迁移动作,按执行顺序该迁移动作依次为M3-112/115、M1-111/112、M6-114/111、M4-113/114、M3-115/113。处理设备将该不满足迁移次数要求的集群策略作为初始集群策略进行拆分处理。处理设备通过在初始集群策略中引入满足VM6所需的资源的主机117,对图10中的②:M6-114/111进行拆分,得到迁移动作M6-117/111和M6-114/117。处理设备120将没有前置依赖动作的M6-114/117和M3-112/115作为起始动作,从而得到的集群策略中的迁移动作,按执行顺序依次为M6-114/117/M3-112/115、M1-111/112/M4-113/114、M6-117/111/M3-115/113。得到的集群策略的迁移次数为3次。最后处理设备基于集群策略分别确定各待迁移VM的迁移策略。
处理设备通过对去除环路后的初始集群策略,再进行拆分,得到多个满足迁移次数要求的集群策略,在避免了迁移动作循环依赖导致的等待时间增长,和迁移长链过长导致的等待时间增长。应理解,最后得到的集群策略中,待迁移VM的迁移动作与起始动作间的中间动作变少,所以各待迁移VM的等待时间变短,提高了VM集群的迁移效率。
可选的,针对于处理设备获取到迁移策略和集群策略后的过程,下面给出了两种可能的实现方式。
在一种可能的实现方式中,如图9和图10示出的获取集群策略的过程,处理设备120通过有向无环图来表示集群策略。在最终得到集群策略或迁移策略后,处理设备120可在前端显示以有向无环图来表示的集群策略或迁移策略,或者在前端显示如图4至图7所示的待迁移VM在各主机间的迁移策略或集群策略。如此,处理设备120通过在前端显示集群策略和迁移策略中至少一种,该迁移策略包括迁移路径或迁移条件,实现数据可视化,便于用户查看。
这里的前端可以是指与处理设备连接的显示器,或者处理设备所具备的显示屏等,本申请对此不做限定。
上述迁移策略或集群策略可有多种表现形式,包括但不限于有向无环图、表格以及树状图等形式。
在一种可能的情形中,用户根据前端所示的集群策略或迁移策略,进行符合用户的需求的调整或删除等处理,处理设备120根据用户的需求,更新迁移策略或集群策略。
示例的,用户的需求可以是指用户对前述的迁移路径和迁移条件中至少一个的修改记录等。
处理设备根据用户的需求,更新迁移策略或集群策略,有利于实现VM集群的迁移更符合用户的需求,避免处理设备实现的VM迁移过程无法被用户干预(如调整或删除),VM迁移效果较差或不符合用户的预期的情况等问题,提高了VM迁移的效率。
可以理解的是,为了实现上述实施例中功能,处理设备和网卡包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图10,详细描述了根据本申请所提供的虚拟机迁移的方法,下面将结合图11,图11为本申请提供的一种虚拟机迁移装置的结构示意图,描述根据本申请所提供的虚拟机迁移装置。虚拟机迁移装置1100可以用于实现上述方法实施例中处理设备或网卡的功能,因此也能实现上述方法实施例所具备的有益效果。在本申请的实施例中,该虚拟机迁移装置1100可以是如图2所示的网卡250,也可以是应用于网卡的模块(如芯片),还可以是应用于处理设备中的处理器的模块。
如图11所示,虚拟机迁移装置1100包括策略获取模块1110和迁移模块1120;该虚拟机迁移装置1100用于实现上述图3~图10中所对应的方法实施例中处理设备的功能。在一种可能的示例中,该虚拟机迁移装置1100用于实现上述虚拟机迁移方法的具体过程包括以下过程:策略获取模块1110,用于根据系统中运行虚拟机的主机的资源,确定待迁移虚拟机的迁移策略;迁移模块1120,用于根据迁移条件,在迁移路径上将待迁移虚拟机从源主机迁移到目的主机。
迁移策略用于指示迁移路径和迁移条件,迁移条件用于指示迁移路径中主机所需满足的资源,即在迁移路径中待迁移VM将要迁往的主机的资源满足待迁移VM所需的资源,从而该主机能正常运行待迁移VM,迁移路径用于指示待迁移VM在迁移过程中经过的主机,迁移路径包括待迁移VM所在的源主机和目的主机。
在迁移模块1120根据迁移路径,对待迁移VM进行每一步迁移动作前,都需判断该迁移动作对应的迁入主机的资源是否满足迁移条件,若每一步迁移动作对应的迁入主机都满足该迁移条件,则将待迁移VM从源主机迁往目的主机。
若当出现一步迁移动作对应的迁入主机的资源不满足迁移条件时,则需将该迁入主机中当前运行的VM迁出,使该迁入主机的可用资源满足待迁移VM所需的资源,才能将待迁移VM迁入上述迁入主机。
为进一步实现上述图3至图10中所示的方法实施例中的功能。虚拟机迁移装置1100还包括显示模块1130,该显示模块1130用于显示集群策略或迁移策略包括的迁移路径和迁移条件中至少一种。
应理解的是,本发明本申请实施例的虚拟机迁移装置1100可以通过CPU实现,也可以通过ASIC实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD)、FPGA、通用阵列逻辑(generic array logic,GAL)或其任意组合。虚拟机迁移装置1100通过软件实现图3至图10对应的任一所示的虚拟机迁移方法时,虚拟机迁移装置1100及其各个模块也可以为软件模块。有关上述虚拟机迁移装置1100实现图3至图10对应的任一所示的虚拟机迁移方法更详细的描述,可以直接参考上述图3~图10所对应的实施例中相关描述直接得到,这里不加赘述。
示例的,当虚拟机迁移装置1100通过硬件实现时,该硬件可以是一种电子设备,如上述的处理设备,或应用在处理设备的处理器、芯片或网卡等,如该电子设备包括接口电路和控制电路。接口电路用于接收来自电子设备之外的其它设备的信号并传输至控制电路,或将来自控制电路的信号发送给电子设备之外的其它设备。控制电路通过逻辑电路或执行代码指令用于实现上述实施例中任一种可能实现方式的方法。有益效果可以参见上述实施例中任一方面的描述,此处不再赘述。
应理解,根据本申请实施例的处理设备可对应于申请实施例中的虚拟机迁移装置1100,并可以对应于执行根据本申请实施例的方法图3~图10对应的相应主体,并且虚拟机迁移装置1100中的各个模块的上述和其它操作和/或功能分别为了实现图3至图10中对应实施例的各个方法的相应流程,为了简洁,在此不再赘述。
可以理解的是,本申请的实施例中的处理器可以是CPU、网络处理器(Neural-Network Processing Units,NPU)或图形处理器(Graphics processing unit,GPU),还可以是其它通用处理器、DSP、ASIC、FPGA或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、PROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (26)
1.一种虚拟机迁移方法,其特征在于,包括:
根据系统中运行虚拟机的主机的资源,确定待迁移虚拟机的迁移策略;所述迁移策略用于指示迁移路径和迁移条件,所述迁移条件用于指示所述迁移路径中主机所需满足的资源,所述迁移路径包括所述待迁移虚拟机所在的源主机和目的主机;
根据所述迁移条件,在所述迁移路径上将所述待迁移虚拟机从所述源主机迁移到所述目的主机。
2.根据权利要求1所述的方法,其特征在于,所述迁移路径上所述源主机和所述目的主机之间的中间主机的资源满足所述中间主机的迁移条件。
3.根据权利要求2所述的方法,其特征在于,所述中间主机的资源满足所述中间主机的迁移条件,包括:所述中间主机中与所述待迁移虚拟机具有依赖关系的虚拟机从所述中间主机迁出。
4.根据权利要求2或3所述的方法,其特征在于,所述迁移路径包括依次连接的所述源主机、所述中间主机和所述目的主机。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据系统中运行虚拟机的主机的资源,确定待迁移虚拟机的迁移策略,包括:
根据所述系统中满足所述待迁移虚拟机的资源需求的主机,获取所述待迁移虚拟机的至少一条迁移路径;
根据所述至少一条迁移路径中迁移时长最小的迁移路径,确定所述待迁移虚拟机的迁移策略。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据系统中运行虚拟机的主机的资源,确定待迁移虚拟机的迁移策略,包括:
根据所述系统中满足所述待迁移虚拟机的资源需求的主机,获取所述待迁移虚拟机的初始迁移策略;
根据预设的规则处理所述初始迁移策略,获取所述待迁移虚拟机的迁移策略;所述预设的规则用于指示:所述迁移策略包括的迁移路径不存在重复的主机和迁移路径指示的迁移次数小于或等于设定的阈值中至少一种。
7.根据权利要求6所述的方法,其特征在于,所述根据预设的规则处理所述初始迁移策略,获取所述待迁移虚拟机的迁移策略,包括:
若所述初始迁移策略包括的迁移路径中存在重复的主机,则删除所述重复的主机,获取所述待迁移虚拟机的迁移策略。
8.根据权利要求6或7所述的方法,其特征在于,所述根据预设的规则处理所述初始迁移策略,获取所述待迁移虚拟机的迁移策略,包括:
若所述初始迁移策略包括的迁移路径中存在重复的主机,则将所述重复的主机替换为所述系统中的其他主机,获取所述待迁移虚拟机的迁移策略。
9.根据权利要求6至8中任一项所述的方法,其特征在于,所述根据预设的规则处理所述初始迁移策略,获取所述待迁移虚拟机的迁移策略,包括:
若所述初始迁移策略包括的迁移路径的迁移次数大于所述设定的阈值,则对所述初始迁移策略包括的迁移路径进行拆分,得到多条迁移次数小于或等于所述设定的阈值的迁移路径。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法还包括:
显示所述迁移策略包括的迁移路径和迁移条件中至少一种。
11.一种虚拟机迁移装置,其特征在于,包括:
策略获取模块,用于根据系统中运行虚拟机的主机的资源,确定待迁移虚拟机的迁移策略;所述迁移策略用于指示迁移路径和迁移条件,所述迁移条件用于指示所述迁移路径中主机所需满足的资源,所述迁移路径包括所述待迁移虚拟机所在的源主机和目的主机;
迁移模块,用于根据所述迁移条件,在所述迁移路径上将所述待迁移虚拟机从所述源主机迁移到所述目的主机。
12.根据权利要求11所述的装置,其特征在于,所述迁移路径上所述源主机和所述目的主机之间的中间主机的资源满足所述中间主机的迁移条件。
13.根据权利要求12所述的装置,其特征在于,所述中间主机的资源满足所述中间主机的迁移条件,包括:所述中间主机中与所述待迁移虚拟机具有依赖关系的虚拟机从所述中间主机迁出。
14.根据权利要求12或13所述的装置,其特征在于,所述迁移路径包括依次连接的所述源主机、所述中间主机和所述目的主机。
15.根据权利要求11至14中任一项所述的装置,其特征在于,所述策略获取模块,具体用于:根据所述系统中满足所述待迁移虚拟机的资源需求的主机,获取所述待迁移虚拟机的至少一条迁移路径;以及,根据所述至少一条迁移路径中迁移时长最小的迁移路径,确定所述待迁移虚拟机的迁移策略。
16.根据权利要求11至14中任一项所述的装置,其特征在于,所述策略获取模块,具体用于:根据所述系统中满足所述待迁移虚拟机的资源需求的主机,获取所述待迁移虚拟机的初始迁移策略;以及,根据预设的规则处理所述初始迁移策略,获取所述待迁移虚拟机的迁移策略;所述预设的规则用于指示:所述迁移策略包括的迁移路径不存在重复的主机和迁移路径指示的迁移次数小于或等于设定的阈值中至少一种。
17.根据权利要求16所述的装置,其特征在于,所述策略获取模块,具体用于:若所述初始迁移策略包括的迁移路径中存在重复的主机,则删除所述重复的主机,获取所述待迁移虚拟机的迁移策略。
18.根据权利要求16或17所述的装置,其特征在于,所述策略获取模块,具体用于:若所述初始迁移策略包括的迁移路径中存在重复的主机,则将所述重复的主机替换为所述系统中的其他主机,获取所述待迁移虚拟机的迁移策略。
19.根据权利要求16至18中任一项所述的装置,其特征在于,所述策略获取模块,具体用于:若所述初始迁移策略包括的迁移路径的迁移次数大于所述设定的阈值,则对所述初始迁移策略包括的迁移路径进行拆分,得到多条迁移次数小于或等于所述设定的阈值的迁移路径。
20.根据权利要求11至19中任一项所述的装置,其特征在于,所述装置还包括:
显示模块,用于显示所述迁移策略包括的迁移路径和迁移条件中至少一种。
21.一种芯片,其特征在于,包括:处理器和供电电路;
所述供电电路用于为所述处理器供电;
所述处理器用于执行权利要求1至10中任一所述的方法。
22.一种网卡,其特征在于,包括:权利要求21所述的芯片和接口;
所述接口用于接收来自所述网卡之外的其他装置的信号并发送至所述芯片;或用于将来自所述芯片的信号发送给所述网卡之外的其他装置。
23.一种处理设备,其特征在于,包括:权利要求22所述的网卡。
24.一种处理系统,其特征在于,包括:多个主机和处理设备;
所述主机用于运行一个或多个虚拟机;
所述处理设备用于对所述多个主机中的所述一个或多个虚拟机进行迁移,实现权利要求1至10中任一项所述的方法。
25.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被处理设备执行时,实现权利要求1至10中任一项所述的方法。
26.一种计算机程序产品,包括计算机程序或指令,其特征在于,当所述计算机程序或指令在被处理设备执行时,实现权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058592.3A CN117667299A (zh) | 2022-08-31 | 2022-08-31 | 虚拟机迁移方法、芯片、网卡、处理设备、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058592.3A CN117667299A (zh) | 2022-08-31 | 2022-08-31 | 虚拟机迁移方法、芯片、网卡、处理设备、系统及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667299A true CN117667299A (zh) | 2024-03-08 |
Family
ID=90064925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211058592.3A Pending CN117667299A (zh) | 2022-08-31 | 2022-08-31 | 虚拟机迁移方法、芯片、网卡、处理设备、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667299A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117931378A (zh) * | 2024-03-21 | 2024-04-26 | 浪潮通信信息系统有限公司 | 虚拟机迁移方法及装置 |
-
2022
- 2022-08-31 CN CN202211058592.3A patent/CN117667299A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117931378A (zh) * | 2024-03-21 | 2024-04-26 | 浪潮通信信息系统有限公司 | 虚拟机迁移方法及装置 |
CN117931378B (zh) * | 2024-03-21 | 2024-06-11 | 浪潮通信信息系统有限公司 | 虚拟机迁移方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10310893B2 (en) | Managing container pause and resume | |
CN110427284B (zh) | 数据处理方法、分布式系统、计算机系统和介质 | |
JP5955870B2 (ja) | 仮想ディスクの最適圧縮のための方法、コンピュータ可読記憶媒体及びシステム | |
US7275249B1 (en) | Dynamically generating masks for thread scheduling in a multiprocessor system | |
US20150127649A1 (en) | Efficient implementations for mapreduce systems | |
JP7467593B2 (ja) | リソース割振り方法、記憶デバイス、および記憶システム | |
US20220057966A1 (en) | Memory system and method of controlling nonvolatile memory | |
CN110704161B (zh) | 虚拟机创建方法、装置及计算机设备 | |
JP6421470B2 (ja) | 仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法 | |
Li et al. | Deduplication-based energy efficient storage system in cloud environment | |
CN105335223A (zh) | 源主机和目的主机上的虚拟机内存迁移装置、方法及系统 | |
US9489295B2 (en) | Information processing apparatus and method | |
CN105302536A (zh) | MapReduce应用的相关参数的配置方法和装置 | |
US20130346714A1 (en) | Hardware-Based Accelerator For Managing Copy-On-Write | |
CN114416310A (zh) | 一种多处理器负载均衡方法、计算设备及存储介质 | |
CN117667299A (zh) | 虚拟机迁移方法、芯片、网卡、处理设备、系统及介质 | |
US10963182B2 (en) | System and method for on-demand recovery points | |
CN115543222B (zh) | 一种存储优化方法、系统、设备及可读存储介质 | |
US10671307B2 (en) | Storage system and operating method thereof | |
KR100847021B1 (ko) | 데이터 저장 장치, 데이터 저장 방법 및 그 방법이 기록된컴퓨터로 읽을 수 있는 기록매체 | |
CN116401043A (zh) | 一种计算任务的执行方法和相关设备 | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN112445412B (zh) | 一种数据存储方法及装置 | |
JP6285850B2 (ja) | プロセスマイグレーション方法及びクラスタシステム | |
JP2015176218A (ja) | 演算処理装置、演算処理装置の制御方法、及び演算処理装置の制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |