虚拟机迁移方法及装置与流程

文档序号:11829145阅读:186来源:国知局
本发明涉及计算机
技术领域
,更具体地说,涉及一种虚拟机迁移方法及装置。
背景技术
:虚拟化技术是云计算的关键技术之一。将一台物理服务器虚拟化成多台逻辑虚拟机,不仅可以大大提升云计算环境计算资源的利用效率及节省能耗,同时虚拟化技术提供的动态迁移、资源调度,使得云计算服务的负载得到高效管理及扩展,从而使得云计算的服务更具有弹性和灵活性。虚拟机迁移是指在物理服务器之间需要调整虚拟机的资源分配,或者,某个物理服务器需要维修等情况下,把虚拟机从一台物理服务器迁移到另一台物理服务器的过程。然而,由于物理服务器之间可能存在性能差异,虚拟机在不同物理服务器间进行迁移时,其迁移前后的实际计算性能也会存在差异。这种差异会直接影响到用户运行在虚拟机中的业务应用,无法保证云计算服务的服务等级协议(servicelevelagreement,SLA)。因此,如何降低虚拟机迁移前后的实际计算性能的差异成为亟待解决的问题。技术实现要素:本发明的目的是提供一种虚拟机迁移方法及装置,以降低虚拟机迁移前后的实际计算性能的差异。为实现上述目的,本发明提供了如下技术方案:一种虚拟机迁移方法,包括:获取待迁移虚拟机在源物理服务器上的第一时间片共享比例;基于所述第一时间片共享比例,源物理服务器的型号,以及预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选物理服务器型号以及待迁移虚拟机在候选物理服务器型 号的物理服务器上运行时的第二时间片共享比例,其中,所述第二时间片共享比例小于或等于1;确定目的物理服务器,所述目的物理服务器的型号属于所述候选物理服务器型号,所述目的物理服务器的CPU核心数大于或等于所述待迁移虚拟机的虚拟CPU核心数;将所述待迁移虚拟机迁移到所述目的物理服务器中,并将所述待迁移虚拟机在所述目的物理服务器中的时间片共享比例调整为与所述目的物理服务器的型号对应的第二时间片共享比例。上述方法,优选的,所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系包括:虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的计算性能相当于所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上以时间片共享比例为1运行时的计算性能时,所述虚拟CPU核心数为m的虚拟机在所述j型号的物理服务器上运行所需的时间片共享比例为tij。上述方法,优选的,所述基于所述第一时间片共享比例,源物理服务器的型号,以及预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选物理服务器型号,以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例包括:若所述第一时间片共享比例不为1,则依据所述源物理服务器的型号,所述第一时间片共享比例,以及所述预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,确定过渡物理服务器型号;其中,所述待迁移虚拟机在所述过渡物理服务器型号的物理服务器上以时间片比例为1使用所述过渡物理服务器型号的物理服务器的物理CPU时间片时的计算性能,与所述待迁移虚拟机在所述源物理服务器上以所述第一时间片共享比例使用所述源物理服务器的物理CPU时间片时的计算性能相同;依据所述过渡物理服务器型号,以及所述预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候 选服务器型号,以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,其中,所述第二时间片共享比例小于或等于1。上述方法,优选的,通过测试确定所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,包括:将虚拟CPU核心数为m的虚拟机分别以时间片共享比例为1运行在i型号的物理服务器和j型号的物理服务器上;在所述i型号的物理服务器上所述虚拟CPU核心数为m的虚拟机中运行不同类型的工作负载,对所述虚拟CPU核心数为m的虚拟机进行测试得到所述虚拟CPU核心数为m的虚拟机的第一计算性能参数Ci;在所述j型号的物理服务器上所述虚拟CPU核心数为m的虚拟机中运行所述不同类型的工作负载,对所述虚拟CPU核心数为m的虚拟机进行测试得到所述虚拟CPU核心数为m的虚拟机的第二计算性能参数Cj;若所述Ci<Cj,则对所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例进行调整,直至Ci与Cj之差在预设的范围内,则tij为Ci与Cj之差在预设的范围内时,所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例;若Ci>Cj,则将所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述i型号的物理服务器中的物理CPU的时间片共享比例进行调整,直至Ci与Cj之差在预设的范围内,则tij为Ci与Cj之差在预设的范围内时,所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述i型号的物理服务器中的物理CPU的时间片共享比例的倒数;若Ci=Cj,则tij=1。上述方法,优选的,通过计算确定所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,包括:计算所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时的第一计算性能参数Ci;计算所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的第二计算性能参数Cj;其中,tij=Ci/Cj。一种虚拟机迁移装置,所述装置包括:获取模块,用于获取待迁移虚拟机在源物理服务器上的第一时间片共享比例;第一确定模块,用于基于所述第一时间片共享比例,源物理服务器的型号,以及预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选物理服务器型号以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,其中,所述第二时间片共享比例小于或等于1;第二确定模块,用于确定目的物理服务器,所述目的物理服务器的型号属于所述候选物理服务器型号,所述目的物理服务器的CPU核心数大于或等于所述待迁移虚拟机的虚拟CPU核心数;迁移模块,用于将所述待迁移虚拟机迁移到所述目的物理服务器中,并将所述待迁移虚拟机在所述目的物理服务器中的时间片共享比例调整为与所述目的物理服务器的型号对应的第二时间片共享比例。上述装置,优选的,所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系包括:虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的计算性能相当于所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上以时间片共享比例为1运行时的计算性能时,所述虚拟CPU核心数为m的虚拟机在所述j型号的物理服务器上运行所需的时间片共享比例为tij。上述装置,优选的,所述第一确定模块包括:第一确定单元,用于若所述第一时间片共享比例不为1,则依据所述源物理服务器的型号,所述第一时间片共享比例,以及所述预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,确定过渡物理服务器型号;其中,所述待迁移虚拟机在所述过渡物理服务器型号的物理服务器上以时间片比例为1使用所述过渡物理服务器型号的物理服务器的物理CPU时间片时的计算性能,与所述待迁移虚拟机在所述源物理服务器上以所述第一时间片共享比例使用所述源物理服务器的物理CPU时间片时的计算性能相同;第二确定单元,用于依据所述过渡物理服务器型号,以及所述预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选服务器型号,以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,其中,所述第二时间片共享比例小于或等于1。上述装置,优选的,所述装置还包括:第一转换关系确定模块,用于通过测试确定所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,包括:第一测试单元,用于当虚拟CPU核心数为m的虚拟机以时间片共享比例为1运行在i型号的物理服务器上所述虚拟CPU核心数为m的虚拟机中运行不同类型的工作负载时,对所述虚拟CPU核心数为m的虚拟机进行测试得到所述虚拟CPU核心数为m的虚拟机的第一计算性能参数Ci;第二测试单元,用于当虚拟CPU核心数为m的虚拟机以时间片共享比例为1运行在j型号的物理服务器上所述虚拟CPU核心数为m的虚拟机中运行所述不同类型的工作负载时,对所述虚拟CPU核心数为m的虚拟机进行测试得到所述虚拟CPU核心数为m的虚拟机的第二计算性能参数Cj;第三确定单元,用于若所述Ci<Cj,则对所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例进行调整,直至Ci与Cj之差在预设的范围内,则确定tij为Ci与Cj之差在预设的范围内时,所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例;第四确定单元,用于若Ci>Cj,则将所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述i型号的物理服务器中的物理CPU的时间片共享比例进行调整,直至Ci与Cj之差在预设的范围内,则确定tij为Ci与Cj之差在预设的范围内时,所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述ji型号的物理服务器中的物理CPU的时间片共享比例的倒数;第五确定单元,用于若Ci=Cj,则确定tij=1。上述装置,优选的,所述装置还包括:第二转换关系确定模块,用于通过计算确定所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,包括:第一计算单元,用于计算所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时的第一计算性能参数Ci;第二计算单元,用于计算所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的第二计算性能参数Cj;第六确定单元,用于确定tij:tij=Ci/Cj。通过以上方案可知,本申请提供的一种虚拟机迁移方法及装置,预先设置同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,在进行虚拟机迁移时,通过上述时间片共享比例转换关系,以及待迁移虚拟机在源物理服务器上的第一时间片共享比例,确定候选物理服务器类型,以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,然后确定目的物理服务器,目的物理服务器的型号属于所述候选物理服务器型号,所述目的物理服务器的CPU核心数大于或等于所述待迁移虚拟机的虚拟CPU核心数;将待迁移虚拟机迁移到目的物理服务器中,并将待迁移虚拟机在所述目的物理服务器中的时间片共享比例调整为与所述目的物理服务器的型号对应的第二时间片共享比例,降低了虚拟机迁移前后的实际计算性能的差异。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的虚拟机迁移方法的一种实现流程图;图2为本申请实施例提供的虚拟机迁移装置的一种结构示意图;图3为本申请实施例提供的第一确定模块的一种结构示意图;图4为本申请实施例提供的第一转换关系确定模块的一种结构示意图;图5为本申请实施例提供的第二转换关系确定模块的一种结构示意图。说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1,图1为本申请实施例提供的虚拟机迁移方法的一种实现流程图,可以包括:步骤S11:获取待迁移虚拟机在源物理服务器上的第一时间片共享比例;创建虚拟机的物理服务器中,一个物理CPU既可以处理虚拟CPU线程,也可以处理其它线程(非虚拟CPU线程)。假设一个物理CPU同时处理一个虚拟机的虚拟CPU线程thread1和一个非虚拟CPU线程thread2,这两个线程时分时使用物理CPU。如果它们对物理CPU的时间共享比例为1:1(即thread1的时间片共享比例为1),线程的调度周期为t,则thread1使用t时间的物理CPU后,接着由thread2使用t时间的物理CPU,然后thread1再使用t时间的物理CPU,照此循环;如果thread1和thread2对物理CPU的时间共享比例为1:2(即thread1的时间片共享比例为1/2),则thread1使用t时间的物理CPU后,thread2会使用2t时间的物理CPU,接着thread1使用t时间的物理CPU,照此循环。为便于叙述,本发明实施例中,将待迁移虚拟机在源物理服务器上的时间片共享比例记为第一时间片共享比例。步骤S12:基于所述第一时间片共享比例,源物理服务器的型号,以及预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选物理服务器型号以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,其中,所述第二时间片共享比例小于或等于1;虚拟机的计算能力取决于虚拟CPU的个数和物理服务器的性能,一般情况下一个虚拟CPU核对应着物理CPU的一个物理核心或超线程逻辑核心。本发明实施例中,预先建立了同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系。假设虚拟机的虚拟CPU核心数为m,该虚拟CPU核心数为m的虚拟机在第一型号的物理服务器上以时间片共享比例为s1运行时的计算性能,相当于该虚拟CPU核心数为m的虚拟机在第二型号的物理服务器上以时间片共享比例为s2运行时的计算性能,则本发明实施例中,虚拟CPU核心数为m的虚拟机在第一型号的物理服务器上和在第二型号的物理服务器上运行时的时间片共享比例转换关系为:虚拟CPU核心数为m的虚拟机在第一型号的物理服务器上以时间片共享比例s1运行时的计算性能相当于该虚拟CPU核心数为m的虚拟机在第二型号的物理服务器运行时的计算性能时,该虚拟CPU核心数为m的虚拟机在第二型号的物理服务器上运行时的时间片共享比例为s2。本发明实施例中,通过与待迁移虚拟机的CPU的核心数相对应的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选物理服务器类型。其中,由于基于同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定的物理服务器型号可能有多种,而待迁移虚拟机在这些型号的物理服务器上运行时的计算性能相当于待迁移虚拟机在源物理服务器上以第一时间片共享比例运行时的计算性能时,待迁移虚拟机的时间片共享比例可能会大于1,也可能会小于或等于1,本发明实施例中,确定待迁移虚拟机在物理服务器上运行时的时间片共享比例小于或等于1的物理服务器型号为候选物理服务器型号。步骤S13:确定目的物理服务器,所述目的物理服务器的型号属于所述候选物理服务器型号,所述目的物理服务器的CPU核心数大于或等于所述待迁移虚拟机的虚拟CPU核心数;本发明实施例中,从型号为候选物理器型号的物理服务器中确定一个物理服务器的CPU核心数大于或等于所述待迁移虚拟机的虚拟CPU核心数的物理服务器为目的物理服务器。若未找到目的物理服务器,说明待迁移虚拟机无法进行迁移。步骤S14:将所述待迁移虚拟机迁移到所述目的物理服务器中,并将所述待迁移虚拟机在所述目的物理服务器中的时间片共享比例调整为与所述目的物理服务器的型号对应的第二时间片共享比例。将待迁移虚拟机迁移到目的物理服务器中,并将待迁移虚拟机在目的服务器中的时间片共享比例设置为第二时间片共享比例,其中,待迁移虚拟机在目的物理服务器上以第二时间片共享比例运行时的计算性能相当于待迁移虚拟机在源物理服务器上以第一时间片共享比例运行时的计算性能。本发明实施例提供的一种虚拟机迁移方法,预先设置同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,在进行虚拟机迁移时,通过上述时间片共享比例转换关系,以及待迁移虚拟机在源物理服务器上的第一时间片共享比例,确定候选物理服务器类型,以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,然后确定目的物理服务器,目的物理服务器的型号属于所述候选物理服务器型号,所述目的物理服务器的CPU核心数大于或等于所述待迁移虚拟机的虚拟CPU核心数;将待迁移虚拟机迁移到目的物理服务器中,并将待迁移虚拟机在所述目的物理服务器中的时间片共享比例调整为与所述目的物理服务器的型号对应的第二时间片共享比例,降低了虚拟机迁移前后的实际计算性能的差异。可选的,所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系可以包括:虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的计算性能相当于所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上以时间片共享比例为1运行时的计算性能时,所述虚拟CPU核心数为m的虚拟机在所述j型号的物理服务器上运行所需的时间片共享比例为tij。通常,当在一个物理服务器上创建一个虚拟机时,该虚拟机在物理服务器上的时间片共享比例初始化为1。为更方便理解,本发明实施例中,可以用矩阵Tm表征虚拟CPU核心数为m的虚拟机在不同型号(用不同的数字表征不同的型号)的物理服务器上运行时的时间片共享比例转换关系,该矩阵如下所示:Tm=t11t12...t1Nt21t22...t2N...tN1tN2...tNN]]>其中,tij(1≤i≤N,1≤j≤N)表示虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的计算性能相当于虚拟CPU核心数为m的虚拟机在i型号的物理服务器上以时间片共享比例为1运行时的计算性能时,虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的时间片共享比例。也就是说,虚拟CPU核心数为m的虚拟机在i型号的物理服务器上以时间片共享比例为1运行时的计算性能相当于虚拟CPU核心数为m的虚拟机在j型号的物理服务器上以时间片共享比例为tij运行时的计算性能。可选的,所述基于所述第一时间片共享比例,源物理服务器的型号,以及预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选物理服务器型号,以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例可以包括:若第一时间片共享比例为1,则可以直接通过查找Tm,找出所有候选物理服务器类型k,其中,trk≤1,r为待迁移虚拟机所在源物理服务器的型号,k∈{1,2,…,N}。本发明实施例中,若目的物理服务器的型号为k1,则与所述目的物理服务器的型号对应的第二时间片共享比例为trk1。若所述第一时间片共享比例不为1,则依据所述源物理服务器的型号,所述第一时间片共享比例,以及所述预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,确定过渡物理服务器型号h;其中,所述待迁移虚拟机在所述过渡物理服务器型号的物理服务器上以时间片比例为1使用所述过渡物理服务器型号的物理服务器的物理CPU时间片时的计算性能,与所述待迁移虚拟机在所述源物理服务器上以所述第一时间片共享比例使用所述源物理服务器的物理CPU时间片时的计算性能相同;具体的,可以通过thr=s找到过渡物理服务器型号h,其中,s为待迁移虚拟机在源物理服务器上运行时的第一时间片共享比例,r为待迁移虚拟机所在源物理服务器的型号,h∈{1,2,…,N}。当第一时间片共享比例不为1,说明待迁移虚拟机是从另一个物理服务器上迁移到该源物理服务器上的。本发明实施例中,若第一时间片共享比例不 为1,则先通过同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系找到待迁移虚拟机的时间片共享比例为1时的物理服务器型号,即过渡物理服务器型号,然后,再通过过渡物理服务器型号,以及同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系找到候选物理服务器。依据所述过渡物理服务器型号,以及所述预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选物理服务器型号,以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,其中,所述第二时间片共享比例小于或等于1。具体的,可以通过过渡服务器型号h确定候选物理服务器型号k,其中,thk≤1,h为过渡物理服务器型号,k∈{1,2,…,N}。此时,若目的物理服务器的型号为k1,则与所述目的物理服务器的型号对应的第二时间片共享比例为thk1。可选的,可以通过测试确定所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,具体包括:将虚拟CPU核心数为m的虚拟机分别以时间片共享比例为1运行在i型号的物理服务器和j型号的物理服务器上;具体测试时,在所述i型号的物理服务器上,在所述虚拟CPU核心数为m的虚拟机中运行不同类型的工作负载,对所述虚拟CPU核心数为m的虚拟机进行测试得到所述虚拟CPU核心数为m的虚拟机的第一计算性能参数Ci;在所述j型号的物理服务器上,在所述虚拟CPU核心数为m的虚拟机中运行所述不同类型的工作负载,对所述虚拟CPU核心数为m的虚拟机进行测试得到所述虚拟CPU核心数为m的虚拟机的第二计算性能参数Cj;上述不同的类型可以包括:CPU密集型、内存密集型、磁盘IO密集型以及这些类型的任意组合类型。可以利用SPEC((StandardPerformanceEvaluationCorporation,系统性能评估测试)等基准测试工具测试虚拟机的计算性能。计算性能参数可以用平均每秒执行的指令数(即指令数/秒)表征。若所述Ci<Cj,则对所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例进行调整,直至Ci与Cj之差在预设的范围内,则tij为Ci与Cj之差在预设的范围内时,所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例;如果第一计算性能参数小于第二计算性能参数,则找到虚拟机在j型号的物理机上运行时所对应的进程,并调整该进程可占用的j型号的物理CPU的时间片比例,直至Ci与Cj之差在预设的范围内。当Ci与Cj之差在预设的范围内时,虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例为tij。若Ci>Cj,则将所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述i型号的物理服务器中的物理CPU的时间片共享比例进行调整,直至Ci与Cj之差在预设的范围内,则tij为Ci与Cj之差在预设的范围内时,所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述i型号的物理服务器中的物理CPU的时间片共享比例的倒数;如果第一计算性能参数大于第二计算性能参数,则找到虚拟机在i型号的物理机上运行时所对应的进程,并调整该进程可占用的i型号的物理CPU的时间片比例,直至Ci与Cj之差在预设的范围内。当Ci与Cj之差在预设的范围内时,虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述i型号的物理服务器中的物理CPU的时间片共享比例的倒数为tij。若Ci=Cj,则tij=1。可选的,也可以通过计算确定所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,具体包括:计算所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时的第一计算性能参数Ci;计算所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的第二计算性能参数Cj;其中,tij=Ci/Cj。本发明实施例中,可以获取物理服务器的CPU每秒执行的指令数x,基于虚拟机监视器(VirtualMachineMonitor,VMM)调度物理CPU给虚拟机进程的算法计算出物理CPU平均每秒分配给虚拟机进程的时间为T,则虚拟机的计算性能参数为x/T。与方法实施例相对应,本发明实施例还提供一种虚拟机迁移装置,本发明实施例提供的虚拟机迁移装置的一种结构示意图如图2所示,可以包括:获取模块21,第一确定模块22,第二确定模块23和迁移模块24;其中,获取模块21用于获取待迁移虚拟机在源物理服务器上的第一时间片共享比例;创建虚拟机的物理服务器中,一个物理CPU既可以处理虚拟CPU线程,也可以处理其它线程(非虚拟CPU线程)。假设一个物理CPU同时处理一个虚拟机的虚拟CPU线程thread1和一个非虚拟CPU线程thread2,这两个线程时分时使用物理CPU。如果它们对物理CPU的时间共享比例为1:1(即thread1的时间片共享比例为1),线程的调度周期为t,则thread1使用t时间的物理CPU后,接着由thread2使用t时间的物理CPU,然后thread1再使用t时间的物理CPU,照此循环;如果thread1和thread2对物理CPU的时间共享比例为1:2(即thread1的时间片共享比例为1/2),则thread1使用t时间的物理CPU后,thread2会使用2t时间的物理CPU,接着thread1使用t时间的物理CPU,照此循环。为便于叙述,本发明实施例中,将待迁移虚拟机在源物理服务器上的时间片共享比例记为第一时间片共享比例。第一确定模块22用于基于所述第一时间片共享比例,源物理服务器的型号,以及预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选物理服务器型号以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,其中,所述第二时间片共享比例小于或等于1;虚拟机的计算能力取决于虚拟CPU的个数和物理服务器的性能,一般情况下一个虚拟CPU核对应着物理CPU的一个物理核心或超线程逻辑核心。本发明实施例中,预先建立了同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系。假设虚拟机的虚拟CPU核心数为m,该虚拟CPU核心数为m的虚拟机在第一型号的物理服务器上以时间片共享比例为s1运行时的计算性能,相当于该虚拟CPU核心数为m的虚拟机在第二型号的物理服务器上以时间片共享比例为s2运行时的计算性能,则本发明实施例中,虚拟CPU核心数为m的虚拟机在第一型号的物理服务器上和在第二型号的物理服务器上运行时的时间片共享比例转换关系为:虚拟CPU核心数为m的虚拟机在第一型号的物理服务器上以时间片共享比例s1运行时的计算性能相当于该虚拟CPU核心数为m的虚拟机在第二型号的物理服务器运行时的计算性能时,该虚拟CPU核心数为m的虚拟机在第二型号的物理服务器上运行时的时间片共享比例为s2。本发明实施例中,通过与待迁移虚拟机的CPU的核心数相对应的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选物理服务器类型。其中,由于基于同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定的物理服务器型号可能有多种,而待迁移虚拟机在这些型号的物理服务器上运行时的计算性能相当于待迁移虚拟机在源物理服务器上以第一时间片共享比例运行时的计算性能时,待迁移虚拟机的时间片共享比例可能会大于1,也可能会小于或等于1,本发明实施例中,确定待迁移虚拟机在物理服务器上运行时的时间片共享比例小于或等于1的物理服务器型号为候选物理服务器型号。第二确定模块23用于确定目的物理服务器,所述目的物理服务器的型号属于所述候选物理服务器型号,所述目的物理服务器的CPU核心数大于或等于所述待迁移虚拟机的虚拟CPU核心数;本发明实施例中,从型号为候选物理器型号的物理服务器中确定一个物理服务器的CPU核心数大于或等于所述待迁移虚拟机的虚拟CPU核心数的物理服务器为目的物理服务器。若未找到目的物理服务器,说明待迁移虚拟机无法进行迁移。迁移模块24用于将所述待迁移虚拟机迁移到所述目的物理服务器中,并将所述待迁移虚拟机在所述目的物理服务器中的时间片共享比例调整为与所述目的物理服务器的型号对应的第二时间片共享比例。将待迁移虚拟机迁移到目的物理服务器中,并将待迁移虚拟机在目的服务器中的时间片共享比例设置为第二时间片共享比例,其中,待迁移虚拟机在目的物理服务器上以第二时间片共享比例运行时的计算性能相当于待迁移虚拟机在源物理服务器上以第一时间片共享比例运行时的计算性能。本发明实施例提供的一种虚拟机迁移装置,预先设置同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,在进行虚拟机迁移时,通过上述时间片共享比例转换关系,以及待迁移虚拟机在源物理服务器上的第一时间片共享比例,确定候选物理服务器类型,以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,然后确定目的物理服务器,目的物理服务器的型号属于所述候选物理服务器型号,所述目的物理服务器的CPU核心数大于或等于所述待迁移虚拟机的虚拟CPU核心数;将待迁移虚拟机迁移到目的物理服务器中,并将待迁移虚拟机在所述目的物理服务器中的时间片共享比例调整为与所述目的物理服务器的型号对应的第二时间片共享比例,降低了虚拟机迁移前后的实际计算性能的差异。可选的,所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系可以包括:虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的计算性能相当于所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上以时间片共享比例为1运行时的计算性能时,所述虚拟CPU核心数为m的虚拟机在所述j型号的物理服务器上运行所需的时间片共享比例为tij。通常,当在一个物理服务器上创建一个虚拟机时,该虚拟机在物理服务器上的时间片共享比例初始化为1。为更方便理解,本发明实施例中,可以用矩阵Tm表征虚拟CPU核心数为m的虚拟机在不同型号(用不同的数字表征不同的型号)的物理服务器上运行时的时间片共享比例转换关系,该矩阵如下所示:Tm=t11t12...t1Nt21t22...t2N...tN1tN2...tNN]]>其中,tij(1≤i≤N,1≤j≤N)表示虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的计算性能相当于虚拟CPU核心数为m的虚拟机在i型号的物理服务器上以时间片共享比例为1运行时的计算性能时,虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的时间片共享比例。也就是说,虚拟CPU核心数为m的虚拟机在i型号的物理服务器上以时间片共享比例为1运行时的计算性能相当于虚拟CPU核心数为m的虚拟机在j型号的物理服务器上以时间片共享比例为tij运行时的计算性能。可选的,第一确定模块22的一种结构示意图如图3所示,可以包括:第一确定单元31和第二确定单元32;其中,第一确定单元31用于若所述第一时间片共享比例不为1,则依据所述源物理服务器的型号,所述第一时间片共享比例,以及所述预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系,确定过渡物理服务器型号;其中,所述待迁移虚拟机在所述过渡物理服务器型号的物理服务器上以时间片比例为1使用所述过渡物理服务器型号的物理服务器的物理CPU时间片时的计算性能,与所述待迁移虚拟机在所述源物理服务器上以所述第一时间片共享比例使用所述源物理服务器的物理CPU时间片时的计算性能相同;具体的,可以通过thr=s找到过渡物理服务器型号h,其中,s为待迁移虚拟机在源物理服务器上运行时的第一时间片共享比例,r为待迁移虚拟机所在源物理服务器的型号,h∈{1,2,…,N}。当第一时间片共享比例不为1,说明待迁移虚拟机是从另一个物理服务器上迁移到该源物理服务器上的。本发明实施例中,若第一时间片共享比例不为1,则先通过同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系找到待迁移虚拟机的时间片共享比例为1时的物理服务器型号,即过渡物理服务器型号,然后,再通过过渡物理服务器 型号,以及同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系找到候选物理服务器。第一确定单元31还可以用于,若第一时间片共享比例为1,则可以直接通过查找Tm,找出所有候选物理服务器类型k,其中,trk≤1,r为待迁移虚拟机所在源物理服务器的型号,k∈{1,2,…,N}。本发明实施例中,若目的物理服务器的型号为k1,则与所述目的物理服务器的型号对应的第二时间片共享比例为trk1。第二确定单元32用于依据所述过渡物理服务器型号,以及所述预置的同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系确定候选服务器型号,以及待迁移虚拟机在候选物理服务器型号的物理服务器上运行时的第二时间片共享比例,其中,所述第二时间片共享比例小于或等于1。具体的,可以通过过渡服务器型号h确定候选物理服务器型号k,其中,thk≤1,h为过渡物理服务器型号,k∈{1,2,…,N}。此时,若目的物理服务器的型号为k1,则与所述目的物理服务器的型号对应的第二时间片共享比例为thk1。可选的,在图2所示实施例的基础上,本发明实施例提供的虚拟机迁移装置还可以包括:第一转换关系确定模块,用于通过测试确定所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系。具体的,本发明实施例提供的第一转换关系确定模块的一种结构示意图如图4所示,可以包括:第一测试单元41,用于当虚拟CPU核心数为m的虚拟机以时间片共享比例为1运行在i型号的物理服务器上,在所述虚拟CPU核心数为m的虚拟机中运行不同类型的工作负载时,对所述虚拟CPU核心数为m的虚拟机进行测试得到所述虚拟CPU核心数为m的虚拟机的第一计算性能参数Ci;第二测试单元42,用于当虚拟CPU核心数为m的虚拟机以时间片共享比例为1运行在j型号的物理服务器上,在所述虚拟CPU核心数为m的虚拟机中运行所述不同类型的工作负载时,对所述虚拟CPU核心数为m的虚拟机进行测试得到所述虚拟CPU核心数为m的虚拟机的第二计算性能参数Cj;上述不同的类型可以包括:CPU密集型、内存密集型、磁盘IO密集型以及这些类型的任意组合类型。可以利用SPEC((StandardPerformanceEvaluationCorporation,系统性能评估测试)等基准测试工具测试虚拟机的计算性能。计算性能参数可以用平均每秒执行的指令数(即指令数/秒)表征。第三确定单元43,用于若所述Ci<Cj,则对所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例进行调整,直至Ci与Cj之差在预设的范围内,则确定tij为Ci与Cj之差在预设的范围内时,所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例;如果第一计算性能参数小于第二计算性能参数,则找到虚拟机在j型号的物理机上运行时所对应的进程,并调整该进程可占用的j型号的物理CPU的时间片比例,直至Ci与Cj之差在预设的范围内。当Ci与Cj之差在预设的范围内时,虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时可占用所述j型号的物理服务器中的物理CPU的时间片共享比例为tij。第四确定单元44,用于若Ci>Cj,则将所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述i型号的物理服务器中的物理CPU的时间片共享比例进行调整,直至Ci与Cj之差在预设的范围内,则确定tij为Ci与Cj之差在预设的范围内时,所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述ji型号的物理服务器中的物理CPU的时间片共享比例的倒数;如果第一计算性能参数大于第二计算性能参数,则找到虚拟机在i型号的物理机上运行时所对应的进程,并调整该进程可占用的i型号的物理CPU的时间片比例,直至Ci与Cj之差在预设的范围内。当Ci与Cj之差在预设的范围内时,虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时可占用所述i型号的物理服务器中的物理CPU的时间片共享比例的倒数为tij。第五确定单元45,用于若Ci=Cj,则确定tij=1。可选的,在图2所示实施例的基础上,本发明实施例提供的虚拟机迁移装置还可以包括:第二转换关系确定模块,用于通过计算确定所述同一虚拟CPU核心数的虚拟机在不同型号的物理服务器上运行时的时间片共享比例转换关系。具体的,本发明实施例提供的第二转换关系确定模块的一种结构示意图如图5所示,可以包括:第一计算单元51,用于计算所述虚拟CPU核心数为m的虚拟机在i型号的物理服务器上运行时的第一计算性能参数Ci;第二计算单元52,用于计算所述虚拟CPU核心数为m的虚拟机在j型号的物理服务器上运行时的第二计算性能参数Cj;第六确定单元53,用于确定tij:tij=Ci/Cj。本发明实施例中,可以获取物理服务器的CPU每秒执行的指令数x,基于虚拟机监视器(VirtualMachineMonitor,VMM)调度物理CPU给虚拟机进程的算法计算出物理CPU平均每秒分配给虚拟机进程的时间为T,则虚拟机的计算性能参数为x/T。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1