CN113032088B - 脏页记录方法、装置、电子设备及计算机可读介质 - Google Patents
脏页记录方法、装置、电子设备及计算机可读介质 Download PDFInfo
- Publication number
- CN113032088B CN113032088B CN201911359730.XA CN201911359730A CN113032088B CN 113032088 B CN113032088 B CN 113032088B CN 201911359730 A CN201911359730 A CN 201911359730A CN 113032088 B CN113032088 B CN 113032088B
- Authority
- CN
- China
- Prior art keywords
- buffer
- dirty page
- virtual machine
- page
- dirty
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 239000000872 buffer Substances 0.000 claims abstract description 290
- 238000013508 migration Methods 0.000 claims abstract description 53
- 230000005012 migration Effects 0.000 claims abstract description 53
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012804 iterative process Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 8
- 238000012545 processing Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004984 smart glass Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
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
本申请实施例提供了一种脏页记录方法、装置、电子设备及计算机可读介质,涉及数据处理技术领域。其中,所述方法包括:当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,使用所述第二缓冲区记录所述脏页。通过本申请实施例,采用缓冲区无缝切换机制,有效解决了现有技术中采用处理器的PML机制记录虚拟机内存的脏页,导致热迁移时虚拟机的虚拟处理器频繁退出到虚拟机监控器造成对虚拟机的用户业务性能抖动的问题,或者频繁阻塞虚拟机的直通设备运行的问题。
Description
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种脏页记录方法、装置、电子设备及计算机可读介质。
背景技术
虚拟机的热迁移技术是云计算的核心技术之一。虚拟机热迁移的过程中,不中断虚拟机上运行的业务,用户无感知。虚拟机热迁移的内容主要为虚拟机的内存和各种设备的状态。其中,内存迁移是虚拟机状态迁移的主要任务。内存迁移是一个迭代的过程,首先在第一轮完成虚拟机全部内存的传输,然后迭代传输中间新产生的脏页,直到达到收敛条件。
在现有技术中,通常采用处理器的PML机制记录虚拟机内存中的脏页。如果虚拟机内存中的脏页是由于虚拟机的虚拟处理器修改虚拟机内存中的页面产生的,则采用PML机制会导致热迁移时虚拟处理器频繁退出到虚拟机监控器。在虚拟处理器退出期间,虚拟处理器得不到运行,对虚拟机的用户业务造成一定的性能抖动。如果虚拟机内存中的脏页是由于虚拟机的直通设备修改虚拟机内存中的页面产生的,则采用PML机制会导致热迁移时频繁阻塞虚拟机的直通设备的运行。这比对虚拟机的用户业务造成的性能抖动问题更严重。由此可见,如何解决现有技术中采用处理器的PML机制记录虚拟机内存中的脏页造成虚拟机用户业务的性能抖动问题,或频繁阻塞虚拟机的直通设备运行的问题成为当前亟待解决的技术问题。
发明内容
本申请的目的在于提出一种脏页记录方法、装置、电子设备及计算机可读介质,用于解决现有技术中采用处理器的PML机制记录虚拟机内存中的脏页造成虚拟机用户业务的性能抖动问题,或频繁阻塞虚拟机的直通设备运行的问题。
根据本申请实施例的第一方面,提供了一种脏页记录方法。所述方法包括:当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,使用所述第二缓冲区记录所述脏页。
根据本申请实施例的第二方面,提供了一种脏页记录装置。所述装置包括:第一记录模块,用于当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;第一切换模块,用于当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,使用所述第二缓冲区记录所述脏页。
根据本申请实施例的第三方面,提供了一种电子设备,包括:一个或多个处理器;计算机可读介质,配置为存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例的第一方面所述的脏页记录方法。
根据本申请实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例的第一方面所述的脏页记录方法。
根据本申请实施例提供的技术方案,当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录脏页;当确定热迁移第一缓冲区记录的脏页的页面内容时,将第一缓冲区切换为第二缓冲区,使用第二缓冲区记录脏页,与现有技术中采用处理器的PML机制记录虚拟机内存中的脏页的方案相比,当确定热迁移第一缓冲区记录的脏页的页面内容时,将第一缓冲区切换为第二缓冲区,使用第二缓冲区记录脏页,有效解决了现有技术中采用处理器的PML机制记录虚拟机内存的脏页的方案,导致热迁移时虚拟机的虚拟处理器频繁退出到虚拟机监控器造成对虚拟机的用户业务性能抖动的问题,或者导致热迁移时频繁阻塞虚拟机的直通设备运行的问题。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1A为本申请实施例中宿主机的一结构示意图;
图1B为本申请实施例中云计算***的一实施例示意图;
图1C为本申请实施例一中脏页记录方法的步骤流程图;
图2A为本申请实施例二中脏页记录方法的步骤流程图;
图2B为根据本申请实施例二提供的脏页记录过程的示意图;
图3为本申请实施例三中脏页记录装置的结构示意图;
图4为本申请实施例四中脏页记录装置的结构示意图;
图5为本申请实施例五中脏页记录装置的结构示意图;
图6为本申请实施例六中电子设备的结构示意图;
图7为本申请实施例七中电子设备的硬件结构。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅配置为解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1A为本申请实施例中宿主机的一结构示意图。从图1A中可见,该源宿主机(源端物理机)包括虚拟机(Virtual Machine,VM)、虚拟机监控层和硬件层。
其中,通过虚拟机软件可以在一台宿主机上模拟出一台或者多台虚拟的计算机,即虚拟机,如图1A中的虚拟机1,……,虚拟机N。这些虚拟机就像真正的计算机那样进行工作。虚拟机上可以安装操作***和应用程序,还可以访问网络资源。对于在虚拟机中运行的应用程序而言,就像是在真正的计算机中进行工作。
宿主机中的虚拟机监控层可以是用于监控虚拟机运行的虚拟机监控器。
宿主机中的硬件层是虚拟化环境运行的硬件平台,其可以为每个虚拟机提供硬件资源。硬件层可包括多种硬件资源,例如,处理器CPU、内存、网卡、存储器等硬件资源。但不限于此,在实际应用中,硬件层还可以包括虚拟机运行所需的任意适当的其它硬件资源。
虚拟机的热迁移指的是出于资源利用效率,或者维护的需要,将源宿主机上的虚拟机的数据、状态等迁移/复制到目标宿主机(目的端物理机)上运行,迁移过程中,虚拟机中的用户业务无感知不中断。迁移的内容主要为虚拟机的内存和各种设备的状态。具体地,在云计算场景中,一台物理服务器运行着多个虚拟机,不同虚拟机上运行着不同租户的业务。通过虚拟机的热迁移技术,把正在运行的虚拟机的状态从一台物理服务器热迁移到另外一台物理服务器上运行,可以把空闲的物理服务器上的虚拟机集中到一台物理服务器上运行,提高物理服务器的资源利用率,或者实现对旧的物理服务器的维护和升级。
宿主机一般设置在云计算***中,作为云计算***的一部分。一种云计算***如图1B所示,其包括控制设备10、网络20和多台宿主机30。控制设备10和多台宿主机30通过网络20通信连接,每台宿主机30上都分别包含至少一台虚拟机。
在一台宿主机30出现故障隐患或者该台宿主机30的负载过重或者其它需要进行数据迁移的情形时,控制设备10都会协调宿主机30上的虚拟机做热迁移。例如,若宿主机30A负载过重,控制设备10会从宿主机30A中确定出待热迁移的虚拟机,如30A-VM1;然后,控制设备10确定可接收30A-VM1进行数据热迁移的目标宿主机,如30B;进而,控制设备10控制待热迁移的虚拟机30A-VM1从宿主机30A热迁移到宿主机30B。
参照图1C,示出了本申请实施例一的应用于热迁移场景的脏页记录方法的步骤流程图。
具体地,本实施例的脏页记录方法包括以下步骤:
在步骤S101中,当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页。
在本申请实施例,当虚拟机的操作***或者上层应用通过虚拟机的虚拟处理器修改虚拟机的内存中的页面时,可确定虚拟机的内存中的页面存在待记录的脏页。可选地,当虚拟机的直通设备修改虚拟机的内存中的页面时,可确定虚拟机的内存中的页面存在待记录的脏页。其中,所述直通设备可理解为通过虚拟机的虚拟处理器直接控制的硬件设备,而并非通过虚拟机监控器间接控制的硬件设备,例如,网卡等。所述脏页可理解为在迁移虚拟机内存的页面内容的过程中,虚拟机的操作***、应用程序或者直通设备对虚拟机内存进行修改所产生的新的被修改的页面。另外,虚拟机热迁移的过程是通过迭代的方式将虚拟客户机的内存的页面内容从一个物理机迁移到另一个物理机中。在首次将虚拟客户机的内存的页面内容从一个物理机迁移到另一个物理机的过程中,虚拟机的虚拟处理器或直通设备可对虚拟机的内存中的页面进行修改,以产生待记录的脏页。在非首次将虚拟客户机的内存的页面内容从一个物理机迁移到另一个物理机的过程中,虚拟机的虚拟处理器或直通设备也可对虚拟机的内存中的页面进行修改,以产生待记录的脏页。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在本申请实施例,所述第一缓冲区可包括位图缓冲区、PML缓冲区等。其中,所述位图缓冲区可理解为通过位与虚拟机内存中的页面进行对应的缓冲区。举例来说,如果所述位图缓冲区中与虚拟机内存中的页面对应的位的数值为0,则表明该页面没有被修改,不是脏页。如果所述位图缓冲区中与虚拟机内存中的页面对应的位的数值为1,则表明该页面被修改,是脏页,从而用于记录虚拟机内存中存在的脏页。由此可见,位图缓冲区通过位与虚拟机内存中的页面进行对应,能够有效节省位图缓冲区的空间。所述PML缓冲区可理解为采用处理器的PML机制记录虚拟机内存中的脏页的方案中采用的缓冲区,所述PML缓冲区通过页面地址与虚拟机内存中的页面进行对应。其中,PML是处理器的一个特性,该特性开启后,处理器会记录被处理器改写了的物理内存页面信息。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在使用第一缓冲区记录所述脏页时,基于所述脏页的地址信息,将所述脏页记录于所述第一缓冲区。例如,当所述第一缓冲区为PML缓冲区时,通过将所述脏页的地址信息记录于所述PML缓冲区,便可实现所述脏页的记录。此外,所述第一缓冲区可以是虚拟机所在的物理机为虚拟机的虚拟处理器预先分配的用于记录脏页的缓冲区,还可以是虚拟机所在的物理机为虚拟机的虚拟处理器实时分配的用于记录脏页的缓冲区。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在基于所述脏页的地址信息,将所述脏页记录于所述第一缓冲区时,可基于所述第一缓冲区的地址信息和所述脏页的地址信息,将所述脏页记录于所述第一缓冲区。由此可知,所述第一缓冲区是虚拟机所在的物理机为虚拟机的虚拟处理器预先分配的。具体地,所述基于所述第一缓冲区的地址信息和所述脏页的地址信息,将所述脏页记录于所述第一缓冲区之前,所述方法还包括:将所述第一缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的所述虚拟机控制结构体。具体地,通过热迁移线程,将所述第一缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的所述虚拟机控制结构体。其中,所述热迁移线程用于热迁移虚拟机内存中脏页的页面内容,所述虚拟机控制结构体可理解为控制虚拟处理器的行为的寄存器集合。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,当所述第一缓冲区为位图缓冲区时,所述基于所述第一缓冲区的地址信息和所述脏页的地址信息,将所述脏页记录于所述第一缓冲区,包括:基于所述位图缓冲区的地址信息和所述脏页的地址信息,确定所述位图缓冲区中与所述脏页对应的位;对与所述脏页对应的位执行置位操作,以将所述脏页记录于所述第一缓冲区。其中,所述基于所述位图缓冲区的地址信息和所述脏页的地址信息,确定所述位图缓冲区中与所述脏页对应的位,包括:基于所述脏页的地址信息和所述脏页的大小,确定所述位图缓冲区中与所述脏页对应的位的编号;基于所述位图缓冲区的地址信息和所述位的编号,确定所述位图缓冲区中与所述脏页对应的所述位。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在确定所述位图缓冲区中与所述脏页对应的位的编号时,可将所述脏页的地址信息除以所述脏页的大小,以获得所述位图缓冲区中与所述脏页对应的位的编号。其中,所述脏页的地址信息(Guest Physical Address,GPA)并不是真正的物理地址,它只是虚拟机所在的物理机(Host机)虚拟地址(Host Virtual Address,HVA)在虚拟机地址的一个映射。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S102中,当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,并使用所述第二缓冲区记录所述脏页。
在本申请实施例中,当虚拟机所在的物理机通过热迁移线程开始新一轮的虚拟机内存中的脏页的页面内容迁移时,可确定热迁移所述第一缓冲区记录的所述脏页的页面内容。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在将所述第一缓冲区切换为第二缓冲区时,将所述第一缓冲区切换为第二缓冲区。具体地,可通过热迁移线程,将所述第一缓冲区切换为第二缓冲区。其中,所述第二缓冲区可包括位图缓冲区、PML缓冲区等。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,在将所述第一缓冲区切换为第二缓冲区时,将所述第二缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的所述虚拟机控制结构体,并对所述虚拟机控制结构体的标志寄存器执行清零操作;对所述虚拟机控制结构体的同步寄存器执行写操作,以通知所述虚拟处理器基于所述虚拟处理器对应的所述虚拟机控制结构体中写入的所述第二缓冲区的地址信息,将所述第一缓冲区切换为所述第二缓冲区。籍此,对虚拟机控制结构体的同步寄存器执行写操作,以通知虚拟处理器进行缓冲区的切换,能够以较小的代价实现虚拟处理器的用于记录脏页的缓冲区的无缝切换。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,可通过所述热迁移线程,将所述第二缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的所述虚拟机控制结构体,并对所述虚拟机控制结构体的标志寄存器执行清零操作,及对所述虚拟机控制结构体的同步寄存器执行写操作,以通知所述虚拟处理器基于所述虚拟处理器对应的所述虚拟机控制结构体中写入的所述第二缓冲区的地址信息,将所述第一缓冲区切换为所述第二缓冲区。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述方法还包括:查询所述标志寄存器,以确定所述虚拟处理器是否完成将所述第一缓冲区切换为所述第二缓冲区。籍此,能够确定虚拟处理器是否完成将第一缓冲区切换为第二缓冲区。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,通过热迁移线程,对虚拟机控制结构体的同步寄存器执行写操作,虚拟处理器被同步寄存器写触发,从而实现通知虚拟处理器进行缓冲区的切换。在通知虚拟处理器进行缓冲区的切换之后,虚拟处理器微代码刷新第一缓冲区中可能存在的存储空间,以写入虚拟处理器的缓存中记录的脏页的信息。然后,虚拟处理器将对应的虚拟机控制结构体中的标志寄存器的数值由0改写为1。接着,热迁移线程查询虚拟处理器对应的虚拟机控制结构体中的标志寄存器的数值。如果该数值为1,则表明虚拟处理器完成将第一缓冲区切换为第二缓冲区。如果该数值为0,则表明虚拟处理器没有完成将第一缓冲区切换为第二缓冲区。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述方法还包括:当确定所述虚拟处理器完成将所述第一缓冲区切换为所述第二缓冲区时,将所述第一缓冲区记录的所述脏页的页面内容热迁移至目的端物理机。具体地,通过所述热迁移线程,将所述第一缓冲区记录的所述脏页的页面内容热迁移至目的端物理机。籍此,能够安全地将一缓冲区记录的脏页的页面内容热迁移至目的端物理机,从而实现虚拟机内存中脏页的页面内容的迁移。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,在将所述第一缓冲区记录的所述脏页的页面内容热迁移至目的端物理机时,读取所述第一缓冲区,并将所述第一缓冲区中被置位的位对应的脏页的页面内容热迁移至所述目的端物理机。具体地,通过所述热迁移线程,读取所述第一缓冲区,并将所述第一缓冲区中被置位的位对应的脏页的页面内容热迁移至所述目的端物理机。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述方法还包括:对所述第一缓冲区中被置位的位执行清零操作。具体地,通过所述热迁移线程,对所述第一缓冲区中被置位的位执行清零操作。籍此,在下次进行虚拟处理器的用于记录脏页的缓冲区的切换时,被置位的位被执行清零操作的第一缓冲区可再次用于记录脏页。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一些可选实施例中,所述使用所述第二缓冲区记录所述脏页的具体实施方式与上述步骤S101中使用第一缓冲区记录所述脏页的具体实施方式类似,在此不再赘述。
通过本申请实施例提供的脏页记录方法,当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录脏页;当确定热迁移第一缓冲区记录的脏页的页面内容时,将第一缓冲区切换为第二缓冲区,使用第二缓冲区记录脏页,与现有技术中采用处理器的PML机制记录虚拟机内存中的脏页的方案相比,当确定热迁移第一缓冲区记录的脏页的页面内容时,将第一缓冲区切换为第二缓冲区,使用第二缓冲区记录脏页,有效解决了现有技术中采用处理器的PML机制记录虚拟机内存的脏页的方案,导致热迁移时虚拟机的虚拟处理器频繁退出到虚拟机监控器造成对虚拟机的用户业务性能抖动的问题,或者导致热迁移时频繁阻塞虚拟机的直通设备运行的问题。
本实施例的脏页记录方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备等。
参照图2A,示出了本申请实施例二的脏页记录方法的步骤流程图。
具体地,本实施例的脏页记录方法包括以下步骤:
在步骤S201中,为所述虚拟机的虚拟处理器分配所述第一缓冲区和所述第二缓冲区。
在本申请实施例中,在对虚拟机内存中的页面内容进行热迁移之前,为所述虚拟机的虚拟处理器分配所述第一缓冲区和所述第二缓冲区。具体地,一台物理机对应有多台虚拟机,一台虚拟机对应有一个或多个虚拟处理器。通过热迁移线程,为每台虚拟机的虚拟处理器分配所述第一缓冲区和所述第二缓冲区。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在步骤S202中,当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页。
由于该步骤S202与上述步骤S101类似,在此不再赘述。
在步骤S203中,当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,使用所述第二缓冲区记录所述脏页。
由于该步骤S203与上述步骤S102类似,在此不再赘述。
在一些可选实施例中,所述方法还包括:当完成热迁移的迭代过程时,释放所述第一缓冲区和所述第二缓冲区。具体地,当通过热迁移线程完成热迁移的迭代过程时,通过所述热迁移线程,释放所述第一缓冲区和所述第二缓冲区。籍此,能够有效节省虚拟机所在的物理机的存储资源。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
在一个具体的例子中,有多个虚拟机的虚拟处理器分别运行于物理机的多个物理处理器上。位图缓冲区用于记录脏页,位图缓冲区中的位bit0与虚拟机内存中的页面0对应,位图缓冲区中的位bit1与虚拟机内存中的页面1对应,依次类推。热迁移线程负责从位图缓冲区中读取被设置的位,即虚拟机内存哪些页面被修改,然后将被修改的页面内容迁移至目的端物理机。热迁移线程使用切换出去的位图缓冲区,虚拟机的虚拟处理器使用另一个位图缓冲区。具体地,如图2B所示,热迁移的具体步骤包括:(1)热迁移开始前,热迁移线程为虚拟机的虚拟处理器分配两个位图缓冲区(bitmap0和bitmap1),并清0。(2)通过热迁移线程,在虚拟处理器对应的虚拟机控制结构体中写入位图缓冲区bitmap0的地址,作为脏页记录使用的位图缓冲区地址。(3)虚拟机的虚拟处理器在修改内存页面时,在当前记录脏页的位图缓冲区置位被修改的页面的地址对应的位。(4)热迁移线程开始新一轮的虚拟机内存中的脏页的页面内容迁移。(5)热迁移线程写入新的位图缓冲区地址到虚拟机每个虚拟处理器的虚拟机控制结构体。如果之前是位图缓冲区bitmap0,写入位图缓冲区bitmap1的地址。反之,如果之前是位图缓冲区bitmap1,写入位图缓冲区bitmap0的地址。(6)热迁移线程读取切换出去的位图缓冲区,将被置位的位对应的脏页的页面内容迁移到目的端物理机,同时清掉对应的被置位的位。(7)回到步骤(4),执行步骤(4)-(6)的迭代过程,直到热迁移达到收敛条件。(8)热迁移结束,释放位图缓冲区bitmap0和bitmap1。在上述步骤(5)中,两个位图缓冲区无缝切换的步骤包括:(1)写入新的位图缓冲区地址到虚拟机对应的虚拟机控制结构体。(2)清零虚拟机对应的虚拟机控制结构体的标志寄存器。(3)对虚拟机对应的虚拟机控制结构体的同步寄存器执行写操作,以通知虚拟处理器切换使用新的位图缓冲区。(4)虚拟处理器被虚拟机控制结构体的同步寄存器写触发,CPU微代码刷新缓冲区中可能存在的空间,以写入虚拟处理器的缓存中记录的脏页的信息,然后写1到虚拟机控制结构体的标志寄存器(5)热迁移线程查询虚拟机控制结构体的标志寄存器,为1时表示该虚拟处理器完成缓冲区的切换,该过程应该在微秒量级完成。(6)热迁移线程等待所有的虚拟处理器完成位图缓冲区的切换,后续脏页记录将开始使用新的位图缓冲区,切换出去的位图缓冲区可以被热迁移线程安全地读取。可以理解的是,以上描述仅为示例性的,本申请实施例对此不做任何限定。
根据本申请实施例提供的脏页记录方法,为虚拟机的虚拟处理器分配第一缓冲区和第二缓冲区;当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录脏页;当确定热迁移第一缓冲区记录的脏页的页面内容时,将第一缓冲区切换为第二缓冲区,使用第二缓冲区记录脏页,与现有技术中采用处理器的PML机制记录虚拟机内存中的脏页的方案相比,当确定热迁移第一缓冲区记录的脏页的页面内容时,将第一缓冲区切换为第二缓冲区,使用第二缓冲区记录脏页,有效解决了现有技术中采用处理器的PML机制记录虚拟机内存的脏页的方案,导致热迁移时虚拟机的虚拟处理器频繁退出到虚拟机监控器造成对虚拟机的用户业务性能抖动的问题,或者导致热迁移时频繁阻塞虚拟机的直通设备运行的问题。
本实施例的脏页记录方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:摄像头、终端、移动终端、PC机、服务器、车载设备、娱乐设备、广告设备、个人数码助理(PDA)、平板电脑、笔记本电脑、掌上游戏机、智能眼镜、智能手表、可穿戴设备、虚拟显示设备或显示增强设备等。
参照图3,示出了本申请实施例三中脏页记录装置的结构示意图。
本实施例的脏页记录装置包括:第一记录模块301,用于当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;第一切换模块302,用于当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,并使用所述第二缓冲区记录所述脏页。
本实施例的脏页记录装置用于实现前述多个方法实施例中相应的脏页记录方法,并具有相应的方法实施例的有益效果,在此不再赘述。
参照图4,示出了本申请实施例四中脏页记录装置的结构示意图。
本实施例的脏页记录装置包括:第一记录模块402,用于当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;第一切换模块403,用于当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,并使用所述第二缓冲区记录所述脏页。
可选地,所述第一切换模块403,具体用于:将所述第二缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的所述虚拟机控制结构体,并对所述虚拟机控制结构体的标志寄存器执行清零操作;对所述虚拟机控制结构体的同步寄存器执行写操作,以通知所述虚拟处理器基于所述虚拟处理器对应的所述虚拟机控制结构体中写入的所述第二缓冲区的地址信息,将所述第一缓冲区切换为所述第二缓冲区。
可选地,所述装置还包括:查询模块404,用于查询所述标志寄存器,以确定所述虚拟处理器是否完成将所述第一缓冲区切换为所述第二缓冲区。
可选地,所述装置还包括:热迁移模块405,用于当确定所述虚拟处理器完成将所述第一缓冲区切换为所述第二缓冲区时,将所述第一缓冲区记录的所述脏页的页面内容热迁移至目的端物理机。
可选地,所述热迁移模块405,具体用于:读取所述第一缓冲区,并将所述第一缓冲区中被置位的位对应的脏页的页面内容热迁移至所述目的端物理机。
可选地,所述装置还包括:清零模块406,用于对所述第一缓冲区中被置位的位执行清零操作。
可选地,所述第一记录模块402之前,所述装置还包括:分配模块401,用于为所述虚拟机的虚拟处理器分配所述第一缓冲区和所述第二缓冲区。
可选地,所述装置还包括:释放模块407,用于当完成热迁移的迭代过程时,释放所述第一缓冲区和所述第二缓冲区。
本实施例的脏页记录装置用于实现前述多个方法实施例中相应的脏页记录方法,并具有相应的方法实施例的有益效果,在此不再赘述。
参照图5,示出了本申请实施例五中脏页记录装置的结构示意图。
本实施例的脏页记录装置包括:第一记录模块501,用于当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;第一切换模块502,用于当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,并使用所述第二缓冲区记录所述脏页。
可选地,所述第一记录模块501,包括:记录子模块5011,用于基于所述脏页的地址信息,将所述脏页记录于所述第一缓冲区。
可选地,所述记录子模块5011,包括:记录单元5013,用于基于所述第一缓冲区的地址信息和所述脏页的地址信息,将所述脏页记录于所述第一缓冲区。
可选地,所述第一缓冲区包括位图缓冲区,所述记录单元5013,包括:确定子单元5014,用于基于所述位图缓冲区的地址信息和所述脏页的地址信息,确定所述位图缓冲区中与所述脏页对应的位;置位子单元5015,用于对与所述脏页对应的位执行置位操作,以将所述脏页记录于所述第一缓冲区。
可选地,所述确定子单元5014,具体用于:基于所述脏页的地址信息和所述脏页的大小,确定所述位图缓冲区中与所述脏页对应的位的编号;基于所述位图缓冲区的地址信息和所述位的编号,确定所述位图缓冲区中与所述脏页对应的所述位。
可选地,所述记录单元5013之前,所述记录子模块5011还包括:写入单元5012,用于将所述第一缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的所述虚拟机控制结构体。
本实施例的脏页记录装置用于实现前述多个方法实施例中相应的脏页记录方法,并具有相应的方法实施例的有益效果,在此不再赘述。
图6为本申请实施例六中电子设备的结构示意图;该电子设备可以包括:
一个或多个处理器601;
计算机可读介质602,可以配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述实施例一或实施例二所述的脏页记录方法。
图7为本申请实施例七中电子设备的硬件结构;如图7所示,该电子设备的硬件结构可以包括:处理器701,通信接口702,计算机可读介质703和通信总线704;
其中处理器701、通信接口702、计算机可读介质703通过通信总线704完成相互间的通信;
可选地,通信接口702可以为通信模块的接口,如GSM模块的接口;
其中,处理器701具体可以配置为:当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,使用所述第二缓冲区记录所述脏页。
处理器701可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
计算机可读介质703可以是,但不限于,随机存取存储介质(Random AccessMemory,RAM),只读存储介质(Read Only Memory,ROM),可编程只读存储介质(Programmable Read-Only Memory,PROM),可擦除只读存储介质(Erasable ProgrammableRead-Only Memory,EPROM),电可擦除只读存储介质(Electric Erasable ProgrammableRead-Only Memory,EEPROM)等。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含配置为执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。在该计算机程序被中央处理单元(CPU)执行时,执行本申请的方法中限定的上述功能。需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以但不限于是电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储介质(RAM)、只读存储介质(ROM)、可擦式可编程只读存储介质(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储介质(CD-ROM)、光存储介质件、磁存储介质件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输配置为由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写配置为执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络:包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个配置为实现规定的逻辑功能的可执行指令。上述具体实施例中有特定先后关系,但这些先后关系只是示例性的,在具体实现的时候,这些步骤可能会更少、更多或执行顺序有调整。即在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括第一记录模块和第一切换模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一记录模块还可以被描述为“当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页的模块”。
作为另一方面,本申请还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例一或实施例二所描述的脏页记录方法。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的装置中所包含的;也可以是单独存在,而未装配入该装置中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该装置执行时,使得该装置:当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,使用所述第二缓冲区记录所述脏页。
在本公开的各种实施方式中所使用的表述“第一”、“第二”、“所述第一”或“所述第二”可修饰各种部件而与顺序和/或重要性无关,但是这些表述不限制相应部件。以上表述仅配置为将元件与其它元件区分开的目的。例如,第一用户设备和第二用户设备表示不同的用户设备,虽然两者均是用户设备。例如,在不背离本公开的范围的前提下,第一元件可称作第二元件,类似地,第二元件可称作第一元件。
当一个元件(例如,第一元件)称为与另一元件(例如,第二元件)“(可操作地或可通信地)联接”或“(可操作地或可通信地)联接至”另一元件(例如,第二元件)或“连接至”另一元件(例如,第二元件)时,应理解为该一个元件直接连接至该另一元件或者该一个元件经由又一个元件(例如,第三元件)间接连接至该另一个元件。相反,可理解,当元件(例如,第一元件)称为“直接连接”或“直接联接”至另一元件(第二元件)时,则没有元件(例如,第三元件)***在这两者之间。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (20)
1.一种脏页记录方法,所述方法包括:
当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;
当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,使用所述第二缓冲区记录所述脏页,其中,所述将所述第一缓冲区切换为第二缓冲区,包括:将所述第二缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的虚拟机控制结构体,并对所述虚拟机控制结构体的标志寄存器执行清零操作;对所述虚拟机控制结构体的同步寄存器执行写操作,以通知所述虚拟处理器基于所述虚拟处理器对应的所述虚拟机控制结构体中写入的所述第二缓冲区的地址信息,将所述第一缓冲区切换为所述第二缓冲区。
2.根据权利要求1所述的方法,其中,所述方法还包括:
查询所述标志寄存器,以确定所述虚拟处理器是否完成将所述第一缓冲区切换为所述第二缓冲区。
3.根据权利要求2所述的方法,其中,所述方法还包括:
当确定所述虚拟处理器完成将所述第一缓冲区切换为所述第二缓冲区时,将所述第一缓冲区记录的所述脏页的页面内容热迁移至目的端物理机。
4.根据权利要求3所述的方法,其中,所述将所述第一缓冲区记录的所述脏页的页面内容热迁移至目的端物理机,包括:
读取所述第一缓冲区,并将所述第一缓冲区中被置位的位对应的脏页的页面内容热迁移至所述目的端物理机。
5.根据权利要求4所述的方法,其中,所述方法还包括:
对所述第一缓冲区中被置位的位执行清零操作。
6.根据权利要求1所述的方法,其中,所述使用第一缓冲区记录所述脏页,包括:
基于所述脏页的地址信息,将所述脏页记录于所述第一缓冲区。
7.根据权利要求6所述的方法,其中,所述基于所述脏页的地址信息,将所述脏页记录于所述第一缓冲区,包括:
基于所述第一缓冲区的地址信息和所述脏页的地址信息,将所述脏页记录于所述第一缓冲区。
8.根据权利要求7所述的方法,其中,所述第一缓冲区包括位图缓冲区,
所述基于所述第一缓冲区的地址信息和所述脏页的地址信息,将所述脏页记录于所述第一缓冲区,包括:
基于所述位图缓冲区的地址信息和所述脏页的地址信息,确定所述位图缓冲区中与所述脏页对应的位;
对与所述脏页对应的位执行置位操作,以将所述脏页记录于所述第一缓冲区。
9.根据权利要求8所述的方法,其中,所述基于所述位图缓冲区的地址信息和所述脏页的地址信息,确定所述位图缓冲区中与所述脏页对应的位,包括:
基于所述脏页的地址信息和所述脏页的大小,确定所述位图缓冲区中与所述脏页对应的位的编号;
基于所述位图缓冲区的地址信息和所述位的编号,确定所述位图缓冲区中与所述脏页对应的所述位。
10.根据权利要求7所述的方法,其中,所述基于所述第一缓冲区的地址信息和所述脏页的地址信息,将所述脏页记录于所述第一缓冲区之前,所述方法还包括:
将所述第一缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的所述虚拟机控制结构体。
11.根据权利要求1-10中任意一项权利要求所述的方法,其中,所述使用第一缓冲区记录所述脏页之前,所述方法还包括:
为所述虚拟机的虚拟处理器分配所述第一缓冲区和所述第二缓冲区。
12.根据权利要求11所述的方法,其中,所述方法还包括:
当完成热迁移的迭代过程时,释放所述第一缓冲区和所述第二缓冲区。
13.一种脏页记录装置,所述装置包括:
第一记录模块,用于当确定虚拟机的内存中的页面存在待记录的脏页时,使用第一缓冲区记录所述脏页;
第一切换模块,用于当确定热迁移所述第一缓冲区记录的所述脏页的页面内容时,将所述第一缓冲区切换为第二缓冲区,并使用所述第二缓冲区记录所述脏页,其中,所述第一切换模块,具体用于:将所述第二缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的虚拟机控制结构体,并对所述虚拟机控制结构体的标志寄存器执行清零操作;对所述虚拟机控制结构体的同步寄存器执行写操作,以通知所述虚拟处理器基于所述虚拟处理器对应的所述虚拟机控制结构体中写入的所述第二缓冲区的地址信息,将所述第一缓冲区切换为所述第二缓冲区。
14.根据权利要求13所述的装置,其中,所述第一记录模块,包括:
记录子模块,用于基于所述脏页的地址信息,将所述脏页记录于所述第一缓冲区。
15.根据权利要求14所述的装置,其中,所述记录子模块,包括:
记录单元,用于基于所述第一缓冲区的地址信息和所述脏页的地址信息,将所述脏页记录于所述第一缓冲区。
16.根据权利要求15所述的装置,其中,所述第一缓冲区包括位图缓冲区,
所述记录单元,包括:
确定子单元,用于基于所述位图缓冲区的地址信息和所述脏页的地址信息,确定所述位图缓冲区中与所述脏页对应的位;
置位子单元,用于对与所述脏页对应的位执行置位操作,以将所述脏页记录于所述第一缓冲区。
17.根据权利要求16所述的装置,其中,所述确定子单元,具体用于:
基于所述脏页的地址信息和所述脏页的大小,确定所述位图缓冲区中与所述脏页对应的位的编号;
基于所述位图缓冲区的地址信息和所述位的编号,确定所述位图缓冲区中与所述脏页对应的所述位。
18.根据权利要求15所述的装置,其中,所述记录单元之前,所述记录子模块还包括:
写入单元,用于将所述第一缓冲区的地址信息写入所述虚拟机的虚拟处理器对应的所述虚拟机控制结构体。
19.一种电子设备,包括:
一个或多个处理器;
计算机可读介质,配置为存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任意一项权利要求所述的脏页记录方法。
20.一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1-12中任意一项权利要求所述的脏页记录方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911359730.XA CN113032088B (zh) | 2019-12-25 | 2019-12-25 | 脏页记录方法、装置、电子设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911359730.XA CN113032088B (zh) | 2019-12-25 | 2019-12-25 | 脏页记录方法、装置、电子设备及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032088A CN113032088A (zh) | 2021-06-25 |
CN113032088B true CN113032088B (zh) | 2023-12-22 |
Family
ID=76458322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911359730.XA Active CN113032088B (zh) | 2019-12-25 | 2019-12-25 | 脏页记录方法、装置、电子设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032088B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115586943B (zh) * | 2022-09-16 | 2023-08-15 | 杭州熠芯科技有限公司 | 一种智能网卡虚拟机脏页的硬件标记实现方法 |
CN117539797B (zh) * | 2024-01-10 | 2024-04-19 | 深圳星云智联科技有限公司 | 一种脏页记录方法及相关设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100006625A (ko) * | 2008-07-10 | 2010-01-21 | 한양대학교 산학협력단 | 플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법,그리고 플래시 메모리의 페이지 교체 장치 및 방법 |
CN101808141A (zh) * | 2010-04-19 | 2010-08-18 | 浙江大学 | 一种基于虚拟化平台的宿主客户机协同换页的方法 |
CN103414769A (zh) * | 2013-07-31 | 2013-11-27 | 华为技术有限公司 | 虚拟机热迁移的方法及物理机 |
CN103514110A (zh) * | 2012-06-20 | 2014-01-15 | 华为技术有限公司 | 非易失性存储设备的缓存管理方法及装置 |
CN104268003A (zh) * | 2014-09-30 | 2015-01-07 | 南京理工大学 | 一种适用于虚拟机动态迁移的内存状态迁移方法 |
CN107341112A (zh) * | 2017-06-29 | 2017-11-10 | 西安交通大学 | 一种基于页面访问间隔的闪存数据缓冲区置换方法 |
CN107729119A (zh) * | 2017-09-26 | 2018-02-23 | 联想(北京)有限公司 | 虚拟机迁移方法及其*** |
CN108037980A (zh) * | 2018-01-02 | 2018-05-15 | 腾讯科技(深圳)有限公司 | 控制执行虚拟机热迁移的方法、装置和可读存储介质 |
CN108762664A (zh) * | 2018-02-05 | 2018-11-06 | 杭州电子科技大学 | 一种固态硬盘页级缓存区管理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4387261B2 (ja) * | 2004-07-15 | 2009-12-16 | 株式会社日立製作所 | 計算機システム、および、記憶装置システムの移行方法 |
US8725953B2 (en) * | 2009-01-21 | 2014-05-13 | Arm Limited | Local cache power control within a multiprocessor system |
-
2019
- 2019-12-25 CN CN201911359730.XA patent/CN113032088B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100006625A (ko) * | 2008-07-10 | 2010-01-21 | 한양대학교 산학협력단 | 플래시 메모리와 연동되는 페이지 버퍼 관리 장치 및 방법,그리고 플래시 메모리의 페이지 교체 장치 및 방법 |
CN101808141A (zh) * | 2010-04-19 | 2010-08-18 | 浙江大学 | 一种基于虚拟化平台的宿主客户机协同换页的方法 |
CN103514110A (zh) * | 2012-06-20 | 2014-01-15 | 华为技术有限公司 | 非易失性存储设备的缓存管理方法及装置 |
CN103414769A (zh) * | 2013-07-31 | 2013-11-27 | 华为技术有限公司 | 虚拟机热迁移的方法及物理机 |
CN104268003A (zh) * | 2014-09-30 | 2015-01-07 | 南京理工大学 | 一种适用于虚拟机动态迁移的内存状态迁移方法 |
CN107341112A (zh) * | 2017-06-29 | 2017-11-10 | 西安交通大学 | 一种基于页面访问间隔的闪存数据缓冲区置换方法 |
CN107729119A (zh) * | 2017-09-26 | 2018-02-23 | 联想(北京)有限公司 | 虚拟机迁移方法及其*** |
CN108037980A (zh) * | 2018-01-02 | 2018-05-15 | 腾讯科技(深圳)有限公司 | 控制执行虚拟机热迁移的方法、装置和可读存储介质 |
CN108762664A (zh) * | 2018-02-05 | 2018-11-06 | 杭州电子科技大学 | 一种固态硬盘页级缓存区管理方法 |
Non-Patent Citations (2)
Title |
---|
Santiago Bock et al.Concurrent page migration for mobile systems with OS-managed hybrid memory.《CF '14: Proceedings of the 11th ACM Conference on Computing Frontiers》.2014,全文. * |
由动态页面重排序传输实现高效热迁移;孙红;孔超宇;苏南;;计算机与网络(11);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113032088A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9671970B2 (en) | Sharing an accelerator context across multiple processes | |
US9563458B2 (en) | Offloading and parallelizing translation table operations | |
KR102321913B1 (ko) | 불휘발성 메모리 장치, 및 그것을 포함하는 메모리 시스템 | |
US20180121352A1 (en) | Efficient and secure direct storage device sharing in virtualized environments | |
US10534720B2 (en) | Application aware memory resource management | |
US9886398B2 (en) | Implicit sharing in storage management | |
CN111949605A (zh) | 用于实现文件***的方法、设备和计算机程序产品 | |
CN107209683B (zh) | 备份映像恢复 | |
US11132290B2 (en) | Locality domain-based memory pools for virtualized computing environment | |
US11119942B2 (en) | Facilitating access to memory locality domain information | |
US9529618B2 (en) | Migrating processes between source host and destination host using a shared virtual file system | |
CN113032088B (zh) | 脏页记录方法、装置、电子设备及计算机可读介质 | |
US9563572B2 (en) | Migrating buffer for direct memory access in a computer system | |
CN114691300A (zh) | 一种虚拟机实例的热迁移方法 | |
US10691590B2 (en) | Affinity domain-based garbage collection | |
US20160283258A1 (en) | Sharing memory between guests | |
US9612860B2 (en) | Sharing memory between guests by adapting a base address register to translate pointers to share a memory region upon requesting for functions of another guest | |
US10228859B2 (en) | Efficiency in active memory sharing | |
US10719342B2 (en) | Provisioning based on workload displacement | |
US11429412B2 (en) | Guest protection from application code execution in kernel mode | |
US10223284B2 (en) | Flexible I/O DMA address allocation in virtualized systems | |
US20120054773A1 (en) | Processor support for secure device driver architecture | |
JPWO2018173300A1 (ja) | I/o制御方法およびi/o制御システム | |
US11106588B2 (en) | Deferred method of allocating disk space for lightning segments | |
CN115221073A (zh) | 用于运行云业务实例的物理服务器的内存管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |