专利名称:虚拟机迁移控制方法和装置的制作方法
技术领域:
本发明涉及计算机技术领域,具体涉及虚拟机迁移控制方法和装置。
背景技术:
随着信息系统技术的不断发展,数据在企业的应用越来越广,如何提高信息系统的高可用性(HA, High Availability),成为建设稳健的计算机系统的首要任务之一。HA通常指,通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。传统保护方案花费成本高并且实现起来过于复杂,目前行业的技术趋势是使用虚拟化技术。虚拟化技术是一种将底层硬件设备与上层操作系统、应用程序分离的去耦合技术,如图1所示,引入虚拟机监控器(VMM,Virtual Machine Monitor)层直接管理底层硬件资源,创建与底层硬件无关的虚拟机(VM,Virtual Machine)供上层操作系统和应用程序使用。虚拟化技术打破了物理硬件和操作系统间的硬性连接。当下的计算机是专为运行单个操作系统而设计的,大部分计算机资源远未得到充分利用。借助虚拟化机制可在单台物理机上运行多个虚拟机,每个虚拟机都可以共享同一台物理机的资源并运行不同的操作系统。虚拟化一台物理机仅仅是开始,如果将跨数百台互连的物理机和存储设备进行扩展,可以构建一个完整的虚拟基础架构。无需为每个应用程序永久性地分配服务器、存储空间或网络带宽。与之相对,硬件资源会根据需要动态分配到所需的位置。虚拟基础架构是一种企业级解决方案,可提供流畅、强大的计算能力,从而最大限度地利用资源和节约成本。基于虚拟化基础架构,当虚拟化环境中的硬件或者操作系统发生故障时,可以提供统一且经济高效的故障切换保护,大大提高了可用性。现有技术主要通过在保护主机上未待迁移的主机预留指定资源量(如CPU和内存量),来保证迁移到保护主机的虚拟机的有足够的资源量。现有技术仅在保护主机有足够的未预留资源时,才允许虚拟机迁移到保护主机。当保护主机无足够资源量预留给待迁移的虚拟机(即待迁移虚拟机当前所使用资源量大于保护主机的剩余未预留资源)时,通常拒绝迁移该虚拟机到保护主机。在这种情况下,故障主机上的虚拟机无法立即恢复,导致了业务中断,并且中断时间不可控。
发明内容
本发明实施例提供虚拟机迁移控制方法和装置,以期尽量提高虚拟机的高可用性,尽量避免业务中断。本发明一方面提供一种虚拟机迁移控制方法,可包括监测第一虚拟机上运行的核心应用的使用资源量,其中,所述第一虚拟机运行于第一主机上;若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上。结合第一方面,在第一种可能的实施方式中,所述第二主机剩余的资源量为所述第二主机剩余的未预留资源量或所述第二主机剩余的实际资源量。结合第一方面或第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述方法还包括监测所述第一虚拟机的使用资源量;所述若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,包括若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于监测出的所述核心应用的使用资源量,且第二主机剩余的资源量小于第一虚拟机的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,其中,所述第一虚拟机上运行的部分或全部非核心应用在所述第一虚拟机迁移到所述第二主机之前或之后被裁减掉。结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述方法还包括若所述第二主机剩余的资源量为所述第二主机剩余的未预留资源量,则若所述第一主机发生了故障,且所述第二主机当前剩余的未预留资源量小于监测出的所述核心应用的使用资源量,则缩减N个虚拟机的预留资源量;若缩减所述N个虚拟机的预留资源量之后,使得所述第二主机当前剩余的未预留资源量大于或等于监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,其中,所述N个虚拟机为运行于所述第二主机上的虚拟机,所述N为正整数,所述N个虚拟机中的部分或全部虚拟机的实际使用资源量小于其对应的预留资源量。结合第一方面的第三种可能的实施方式,在第四种可能的实施方式中,所述方法还包括若缩减所述N个虚拟机的预留资源量之后,使得所述第二主机当前剩余的未预留资源量仍小于监测出的所述核心应用的使用资源量,则裁减掉M个虚拟机上运行的部分或者全部非核心应用,将所述第一虚拟机迁移到所述第二主机上,其中,所述M个虚拟机为运行于所述第二主机上的虚拟机,所述M为正整数。结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式,在第五种可能的实施方式中,所述监测第一虚拟机上运行的核心应用的使用资源量,包括周期性的监测第一虚拟机上运行的核心应用的使用资源量,将设定时长内监测到的所述第一虚拟机上运行的核心应用的使用资源量的平均值或最大值或最小值,作为监测到的所述第一虚拟机上运行的核心应用的使用资源量。结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式或第一方面的第三种可能的实施方式或第一方面的第四种可能的实施方式或第一方面的第五种可能的实施方式,在第六种可能的实施方式中,所述核心应用包括操作系统和指定应用。本发明第二方面提供一种虚拟机迁移控制装置,包括监测单元,监测第一虚拟机上运行的核心应用的使用资源量,其中,所述第一虚拟机运行于第一主机上;迁移控制单元,用于若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于所述监测单元监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上。结合第二方面,在第一种可能的实施方式中,所述第二主机剩余的资源量为所述第二主机剩余的未预留资源量或所述第二主机剩余的实际资源量。结合第二方面或第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述监测单元还用于,监测所述第一虚拟机的使用资源量;所述迁移控制单元具体用于,若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于监测出的所述核心应用的使用资源量,且第二主机剩余的资源量小于第一虚拟机的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,其中,所述第一虚拟机上运行的部分或全部非核心应用在所述第一虚拟机迁移到所述第二主机之前或之后被裁减掉。结合第二方面或第二方面的第一种可能的实施方式或第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述迁移控制单元还用于,若所述第二主机剩余的资源量为所述第二主机剩余的未预留资源量,则若所述第一主机发生了故障,且所述第二主机当前剩余的未预留资源量小于监测出的所述核心应用的使用资源量,则缩减N个虚拟机的预留资源量;若缩减所述N个虚拟机的预留资源量之后,使得所述第二主机当前剩余的未预留资源量大于或等于监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,其中,所述N个虚拟机为运行于所述第二主机上的虚拟机,所述N为正整数,所述N个虚拟机中的部分或全部虚拟机的实际使用资源量小于其对应的预留资源量。结合第二方面的第三种可能的实施方式,在第四种可能的实施方式中,所述迁移控制单元还用于,若缩减所述N个虚拟机的预留资源量之后,使得所述第二主机当前剩余的未预留资源量仍小于所述监测单元监测出的所述核心应用的使用资源量,则裁减掉M个虚拟机上运行的部分或者全部非核心应用,将所述第一虚拟机迁移到所述第二主机上,其中,所述M个虚拟机为运行于所述第二主机上的虚拟机,所述M为正整数。可以看出,本发明实施例提供的技术方案中,通过监测运行于第一主机上的第一虚拟机上运行的核心应用的使用资源量;若第一主机发生故障,且第二主机剩余的资源量大于或者等于监测出的上述核心应用的使用资源量,则将第一虚拟机迁移到第二主机上。由于首先考虑的是第一虚拟机上运行的核心应用的使用资源量,这样相对于现有虚拟机迁移机制,能够提高故障主机上运行的虚拟机成功迁移到保护主机的几率,有利于提高虚拟机的高可用性,并且有利于避免相关业务中断。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种虚拟化系统的示意图;图2是本发明实施例提供的一种虚拟化集群系统的示意图;图3是本发明实施例提供的一种虚拟机迁移控制方法的流程示意图;图4是本发明实施例提供的另一种虚拟机迁移控制方法的流程示意图;图5_a是本发明实施例提供的另一种虚拟化集群系统的示意图;图5_b是本发明实施例提供的另一种虚拟化集群系统的示意图;图5-c是本发明实施例提供的另一种虚拟化集群系统的示意图;图6是本发明实施例提供的另一种虚拟化集群系统的示意图;图7是本发明实施例提供的虚拟机迁移控制装置的示意图;图8是本发明实施例提供的计算机系统能够的示意图。
具体实施例方式本发明实施例提供虚拟机迁移控制方法和装置,以期尽量提高虚拟机的高可用性,尽量避免业务中断。为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。以下分别进行详细说明。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三” “第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面先对一些概念进行介绍。主机是使用虚拟化软件的计算机。由于使用了虚拟化软件,计算机有了虚拟层,可以运行多台虚拟机。主机提供虚拟机使用的CPU和内存等资源,并使虚拟机能够访问存储器和网络。群集可看成是一组共享资源和管理接口的主机。例如图2所示,集群可包括中心服务器(Center Sever)和多台主机。向群集添加主机时,主机的资源会成为群集资源的一部分。Center Sever可集中管理群集中的各主机,并可提供便捷的控制和基本的服务,如访问控制、性能监控和配置等。Center Sever可根据系统管理员设定的策略,管理主机的虚拟机分配,以及给定主机内虚拟机的资源分配。利用多台主机搭建成一个群集,群集对其中的所有主机提供HA保护。主机上的虚拟层软件可监控物理机状况,一旦物理机出现故障,Center Sever可根据一定的策略,在具有备用资源量的其它主机上自动重启故障物理机中受影响的虚拟机。当有多个主机出现故障时,保护主机可能会出现资源不足的情况。在这种情况下,虚拟机迁移到保护主机上,可利用虚拟页技术减少相同物理页,利用虚拟内存技术将内存换出到磁盘上等各种技术满足HA要求,但可能劣化保护主机上其它原有虚拟机的性能。本发明虚拟机迁移控制方法的一个实施例,可包括监测第一虚拟机上运行的核心应用的使用资源量,其中,第一虚拟机运行于第一主机上;若第一主机发生了故障,且第二主机剩余的资源量大于或者等于监测出的上述核心应用的使用资源量,则将第一虚拟机迁移到第二主机上,其中,第二主机为第一虚拟机的保护主机。参见图3,图3是本发明实施例提供的一种虚拟机迁移控制方法的流程示意图,参见图3,本发明实施例提供的一种虚拟机迁移控制方法可以包括以下内容301、监测第一虚拟机上运行的核心应用的使用资源量,其中,第一虚拟机运行于
第一主机上。在本发明一些实施例中,可周期性(周期可能是等时长或非等时长的)或在指定事件的触发下的监测第一虚拟机上运行的核心应用的使用资源量,将设定时长内(设定时长内可能记性进行了多次监测)监测到的第一虚拟机上运行的核心应用的使用资源量的平均值(或最大值或最小值或任意一次监测到的使用资源量),作为监测到的第一虚拟机上运行的核心应用的使用资源量。302、若第一主机发生故障,且第二主机剩余的资源量大于或者等于监测出的上述核心应用的使用资源量,则将第一虚拟机迁移到第二主机上。其中,第二主机为第一虚拟机的保护主机。可将第二主机作为第一主机上运行的所有虚拟机的保护主机,此场景下,第二主机可看做是第一主机的保护主机,或也可将第二主机作为第一主机上运行的部分虚拟机的保护主机,当然此场景下第二主机也可看做是第一主机的其中一个保护主机。在本发明一些实施例中,第二主机剩余的资源量可为第二主机剩余的未预留资源量或第二主机剩余的实际资源量。其中,第二主机可能为其上运行的部分或全部虚拟机分别预留一定的资源量,当然,这些虚拟机实际上可能未完全使用对应预留的资源量。可通过监测第二主机上的部分或全部虚拟机的使用资源量,来了解第二主机上的部分或全部虚拟机实际的使用资源量。可通过监测第二主机上的部分或全部虚拟机上运行的核心应用的使用资源量,来了解第二主机上的部分或全部虚拟机上运行的核心应用的使用资源量。在本发明各实施例中,核心应用可包括操作系统和指定应用(当然指定应用可以没有),其中,指定应用例如为用户所指定的应用和/或业务需求所指定的应用,其中,业务需求指定的应用可能是核心业务对应的应用和/或紧急业务对应的应用。例如,第一虚拟机(或其它虚拟机)的核心应用可包括第一虚拟机(或其它虚拟机)操作系统和指定应用(指定应用可以没有),其中该指定应用例如为第一虚拟机(或其它虚拟机)上用户指定的应用和/或业务需求指定的应用,其中,该业务需求指定的应用可能是第一虚拟机(或其它虚拟机)上运行的与核心业务对应的应用和/或紧急业务对应的应用。可以理解,本发明的各实施例所指资源可为虚拟资源或物理资源,其中虚拟资源可包括虚拟CPU和虚拟内存,当然还可包括虚拟机需使用的其它虚拟资源;物理资源可包括物理CPU和物理内存,当然还可包括虚拟机需使用的其它物理资源。
在本发明的一些实施例中,还可进一步监测第一虚拟机的使用资源量;若第一主机发生了故障,且第二主机剩余的资源量大于或者等于监测出的第一虚拟机的核心应用的使用资源量,则将第一虚拟机迁移到第二主机上可包括若第一主机发生了故障,且第二主机剩余的资源量大于或者等于监测出的第一虚拟机核心应用的使用资源量,且第二主机剩余的资源量小于第一虚拟机的使用资源量,则将第一虚拟机迁移到第二主机上,其中,第一虚拟机上运行的部分或全部非核心应用(其中,非核心应用指的是除核心应用外的其它应用)在第一虚拟机迁移到第二主机之前或之后被裁减掉。在本发明的一些实施例中,若第二主机剩余的资源量为第二主机剩余的未预留资源量,则若第一主机发生了故障,且第二主机当前剩余的未预留资源量小于监测出的第一虚拟机的核心应用的使用资源量,则缩减N个虚拟机的预留资源量;若缩减上述N个虚拟机的预留资源量之后,使得第二主机当前剩余的未预留资源量大于或等于监测出的第一虚拟机核心应用的使用资源量,则将第一虚拟机迁移到第二主机上,其中,上述N个虚拟机为运行于第二主机上的虚拟机,上述N为正整数,上述N个虚拟机中的部分或全部虚拟机的实际使用资源量小于其对应的预留资源量。在本发明的一些实施例中,进一步的,若缩减了上述N个虚拟机的预留资源量之后,使得第二主机当前剩余的未预留资源量仍小于监测出的第一虚拟机核心应用的使用资源量,则裁减掉M个虚拟机上运行的部分或者全部非核心应用,将第一虚拟机迁移到第二主机上,其中,上述M个虚拟机为运行于第二主机上的虚拟机,上述M为正整数。在本发明的一些实施例中,若第二主机剩余的资源量为第二主机剩余的实际资源量,则若第一主机发生了故障,且第二主机当前剩余的实际资源量小于监测出的第一虚拟机的核心应用的使用资源量,则可裁减掉X个虚拟机上运行的部分或者全部非核心应用,将第一虚拟机迁移到第二主机上,其中,上述X个虚拟机为运行于第二主机上的虚拟机,上述X为正整数。在本发明的另一些实施例中,若第二主机剩余的资源量为第二主机剩余的实际虚拟资源量,则若第一主机发生了故障,且第二主机当前剩余的实际虚拟资源量小于监测出的第一虚拟机的核心应用的使用资源量,则可扩展第二主机的虚拟资源量(扩展第二主机的虚拟资源量之后,可认为第二主机当前剩余的实际虚拟资源量,大于或者等于监测出的第一虚拟机或第一虚拟机的核心应用的使用资源量),将第一虚拟机迁移到第二主机上,其中,第一虚拟机上运行的部分或全部非核心应用在第一虚拟机迁移到第二主机之前或之后可以被裁减掉。其中,扩展第二主机的虚拟资源量后,第二主机的虚拟资源量和物理资源量之间比例可能高于1:1,例如第二主机的虚拟资源量和物理资源量之间比例可能变成2:1或其它比例。可以看出,本发明实施例提供的技术方案中,通过监测运行于第一主机上的第一虚拟机上运行的核心应用的使用资源量;若第一主机发生故障,且第二主机剩余的资源量大于或者等于监测出的上述核心应用的使用资源量,则将第一虚拟机迁移到第二主机上。由于首先考虑的是第一虚拟机上运行的核心应用的使用资源量,这样相对与现有虚拟机迁移机制,能够提高故障主机上的虚拟机成功迁移几率,这样有利于提高虚拟机的高可用性,并且有利于避免相关业务中断。为便于更好的理解和实施本发明实施例的上述方案,下面举例一些应用场景进行详细说明。参见图4,图4是本发明实施例提供的另一种虚拟机迁移控制方法的流程示意图,参见图4,本发明实施例提供的另一种虚拟机迁移控制方法可以包括以下内容401、监测第一虚拟机上运行的核心应用的使用资源量和第一虚拟机的使用资源量。在本发明一些实施例中,可周期性(周期可能是等时长或非等时长的)或在指定事件的触发下的监测第一虚拟机上运行的核心应用的使用资源量,将设定时长内监测到的第一虚拟机上运行的核心应用的使用资源量的平均值(或最大值或最小值或任意一次监测到的使用资源量),作为监测到的第一虚拟机上运行的核心应用的使用资源量。在本发明一些实施例中,可周期性(周期可能是等时长或非等时长的)或在指定事件的触发下的监测第一虚拟机的使用资源量,将设定时长内监测到的第一虚拟机上的使用资源量的平均值(或最大值或最小值或任意一次监测到的使用资源量),作为监测到的第一虚拟机的使用资源量。402、若第一主机发生故障,判断第二主机当前剩余的未预留资源量是否大于或等于监测出的第一虚拟机的使用资源量;若否,则执行步骤403 ;若是,则执行步骤408。403、判断第二主机当前剩余的未预留资源量是否大于或等于监测出的第一虚拟机核心应用的使用资源量;若否,则执行步骤404 ;若是,则执行步骤407。404、缩减第二主机上运行的N个虚拟机的预留资源量;其中,上述N为正整数。在本发明的一些实施例中,上述N个虚拟机中的部分或全部虚拟机的实际使用资源量小于其对应的预留资源量,或者,上述N个虚拟机中的部分或全部虚拟机所运行的应用对应非核心业务或非紧急业务。在本发明一些实施例中,可为每个虚拟机预留一定资源量,并可将虚拟机的预留资源量记录到对应的配置文件中。其中,在初始化过程中可为每个虚拟机设定预留资源量,该设定预留资源量可记录到配置文件,后续可修改配置文件中记录的预留资源量。在本发明一些实施例中,可根据虚拟机实际的使用资源量得到虚拟机的最佳预留资源量,例如,预留资源量Y作为虚拟机的最佳预留资源量,或者可比较预留资源量Y和对应配置文件中当前记录的预留资源量,若预留资源量Y大于或等于对应配置文件中当前记录的预留资源量,则可将对应配置文件中当前记录的预留资源量作为该虚拟机的最佳预留资源量,若预留资源量Y小于对应配置文件中当前记录的预留资源量,则可将预留资源量Y作为该虚拟机的最佳预留资源量。其中,预留资源量Y为设定时长内监测到的该虚拟机(或该虚拟机上运行的核心应用)的使用资源量的平均值(或者最大值或最小值或任意I次监测到的使用资源量)。若得到了虚拟机的最佳预留资源量,则可将该最佳预留资源量记录到对应的配置文件。在本发明的一些实施例中,可以不缩减第二主机上运行的所有虚拟机的预留资源量,例如在进行预留资源量调整前,将计算出每个虚拟机的最佳预留资源量和当前预留量相减,得出该虚拟机可缩减的资源量。例如假设第二主机上已运行有虚拟机1、虚拟机2和虚拟机3,内存预留情况如下虚拟机I当前的预留资源量为3GB,虚拟机I的最佳预留资源量为3GB (虚拟机I可缩减的资源量为0GB)。虚拟机2当前的预留资源量为6GB,虚拟机2的最佳预留资源量为3GB (虚拟机2可缩减的资源量为3GB)。虚拟机3当前的预留资源量为5GB,虚拟机3的最佳预留资源量为4GB (虚拟机2可缩减的资源量为1GB)。将可缩减的资源量按大小排序,可从可缩减出最大资源量的虚拟机开始调整预留资源量,直到满足需求即停止预留资源量调整。以上举例为例,首先调整虚拟机2的预留资源量,若能满足资源需求则停止调整,否则,继续调整虚拟机3的预留,依此类推,直到调整完第二主机上的所有虚拟机的预留。这样的调整方式可减少需调整虚拟机的个数,进一步缩小了故障影响范围;在多个虚拟机同时迁移时,避免每次都对第二主机上已运行的所有虚拟机都调整一遍对应的预留资源量,每次可能仅调整第二主机上已运行部分虚拟机即可满足资源预留需求。405、判断缩减第二主机上运行的N个虚拟机的预留资源量之后,第二主机当前剩余的未预留资源量是否大于或等于监测出的第一虚拟机核心应用的使用资源量;若否,则执行步骤406 ;若是,则执行步骤407 ;406、扩展第二主机的虚拟资源量;其中,扩展第二主机的虚拟资源量之后,可认为第二主机当前剩余的实际虚拟资源量,大于或者等于监测出的第一虚拟机或第一虚拟机的核心应用的使用资源量。其中,扩展第二主机的虚拟资源量后,第二主机的虚拟资源量和物理资源量之间比例可能高于1:1,例如第二主机的虚拟资源量和物理资源量之间比例可能变成2:1或其它比例。407、裁减掉第一虚拟机上的部分或全部非核心应用。408、将第一虚拟机迁移到第二主机上。参见图5-a 图5-c,在本发明的一些实施例中,可通过在各虚拟机中部署代理程序4002,并可在Center Server部署管理程序4001 (如图5_a所示),或在某个主机上部署管理程序4001 (如图5-b所示),或者可单独部署管理程序4001 (如图5-c所示),利用代理程序4002和管理程序4001协作,实现虚拟机的迁移控制。在本发明的一些实施例中,代理程序4002可主要功能可包括实时监控虚拟机的资源使用情况并通知管理程序4001 ;根据管理程序4001的指示按需裁剪虚拟机上的非核心应用。管理程序4001可与Center Sever保持网络连接,主要功能可包括记录用户指定的虚拟机核心应用;记录虚拟机的使用资源量,记录虚拟机上的核心应用的使用资源量(可包括CPU和内存等);与Center Sever通信修改虚拟机配置文件以调整相应虚拟机配置的预留资源量;通知代理程序4002裁剪掉虚拟机的非核心应用等。
若基于参见图5_a或图5_b或图5_c所不集群架构,在本发明的一些实施例中,集群启动后首先进入初始化阶段,在该初始化阶段各单元完成各自数据初始化。管理程序4001可记录用户指定的虚拟机的核心应用,并可为没有设置预留资源量的虚拟机配置预留资源量。初始化阶段完成后,集群进入监控阶段。在该阶段,各代理程序4002可周期性地监测它所在虚拟机的资源使用情况,并且,通过通道向管理程序4001传送监测到的虚拟机的资源量;管理程序记录各代理发送的虚拟机使用资源量,以作为后续选择资源调整策略时作为依据。当某主机发生故障时,管理程序4001可能失去与相应代理程序4002的通信,管理程序4001可通过调用相应应用程序接口,向Center Sever查询故障主机上的虚拟机的当前状态。若故障主机上的虚拟机全部成功迁移到其它主机,管理程序4001可继续监控,否则进入资源调节阶段(例如步骤40Γ步骤406所示资源调节方式)。在资源调节阶段结束后,管理程序4001可通知Center Server重新迁移故障主机上的虚拟机,迁移成功后相应代理程序4002重启并进入监控阶段。 下面举例一个更为具体的例子进行说明。例如图6所示,假设群集中有两台主机,其中一台是将会发生故障的故障主机,另一台是提供保护的保护主机。其中,保护主机上有三个正在运行的虚拟机W1、虚拟机W2、虚拟机W3,故障主机上有一台运行的虚拟机W4 ;每台虚拟机上都运行着代理程序;当故障主机发生故障时,虚拟机W4将要迁移到保护主机上,例如下表I所示(本举例场景中的以内存资源为例):表I
权利要求
1.一种虚拟机迁移控制方法,其特征在于,包括: 监测第一虚拟机上运行的核心应用的使用资源量,其中,所述第一虚拟机运行于第一主机上; 若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上。
2.根据权利要求1所述的方法,其特征在于, 所述第二主机剩余的资源量为所述第二主机剩余的未预留资源量或所述第二主机剩余的实际资源量。
3.根据权利要求1或2所述的方法,其特征在于, 所述方法还包括: 监测所述第一虚拟 机的使用资源量; 所述若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,包括: 若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于监测出的所述核心应用的使用资源量,且第二主机剩余的资源量小于第一虚拟机的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,其中,所述第一虚拟机上运行的部分或全部非核心应用在所述第一虚拟机迁移到所述第二主机之前或之后被裁减掉。
4.根据权利要求1至3任一项所述的方法,其特征在于, 所述方法还包括: 若所述第二主机剩余的资源量为所述第二主机剩余的未预留资源量,则若所述第一主机发生了故障,且所述第二主机当前剩余的未预留资源量小于监测出的所述核心应用的使用资源量,则缩减N个虚拟机的预留资源量;若缩减所述N个虚拟机的预留资源量之后,使得所述第二主机当前剩余的未预留资源量大于或等于监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,其中,所述N个虚拟机为运行于所述第二主机上的虚拟机,所述N为正整数,所述N个虚拟机中的部分或全部虚拟机的实际使用资源量小于其对应的预留资源量。
5.根据权利要求4所述的方法,其特征在于, 所述方法还包括: 若缩减所述N个虚拟机的预留资源量之后,使得所述第二主机当前剩余的未预留资源量仍小于监测出的所述核心应用的使用资源量,则裁减掉M个虚拟机上运行的部分或者全部非核心应用,将所述第一虚拟机迁移到所述第二主机上,其中,所述M个虚拟机为运行于所述第二主机上的虚拟机,所述M为正整数。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述监测第一虚拟机上运行的核心应用的使用资源量,包括:周期性的监测第一虚拟机上运行的核心应用的使用资源量,将设定时长内监测到的所述第一虚拟机上运行的核心应用的使用资源量的平均值或最大值或最小值,作为监测到的所述第一虚拟机上运行的核心应用的使用资源量。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述核心应用包括操作系统和指定应用。
8.—种虚拟机迁移控制装置,其特征在于,包括:监测单元,监测第一虚拟机上运行的核心应用的使用资源量,其中,所述第一虚拟机运行于第一主机上; 迁移控制单元,用于若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于所述监测单元监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上。
9.根据权利要求8所述的虚拟机迁移控制装置,其特征在于, 所述第二主机剩余的资源量为所述第二主机剩余的未预留资源量或所述第二主机剩余的实际资源量。
10.根据权利要求8或9所述的虚拟机迁移控制装置,其特征在于, 所述监测单元还用于,监测所述第一虚拟机的使用资源量; 所述迁移控制单元具体用于,若所述第一主机发生了故障,且所述第二主机剩余的资源量大于或者等于监测出的所述核心应用的使用资源量,且第二主机剩余的资源量小于第一虚拟机的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,其中,所述第一虚拟机上运行的部分或全部非核心应用在所述第一虚拟机迁移到所述第二主机之前或之后被裁减掉。
11.根据权利要求8至10任一项所述的虚拟机迁移控制装置,其特征在于, 所述迁移控制单元还用于,若所述第二主机剩余的资源量为所述第二主机剩余的未预留资源量,则若所述第一主机发生了故障,且所述第二主机当前剩余的未预留资源量小于监测出的所述核心应用的使用资源量,则缩减N个虚拟机的预留资源量;若缩减所述N个虚拟机的预留资源量之后,使得所述第二主机当前剩余的未预留资源量大于或等于监测出的所述核心应用的使用资源量,则将所述第一虚拟机迁移到所述第二主机上,其中,所述N个虚拟机为运行于所述第 二主机上的虚拟机,所述N为正整数,所述N个虚拟机中的部分或全部虚拟机的实际使用资源量小于其对应的预留资源量。
12.根据权利要求11所述的虚拟机迁移控制装置,其特征在于,所述迁移控制单元还用于,若缩减所述N个虚拟机的预留资源量之后,使得所述第二主机当前剩余的未预留资源量仍小于所述监测单元监测出的所述核心应用的使用资源量,则裁减掉M个虚拟机上运行的部分或者全部非核心应用,将所述第一虚拟机迁移到所述第二主机上,其中,所述M个虚拟机为运行于所述第二主机上的虚拟机,所述M为正整数。
全文摘要
本发明实施例公开了虚拟机迁移控制方法和装置。其中,一种虚拟机迁移控制方法可包括监测第一虚拟机上运行的核心应用的使用资源量,其中,第一虚拟机运行于第一主机上;若第一主机发生了故障,且第二主机剩余的资源量大于或者等于监测出的核心应用的使用资源量,则将第一虚拟机迁移到第二主机上。本发明实施例提供的技术方案,有利于提高虚拟机的高可用性,有利于避免业务中断。
文档编号G06F9/455GK103077079SQ20121058710
公开日2013年5月1日 申请日期2012年12月28日 优先权日2012年12月28日
发明者颜开, 秦翼, 刘贺 申请人:华为技术有限公司