虚拟机迁移方法和装置制造方法

文档序号:6493476阅读:165来源:国知局
虚拟机迁移方法和装置制造方法
【专利摘要】本发明实施例提供一种虚拟机迁移方法和装置。所述方法包括:通过获取本机中各虚拟机的内存信息,当本机的负载过重时产生虚拟机迁移请求,并获取候选服务器及其内存信息,然后比较虚拟机的内存信息和候选服务器的内存信息,以确定本机中需要迁移的虚拟机和在所述候选服务器中选择目标服务器,并将本机中选择的需要迁移的虚拟机迁移至选择的目标服务器。本发明实施例保证了虚拟机迁移后系统具有非常高的内存利用率,不会出现对物理内存需求的急剧增加,而且保证了在服务器内存负载过重时,迁移虚拟机后服务器能够获得所期望的空闲内存。
【专利说明】虚拟机迁移方法和装置
【技术领域】
[0001 ] 本发明实施例涉及数据处理技术,尤其涉及一种虚拟机迁移方法和装置。
【背景技术】
[0002]随着虚拟化技术的蓬勃发展,数据中心越来越多的采用虚拟机提供服务,并且在数据中心中,内存往往成为虚拟机整合的瓶颈,虚拟化环境下的内存共享技术近几年得到了迅速发展并被广泛应用。为了使数据中心的负载平衡或者有效利用服务器资源,常常需要迁移虚拟机。虚拟机的迁移是指在由多个服务器构成的集群中,将源服务器上的虚拟机(包括操作系统和应用程序)移动到目标服务器,并且能够在目标服务器上继续正常运行。虚拟化环境下的内存共享技术是指,在物理内存中以页框为操作单位,通过将物理内存中内容一样的页框仅保留一份,从而消除冗余,增大物理内存的利用率,运行更多的虚拟机。
[0003]为了使数据中心的负载平衡或者有效利用服务器资源,都需要做出迁移决策。当前的迁移决策方案基本为:监控每台服务器的资源利用情况,例如监控CPU、内存和网络带宽等负载情况,将负载过重的服务器上的虚拟机迁往负载较轻的服务器,以达到负载平衡。
[0004]然而,上述方案对于采用内存共享技术的虚拟化环境是不适合的,决策得出的方案有时不能达到最优效果,有时甚至不能达到预期的效果。首先是,无法保证迁移后各服务器构成的集群中具有较高的内存利用率,反而可能出现集群的物理内存需求量的大幅上升。其次,当由于内存资源紧张而迁移虚拟机时,无法保证迁移之后,获得期望的空闲内存。

【发明内容】

[0005]本发明实施例提供一种虚拟机迁移方法和装置,以提高虚拟机迁移后集群具有较高的内存利用率。
[0006]本发明实施例第一方面,提供一种虚拟机迁移方法,包括:
[0007]获取本机中各虚拟机的内存信息;
[0008]根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息;
[0009]根据所述各虚拟机的内存信息和候选服务器的内存信息,在所述候选服务器中选择目标服务器;
[0010]将本机中的虚拟机迁移至选择的目标服务器。
[0011]本发明实施例第一方面的第一种可能的实现方式,所述候选服务器的内存信息包括服务器内存哈希表;
[0012]虚拟机内存信息包括虚拟机内存哈希表、虚拟机内存占用量和虚拟机独占物理内存量。
[0013]结合本发明实施例第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,根据所述各虚拟机的内存信息和候选服务器的内存信息,在所述候选服务器中选择目标服务器包括:
[0014]根据各虚拟机的内存信息和所述候选服务器的内存信息,选择待迁移虚拟机;[0015]根据选择的待迁移虚拟机的内存信息和所述候选服务器的内存信息,在所述候选服务器中选择目标服务器。
[0016]结合本发明实施例第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,根据各虚拟机的内存信息和所述候选服务器的内存信息,选择待迁移虚拟机包括:
[0017]选择虚拟机内存占用量小于或等于各候选服务器的空闲内存量的虚拟机;
[0018]将所选择的各虚拟机的虚拟机内存哈希表和候选服务器的服务器内存哈希表进行比较,获取各内存共享量;
[0019]选择能和候选服务器产生内存共享量最大的虚拟机作为待迁移虚拟机。
[0020]结合本发明实施例第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,根据选择的待迁移虚拟机的内存信息和所述候选服务器的内存信息,在所述候选服务器中选择目标服务器包括:
[0021]将待迁移虚拟机的虚拟机内存哈希表和候选服务器的服务器哈希表进行比较,获取内存共享量;
[0022]选择能和待迁移虚拟机能产生内存共享量最大的候选服务器作为目标服务器。
[0023]结合本发明实施例第一方面,在第一方面的第五种可能的实现方式中,根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息包括:
[0024]根据本机中各虚拟机的独占物理内存使用情况产生虚拟机迁移请求,并获取候选服务器及其内存信息。
[0025]结合本发明实施例第一方面,在第一方面的第六种可能的实现方式中,根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息包括:
[0026]根据本机的负载状态产生虚拟机迁移请求;
[0027]通过本机中的发送线程将所述虚拟机迁移请求广播至所在服务器集群中的所有服务器;
[0028]通过本机中的接收线程接收候选服务器返回的迁移响应及候选服务器的内存信
肩、O
[0029]结合本发明实施例第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,根据本机的负载状态产生虚拟机迁移请求包括:
[0030]识别本机的CPU利用率、网络利用率和内存利用率;
[0031]当识别到本机的CPU利用率或网络利用率达到第一设定门限值时,将本机各虚拟机的内存信息携带在产生的虚拟机迁移请求中;
[0032]当识别到本机的内存利用率达到第二设定门限值时,将本机中独占物理内存量最多的虚拟机的内存信息携带在产生的虚拟机迁移请求中。
[0033]结合本发明实施例第一方面,在第一方面的第八种可能的实现方式中,还包括:
[0034]通过本机的接收线程监听其它服务器发送的虚拟机迁移请求;
[0035]当判断本机能够满足所述虚拟机迁移请求时,产生并返回迁移响应和本机的内存信息,作为候选服务器及其内存信息。
[0036]结合本发明实施例第一方面,在第一方面的第九种可能的实现方式中,根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息包括:[0037]根据本机的负载状态产生虚拟机迁移请求;
[0038]将所述虚拟机迁移请求上报至迁移授权方;
[0039]接收所述迁移授权方返回的候选服务器及其内存信息。
[0040]本发明实施例的第二方面提供一种虚拟机迁移装置,包括:
[0041]虚拟机内存获取模块,用于获取本机中各虚拟机的内存信息;
[0042]候选服务器获取模块,用于根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息;
[0043]目标服务器选择模块,用于根据所述各虚拟机的内存信息和候选服务器的内存信息,在所述候选服务器中选择目标服务器;
[0044]虚拟机迁移模块,用于将本机中的待迁移虚拟机迁移至选择的目标服务器。
[0045]本发明实施例第二方面的第一种实现方式,所述候选服务器的内存信息包括服务器内存哈希表;
[0046]虚拟机内存信息包括虚拟机内存哈希表、虚拟机内存占用量和虚拟机独占物理内存量。
[0047]结合本发明实施例第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,目标服务器选择模块包括:
[0048]虚拟机选择单元,用于根据各虚拟机的内存信息和所述候选服务器的内存信息,选择待迁移虚拟机;
[0049]服务器选择单元,用于根据选择的待迁移虚拟机的内存信息和所述候选服务器的内存信息,在所述候选服务器中选择目标服务器。
[0050]结合本发明实施例第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,虚拟机选择单元包括:
[0051]第一选择子单元,用于选择虚拟机内存占用量小于或等于各候选服务器的空闲内存量的虚拟机;
[0052]共享内存比较子单元,用于将所选择的各虚拟机的虚拟机内存哈希表和候选服务器的服务器内存哈希表进行比较,获取各内存共享量;
[0053]第二选择子单元,用于选择能和候选服务器产生内存共享量最大的虚拟机作为待迁移虚拟机。
[0054]结合本发明实施例第二方面的第二种可能的实现方式,在第二方面的第四种可能的实现方式中,服务器选择单元包括:
[0055]内存共享量比较子单元,用于将待迁移虚拟机的虚拟机内存哈希表和候选服务器的服务器哈希表进行比较,获取内存共享量;
[0056]目标服务器选择子单元,用于选择能和待迁移虚拟机能产生内存共享量最大的候选服务器作为目标服务器。
[0057]结合本发明实施例第二方面,在第二方面的第五种可能的实现方式中,候选服务器获取模块具体用于根据本机中各虚拟机的独占物理内存使用情况产生虚拟机迁移请求,并获取候选服务器及其内存信息。。
[0058]结合本发明实施例第二方面,在第二方面的第六种可能的实现方式中,候选服务器获取模块包括:[0059]请求产生单元,用于根据本机的负载状态产生虚拟机迁移请求;
[0060]请求广播单元,用于通过本机中的发送线程将所述虚拟机迁移请求广播至所在服务器集群中的所有服务器;
[0061]响应接收单元,用于通过本机中的接收线程接收候选服务器返回的迁移响应及候选服务器的内存信息。。
[0062]结合本发明实施例第二方面,在第二方面的第七种可能的实现方式中,请求产生单元包括:
[0063]负载类型识别子单元,用于识别本机的CPU利用率、网络利用率和内存利用率;
[0064]比较第一门限值子单元,用于当识别到本机的CPU利用率或网络利用率达到第一设定门限值时,将本机各虚拟机的内存信息携带在产生的虚拟机迁移请求中;
[0065]比较第二门限值子单元,用于当识别到本机的内存利用率达到第二设定门限值时,将本机中独占物理内存量最多的虚拟机的内存信息携带在产生的虚拟机迁移请求中。
[0066]结合本发明实施例第二方面,在第二方面的第八种可能的实现方式中,还包括:
[0067]请求接收模块,用于通过本机的接收线程监听其它服务器发送的虚拟机迁移请求;
[0068]响应发送模块,用于当判断本机能够满足所述虚拟机迁移请求时,产生并返回迁移响应和本机的内存信息,作为候选服务器及其内存信息。
[0069]结合本发明实施例第二方面,在第二方面的第九种可能的实现方式中,候选服务器获取模块包括:
[0070]请求产生单元,用于根据本机的负载状态产生虚拟机迁移请求;
[0071]请求上报单元,用于将所述虚拟机迁移请求上报至迁移授权方;
[0072]服务器接收单元,用于接收所述迁移授权方返回的候选服务器及其内存信息。
[0073]本发明各实施例提供的虚拟机迁移方法和装置,通过获取本机中各虚拟机的内存信息,当本机的负载过重时产生虚拟机迁移请求,并获取候选服务器及其内存信息,然后比较虚拟机的内存信息和候选服务器的内存信息,以确定本机中需要迁移的虚拟机和在所述候选服务器中选择目标服务器,并将本机中选择的需要迁移的虚拟机迁移至选择的目标服务器,从而解决了现有技术中虚拟机迁移后可能导致系统内存利用率降低,系统物理内存的大量消耗以及迁移的虚拟机所在的服务器无法获得所期望的空闲内存的问题。
【专利附图】

【附图说明】
[0074]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0075]图1为本发明虚拟机迁移方法实施例一的流程图;
[0076]图2为本发明虚拟机迁移方法实施例二的流程图;
[0077]图3为本发明虚拟机迁移方法实施例三的流程图;
[0078]图4为本发明虚拟机迁移装置实施例一的结构示意图;
[0079]图5为本发明虚拟机迁移装置实施例二的结构示意图;[0080]图6为本发明虚拟机迁移装置实施例三的结构示意图;
[0081]图7为本发明虚拟机迁移装置实施例四的结构示意图;
[0082]图8为本发明虚拟机迁移装置实施例五的结构示意图;
[0083]图9为本发明虚拟机迁移装置实施例六的结构示意图。
【具体实施方式】
[0084]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0085]图1为本发明虚拟机迁移方法实施例一的流程图,本实施例适用于多台服务器构成的集群中,将虚拟机在服务器之间进行迁移的情况。本实施例的虚拟机迁移方法可以由配置在各服务器中的虚拟机迁移装置来执行,该装置可以采用硬件和/或软件来实现。参照图1,本实施例的虚拟机迁移方法包括如下步骤:
[0086]步骤101、获取本机中各虚拟机的内存信息;
[0087]虚拟机的内存信息用于表征该虚拟机的内存使用情况,优选是包括虚拟机内存哈希表、虚拟机内存占用量和虚拟机独占物理内存量等信息。所谓虚拟机内存哈希表,是指该虚拟机所占用的内存数据基于哈希算法转换为哈希结果后形成的哈希表。虚拟机内存占用量是指该虚拟机所占用的内存总量,独占物理内存量是指该虚拟机的内存占用量除去与其它虚拟机共享内存之外剩余的、由该虚拟机独占的内存量。
[0088]步骤102、根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存
信息;
[0089]在步骤102中,负载状态可以是CPU、网络带宽和内存等服务器所能利用的资源情况。服务器在负载较重时产生虚拟机迁移请求。在获知所有可迁移的候选服务器的同时还获取各候选服务器的内存信息,即能表达其内存使用情况的信息,例如空闲内存量、该候选服务器的内存哈希表等。
[0090]步骤103、根据各虚拟机的内存信息和候选服务器的内存信息,在候选服务器中选择目标服务器;
[0091]步骤104、将本机中的待迁移虚拟机迁移至选择的目标服务器。
[0092]具体而言,通过为每台虚拟机建立虚拟机内存哈希表,并获取虚拟机内存占用量和虚拟机独占物理内存量,以在产生虚拟机迁移请求时,将虚拟机内存信息和候选服务器的内存信息进行比较,从而选择需要迁移的虚拟机及其要迁往的目标服务器。待迁移虚拟机可以是用户指定的,也可以优选是根据负载情况自动选择的能减轻负载的虚拟机。比较的方式可以根据需求进行设定,使得执行虚拟机迁移后的服务器甚至服务器集群的内存利用率提高,或者达到预期的迁移目标。
[0093]本发明实施例通过在虚拟机迁移过程中,考虑待迁移虚拟机和候选服务器的内存信息,从而选择合适的目标服务器,提高了虚拟机迁移后服务器的内存利用率,保证了迁移的虚拟机所在的服务器能够获得所期望的空闲内存量。
[0094]图2为本发明虚拟机迁移方法实施例二的流程图,本发明实施例以上述实施例为基础,进一步进行了优化,参照图2,本实施例中,根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息的操作具体包括如下步骤:
[0095]步骤1021、根据本机的负载状态产生虚拟机迁移请求。
[0096]典型的情况是,当本机的负载过重时,产生虚拟机迁移请求。负载除了可以考虑CPU、网络资源利用率之外,优选是根据本机中各虚拟机的独占物理内存使用情况产生虚拟机迁移请求,并获取候选服务器及其内存信息。例如,各虚拟机的独占物理内存量达到设定门限值时就可以触发产生虚拟机迁移情况。
[0097]具体执行的操作可以为:
[0098]步骤1021a、识别本机的CPU利用率、网络利用率和内存利用率;
[0099]步骤1021b、当识别到本机的CPU利用率或网络利用率达到第一设定门限值时,将本机各虚拟机的内存信息携带在产生的虚拟机迁移请求中;
[0100]步骤1021c、当识别到本机的内存利用率达到第二设定门限值时,将本机中独占物理内存量最多的虚拟机的内存信息携带在产生的虚拟机迁移请求中;
[0101]上述步骤中,可以综合考虑各种资源使用情况,也可以独立考虑CPU、网络和内存利用率的情况。将本机的负载情况携带在虚拟机迁移请求中,可以令其他服务器考虑是否可满足此迁移需求。例如,独占物理内存量最多的虚拟机内存信息携带在迁移请求中,可令其他服务器考虑自身的空闲内存是否足以承担迁移后的虚拟机。
[0102]步骤1022、通过本机中的发送线程将所述虚拟机迁移请求广播至所在服务器集群中的所有服务器;
[0103]步骤1023、通过本机中的接收线程接收候选服务器返回的迁移响应及候选服务器的内存信息。
[0104]上述步骤中,其它服务器的接收线程监听其它服务器发送的虚拟机迁移请求,该服务器可以根据自身负载状态判断自身是否满足虚拟机迁移请求。
[0105]当服务器识别到自身负载状态低于某一设定门限值时,则该服务器产生并通过发送线程返回迁移响应及其内存信息,作为候选服务器。
[0106]当服务器负载状态未低于某一设定门限值时,该服务器忽略收到的数据并返回无效值。
[0107]即每个服务器既作为迁移者,又作为被迁移者,既能够产生并发送迁移请求,也能返回迁移响应。所以,该方法还可以包括:通过本机的接收线程监听其它服务器发送的虚拟机迁移请求;当判断本机能够满足所述虚拟机迁移请求时,产生并返回迁移响应和本机的内存信息,作为候选服务器及其内存信息。所谓能满足迁移请求,通常是指该服务器的负载情况能够满足迁移请求的需求。
[0108]本发明实施例的技术方案,通过以发送线程和接收线程来收发迁移请求和迁移响应,使得各个服务器能够从多个服务器中选择目标服务器。
[0109]当然,根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息的操作也可以是:根据本机的负载状态产生虚拟机迁移请求;将所述虚拟机迁移请求上报至迁移授权方;接收所述迁移授权方返回的候选服务器及其内存信息。即迁移授权方可作为集中管理者,统一为各服务器收发迁移请求和迁移响应。
[0110]图3为本发明虚拟机迁移方法实施例三的流程图,本发明实施例以上述实施例一为基础,进一步进行了优化,参照图3,本实施例中,虚拟机内存信息优选是包括虚拟机内存哈希表、虚拟机内存占用量和虚拟机独占物理内存量,候选服务器的内存信息包括服务器内存哈希表,则根据所述各虚拟机的内存信息和候选服务器的内存信息,在所述候选服务器中选择目标服务器具体操作包括如下步骤:
[0111]步骤310、根据各虚拟机的内存信息和所述候选服务器的内存信息,选择待迁移虚拟机;
[0112]上述技术方案,首先可以在多个虚拟机中选择最适合迁移的待迁移虚拟机,此选择的依据可以是候选服务器具备迁移的能力,以及能够与候选服务器具有最多共享量的虚拟机,共享量最大表明该虚拟机的迁移将能够使用更多的共享内存,而占用更少的独占物理内存。
[0113]则步骤310可以具体为:
[0114]步骤311、选择虚拟机内存占用量小于或等于各候选服务器的空闲内存量的虚拟机;
[0115]步骤312、将所选择的各虚拟机的虚拟机内存哈希表和候选服务器的服务器内存哈希表进行比较,获取各内存共享量;
[0116]步骤313、选择能和候选服务器产生内存共享量最大的虚拟机作为待迁移虚拟机。
[0117]步骤320、根据选择的待迁移虚拟机的内存信息和所述候选服务器的内存信息,在所述候选服务器中选择目标服务器。
[0118]上述步骤320是在确定待迁移虚拟机之后进一步选择目标服务器,其依据也可以是内存共享量的最大化,则步骤320可包括:
[0119]步骤321、将待迁移虚拟机的虚拟机内存哈希表和候选服务器的服务器哈希表进行比较,获取内存共享量;
[0120]步骤322、选择能和待迁移虚拟机能产生内存共享量最大的候选服务器作为目标服务器。
[0121]本发明实施例通过在虚拟机迁移过程中,首先比较待迁移虚拟机的内存占用量和候选服务器的空闲内存量,然后将选择的待迁移虚拟机的虚拟机哈希表和候选服务器的服务器哈希表进行比较,获取内存共享量,并根据内存共享量确定需要迁移的虚拟机和需要迁移的虚拟机要迁往的目标服务器。从而提高了虚拟机迁移后服务器的内存利用率,避免了迁移后可能出现的对物理内存需求量的急剧上升。
[0122]图4为本发明虚拟机迁移装置实施例一的结构示意图,本实施例适用于多台服务器构成的集群中,将虚拟机在服务器之间进行迁移的情况。该装置可以采用硬件和/或软件来实现,配置在服务器中。参照图4,该实施例虚拟机迁移装置包括如下模块:虚拟机内存获取模块401、候选服务器获取模块402、目标服务器选择模块403和虚拟机迁移模块404。
[0123]其中,虚拟机内存获取模块401用于获取本机中各虚拟机的内存信息,虚拟机的内存信息优选是包括虚拟机内存哈希表、虚拟机内存占用量和虚拟机独占物理内存量;候选服务器获取模块402用于根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息,所述候选服务器的内存信息可以包括服务器内存哈希表;目标服务器选择模块403用于根据各虚拟机的内存信息和候选服务器的内存信息,在候选服务器中选择目标服务器;虚拟机迁移模块404用于将本机中的待迁移虚拟机迁移至选择的目标服务器。
[0124]该候选服务器获取模块402优选用于根据本机中各虚拟机的独占物理内存使用情况产生虚拟机迁移请求,并获取候选服务器及其内存信息。
[0125]上述的虚拟机迁移装置,优选是候选服务器获取模块402包括:请求产生单元4021、请求广播单元4022和响应接收单元4023。其中,请求产生单元4021,用于根据本机的负载状态产生虚拟机迁移请求;请求广播单元4022,用于通过本机中的发送线程将所述虚拟机迁移请求广播至所在服务器集群中的所有服务器;响应接收单元4023,用于通过本机中的接收线程接收候选服务器返回的迁移响应及候选服务器的内存信息。
[0126]上述方案中,该装置还可以包括:请求接收模块405和响应发送模块406。其中,请求接收模块405用于通过本机的接收线程监听其它服务器发送的虚拟机迁移请求;响应发送模块406用于当判断本机能够满足所述虚拟机迁移请求时,产生并返回迁移响应和本机的内存信息,作为候选服务器及其内存信息。
[0127]在图4所示实施例的基础上,图5为本发明虚拟机迁移装置实施例二的结构示意图,参照图5,目标服务器选择模块403包括如下单元:虚拟机选择单元4031和服务器选择单元4032。
[0128]其中,虚拟机选择单元4031用于根据各虚拟机的内存信息和所述候选服务器的内存信息,选择待迁移虚拟机;服务器选择单元4032用于根据选择的待迁移虚拟机的内存信息和所述候选服务器的内存信息,在所述候选服务器中选择目标服务器。
[0129]本发明实施例提供的虚拟机迁移装置,通过各待迁移虚拟机的内存信息和候选服务器的内存信息,在候选服务器中选择目标服务器,提高了迁移虚拟机后服务器的内存利用率。
[0130]图6为本发明虚拟机迁移装置实施例三的结构示意图,参照图6,更详细的,虚拟机选择单元4031可包括如下子单元:第一选择子单元4031a、共享内存比较子单元4031b和第二选择子单元4031c。
[0131]其中,第一选择子单元4031a用于选择虚拟机内存占用量小于或等于各候选服务器的空闲内存量的虚拟机;共享内存比较子单元4031b用于将所选择的各虚拟机的虚拟机内存哈希表和候选服务器的服务器内存哈希表进行比较,获取各内存共享量;第二选择子单元4031c用于选择能和候选服务器产生内存共享量最大的虚拟机作为待迁移虚拟机。
[0132]本发明实施例提供的虚拟机迁移装置,把虚拟机内存占用量和各候选服务器的空闲内存量进行比较选择符合条件的虚拟机,把选择的符合条件的虚拟机的虚拟机内存哈希表和候选服务器的服务器内存哈希表进行比较,获取内存共享量,再根据获取的内存共享量选择选中的需要迁移的虚拟机,提高了迁移虚拟机后服务器的内存利用率。
[0133]图7为本发明虚拟机迁移装置实施例四的结构示意图,参照图7,更详细地,服务器选择单元4032包括如下子单元:内存共享量比较子单元4032a和目标服务器选择子单元4032b ο
[0134]其中,内存共享量比较子单元4032a用于将待迁移虚拟机的虚拟机内存哈希表和候选服务器的服务器哈希表进行比较,获取内存共享量;目标服务器选择子单元4032b用于选择能和待迁移虚拟机能产生内存共享量最大的候选服务器作为目标服务器。
[0135]本发明实施例提供的虚拟机迁移装置,通过比较待迁移虚拟机的虚拟机内存哈希表和候选服务器的服务器内存哈希表,根据获取的最大的内存共享量选择目标服务器,避免了服务器内存负载过重导致迁移虚拟机后无法获得足够的空闲内存,提高了迁移虚拟机后服务器的内存利用率。
[0136]图8为本发明虚拟机迁移装置实施例五的结构示意图,参照图8,候选服务器获取模块402可包括如下单元:请求产生单元4021、请求广播单元4022和响应接收单元4023。
[0137]其中,请求产生单元4021用于根据本机的负载状态产生虚拟机迁移请求;请求广播单元4022用于通过本机中的发送线程将所述虚拟机迁移请求广播至所在服务器集群中的所有服务器;响应接收单元4023用于通过本机中的接收线程接收候选服务器返回的迁移响应。
[0138]或者,候选服务器获取模块402也可包括:请求产生单元,用于根据本机的负载状态产生虚拟机迁移请求;请求上报单元,用于将所述虚拟机迁移请求上报至迁移授权方;服务器接收单元,用于接收所述迁移授权方返回的候选服务器及其内存信息。
[0139]两种方式可并列执行,或结合实现。
[0140]本发明实施例提供的虚拟机迁移装置,通过根据本机的负载状态产生虚拟机迁移请求,并广播虚拟机迁移请求至候选服务器,候选服务器返回响应,避免了服务器内存负载过重导致迁移虚拟机后无法获得足够的空闲内存。
[0141]图9为本发明虚拟机迁移装置实施例六的结构示意图,参照图9,请求产生单元4021可包括如下子单元:负载类型识别子单元402la、比较第一门限值子单元402Ib和比较第二门限值子单元4021c。
[0142]其中,负载类型识别子单元4021a用于识别本机的CPU利用率、网络利用率和内存利用率;比较第一门限值子单元4021b用于当识别到本机的CPU利用率或网络利用率达到第一设定门限值时,将本机各虚拟机的内存信息携带在产生的虚拟机迁移请求中;比较第二门限值子单元4021c用于当识别到本机的内存利用率达到第二设定门限值时,将本机中独占物理内存量最多的虚拟机的内存信息携带在产生的虚拟机迁移请求中。
[0143]本发明实施例提供的虚拟机迁移装置,通过识别本机的CPU利用率、网络利用率和内存利用率,判断负载类型,根据负载类型产生虚拟机迁移请求,从而保证了虚拟机迁移后服务器可以获得足够的空闲内存。
[0144]本发明各实施例的虚拟机迁移装置可用于执行本发明任意实施例所提供的虚拟机迁移方法,具备相应的功能模块和有益效果。
[0145]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0146]最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的范围。
【权利要求】
1.一种虚拟机迁移方法,其特征在于,包括: 获取本机中各虚拟机的内存信息; 根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息; 根据所述各虚拟机的内存信息和候选服务器的内存信息,在所述候选服务器中选择目标服务器; 将本机中的待迁移虚拟机迁移至选择的目标服务器。
2.根据权利要求1所述的虚拟机迁移方法,其特征在于: 所述候选服务器的内存信息包括服务器内存哈希表; 虚拟机内存信息包括虚拟机内存哈希表、虚拟机内存占用量和虚拟机独占物理内存量。
3.根据权利要求2所述的虚拟机迁移方法,其特征在于,根据所述各虚拟机的内存信息和候选服务器的内存信息,在所述候选服务器中选择目标服务器包括: 根据各虚拟机的内存信息和所述候选服务器的内存信息,选择待迁移虚拟机; 根据选择的待迁移虚拟机的内存信息和所述候选服务器的内存信息,在所述候选服务器中选择目标服务器。
4.根据权利要求3所述的虚拟机迁移方法,其特征在于,根据各虚拟机的内存信息和所述候选服务器的内存信息,选择待迁移虚拟机包括: 选择虚拟机内存占用量小于或等于各候选服务器的空闲内存量的虚拟机; 将所选择的各虚拟机的虚拟机内存哈希表和候选服务器的服务器内存哈希表进行比较,获取各内存共享量; 选择能和候选服务器产生内存共享量最大的虚拟机作为待迁移虚拟机。
5.根据权利要求3所述的虚拟机迁移方法,其特征在于,根据选择的待迁移虚拟机的内存信息和所述候选服务器的内存信息,在所述候选服务器中选择目标服务器包括: 将待迁移虚拟机的虚拟机内存哈希表和候选服务器的服务器哈希表进行比较,获取内存共享量; 选择能和待迁移虚拟机能产生内存共享量最大的候选服务器作为目标服务器。
6.根据权利要求1所述的虚拟机迁移方法,其特征在于,根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息包括: 根据本机中各虚拟机的独占物理内存使用情况产生虚拟机迁移请求,并获取候选服务器及其内存信息。
7.根据权利要求1所述的虚拟机迁移方法,其特征在于,根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息包括: 根据本机的负载状态产生虚拟机迁移请求; 通过本机中的发送线程将所述虚拟机迁移请求广播至所在服务器集群中的所有服务器; 通过本机中的接收线程接收候选服务器返回的迁移响应及候选服务器的内存信息。
8.根据权利要求7所述的虚拟机迁移方法,其特征在于,根据本机的负载状态产生虚拟机迁移请求包括: 识别本机的CPU利用率、网络利用率和内存利用率;当识别到本机的CPU利用率或网络利用率达到第一设定门限值时,将本机各虚拟机的内存信息携带在产生的虚拟机迁移请求中; 当识别到本机的内存利用率达到第二设定门限值时,将本机中独占物理内存量最多的虚拟机的内存信息携带在产生的虚拟机迁移请求中。
9.根据权利要求7所述的虚拟机迁移方法,其特征在于,还包括: 通过本机的接收线程监听其它服务器发送的虚拟机迁移请求; 当判断本机能够满足所述虚拟机迁移请求时,产生并返回迁移响应和本机的内存信息,作为候选服务器及其内存信息。
10.根据权利要求1所述的虚拟机迁移方法,其特征在于,根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息包括: 根据本机的负载状态产生虚拟机迁移请求; 将所述虚拟机迁移请求上报至迁移授权方; 接收所述迁移授权方返回的候选服务器及其内存信息。
11.一种虚拟机迁移装置,其特征在于,包括: 虚拟机内存获取模块,用于获取本机中各虚拟机的内存信息; 候选服务器获取模块,用于根据本机的负载状态产生虚拟机迁移请求,并获取候选服务器及其内存信息; 目标服务器选择模块,用于根据所 述各虚拟机的内存信息和候选服务器的内存信息,在所述候选服务器中选择目标服务器; 虚拟机迁移模块,用于将本机中的待迁移虚拟机迁移至选择的目标服务器。
12.根据权利要求11所述的虚拟机迁移装置,其特征在于: 所述候选服务器的内存信息包括服务器内存哈希表; 虚拟机内存信息包括虚拟机内存哈希表、虚拟机内存占用量和虚拟机独占物理内存量。
13.根据权利要求12所述的虚拟机迁移装置,其特征在于,目标服务器选择模块包括: 虚拟机选择单元,用于根据各虚拟机的内存信息和所述候选服务器的内存信息,选择待迁移虚拟机; 服务器选择单元,用于根据选择的待迁移虚拟机的内存信息和所述候选服务器的内存信息,在所述候选服务器中选择目标服务器。
14.根据权利要求13所述的虚拟机迁移装置,其特征在于,虚拟机选择单元包括: 第一选择子单元,用于选择虚拟机内存占用量小于或等于各候选服务器的空闲内存量的虚拟机; 共享内存比较子单元,用于将所选择的各虚拟机的虚拟机内存哈希表和候选服务器的服务器内存哈希表进行比较,获取各内存共享量; 第二选择子单元,用于选择能和候选服务器产生内存共享量最大的虚拟机作为待迁移虚拟机。
15.根据权利要求13所述的虚拟机迁移装置,其特征在于,服务器选择单元包括: 内存共享量比较子单元,用于将待迁移虚拟机的虚拟机内存哈希表和候选服务器的服务器哈希表进行比较,获取内存共享量;目标服务器选择子单元,用于选择能和待迁移虚拟机能产生内存共享量最大的候选服务器作为目标服务器。
16.根据权利要求11所述的虚拟机迁移装置,其特征在于,候选服务器获取模块具体用于根据本机中各虚拟机的独占物理内存使用情况产生虚拟机迁移请求,并获取候选服务器及其内存信息。
17.根据权利要求11所述的虚拟机迁移装置,其特征在于,候选服务器获取模块包括: 请求产生单元,用于根据本机的负载状态产生虚拟机迁移请求; 请求广播单元,用于通过本机中的发送线程将所述虚拟机迁移请求广播至所在服务器集群中的所有服务器; 响应接收单元,用于通过本机中的接收线程接收候选服务器返回的迁移响应及候选服务器的内存信息。
18.根据权利要求17所述的虚拟机迁移装置,其特征在于, 负载类型识别子单元,用于识别本机的CPU利用率、网络利用率和内存利用率; 比较第一门限值子单元,用于当识别到本机的CPU利用率或网络利用率达到第一设定门限值时,将本机各虚拟机的内存信息携带在产生的虚拟机迁移请求中; 比较第二门限值子单元,用于当识别到本机的内存利用率达到第二设定门限值时,将本机中独占物理内存量最多的虚拟机的内存信息携带在产生的虚拟机迁移请求中。
19.根据权利要求17所述的虚拟机迁移装置,其特征在于,还包括: 请求接收模块,用于通过本机的接收线程监听其它服务器发送的虚拟机迁移请求;响应发送模块,用于当判断本机能够满足所述虚拟机迁移请求时,产生并返回迁移响应和本机的内存信息,作为候选服务器及其内存信息。
20.根据权利要求11所述的虚拟机迁移装置,其特征在于,候选服务器获取模块包括: 请求产生单元,用于根据本机的负载状态产生虚拟机迁移请求; 请求上报单元,用于将所述虚拟机迁移请求上报至迁移授权方; 服务器接收单元,用于接收所述迁移授权方返回的候选服务器及其内存信息。
【文档编号】G06F9/48GK103888501SQ201210566520
【公开日】2014年6月25日 申请日期:2012年12月24日 优先权日:2012年12月24日
【发明者】张义, 江涛, 侯锐, 张乐乐, 张立新 申请人:华为技术有限公司, 中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1