一种虚拟机的指令处理方法、装置及物理主的制造方法

文档序号:6509792阅读:186来源:国知局
一种虚拟机的指令处理方法、装置及物理主的制造方法
【专利摘要】本发明实施例提供了一种虚拟机的指令处理方法、装置及物理主机,应用于通信领域,能够提高虚拟机在不兼容的异构CPU所在的主机之间进行热迁移后的运行成功率。具体的,虚拟机从源CPU所在的主机热迁移至目标CPU所在的主机后,若源CPU和目标CPU不兼容,将指令中目标CPU不可识别的指令转换为目标CPU可识别的信息,将目标CPU可识别的信息发送至目标CPU,以便于目标CPU执行。
【专利说明】一种虚拟机的指令处理方法、装置及物理主机
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种虚拟机的指令处理方法、装置及物理主机。
【背景技术】
[0002]云计算是近年来出现的一种计算方式,将所有的计算机抽象成特定的计算资源,然后将这些计算资源提供给用户,而不是像以前那样直接提供一台或多台计算机。服务器虚拟化技术是云计算中基于基础设施层的关键技术。通过对物理服务器进行虚拟化,实现在单台物理节点上部署多台虚拟机(虚拟操作系统),来提高物理服务器的资源利用率,降低使用成本。
[0003]服务器虚拟化技术的一项重要技术是DRS(Distributed Resource Scheduler,动态资源调度)技术:集群管理系统定时监控各个物理服务器和虚拟机的资源利用率,根据资源分布情况,利用热迁移调整虚拟机在物理机上的分布。所以虚拟机热迁移功能成为了服务器虚拟化技术需要的基础功能。但是,目前虚拟机热迁移受到较多的限制,最常见的限制就是当热迁移的源物理服务器(源CPU所在的主机)和目标物理服务器(目标CPU所在的主机)所使用的CPU (Central Process Unit,中央处理器)不同(CPU异构)时,虚拟机热迁移过去之后,由于目标物理服务器的CPU无法正确识别虚拟机发送的指令,即源CPU和目标(PU不兼容,会导致虚拟机崩溃,无法运行,影响虚拟机运行的业务。因此,当前虚拟化平台在进行热迁移之前,都会对源CPU和目标CPU进行兼容性检查,如果目标物理服务器无法正常运行虚拟机,则不允许进行热迁移。
[0004]在现有技术中,DPM (Distributed Power Management,动态电源管理)会不断将虚拟机整合到少数几台物理服务器上,会造成每次整合都可能将一部分虚拟机热迁移到兼容性高的CPU所在的主机上,最终,所有虚拟机都集中在兼容性高的CPU所在的主机上,而兼容性低的CPU所在的主机则无法使用,造成主机资源浪费。因此,如何解决虚拟机在不兼容的异构CPU所在的主机之间进行热迁移后无法运行的问题,是业界期待解决的问题。

【发明内容】

[0005]本发明的实施例提供一种虚拟机的指令处理方法、装置及物理主机,能够一定程度上提高虚拟机在不兼容的异构CPU所在的主机之间进行热迁移后的运行成功率。
[0006]为达到上述目的,本发明的实施例采用如下技术方案:
[0007]第一方面,提供一种虚拟机的指令处理方法,应用于虚拟机从源CPU所在的主机热迁移至目标CPU所在的主机,包括:当所述源CPU和所述目标CPU不兼容时,接收所述虚拟机发送的指令;将所述指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息;将所述目标CPU可识别的信息发送至所述目标CPU,以便于所述目标CPU对所述信息进行处理。
[0008]结合第一方面,在第一种可能的实现方式中,所述将所述指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息,包括:根据所述虚拟机中虚拟CPU的寄存器的状态确定所述源CPU的型号;根据所述源CPU的型号调用转换表,在所述转换表中查询所述目标CPU不可识别的指令对应的目标CPU可识别的指令,所述转换表包括预先设置的所述目标CPU不可识别的指令和所述目标CPU可识别的指令之间的映射关系,所述目标CPU不可识别的指令和与所述目标CPU不可识别的指令对应的所述目标CPU可识别的指令的操作相同。
[0009]结合第一方面,在第二种可能的实现方式中,所述将所述指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息,包括:在映射表中查询所述目标CPU不可识别的指令对应的函数地址,调用所述函数地址指示的函数,根据所述函数,获取对所述不可识别的指令的运算结果,所述运算结果为所述目标CPU可识别的信息,其中,所述映射表中包括预先设置的所述目标CPU不可识别的每一个指令及与所述每一个指令对应的函数地址信息。
[0010]结合第一方面,在第三种可能的实现方式中,所述接收所述虚拟机发送的指令之前,还包括:检测所述源CPU和所述目标CPU的兼容性;向所述虚拟机发送所述兼容性的检测结果,以便于当所述源CPU和目标CPU兼容时,所述虚拟机将指令直接发送至所述目标CPU。
[0011]结合第一方面任意一种可能的实现方式,在第四种可能的实现方式中,所述接收所述虚拟机发送的指令之后,还包括:计算接收到的指令的指令开销,其中,所述目标CPU不可识别的指令的指令开销为转换所述指令的开销与目标CPU运行转换后的指令的开销的和,所述目标CPU可识别的指令的指令开销为目标CPU运行所述可识别的指令的开销;根据所述接收到的指令的指令开销计算所述虚拟机的性能开销;若所述虚拟机的性能开销大于预设的阈值开销,则对所述虚拟机再次进行热迁移。
[0012]结合第四种可能的实现方式,在第五种可能的实现方式中:所述虚拟机的性能开销为所述接收到的指令的指令开销的加权平均值。
[0013]第二方面,提供一种虚拟机的指令处理装置,包括接收单元、处理单元及发送单元;所述接收单元用于当源CPU和目标CPU不兼容时,接收所述虚拟机发送的指令;所述处理单元用于将所述接收单元接收的指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息;所述发送单元用于将所述处理单元转换的目标CPU可识别的信息发送至所述目标CPU。
[0014]结合第二方面,在第一种可能的实现方式中,所述处理单元包括:型号确定子单元及转换子单元;所述型号确定子单元用于根据所述虚拟机中虚拟CPU的寄存器的状态确定所述源CPU的型号;所述转换子单元用于根据所述型号确定子单元确定的源CPU的型号调用转换表,在所述转换表中查询所述目标CPU不可识别的指令对应的目标CPU可识别的指令,所述转换表包括预先设置的所述目标CPU不可识别的指令和所述目标CPU可识别的指令之间的映射关系,所述目标CPU不可识别的指令和与所述目标CPU不可识别的指令对应的所述目标CPU可识别的指令的操作相同。
[0015]结合第二方面,在第二种可能的实现方式中,所述处理单元具体用于:在映射表中查询所述目标CPU不可识别的指令对应的函数地址,调用所述函数地址指示的函数,根据所述函数,获取对所述不可识别的指令的运算结果,所述运算结果为所述目标CPU可识别的信息,其中,所述映射表中包括预先设置的所述目标CPU不可识别的每一个指令及与所述每一个指令对应的函数地址信息。
[0016]结合第二方面,在第三种可能的实现方式中,所述装置还包括检测单元;所述检测单元用于检测所述源CPU和所述目标CPU的兼容性;所述发送单元还用于向所述虚拟机发送所述检测单元的兼容性的检测结果,以便于当所述源CPU和目标CPU兼容时,所述虚拟机将指令直接发送至所述目标CPU。
[0017]结合第二方面任意一种可能的实现方式,在第四种可能的实现方式中,所述装置还包括性能分析单元和调度单元;所述性能分析单元用于计算所述接收单元接收到接收到的指令的指令开销,其中,所述目标CPU不可识别的指令的指令开销为转换所述指令的开销与目标CPU运行转换后的指令的开销的和,所述目标CPU可识别的指令的指令开销为目标CPU运行所述可识别的指令的开销;所述性能分析单元还用于根据所述接收到的指令的指令开销计算所述虚拟机的性能开销;若所述性能分析单元计算的虚拟机的性能开销大于预设的阈值开销,则所述调度单元对所述虚拟机再次进行热迁移。
[0018]结合第四种可能的实现方式,在第五种可能的实现方式中,所述虚拟机的性能开销为所述接收到的指令的指令开销的加权平均值。
[0019]第三方面,提供一种物理主机,所述物理主机包括硬件层、虚拟机管理层以及虚拟机;所述虚拟机管理层包括虚拟机的指令处理装置;所述虚拟机的指令处理装置用于当所述源CPU和所述目标CPU不兼容时,接收所述虚拟机发送的指令;所述虚拟机的指令处理装置还用于将所述指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息;所述虚拟机的指令处理装置还用于将所述目标CPU可识别的信息发送至所述目标CPU,以便于所述目标CPU对所述信息进行处理。
[0020]结合第三方面,在第一种可能的实现方式中:所述虚拟机的指令处理装置具体用于根据所述虚拟机中虚拟CPU的寄存器的状态确定所述源CPU的型号;所述虚拟机的指令处理装置还用于根据所述源CPU的型号调用转换表,在所述转换表中查询所述目标CPU不可识别的指令对应的目标CPU可识别的指令,所述转换表包括预先设置的所述目标CPU不可识别的指令和所述目标CPU可识别的指令之间的映射关系,所述目标CPU不可识别的指令和与所述目标CPU不可识别的指令对应的所述目标CPU可识别的指令的操作相同。
[0021]结合第三方面,在第二种可能的实现方式中,所述虚拟机的指令处理装置具体用于:在映射表中查询所述目标CPU不可识别的指令对应的函数地址,调用所述函数地址指示的函数,根据所述函数,获取对所述不可识别的指令的运算结果,所述运算结果为所述目标CPU可识别的信息,其中,所述映射表中包括预先设置的所述目标CPU不可识别的每一个指令及与所述每一个指令对应的函数地址信息。
[0022]结合第三方面任意一种可能的实现方式,在第三种可能的实现方式中:所述虚拟机的指令处理装置还用于检测所述源CPU和所述目标CPU的兼容性;所述虚拟机的指令处理装置还用于向所述虚拟机发送所述兼容性的检测结果,以便于当所述源CPU和目标CPU兼容时,所述虚拟机将指令直接发送至所述目标CPU。
[0023]可见,本发明的实施例提供的虚拟机的指令处理方法、装置及物理主机,通过将目标CPU不可识别的指令转换为目标CPU可识别的信息,能够提高虚拟机在不兼容的异构CPU所在的主机之间进行热迁移后的运行成功率。【专利附图】

【附图说明】
[0024]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为本发明的实施例提供的一种虚拟机的指令处理方法的流程示意图;
[0026]图2为本发明的另一实施例提供的一种虚拟机的指令处理方法的流程意图;
[0027]图3为本发明的实施例提供的一种虚拟机的指令处理装置的结构示意图;
[0028]图4为本发明的另一实施例提供的一种虚拟机的指令处理装置的结构示意图;
[0029]图5为本发明的另一实施例提供的另一虚拟机的指令处理装置的结构示意图;
[0030]图6为本发明的又一实施例提供的一种虚拟机的指令处理装置的结构示意图;
[0031]图7为本发明的实施例提供的一种物理主机。
【具体实施方式】
[0032]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033]虚拟机(Virtual Machine,VM)是一种通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,现有的虚拟机所在的物理主机(物理服务器)一般分为三层,第一层为承载虚拟机系统的硬件,虚拟机所在的CPU就处于这一层,第二层为构建在硬件之上虚拟机管理层(Virtual Machine Manager, VMM),用于对虚拟机进行管理,第三层为虚拟机本身,包括虚拟机的虚拟CPU及虚拟内存等。
[0034]本发明的实施例提供一种虚拟机的指令处理方法、装置及物理主机,应用于虚拟机系统的虚拟机管理层,对虚拟机从源CPU所在的主机热迁移至目标CPU所在的主机之后的不兼容的问题进行处理,管理虚拟机和承载虚拟机系统的硬件之间的热迁移。
[0035]请参考图1,为本发明实施例提供的一种虚拟机的指令处理方法。该方法可以在虚拟机从源CPU所在的主机热迁移至目标CPU所在的主机之后执行,前提是该源CPU与该目标CPU不兼容。该方法可以应用于虚拟机的指令处理装置,该装置可以位于目标CPU所在主机上的虚拟机系统的虚拟机管理层。具体的,该方法可以包括以下步骤:
[0036]101、虚拟机的指令处理装置接收虚拟机发送的指令。
[0037]102、虚拟机的指令处理装置将指令中目标CPU不可识别的指令转换为目标CPU可识别的息。
[0038]具体的,根据转换过程的不同,目标CPU可识别的信息可以包括目标CPU可识别的指令和\或目标CPU不可识别的指令的运算结果,其中,目标CPU不可识别的指令的运算结果是目标CPU可识别的。
[0039]由于该方法执行时虚拟机已经热迁移至目标CPU,即在迁移过程中,虚拟机不进行断电载入,所以,虚拟机中虚拟CPU的状态与源CPU的状态相同,而且对目标CPU不可识别的指令的转换操作是在目标CPU所在的物理主机上进行的,即目标CPU的状态是已知的,这样,对目标CPU不可识别的指令的转换是根据源CPU状态及目标CPU状态进行的转换,可以保证指令转换生成的指令都是目标CPU可识别的指令。
[0040]103、虚拟机的指令处理装置将目标CPU可识别的信息发送至目标CPU,以便于所述目标CPU对所述信息进行处理。
[0041]本发明的实施例提供的虚拟机的指令处理方法,通过将目标CPU无法识别的指令,转换为目标CPU可识别的信息,能够提高虚拟机在不兼容的异构CPU所在的主机之间进行热迁移后的运行成功率。
[0042]请参阅图2,为本发明实施例提供的另一种虚拟机指令处理方法。如图2所示,该方法包括以下步骤:
[0043]201、虚拟机的指令处理装置检测源CPU和目标CPU的兼容性,向虚拟机发送兼容性的检测结果。
[0044]通常情况下,虚拟机在正常运行中会由于性能均衡等原因,需要热迁移到其他CPU所在的主机上,即从源CPU所在的主机热迁移到目标CPU所在的主机。此时,由于源CPU和目标CPU异构,所以源CPU和目标CPU可能不兼容。当源CPU和目标CPU兼容时,虚拟机的指令处理装置向虚拟机发送兼容的检测结果,这时虚拟机运行在裸核模式下,即虚拟机直接将指令发送至目标CPU,这样虚拟机的性能开销较小。
[0045]当源CPU和目标CPU不兼容时,虚拟机的指令处理装置向虚拟机发送不兼容的检测结果,通知虚拟机目标CPU无法正确识别虚拟机发送的指令,这时,目标CPU发送异常信息到虚拟机的指令处理装置,虚拟机的指令处理装置将虚拟机的运行模式切换至兼容模式,虚拟机的指令处理装置执行以下步骤。
[0046]202、虚拟机的指令处理装置接收虚拟机发送的指令。
[0047]即,此时虚拟机不再直接将指令发送至目标CPU,而是将指令发送至虚拟机的指令处理装置,以便于将目标CPU不能识别的指令转换为可识别的信息。
[0048]具体的,CPU指令分为五类:第一类为整数计算指令,是CPU运行最多的指令类型,这类指令通常比较简单,同时计算速度也很快,这类指令语意比较简单,性能开销通常比较小;第二类为浮点计算指令,即CPU对于一些科学运算常用的指令类型,和整数计算指令类似,语意比较简单,但是计算速度要比整数慢,性能开销也比较小;第三类为控制指令,是CPU中用于改变程序执行流的指令类型,语意相对整数和浮点计算要复杂,根据不同的指令,性能开销可大可小;第四类为CPU高级指令,主要用于进行向量计算,语意比较复杂,性能开销一般较大;第五类为未知指令,即该物理服务器的CPU不支持的指令,具体根据CPU型号确定,这类指令就是需要转换的指令,性能开销一般都比较大。
[0049]203、虚拟机的指令处理装置将指令中目标CPU不可识别的指令转换为目标CPU可识别的息。
[0050]其中,每种CPU不可识别的指令是可知的,将所有不可识别的指令存到映射表中,如果在表中可以查到,就是不可识别的;或者,根据CPU指令中的分类码(即每条指令属于上述五类指令中的一类),然后查询CPU支持的指令类型,如果该指令的分类码对应的指令类型为目标CPU不支持的类型,则该指令为目标CPU不可识别的指令。
[0051]具体的,步骤203可以通过以下步骤实现:
[0052]2031、虚拟机的指令处理装置根据虚拟机中虚拟CPU的寄存器的状态确定源CPU的型号。
[0053]由于虚拟机是热迁移至目标CPU所在的物理主机,即在迁移过程中,虚拟机不进行断电载入,所以,虚拟机中虚拟CPU的状态与源CPU的状态相同,虚拟机的指令处理装置可以通过快照保存保存虚拟机中虚拟CPU的寄存器的状态作为源CPU的寄存器的状态。
[0054]虚拟机的指令处理装置调整模拟器中的寄存器的状态至保存的源CPU的寄存器的状态,根据调整后的模拟器中的寄存器状态判断接收到的指令的源CPU型号,具体的,寄存器作为CPU的控制部件,用来暂时存储CPU的指令、数据和地址,因此,根据寄存器中存储的指令、数据和地址的类型与模式,可以确定寄存器对应的CPU的型号与状态。
[0055]2032、虚拟机的指令处理装置根据源CPU的型号调用转换表,在转换表中查询目标CPU不可识别的指令对应的目标CPU可识别的指令。
[0056]每一种型号的目标CPU的转换表可能有一个或多个,每一个转换表对应一个源CPU型号,源CPU型号不同,该源CPU指令中包含的目标CPU不可识别的指令就可能不同。
[0057]这一个或多个转换表中包括预先设置的目标CPU不可识别的指令和目标CPU可识别的指令之间的映射关系,目标CPU不可识别的指令和与目标CPU不可识别的指令对应的目标CPU可识别的指令的操作相同。
[0058]具体的,虚拟机的指令处理装置通过模拟器对于每一种型号的目标CPU维持一组转换表,该组转换表中的一个转换表对应一个型号的源CPU,在一个型号的源CPU对应的转换表中,该型号的源CPU的指令中目标CPU不可识别的指令对应一个操作相同的目标CPU可识别的指令,由于此时虚拟机的热迁移已经完成,因此虚拟机的指令处理装置是通过模拟器在目标CPU上进行的模拟,即目标CPU的型号是已知的,所以只需确定源CPU的型号,就可以查询每一条目标CPU不可识别的指令对应的目标CPU可识别的指令,因此模拟器处理后指令是目标CPU可以正确识别的指令,即将目标CPU不可识别的指令转换为目标CPU可识别的指令。
[0059]上述步骤2031与2032可以通过能够对指令进行模拟的模拟器实现,具体的如Zesto模拟器、gem5模拟器、FeS2,模拟器等。
[0060]或者,步骤203也可以通过以下方式实现:
[0061]虚拟机的指令处理装置在映射表中查询指令对应的函数地址,调用函数地址指示的函数,根据函数,获取对指令的运算结果,运算结果为目标CPU可识别的信息,其中,映射表中包括预先设置的目标CPU不可识别的每一个指令对应的函数地址信息。
[0062]具体的,当虚拟机的指令处理装置接收一条目标CPU不可识别的指令时,虚拟机的指令处理装置根据该指令的操作码在映射表中查询该指令对应的函数地址,根据函数地址,调用该函数地址对应的函数,并根据调用的函数进行计算,获取计算结果,则该计算结果作为这条目标CPU不可识别的指令的运算结果。
[0063]204、虚拟机的指令处理装置将该目标CPU可识别的信息发送至目标CPU,以便于所述目标CPU对所述信息进行处理。
[0064]其中,目标CPU可识别的信息,根据上述方法的描述,包括目标CPU可识别的指令和\或对目标CPU不可识别的指令的计算结果。则目标CPU可以接收目标CPU可识别的指令,根据目标CPU可识别的指令,获取该指令的结果,再根据该结果进行下一步操作;也可以直接接收指令的结果,再根据该结果进行下一步操作。[0065]可选的,由于要对目标CPU不可识别的指令进行操作,所以此时虚拟机的性能开销会比较大,因此,在步骤202、虚拟机的指令处理装置接收虚拟机发送的指令之后,本发明的实施例提供的方法还可以包括步骤205:
[0066]205、虚拟机的指令处理装置计算接收到的指令的指令开销,根据接收到的指令的指令开销计算虚拟机的性能开销,其中,目标CPU不可识别的指令的指令开销为转换指令的开销与目标CPU运行指令的开销的和,目标CPU可识别的指令的指令开销为目标CPU运行指令的开销。
[0067]其中,对虚拟机的性能开销预先设置一个阈值开销,若虚拟机的性能开销大于预设的阈值开销,则虚拟机的指令处理装置对虚拟机进行热迁移,若虚拟机的性能开销小于等于预设的阈值开销,则虚拟机的指令处理装置不对虚拟机进行热迁移。
[0068]具体的,虚拟机的指令处理装置获取上述五类指令中每一类指令的指令开销,其中,指令开销指的是一条该类指令的平均开销,对第一类至第四类指令,指令开销为目标CPU运行该类指令的每一条指令的开销的平均值;对第五类,即未知指令,由于要对这一类指令进行转化,因此第五类指令的指令开销为目标CPU运行每一条该类指令的开销及转换每一条该类指令所需的开销的和的平均值。同时,统计这类指令出现的频率,获取如下表I所示的表:
[0069]表I
[0070]
【权利要求】
1.一种虚拟机的指令处理方法,其特征在于,应用于虚拟机从源CPU所在的主机热迁移至目标CPU所在的主机之后,包括: 当所述源CPU和所述目标CPU不兼容时,接收所述虚拟机发送的指令; 将所述指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息;将所述目标CPU可识别的信息发送至所述目标CPU,以便于所述目标CPU对所述信息进行处理。
2.根据权利要求1所述的方法,其特征在于,所述将所述指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息,包括: 根据所述虚拟机中虚拟CPU的寄存器的状态确定所述源CPU的型号; 根据所述源CPU的型号调用转换表,在所述转换表中查询所述目标CPU不可识别的指令对应的目标CPU可识别的指令,所述转换表包括预先设置的所述目标CPU不可识别的指令和所述目标CPU可识别的指令之间的映射关系,所述目标CPU不可识别的指令和与所述目标CPU不可识别的指令对应的所述目标CPU可识别的指令的操作相同。
3.根据权利要求1所述的方法,其特征在于,所述将所述指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息,包括: 在映射表中查询所述目标CPU不可识别的指令对应的函数地址,调用所述函数地址指示的函数,根据所述函数,获取对所述不可识别的指令的运算结果,所述运算结果为所述目标CPU可识别的信息,其中,所述映射表中包括预先设置的所述目标CPU不可识别的每一个指令及与所述每一个指令对应的函数地址信息。
4.根据权利要求1所述的方法,其特征在于,所述接收所述虚拟机发送的指令之前,还包括: 检测所述源CPU和所述目标CPU的兼容性; 向所述虚拟机发送所述兼容性的检测结果,以便于当所述源CPU和目标CPU兼容时,所述虚拟机将指令直接发送至所述目标CPU。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述接收所述虚拟机发送的指令之后,还包括: 计算接收到的指令的指令开销,其中,所述目标CPU不可识别的指令的指令开销为转换所述指令的开销与目标CPU运行转换后的指令的开销的和,所述目标CPU可识别的指令的指令开销为目标CPU运行所述可识别的指令的开销; 根据所述接收到的指令的指令开销计算所述虚拟机的性能开销; 若所述虚拟机的性能开销大于预设的阈值开销,则对所述虚拟机再次进行热迁移。
6.根据权利要求5所述的方法,其特征在于: 所述虚拟机的性能开销为所述接收到的指令的指令开销的加权平均值。
7.—种虚拟机的指令处理装置,其特征在于,包括接收单元、处理单元及发送单元; 所述接收单元用于当源CPU和目标CPU不兼容时,接收所述虚拟机发送的指令; 所述处理单元用于将所述接收单元接收的指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息; 所述发送单元用于将所述处理单元转换的目标CPU可识别的信息发送至所述目标CPU,以便于所述目标CPU对所述信息进行处理。
8.根据权利要求7所述的装置,其特征在于,所述处理单元包括:型号确定子单元及转换子单兀; 所述型号确定子单元用于根据所述虚拟机中虚拟CPU的寄存器的状态确定所述源CPU的型号; 所述转换子单元用于根据所述型号确定子单元确定的源CPU的型号调用转换表,在所述转换表中查询所述目标CPU不可识别的指令对应的目标CPU可识别的指令,所述转换表包括预先设置的所述目标CPU不可识别的指令和所述目标CPU可识别的指令之间的映射关系,所述目标CPU不可识别的指令和与所述目标CPU不可识别的指令对应的所述目标CPU可识别的指令的操作相同。
9.根据权利要求7所述的装置,其特征在于,所述处理单元还用于: 在映射表中查询所述目标CPU不可识别的指令对应的函数地址,调用所述函数地址指示的函数,根据所述函数,获取对所述不可识别的指令的运算结果,所述运算结果为所述目标CPU可识别的信息,其中,所述映射表中包括预先设置的所述目标CPU不可识别的每一个指令及与所述每一个指令对应的函数地址信息。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括检测单元; 所述检测单元用于检测所述源CPU和所述目标CPU的兼容性; 所述发送单元还用于向所述虚拟机发送所述检测单元的兼容性的检测结果,以便于当所述源CPU和目标CPU兼容时,所述虚拟机将指令直接发送至所述目标CPU。
11.根据权利要求7-10任一项所述的装置,其特征在于,所述装置还包括性能分析单元和调度单元; 所述性能分析单元用于计算所述接收单元接收到接收到的指令的指令开销,其中,所述目标CPU不可识别的指令的指令开销为转换所述指令的开销与目标CPU运行转换后的指令的开销的和,所述目标CPU可识别的指令的指令开销为目标CPU运行所述可识别的指令的开销; 所述性能分析单元还用于根据所述接收到的指令的指令开销计算所述虚拟机的性能开销; 若所述性能分析单元计算的虚拟机的性能开销大于预设的阈值开销,则所述调度单元对所述虚拟机再次进行热迁移。
12.—种物理主机,其特征在于,所述物理主机包括硬件层、运行在所述硬件层之上的虚拟机管理层以及运行在所述虚拟机管理层上的一个或多个虚拟机; 所述虚拟机管理层包括虚拟机的指令处理装置,所述虚拟机的指令处理装置用于当所述源CPU和所述目标CPU不兼容时,接收所述虚拟机发送的指令;将所述指令中所述目标CPU不可识别的指令转换为所述目标CPU可识别的信息;将所述目标CPU可识别的信息发送至所述目标CPU,以便于所述目标CPU对所述信息进行处理。
13.根据权利要求12所述的物理主机,其特征在于: 所述虚拟机的指令处理装置具体用于根据所述虚拟机中虚拟CPU的寄存器的状态确定所述源CPU的型号;根据所述源CPU的型号调用转换表,在所述转换表中查询所述目标CPU不可识别的指令对应的目标CPU可识别的指令,所述转换表包括预先设置的所述目标CPU不可识别的指令和所述目标CPU可识别的指令之间的映射关系,所述目标CPU不可识别的指令和与所述目标CPU不可识别的指令对应的所述目标CPU可识别的指令的操作相同。
14.根据权利要求12所述的物理主机,其特征在于,所述虚拟机的指令处理装置具体用于:在映射表中查询所述目标CPU不可识别的指令对应的函数地址,调用所述函数地址指示的函数,根据所述函数,获取对所述不可识别的指令的运算结果,所述运算结果为所述目标CPU可识别的信息,其中,所述映射表中包括预先设置的所述目标CPU不可识别的每一个指令及与所述每一个指令对应的函数地址信 息。
【文档编号】G06F9/455GK103455363SQ201310391124
【公开日】2013年12月18日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】刘力力 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1