一种数据处理方法及装置的制造方法_2

文档序号:9910847阅读:来源:国知局
写操作的之后或者同时,检测到所述Hypervisor在第二寄存器上的第二写操作,所述第二写操作用于指示所述(PU进行内存标脏,其中,所述第二寄存器为所述CPU上的至少一个寄存器。
[0029]在另一些可能的实现方式中,所述装置还包括:
[0030]传输模块,用于在将所述对应的bit位置位之后,将所述置位后的标脏位图传输给所述Hypervisor,所述置位后的标脏位图所对应的脏页信息用于发送给所述第二虚拟机,使得所述第二虚拟机同步所述第一虚拟机进行内存写操作的脏页信息。
[0031]在另一些可能的实现方式中,
[0032]所述处理模块,还用于在所述传输模块将所述置位后的标脏位图发送给所述Hypervisor之后,将所述CPU的运行状态恢复至初始状态。
[0033]本发明第三方面提供一种数据处理装置,包括:一个或多个处理器、存储器、总线系统、收发器以及一个或多个程序,所述处理器、所述存储器和所述收发器通过所述总线系统连接;
[0034]其中,所述一个或多个程序存储在所述存储器中,所述一个或多个程序包括指令,所述指令当被所述数据处理装置执行时使所述数据处理装置执行如第一方面或者第一方面的任意一种可能的实现方式中所述的方法。
[0035]可见,在预设条件下(例如:热迀移或者热备),当第一虚拟机进行内存写操作时,数据处理装置获取第一地址和第二地址,根据第一地址和第二地址对应的标脏位图之间的映射关系确定第一地址在所述第二地址对应的标脏位图中对应的bit位,并将所述对应的bi t位置位。可见通过数据处理装置进行内存标脏,无需虚拟机退出到Hypervi sor,消除虚拟机由于频繁退出到Hypervi sor所导致的虚拟机的内部业务中断的问题,从而提高内存标脏的效率。
【附图说明】
[0036]图1为现有技术中数据处理的一个实施例示意图;
[0037]图2为本发明实施例中虚拟机系统的一个结构示意图;
[0038]图3为本发明实施例中物理机的一个结构不意图;
[0039]图4为本发明实施例中中数据处理应用场景的一个实施例示意图;
[0040]图5为本发明实施例中数据处理的一个实施例示意图;
[0041 ]图6为本发明实施例中数据处理装置的一个结构示意图;
[0042]图7为本发明实施例中数据处理装置的另一个结构示意图。
【具体实施方式】
[0043]本发明实施例提供了一种数据处理方法及装置,用于解决现有技术中虚拟机进行内存标脏时,频繁退出到Hypervi sor而导致虚拟机的内部业务中断的问题。
[0044]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
[0045]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0046]本发明的技术方案,应用于虚拟机系统,如图2所示,为一个简化的虚拟机系统结构图,该虚拟机系统可以看作一个集群系统,该集群是由多个计算节点(或者称之为物理机,例如:第一物理机,第二物理机,第三物理机等)组成,而每个计算节点是由计算机软件(包括内核kerne 1、虚拟化软件)和硬件(包括计算硬件,例如:服务器,存储器storage,网络硬件等)组成,每个计算节点上可运行多台虚拟机(英文全称:Virtual Machine,缩写:VM)。每台VM都对外提供服务,用户使用的客户端(Client)通过网络连接到该集群系统,每个Client都对应该集群内的一台虚拟机。
[0047]在实际应用中,如果第一物理机希望开启热备功能,则在该集群系统找到一台匹配的第二物理机,其中,该第二物理机上运行一台备份虚拟机(图中的备VM)。这台备份虚拟机的运行状态和第一物理机中的主虚拟机(图中的主VM)保持一致,在第一物理机发生故障时,这台备份虚拟机来连接用户的客户端(Client)提供服务。如果第二物理机想对某台虚拟机(如图中的源VM)进行热迀移,将其迀移到其他的物理机(例如:第三物理机)上,则需要启动热迀移功能,将源VM中的内存脏页拷贝至目的VM上。
[0048]如图3所示,为一个物理机的结构示意图,该物理机的硬件部分包括存储器(storage),网卡(Network interface),内存(英文全称:RamdomAccessMemory,缩写:RAM),以及CPU等,Hypervisor为运行在硬件平台和操作系统之间的中间软件层(有些平台它就是操作系统,例如kvm虚拟化平台的Hypervisor就是宿主机操作系统),可允许多个操作系统和应用共享硬件平台。如图3所示,VMM和Hypervisor是分离的,其实在不同的虚拟化平台上两者的关系没有严格区分,二者共同协调下层硬件平台资源的访问,为虚拟机的运行模拟CPU、RAM、NIC以及其他设备,同时负责虚拟CPU的调度,以及高级管理(例如:虚拟机热迀移等),一个物理机上可以运行多个虚拟机VM JM内部会运行一个客户机操作系统,可以是windows、Iinux、So Iar is等。
[0049]在介绍本发明实施例之前,先介绍一下本发明所应用的场景,请参阅图4,首先判断虚拟机是否进行热迀移或者热备,热迀移是指将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上,恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异,例如:源虚拟机从一台物理机迀移至另一台物理机上,即为目的虚拟机。而热备是指一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态),例如:避免主虚拟机所在的物理机发生故障而导致数据流失,主虚拟机上的数据与备虚拟机上的数据同步,可见,热备的过程与热迀移的过程大致一样,下面以热迀移为例:
[0050]启动热迀移,则源虚拟机所在的物理机上的QEMU通知Hypervisor需要进行内存标脏,当源虚拟机进行内存写操作时,CPU检测到该写操作,记录此时虚拟机进行内存写操作的地址,将地址对应的页标记为脏页,然后将该脏页传输至Hypervisor,QEMU通过接口从Hypervisor获取该脏页信息,并将该脏页信息发送到目的虚拟机VM2,由于源虚拟机会不断地进行内存写操作,所以脏页也一直都有,所以需要不断进行内存标脏,同步脏页信息,拷贝内存等。
[0051]如图5所示,为本发明实施例中数据处理方法的一个实施例示意图;该数据处理方法应用于虚拟机系统中的第一物理机,所述第一物理机上运行第一虚拟机,所述虚拟机系统还包括第二物理机,所述第二物理机上运行第二虚拟机,其中,所述第一物理机包括中央处理器CPU和虚拟机管理程序Hypervisor,该实施例主要包括:在预设条件下,当所述第一虚拟机进行内存写操作时,获取第一地址和第二地址,其中,所述第一地址为所述第一虚拟机进行内存写操作的地址,所述第二地址为存储在第一寄存器的标脏位图的地址,所述第一地址和所述第二地址对应的标脏位图之间存在映射关系;根据所述映射关系确定所述第一地址在所述第二地址对应的标脏位图中对应的比特bit位,并将所述对应的bit位置位,其中,所述第一寄存器为所述CHJ上的至少一个寄存器。
[0052]具体流程如下:
[0053]步骤501、CPU检测到Hypervisor在第一寄存器上的第一写操作。
[0054]在本发明的技术方案中,在CPU芯片中增加快速内存标脏(英文全称:quickmemory dirty logging,缩写:qMDL)模块,该模块对外新增第一寄存器和第二寄存器,其中,第一寄存器为基址(BASE)寄存器,用于进行内存标脏,第二寄存器为控制(control)寄存器,用于检测CPU是否支持内存标脏的功能。当然,在一些可能的实现方式中,在qMDL模块只新增一个寄存器,该寄存器集合
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1