CN105677480A - 一种数据处理方法及装置 - Google Patents
一种数据处理方法及装置 Download PDFInfo
- Publication number
- CN105677480A CN105677480A CN201511030641.2A CN201511030641A CN105677480A CN 105677480 A CN105677480 A CN 105677480A CN 201511030641 A CN201511030641 A CN 201511030641A CN 105677480 A CN105677480 A CN 105677480A
- Authority
- CN
- China
- Prior art keywords
- address
- virtual machine
- dirty
- register
- mark
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种数据处理方法及装置,用于解决现有技术中虚拟机进行内存标脏时,虚拟机频繁退出到Hypervisor而导致虚拟机的内部业务中断的问题。该方法应用于虚拟机系统中的第一物理机,第一物理机上运行第一虚拟机,该虚拟机系统还包括第二物理机,第二物理机上运行第二虚拟机,其中,第一物理机包括中央处理器CPU和虚拟机管理程序Hypervisor,该方法包括:在预设条件下,当第一虚拟机进行内存写操作时,获取第一地址和第二地址,所述第一地址和所述第二地址对应的标脏位图之间存在映射关系;根据所述映射关系确定所述第一地址在所述第二地址对应的标脏位图中对应的比特bit位,并将对应的bit位置位。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种数据处理方法及装置。
背景技术
随着计算机技术的飞速发展,越来越多的公司和研究机构开始关注计算机的能耗和资源利用率,而云计算则是其中关键的计算模式。云计算将所有的计算机抽象成特定的计算资源,然后将这些计算资源提供给用户,而不是直接提供一台或多台计算机。这种模式最大的好处就是用户可以根据自己的实际需要来申请资源,避免不必要的资源的浪费,提高资源利用率。
服务器虚拟化技术是云计算中基于基础设施层的关键技术,通过对物理服务器进行虚拟化,实现在单台物理节点上部署多台虚拟机,并在虚拟机的内部部署业务,从而提高物理服务器的资源利用率,降低使用成本。但是,由于服务器虚拟化技术是基于虚拟机监视器(英文全称:virtualmachinemonitor,缩写:VMM)模块,在硬件平台和客户操作系统中加入了一层抽象硬件层,所以不可避免的会带来一定的性能开销。对于大部分的应用来说,虚拟化引入的性能开销是可以接受的,但是对于信息技术(英文全称:InformationTechnology,缩写:IT)等关键应用来说,对于性能的需求比较严苛,虚拟化引入的性能开销可能会对用户体验起到严重的影响。例如,对于虚拟化高级特性热迁移和热备,内存标脏(dirtylogging)的效率直接影响热迁移时长、业务中断时间和虚拟机内部的业务性能,特别是在热备中,由于需要不断地获取内存脏页信息来进行内存同步,影响巨大。因此,内存标脏的效率是保障在热迁移和热备过程中虚拟机业务性能不受影响以及降低业务中断时间的关键指标,直接影响用户体验。
在没有引入硬件来辅助内存标脏之前,业界使用纯软件技术,如图1所示,即:当快速计算仿真器(英文全称:QuickEMUlator,缩写:QEMU)通知虚拟机管理程序(Hypervisor)需要进行内存标脏时,Hypervisor设置虚拟机的内存写保护,当虚拟机进行内存写操作时,就会产生异常退出到Hypervisor,Hypervisor截获到该写异常后,根据写的内存地址,标记该内存页为脏页,然后再返回虚拟机。
由于虚拟机频繁退出到Hypervisor,严重影响虚拟机内部业务性能。当虚拟机退出到Hypervisor时,虚拟机的内部业务是中断的,直到Hypervisor返回虚拟机,虚拟机内部业务才得以继续进行。
发明内容
本发明实施例提供了一种数据处理方法及装置,用于解决现有技术中虚拟机进行内存标脏时,频繁退出到Hypervisor而导致虚拟机的内部业务中断的问题。
本发明第一方面提供一种数据处理方法,所述方法应用于虚拟机系统中的第一物理机,所述第一物理机上运行第一虚拟机,所述虚拟机系统还包括第二物理机,所述第二物理机上运行第二虚拟机,其中,所述第一物理机包括中央处理器CPU和虚拟机管理程序Hypervisor,所述方法包括:
在预设条件下,当所述第一虚拟机进行内存写操作时,获取第一地址和第二地址,其中,所述第一地址为所述第一虚拟机进行内存写操作的地址,所述第二地址为存储在第一寄存器的标脏位图的地址,所述第一地址和所述第二地址对应的标脏位图之间存在映射关系;
根据所述映射关系确定所述第一地址在所述第二地址对应的标脏位图中对应的比特bit位,并将所述对应的bit位置位,其中,所述第一寄存器为所述CPU上的至少一个寄存器。
该预设条件一般为需要将虚拟机的脏页进行备份或者拷贝,例如:热迁移或者热备等条件下。其中,热迁移是指将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上,恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异,例如:源虚拟机从一台物理机迁移至另一台物理机上。而热备是指一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态),例如:避免主虚拟机所在的物理机发生故障而导致数据流失,主虚拟机上的数据与备虚拟机上的数据同步。
在本发明实施例中,CPU根据所述映射关系确定所述第一地址在所述第二地址对应的标脏位图中对应的比特bit位,并将所述对应的bit位置位,即完成内存标脏,例如:在热迁移或者是热备的条件下,当第一虚拟机的内存中的记录页内容被修改时,称该被修改的页为脏页。而CPU完成该内存标脏主要是记录该脏页信息,QEMU通过接口获取该脏页信息,并把该脏页信息发送至第二虚拟机。
可见,在预设条件下(例如:热迁移或者热备),当第一虚拟机进行内存写操作时,CPU获取第一地址和第二地址,根据第一地址和所述第二地址对应的标脏位图之间的映射关系确定该第一地址在第二地址对应的标脏位图中对应的bit位,并将所述对应的bit位置位,其中,第一寄存器为所述CPU上的至少一个寄存器,可见通过CPU进行内存标脏,无需虚拟机退出到Hypervisor,消除虚拟机由于频繁退出到Hypervisor所导致的虚拟机的内部业务中断的问题,从而提高内存标脏的效率。
结合第一方面,在一些可能的实现方式中,在获取第一地址和第二地址之前,所述方法还包括:
检测到所述Hypervisor在所述第一寄存器上的第一写操作,所述第一写操作用于指示所述第一寄存器保存所述第二地址。
在另一些可能的实现方式中,所述在检测到所述Hypervisor在所述第一寄存器上的第一写操作的之后或者同时,所述方法还包括:
检测到所述Hypervisor在第二寄存器上的第二写操作,所述第二写操作用于指示所述CPU进行内存标脏,其中,所述第二寄存器为所述CPU上的至少一个寄存器。
在另一些可能的实现方式中,在将所述对应的bit位置位之后,所述方法还包括:
将所述置位后的标脏位图传输给所述Hypervisor,所述置位后的标脏位图所对应的脏页信息用于发送给所述第二虚拟机,使得所述第二虚拟机同步所述第一虚拟机进行内存写操作的脏页信息。
在另一些可能的实现方式中,所述将所述置位后的标脏位图发送给所述Hypervisor之后,所述方法还包括:
将所述CPU的运行状态恢复至初始状态。
本发明第二方面提供一种数据处理装置,所述装置应用于虚拟机系统中的第一物理机,所述第一物理机上运行第一虚拟机,所述虚拟机系统还包括第二物理机,所述第二物理机上运行第二虚拟机,其中,所述第一物理机包括中央处理器CPU和虚拟机管理程序Hypervisor,所述装置包括:
获取模块,用于在预设条件下,当所述第一虚拟机进行内存写操作时,获取第一地址和第二地址,其中,所述第一地址为所述第一虚拟机进行内存写操作的地址,所述第二地址为存储在第一寄存器的标脏位图的地址,所述第一地址和所述第二地址对应的标脏位图之间存在映射关系;
处理模块,用于根据所述映射关系确定所述第一地址在所述第二地址对应的标脏位图中对应的比特bit位,并将所述对应的bit位置位,其中,所述第一寄存器为所述CPU上的至少一个寄存器。
可见,在预设条件下(例如:热迁移或者热备),当第一虚拟机进行内存写操作时,获取模块获取第一地址和第二地址,处理模块根据第一地址和所述第二地址对应的标脏位图之间的映射关系确定第一地址在所述第二地址对应的标脏位图中对应的bit位,并将所述对应的bit位置位,其中,第一寄存器为所述CPU上的至少一个寄存器,可见通过处理模块进行内存标脏,无需虚拟机退出到Hypervisor,消除虚拟机由于频繁退出到Hypervisor所导致的虚拟机的内部业务中断的问题,从而提高内存标脏的效率。
在一些可能的实现方式中,
所述处理模块,还用于在所述获取模块获取第一地址和第二地址之前,检测到所述Hypervisor在所述第一寄存器上的第一写操作,所述第一写操作用于指示所述第一寄存器保存所述第二地址。
在另一些可能的实现方式中,
所述处理模块,还用于在检测到所述Hypervisor在所述第一寄存器上的第一写操作的之后或者同时,检测到所述Hypervisor在第二寄存器上的第二写操作,所述第二写操作用于指示所述CPU进行内存标脏,其中,所述第二寄存器为所述CPU上的至少一个寄存器。
在另一些可能的实现方式中,所述装置还包括:
传输模块,用于在将所述对应的bit位置位之后,将所述置位后的标脏位图传输给所述Hypervisor,所述置位后的标脏位图所对应的脏页信息用于发送给所述第二虚拟机,使得所述第二虚拟机同步所述第一虚拟机进行内存写操作的脏页信息。
在另一些可能的实现方式中,
所述处理模块,还用于在所述传输模块将所述置位后的标脏位图发送给所述Hypervisor之后,将所述CPU的运行状态恢复至初始状态。
本发明第三方面提供一种数据处理装置,包括:一个或多个处理器、存储器、总线系统、收发器以及一个或多个程序,所述处理器、所述存储器和所述收发器通过所述总线系统连接;
其中,所述一个或多个程序存储在所述存储器中,所述一个或多个程序包括指令,所述指令当被所述数据处理装置执行时使所述数据处理装置执行如第一方面或者第一方面的任意一种可能的实现方式中所述的方法。
可见,在预设条件下(例如:热迁移或者热备),当第一虚拟机进行内存写操作时,数据处理装置获取第一地址和第二地址,根据第一地址和第二地址对应的标脏位图之间的映射关系确定第一地址在所述第二地址对应的标脏位图中对应的bit位,并将所述对应的bit位置位。可见通过数据处理装置进行内存标脏,无需虚拟机退出到Hypervisor,消除虚拟机由于频繁退出到Hypervisor所导致的虚拟机的内部业务中断的问题,从而提高内存标脏的效率。
附图说明
图1为现有技术中数据处理的一个实施例示意图;
图2为本发明实施例中虚拟机系统的一个结构示意图;
图3为本发明实施例中物理机的一个结构示意图;
图4为本发明实施例中中数据处理应用场景的一个实施例示意图;
图5为本发明实施例中数据处理的一个实施例示意图;
图6为本发明实施例中数据处理装置的一个结构示意图;
图7为本发明实施例中数据处理装置的另一个结构示意图。
具体实施方式
本发明实施例提供了一种数据处理方法及装置,用于解决现有技术中虚拟机进行内存标脏时,频繁退出到Hypervisor而导致虚拟机的内部业务中断的问题。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明的技术方案,应用于虚拟机系统,如图2所示,为一个简化的虚拟机系统结构图,该虚拟机系统可以看作一个集群系统,该集群是由多个计算节点(或者称之为物理机,例如:第一物理机,第二物理机,第三物理机等)组成,而每个计算节点是由计算机软件(包括内核kernel、虚拟化软件)和硬件(包括计算硬件,例如:服务器,存储器storage,网络硬件等)组成,每个计算节点上可运行多台虚拟机(英文全称:VirtualMachine,缩写:VM)。每台VM都对外提供服务,用户使用的客户端(Client)通过网络连接到该集群系统,每个Client都对应该集群内的一台虚拟机。
在实际应用中,如果第一物理机希望开启热备功能,则在该集群系统找到一台匹配的第二物理机,其中,该第二物理机上运行一台备份虚拟机(图中的备VM)。这台备份虚拟机的运行状态和第一物理机中的主虚拟机(图中的主VM)保持一致,在第一物理机发生故障时,这台备份虚拟机来连接用户的客户端(Client)提供服务。如果第二物理机想对某台虚拟机(如图中的源VM)进行热迁移,将其迁移到其他的物理机(例如:第三物理机)上,则需要启动热迁移功能,将源VM中的内存脏页拷贝至目的VM上。
如图3所示,为一个物理机的结构示意图,该物理机的硬件部分包括存储器(storage),网卡(Networkinterface),内存(英文全称:RamdomAccessMemory,缩写:RAM),以及CPU等,Hypervisor为运行在硬件平台和操作系统之间的中间软件层(有些平台它就是操作系统,例如kvm虚拟化平台的Hypervisor就是宿主机操作系统),可允许多个操作系统和应用共享硬件平台。如图3所示,VMM和Hypervisor是分离的,其实在不同的虚拟化平台上两者的关系没有严格区分,二者共同协调下层硬件平台资源的访问,为虚拟机的运行模拟CPU、RAM、NIC以及其他设备,同时负责虚拟CPU的调度,以及高级管理(例如:虚拟机热迁移等),一个物理机上可以运行多个虚拟机VM。VM内部会运行一个客户机操作系统,可以是windows、linux、Solaris等。
在介绍本发明实施例之前,先介绍一下本发明所应用的场景,请参阅图4,首先判断虚拟机是否进行热迁移或者热备,热迁移是指将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上,恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异,例如:源虚拟机从一台物理机迁移至另一台物理机上,即为目的虚拟机。而热备是指一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态),例如:避免主虚拟机所在的物理机发生故障而导致数据流失,主虚拟机上的数据与备虚拟机上的数据同步,可见,热备的过程与热迁移的过程大致一样,下面以热迁移为例:
启动热迁移,则源虚拟机所在的物理机上的QEMU通知Hypervisor需要进行内存标脏,当源虚拟机进行内存写操作时,CPU检测到该写操作,记录此时虚拟机进行内存写操作的地址,将地址对应的页标记为脏页,然后将该脏页传输至Hypervisor,QEMU通过接口从Hypervisor获取该脏页信息,并将该脏页信息发送到目的虚拟机VM2,由于源虚拟机会不断地进行内存写操作,所以脏页也一直都有,所以需要不断进行内存标脏,同步脏页信息,拷贝内存等。
如图5所示,为本发明实施例中数据处理方法的一个实施例示意图;该数据处理方法应用于虚拟机系统中的第一物理机,所述第一物理机上运行第一虚拟机,所述虚拟机系统还包括第二物理机,所述第二物理机上运行第二虚拟机,其中,所述第一物理机包括中央处理器CPU和虚拟机管理程序Hypervisor,该实施例主要包括:在预设条件下,当所述第一虚拟机进行内存写操作时,获取第一地址和第二地址,其中,所述第一地址为所述第一虚拟机进行内存写操作的地址,所述第二地址为存储在第一寄存器的标脏位图的地址,所述第一地址和所述第二地址对应的标脏位图之间存在映射关系;根据所述映射关系确定所述第一地址在所述第二地址对应的标脏位图中对应的比特bit位,并将所述对应的bit位置位,其中,所述第一寄存器为所述CPU上的至少一个寄存器。
具体流程如下:
步骤501、CPU检测到Hypervisor在第一寄存器上的第一写操作。
在本发明的技术方案中,在CPU芯片中增加快速内存标脏(英文全称:quickmemorydirtylogging,缩写:qMDL)模块,该模块对外新增第一寄存器和第二寄存器,其中,第一寄存器为基址(BASE)寄存器,用于进行内存标脏,第二寄存器为控制(control)寄存器,用于检测CPU是否支持内存标脏的功能。当然,在一些可能的实现方式中,在qMDL模块只新增一个寄存器,该寄存器集合第一寄存器和第二寄存器的所有特性,可见,在这种实现方式中,该寄存器的负载较重,而且不能进行单一性管理。
其中,所述第一写操作用于指示所述第一寄存器保存第二地址,其中,该第二地址为存储在第一寄存器的标脏位图的地址。
在实际应用中,Hypervisor创建第一虚拟机的数据结构,该数据结构中包含第一虚拟机的运行状态信息以及设备配置信息等,当Hypervisor通过第二寄存器确定CPU支持内存标脏的功能(例如:Hypervisor在第二寄存器上可以进行写操作则确定CPU支持内存标脏的功能;否则,Hypervisor在第二寄存器上可以进行写操作失败,则确定CPU不支持内存标脏的功能),后Hypervisor根据该数据结构创建第一虚拟机对应的标脏结构体(structdirty_log),其中,该标脏结构体中包括第一虚拟机的内存所在地址对应的标脏位图,第一虚拟机的内存大小等,进一步,Hypervisor在第一寄存器上进行第一写操作,即将标脏结构体传输给第一寄存器,使得第一寄存器保存该标脏结构体。
步骤502、在预设条件下,CPU检测到所述Hypervisor在第二寄存器上的第二写操作。
在本发明的技术方案中,该预设条件一般为需要将虚拟机的脏页进行备份的条件,例如:热迁移或者热备等条件下。其中,所述第二写操作用于指示所述CPU进行内存标脏,其中,所述第二寄存器为所述CPU上的至少一个寄存器。
在实际应用中,通过Hypervisor在第二寄存器上进行第二写操作,使能qMDL模块,即:开启qMDL模块。
需要说明的是,在本发明的技术方案中,第一寄存器和第二寄存器可以是同一个寄存器,也可以是不同的两个寄存器,当第一寄存器和第二寄存器为同一个寄存器时,该寄存器集合第一寄存器和第二寄存器的所有特性,节省了CPU的硬件空间;当第一寄存器和第二寄存器为不同的两个寄存器时,该两个寄存器各有分工,单一性管理,负荷较轻。
步骤503、当第一虚拟机进行内存写操作时,CPU获取第一地址和第二地址。
当开启qMDL模块后,当检测到第一虚拟机进行内存写操作时,CPU获取第一地址和第二地址,其中,所述第一地址为所述第一虚拟机进行内存写操作的地址,所述第二地址为存储在第一寄存器的标脏位图的地址,所述第一地址和所述第二地址对应的标脏位图之间存在映射关系。
步骤504、CPU根据该映射关系确定第一地址在第二地址对应的的标脏位图中对应的比特bit位,并将所述对应的bit位置位。
其中,所述第一寄存器为所述CPU上的至少一个寄存器,所述第一寄存器中保存所述第二地址。
在实际应用中,CPU中的第一寄存器根据自身保存的第二地址确定第一地址在第二地址对应的标脏位图中对应的bit位,然后将对应的bit位置位。例如:第一寄存器的标脏位图为00000000,假设该第一地址对应的bit位是第二位,则将对应的bit位置位,置位后的标脏位图为01000000。
步骤505、CPU将置位后的标脏位图传输给所述Hypervisor。
所述置位后的标脏位图所对应的脏页信息用于发送给所述第二虚拟机,使得所述第二虚拟机同步所述第一虚拟机进行内存写操作的脏页信息。
在实际应用中,QEMU通过Hypervisor接口获取该置位后的标脏位图所对应的脏页信息,并将该脏页信息发送至第二虚拟机,可见,无需Hypervisor进行额外的信息同步和整理,从而减少了Hypervisor的资源消耗,从而解决了现有技术中获取内存标脏信息时资源开销大的问题。
需要说明的是,第一虚拟机和第二虚拟机为不同的两个虚拟机,第一虚拟机和第二虚拟机可以运行在不同的物理机上,此处不做具体限定。
步骤506、CPU将CPU的运行状态恢复至初始状态。
在一种可能的实现方式中,当CPU将置位后的标脏位图传输给所述Hypervisor,为了减少CPU的资源消耗,CPU关闭进行内存标脏的功能。
需要说明的是,步骤501和步骤502,步骤505和步骤506为本发明实施例中可选的实现方式,在一些实施例中,无需完全执行步骤501和步骤502,步骤505和步骤506,此处不做具体限定。
为便于更好的实施本发明实施例的上述相关方法,下面还提供用于配合上述方法的相关装置。
请参阅图6,本发明实施例中数据处理装置600的一个结构示意图,该装置600应用于虚拟机系统中的第一物理机,所述第一物理机上运行第一虚拟机,所述虚拟机系统还包括第二物理机,所述第二物理机上运行第二虚拟机,其中,所述第一物理机包括中央处理器CPU和虚拟机管理程序Hypervisor,该装置600包括:获取模块601和处理模块602。
获取模块601,用于在预设条件下,当所述第一虚拟机进行内存写操作时,获取第一地址和第二地址,其中,所述第一地址为所述第一虚拟机进行内存写操作的地址,所述第二地址为存储在第一寄存器的标脏位图的地址,所述第一地址和所述第二地址对应的标脏位图之间存在映射关系;
处理模块602,用于根据所述映射关系确定所述第一地址在所述第二地址对应的标脏位图中对应的比特bit位,并将所述对应的bit位置位,其中,所述第一寄存器为所述CPU上的至少一个寄存器。
可见,在预设条件下(例如:热迁移或者热备),当第一虚拟机进行内存写操作时,获取模块获取该第一地址和第二地址,处理模块根据第一地址和所述第二地址对应的标脏位图之间的映射关系确定第一地址在第二地址对应的标脏位图中对应的bit位,并将所述对应的bit位置位,其中,第一寄存器为所述CPU上的至少一个寄存器,可见通过处理模块进行内存标脏,无需虚拟机退出到Hypervisor,消除虚拟机由于频繁退出到Hypervisor所导致的虚拟机的内部业务中断的问题,从而提高内存标脏的效率。
在一些可能的实现方式中,
所述处理模块602,还用于在所述获取模块获取第一地址和第二地址之前,检测到所述Hypervisor在所述第一寄存器上的第一写操作,所述第一写操作用于指示所述第一寄存器保存所述第二地址。
可见,在虚拟机进行内存写操作之前,第一寄存器首先获取第二地址,从而便于后续根据虚拟机的内存写操作确定第一地址在所述第二地址对应的标脏位图中对应的bit位,进而对bit位置位,完成内存标脏。
在一些可能的实现方式中,
所述处理模块602,还用于在检测到所述Hypervisor在所述第一寄存器上的第一写操作的之后或者同时,检测到所述Hypervisor在第二寄存器上的第二写操作,所述第二写操作用于指示所述CPU进行内存标脏,其中,所述第二寄存器为所述CPU上的至少一个寄存器。
可见,通过第二写操作,启动CPU进行内存标脏的功能。
在一些可能的实现方式中,所述装置600还包括:
传输模块603,用于在将所述对应的bit位置位之后,将所述置位后的标脏位图传输给所述Hypervisor,所述置位后的标脏位图所对应的脏页信息用于发送给所述第二虚拟机,使得所述第二虚拟机同步所述第一虚拟机进行内存写操作的脏页信息。
可见,将置位后的标脏位图传输给Hypervisor后,QEMU通过Hypervisor接口获取该置位后的标脏位图所对应的脏页信息,并将该脏页信息发送至第二虚拟机,从而使得第二虚拟机同步第一虚拟机进行内存写操作的脏页信息,无需Hypervisor进行额外的信息同步和整理,从而减少了Hypervisor的资源消耗,从而解决了现有技术中获取内存标脏信息时资源开销大的问题。
在一些可能的实现方式中,
所述处理模块602,还用于在所述传输模块603将所述置位后的标脏位图发送给所述Hypervisor之后,将所述CPU的运行状态恢复至初始状态。
为了减少CPU的运行负载,当整个内存标脏的过程结束后,CPU关闭内存标脏的功能,有效提高CPU的运行速率。
图6所示的实施例从功能模块的角度对便数据处理装置的具体结构进行了说明,以下结合图7的实施例从硬件角度对主句处理装置的具体结构进行说明:一种数据处理装置700,包括:一个或多个处理器701、存储器702、总线系统703、收发器704以及一个或多个程序705,所述处理器701、所述存储器702和所述收发器704通过所述总线系统703连接;
其中,所述一个或多个程序705存储在所述存储器702中,所述一个或多个程序705包括指令,所述指令当被所述数据处理装置700执行时使所述数据处理装置700执行如图5所示实施例的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种数据处理方法,其特征在于,所述方法应用于虚拟机系统中的第一物理机,所述第一物理机上运行第一虚拟机,所述虚拟机系统还包括第二物理机,所述第二物理机上运行第二虚拟机,其中,所述第一物理机包括中央处理器CPU和虚拟机管理程序Hypervisor,所述方法包括:
在预设条件下,当所述第一虚拟机进行内存写操作时,获取第一地址和第二地址,其中,所述第一地址为所述第一虚拟机进行内存写操作的地址,所述第二地址为存储在第一寄存器的标脏位图的地址,所述第一地址和所述第二地址对应的标脏位图之间存在映射关系;
根据所述映射关系确定所述第一地址在所述第二地址对应的标脏位图中对应的比特bit位,并将所述对应的bit位置位,其中,所述第一寄存器为所述CPU上的至少一个寄存器。
2.根据权利要求1所述的方法,其特征在于,在获取第一地址和第二地址之前,所述方法还包括:
检测到所述Hypervisor在所述第一寄存器上的第一写操作,所述第一写操作用于指示所述第一寄存器保存所述第二地址。
3.根据权利要求2所述的方法,其特征在于,所述在检测到所述Hypervisor在所述第一寄存器上的第一写操作的之后或者同时,所述方法还包括:
检测到所述Hypervisor在第二寄存器上的第二写操作,所述第二写操作用于指示所述CPU进行内存标脏,其中,所述第二寄存器为所述CPU上的至少一个寄存器。
4.根据权利要求1所述的方法,其特征在于,在将所述对应的bit位置位之后,所述方法还包括:
将所述置位后的标脏位图传输给所述Hypervisor,所述置位后的标脏位图所对应的脏页信息用于发送给所述第二虚拟机,使得所述第二虚拟机同步所述第一虚拟机进行内存写操作的脏页信息。
5.根据权利要求4所述的方法,其特征在于,所述将所述置位后的标脏位图传输给所述Hypervisor之后,所述方法还包括:
将所述CPU的运行状态恢复至初始状态。
6.一种数据处理装置,其特征在于,所述装置应用于虚拟机系统中的第一物理机,所述第一物理机上运行第一虚拟机,所述虚拟机系统还包括第二物理机,所述第二物理机上运行第二虚拟机,其中,所述第一物理机包括中央处理器CPU和虚拟机管理程序Hypervisor,所述装置包括:
获取模块,用于在预设条件下,当所述第一虚拟机进行内存写操作时,获取第一地址和第二地址,其中,所述第一地址为所述第一虚拟机进行内存写操作的地址,所述第二地址为存储在第一寄存器的标脏位图的地址,所述第一地址和所述第二地址对应的标脏位图之间存在映射关系;
处理模块,用于根据所述映射关系确定所述第一地址在所述第二地址对应的标脏位图中对应的比特bit位,并将所述对应的bit位置位,其中,所述第一寄存器为所述CPU上的至少一个寄存器。
7.根据权利要求6所述的装置,其特征在于,
所述处理模块,还用于在所述获取模块获取第一地址和第二地址之前,检测到所述Hypervisor在所述第一寄存器上的第一写操作,所述第一写操作用于指示所述第一寄存器保存所述第二地址。
8.根据权利要求7所述的装置,其特征在于,
所述处理模块,还用于在检测到所述Hypervisor在所述第一寄存器上的第一写操作的之后或者同时,检测到所述Hypervisor在第二寄存器上的第二写操作,所述第二写操作用于指示所述CPU进行内存标脏,其中,所述第二寄存器为所述CPU上的至少一个寄存器。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
传输模块,用于在将所述对应的bit位置位之后,将所述置位后的标脏位图传输给所述Hypervisor,所述置位后的标脏位图所对应的脏页信息用于发送给所述第二虚拟机,使得所述第二虚拟机同步所述第一虚拟机进行内存写操作的脏页信息。
10.根据权利要求9所述的装置,其特征在于,
所述处理模块,还用于在所述传输模块将所述置位后的标脏位图传输给所述Hypervisor之后,将所述CPU的运行状态恢复至初始状态。
11.一种数据处理装置,其特征在于,包括:一个或多个处理器、存储器、总线系统、收发器以及一个或多个程序,所述处理器、所述存储器和所述收发器通过所述总线系统连接;
其中,所述一个或多个程序存储在所述存储器中,所述一个或多个程序包括指令,所述指令当被所述数据处理装置执行时使所述数据处理装置执行如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511030641.2A CN105677480B (zh) | 2015-12-31 | 2015-12-31 | 一种数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511030641.2A CN105677480B (zh) | 2015-12-31 | 2015-12-31 | 一种数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105677480A true CN105677480A (zh) | 2016-06-15 |
CN105677480B CN105677480B (zh) | 2019-03-26 |
Family
ID=56298393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511030641.2A Active CN105677480B (zh) | 2015-12-31 | 2015-12-31 | 一种数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105677480B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309368A (zh) * | 2018-03-26 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 数据地址的确定方法、装置、存储介质和电子装置 |
CN110990180A (zh) * | 2019-11-28 | 2020-04-10 | 龙芯中科技术有限公司 | Tlb异常处理方法、装置、电子设备及储存介质 |
CN111052081A (zh) * | 2016-12-29 | 2020-04-21 | 深圳前海达闼云端智能科技有限公司 | 多虚拟机切换过程中的上下文处理方法、装置及电子设备 |
CN112306624A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 一种信息处理方法、物理机和pcie设备 |
CN112559393A (zh) * | 2019-09-25 | 2021-03-26 | 无锡江南计算技术研究所 | 基于定制tlb代换的虚拟机迁移时脏页记录方法 |
CN112749134A (zh) * | 2019-10-30 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于位图转换的方法、设备和计算机可读存储介质 |
CN114785807A (zh) * | 2022-03-16 | 2022-07-22 | 深信服科技股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706736A (zh) * | 2009-12-22 | 2010-05-12 | 北京大学 | 一种高效的脏页获取方法 |
US20130086272A1 (en) * | 2011-09-29 | 2013-04-04 | Nec Laboratories America, Inc. | Network-aware coordination of virtual machine migrations in enterprise data centers and clouds |
US8612975B2 (en) * | 2009-07-07 | 2013-12-17 | Advanced Micro Devices, Inc. | World switch between virtual machines with selective storage of state information |
US20150007172A1 (en) * | 2013-06-28 | 2015-01-01 | Sap Ag | Cloud-enabled, distributed and high-availability system with virtual machine checkpointing |
CN104268003A (zh) * | 2014-09-30 | 2015-01-07 | 南京理工大学 | 一种适用于虚拟机动态迁移的内存状态迁移方法 |
CN104965757A (zh) * | 2015-01-21 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 |
-
2015
- 2015-12-31 CN CN201511030641.2A patent/CN105677480B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612975B2 (en) * | 2009-07-07 | 2013-12-17 | Advanced Micro Devices, Inc. | World switch between virtual machines with selective storage of state information |
CN101706736A (zh) * | 2009-12-22 | 2010-05-12 | 北京大学 | 一种高效的脏页获取方法 |
US20130086272A1 (en) * | 2011-09-29 | 2013-04-04 | Nec Laboratories America, Inc. | Network-aware coordination of virtual machine migrations in enterprise data centers and clouds |
US20150007172A1 (en) * | 2013-06-28 | 2015-01-01 | Sap Ag | Cloud-enabled, distributed and high-availability system with virtual machine checkpointing |
CN104268003A (zh) * | 2014-09-30 | 2015-01-07 | 南京理工大学 | 一种适用于虚拟机动态迁移的内存状态迁移方法 |
CN104965757A (zh) * | 2015-01-21 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 |
Non-Patent Citations (1)
Title |
---|
袁野,赵海燕,曹健,陈庆奎: "虚拟机内存迁移技术研究", 《小型微型计算机系统》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111052081A (zh) * | 2016-12-29 | 2020-04-21 | 深圳前海达闼云端智能科技有限公司 | 多虚拟机切换过程中的上下文处理方法、装置及电子设备 |
CN111052081B (zh) * | 2016-12-29 | 2023-07-14 | 深圳前海达闼云端智能科技有限公司 | 多虚拟机切换过程中的上下文处理方法、装置及电子设备 |
CN110309368B (zh) * | 2018-03-26 | 2023-09-22 | 腾讯科技(深圳)有限公司 | 数据地址的确定方法、装置、存储介质和电子装置 |
CN110309368A (zh) * | 2018-03-26 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 数据地址的确定方法、装置、存储介质和电子装置 |
CN112306624A (zh) * | 2019-07-31 | 2021-02-02 | 华为技术有限公司 | 一种信息处理方法、物理机和pcie设备 |
WO2021017719A1 (zh) * | 2019-07-31 | 2021-02-04 | 华为技术有限公司 | 一种信息处理方法、物理机和pcie设备 |
CN112559393B (zh) * | 2019-09-25 | 2022-10-04 | 无锡江南计算技术研究所 | 基于定制tlb代换的虚拟机迁移时脏页记录方法 |
CN112559393A (zh) * | 2019-09-25 | 2021-03-26 | 无锡江南计算技术研究所 | 基于定制tlb代换的虚拟机迁移时脏页记录方法 |
CN112749134A (zh) * | 2019-10-30 | 2021-05-04 | 伊姆西Ip控股有限责任公司 | 用于位图转换的方法、设备和计算机可读存储介质 |
CN112749134B (zh) * | 2019-10-30 | 2024-05-17 | 伊姆西Ip控股有限责任公司 | 用于位图转换的方法、设备和计算机可读存储介质 |
CN110990180B (zh) * | 2019-11-28 | 2023-04-07 | 龙芯中科技术股份有限公司 | Tlb异常处理方法、装置、电子设备及储存介质 |
CN110990180A (zh) * | 2019-11-28 | 2020-04-10 | 龙芯中科技术有限公司 | Tlb异常处理方法、装置、电子设备及储存介质 |
CN114785807A (zh) * | 2022-03-16 | 2022-07-22 | 深信服科技股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN114785807B (zh) * | 2022-03-16 | 2024-07-09 | 深信服科技股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105677480B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105677480A (zh) | 一种数据处理方法及装置 | |
CN103970585B (zh) | 创建虚拟机的方法及装置 | |
CN102331949B (zh) | 一种虚拟机内存快照生成和恢复方法、装置及系统 | |
CN102110196B (zh) | 并行运行多用户操作系统间的数据安全传输方法及系统 | |
EP3370153B1 (en) | Method and device for generating virtual machine snapshot | |
CN102467408B (zh) | 一种虚拟机数据的访问方法和设备 | |
CN103064765B (zh) | 数据恢复方法、装置及集群存储系统 | |
JP5373893B2 (ja) | 異なるサイズを有するデータのブロックを格納し、取り出すための構成 | |
US9792075B1 (en) | Systems and methods for synthesizing virtual hard drives | |
CN104965757A (zh) | 虚拟机热迁移的方法、虚拟机迁移管理装置及系统 | |
US8738871B1 (en) | Method and apparatus for mapping virtual drives | |
CN111506267A (zh) | 分布式内存磁盘群集储存系统运作方法 | |
CN106406979A (zh) | XenServer平台虚拟机迁移至KVM虚拟化平台的方法 | |
US8615488B2 (en) | Physical replication of database subset to improve availability and reduce resource cost in a cloud environment | |
Chang et al. | Evaluation of Virtual Machine Performance and Virtualized Consolidation Ratio in Cloud Computing System. | |
WO2013075440A1 (zh) | 虚拟机管理系统及方法 | |
CN106777394B (zh) | 一种集群文件系统 | |
AU2014290149B2 (en) | Systems and methods for instantly restoring virtual machines in high input/output load environments | |
US10402264B2 (en) | Packet-aware fault-tolerance method and system of virtual machines applied to cloud service, computer readable record medium and computer program product | |
CN205792734U (zh) | 一种面向云计算的灾难恢复演练系统 | |
US9336131B1 (en) | Systems and methods for enabling virtual environments to mount non-native storage disks | |
CN112328365A (zh) | 一种虚拟机迁移方法、装置、设备及存储介质 | |
CN106095528A (zh) | 一种检测虚拟机盘符的方法 | |
US8990815B1 (en) | Synchronizing allocated blocks of virtual disk files across primary and secondary volumes by excluding unused blocks | |
CN103049546B (zh) | 一种管理、访问系统日志的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200423 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310052, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |
|
TR01 | Transfer of patent right |