CN112286630A - 一种虚拟机内存热迁移的优化方法与装置 - Google Patents
一种虚拟机内存热迁移的优化方法与装置 Download PDFInfo
- Publication number
- CN112286630A CN112286630A CN202011136630.3A CN202011136630A CN112286630A CN 112286630 A CN112286630 A CN 112286630A CN 202011136630 A CN202011136630 A CN 202011136630A CN 112286630 A CN112286630 A CN 112286630A
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- virtual machine
- dirty
- pages
- 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.)
- Withdrawn
Links
Images
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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/45583—Memory management, e.g. access or allocation
-
- 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/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种虚拟机内存热迁移的优化方法与装置,初始化虚拟机配置时,在虚拟机内部安装代理软件;在虚拟机启动内存热迁移后,代理软件按照预设周期向虚拟机申请内存,申请到的内存页被标记为回收页;在虚拟机内存热迁移过程中,每次拷贝脏页时基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机。通过在虚拟机内部安装代理软件,在虚拟机内存热迁移过程中,可利用代理软件不断向源主机的虚拟机申请内存,并被标记为回收页,则在每次拷贝脏页时从脏页中过滤掉agent申请的内存页,从而可减少每次脏页数据的拷贝,提高虚拟机内存热迁移的效率。
Description
技术领域
本发明属于云平台计算虚拟化领域,更具体地,涉及一种虚拟机内存热迁移的优化方法与装置。
背景技术
随着云计算的兴起,虚拟机(Virtual Machine,简写为VM)中的硬件配置不再像传统服务器那样千差万别,而是有统一的虚拟硬件资源,不仅可以统一管理,而且在虚拟机故障时,可以热迁移到网络中另一台相同的虚拟机,从而达到不中断客户业务的目的。目前,虚拟机热迁移已经成为云平台必不可少的功能,简化了系统维护管理,提高了负载均衡性能以及系统容错性。
虚拟机热迁移主要包含内存热迁移以及存储热迁移,在多数场景下,云平台使用共享存储,虚拟机磁盘通过网络连接至一套共享存储,因此在虚拟机热迁移过程中无须进行存储的热迁移,只需进行内存热迁移,也就是将虚拟机的内存从源主机迁移到宿主机(也可称为目的主机)。
结合图1中的步骤201-205,虚拟机内存热迁移的主要步骤如下:虚拟机启动内存热迁移后,启动一个循环进行脏页检测和脏页拷贝,第一次通过网络从源主机拷贝所有内存页数据至宿主机,在拷贝过程中使用迁移位图(即migrate_bitmap)记录下虚拟机所有内存页的状态;当拷贝过程中检测到虚拟机的内存页发生变化时,会更改migrate_bitmap中该内存页的值,通过migrate_bitmap记录虚拟机热迁移过程中的脏页(即更改的内存页)。后续每次循环拷贝上次拷贝过程中检测到的脏页,直到拷贝收敛到一个合适点,当前的脏页剩余量可以在一个设定的时间内(通常为30ms)传输完成,则拷贝最后一次脏页,然后关闭源主机上的虚拟机,并在宿主机启动虚拟机。也就是说,在热迁移未结束之前(或者说在热迁移过程中),虚拟机是在源主机上运行的;热迁移结束之后,虚拟机在宿主机上运行。
例如,第一次拷贝100个内存页,拷贝过程中检测到30个脏页,则下一次继续拷贝这30个脏页;如果在拷贝这30个脏页的过程中又检测到20个脏页,则下一次继续拷贝这20个脏页,以此类推,不断循环拷贝;直至检测到的当前脏页剩余量小于5时,剩余脏页可在30ms内传输完成,则拷贝完剩余的这些脏页后结束热迁移过程,在宿主机启动虚拟机。由于内存读写速度快,每次拷贝内存页数据时都会产生脏页,而不断拷贝这些脏页会导致迁移时间变长、循环次数增多,因此减少拷贝的脏页数据,是提高虚拟机内存热迁移效率的一个重要途径。
当前操作系统采用多级页表管理内存,即内存页的使用情况在页表中保存,当虚拟机程序使用的内存页被操作系统回收时,相应页表会记录此内存页,标记为未使用,下次可供其他进程申请使用。在虚拟机内存热迁移过程中,当源主机虚拟机中程序使用的内存页被回收时,如果脏页中包含了这些被回收的内存页,则这些被回收了的内存页其实是并不需要拷贝至宿主机的,仅仅需要拷贝对应页表即可。因此在热迁移过程中,可以对被操作系统回收的内存页做标记,在循环拷贝脏页时略过这些标记的回收页,从而减少脏页的拷贝,缩短热迁移时间,提高热迁移的效率。
然而,传统热迁移过程中并没有针对这部分操作系统回收的内存页进行处理,因此拷贝脏页时仍会将其中的回收页一起拷贝,这无疑是增加了不必要的脏页拷贝;尤其对于虚拟机在热迁移过程中虚拟机内部程序关闭,操作系统频繁回收内存的这种场景,由于内存回收频繁,每次拷贝的脏页中都会包含较多的回收页,如果不对其中的回收页进行过滤,将会大大增加拷贝的脏页数据,进而直接影响虚拟机内存热迁移效率。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种虚拟机内存热迁移的优化方法与装置,其目的在于在循环拷贝脏页时过滤掉被操作系统回收的内存页,以减少脏页拷贝,提高热迁移效率,由此解决内存回收频繁场景下不必要的脏页数据拷贝导致热迁移效率低的技术问题。
为实现上述目的,按照本发明的一个方面,提供了一种虚拟机内存热迁移的优化方法,包括:
初始化虚拟机配置时,在虚拟机内部安装代理软件;
在虚拟机启动内存热迁移后,代理软件按照预设周期向虚拟机申请内存,申请到的内存页被标记为回收页;
在虚拟机内存热迁移过程中,每次拷贝脏页时基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机。
优选地,在初始化虚拟机配置时,还通过虚拟机监视器建立共享内存,使得虚拟机启动代理软件进程后,所述代理软件通过所述共享内存与所述虚拟机监视器建立通信连接。
优选地,在虚拟机内存热迁移过程中,通过回收位图记录虚拟机各内存页的回收情况,则所述代理软件按照预设周期向虚拟机申请内存,申请到的内存页被标记为回收页,具体为:
所述代理软件按照预设周期向虚拟机申请内存,并将申请到的内存页的相关信息放入所述共享内存,以便通知所述虚拟机监视器;
所述虚拟机监视器从所述共享内存中读取所述代理软件申请到的内存页的相关信息,进而在所述回收位图中将申请到的内存页标记为回收页。
优选地,所述申请到的内存页的相关信息包括申请到的内存页的数量以及内存地址。
优选地,在虚拟机内存热迁移过程中,通过迁移位图记录虚拟机各内存页的状态,当虚拟机监视器检测到虚拟机的内存页发生变化时,在所述迁移位图中将发生更改的内存页标记为脏页。
优选地,在虚拟机内存热迁移过程中,所述每次拷贝脏页时基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机,具体为:
遍历所述迁移位图,根据脏页标记判断当前内存页是否为脏页,如果不是脏页,则继续遍历所述迁移位图中的剩余内存页;
如果是脏页,则根据所述回收位图中的回收页标记判断该脏页是否为回收页;如果该脏页为回收页,则不进行拷贝;如果该脏页不是回收页,则将该脏页从源主机拷贝至宿主机。
优选地,在所述迁移位图中,将发生更改的内存页标记为“1”,表示对应内存页为脏页;其余未发生更改的内存页标记为“0”,表示对应内存页为非脏页;
在所述回收位图中,将所述代理软件申请到的内存页标记为“1”,表示对应内存页为回收页;其余内存页标记为“0”,表示对应内存页为非回收页。
优选地,在虚拟机内存热迁移过程中,所述每次拷贝脏页时基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机,具体为:
对于虚拟机的每个内存页,通过对比所述迁移位图中的脏页标记和所述回收位图中的回收页标记,确定是否进行拷贝;
如果脏页标记为“1”,回收页标记为“0”,则将该内存页从源主机拷贝至宿主机;
如果脏页标记为“0”、回收页标记为“1”,或者脏页标记和回收页标记均为“0”,或者脏页标记和回收页标记均为“1”,则不进行拷贝。
按照本发明的另一方面,提供了一种虚拟机内存热迁移的优化装置,包括虚拟机、虚拟机监视器以及所述虚拟机内部安装的代理软件;
所述代理软件用于在虚拟机启动内存热迁移后,按照预设周期向虚拟机申请内存,申请到的内存页被标记为回收页;
所述虚拟机监视器用于在虚拟机内存热迁移过程中每次拷贝脏页时,基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机。
优选地,所述代理软件与所述虚拟机监视器之间通过共享内存建立通信连接;
其中,所述代理软件向虚拟机申请内存后,将申请到的内存页的相关信息放入所述共享内存,以便所述虚拟机监视器从所述共享内存中读取相关信息,并将所述代理软件申请到的内存页标记为回收页。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:本发明在虚拟机内部安装代理软件agent,在虚拟机内存热迁移过程中,可利用agent不断向源主机的虚拟机申请内存,申请到的内存页虚拟机不能再使用,就在回收位图中被标记为回收页;在每次拷贝脏页时,可基于回收位图中从脏页中过滤掉agent申请的内存页,即从脏页中过滤掉被标记的回收页,仅将剩余的非回收页拷贝至宿主机,从而可减少每次脏页数据的拷贝,提高虚拟机内存热迁移的效率。
附图说明
图1是传统方案中一种典型的虚拟机内存热迁移的流程图;
图2是本发明实施例提供的一种虚拟机内存热迁移的优化方法流程图;
图3是本发明实施例提供的一种虚拟机内存热迁移的优化装置示意图;
图4是本发明实施例提供的一种虚拟机内存热迁移的流程图;
图5是本发明实施例提供的另一种虚拟机内存热迁移优化装置架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1
为减少虚拟机内存回收频繁场景下不必要的脏页数据拷贝,进一步提高热迁移效率,本发明实施例提供了一种虚拟机内存热迁移的优化方法,可在循环拷贝脏页时过滤掉被操作系统回收的内存页,减少每次需要拷贝的脏页,从而提高热迁移效率。其中,为实现上述优化,关键就在于如何获取这些被操作系统回收的内存页并进行标记。
基于上述机理,本发明实施例提供的虚拟机内存热迁移的优化方法如图2所示,主要包括以下步骤:
步骤10,初始化虚拟机配置时,在虚拟机内部安装代理软件。
结合图3,无论是源主机还是宿主机,在初始化虚拟机配置时,在虚拟机内部都会安装代理软件(以下也简称agent),在虚拟机内存热迁移过程中,虚拟机在源主机上运行,此时该软件可以用于动态调整宿主机与虚拟机之间的内存占用,以便更加灵活地使用内存。例如,当宿主机内存使用紧张、空余不多时,可以通过agent向虚拟机请求回收部分分配给虚拟机的内存,虚拟机就会释放其空闲的内存;如果虚拟机内存不足,则可能会回收虚拟机正在使用的内存;申请到的内存虚拟机则不能再使用(相当于内存被回收),agent会将内存返还给宿主机。同样地,当虚拟机内存不足时,agent也可以向宿主机申请内存,把内存返还给虚拟机。在本发明实施例中,agent主要是负责从虚拟机申请内存,也可以说时负责回收内存。
继续结合图3,无论在源主机还是宿主机上,都安装有虚拟机监视器(即管理虚拟机的应用程序,以下也简称hypervisor),负责在本主机上管理虚拟机的生命周期,包括虚拟机的创建、启动、销毁、管理等;因此,agent获取回收页之后,还需要通知虚拟机监视器hypervisor。为此,本发明实施例在初始化虚拟机配置时,还会通过虚拟机监视器hypervisor建立共享内存,此共享内存是后续虚拟机中agent与虚拟机外hypervisor进行通信的基础;如此一来,当虚拟机启动代理软件agent进程后,所述代理软件agent就可以通过初始化时约定好的共享内存,与所述虚拟机监视器hypervisor建立通信连接。
需要说明的是,由于在虚拟机内存热迁移过程中,虚拟机始终运行在源主机上,因此如无特别说明,本发明实施例所描述的虚拟机VM、虚拟机监视器hypervisor以及代理软件agent都是指源主机一侧。
步骤20,在虚拟机启动内存热迁移后,代理软件按照预设周期向虚拟机申请内存,申请到的内存页被标记为回收页。
在虚拟机内存热迁移过程中,可通过回收位图reclaim_bitmap来记录虚拟机各内存页的回收情况,所述回收位图reclaim_bitmap存储于所述虚拟机监视器hypervisor中,则结合图4,所述代理软件按照预设周期向虚拟机申请内存,申请到的内存页被标记为回收页,具体可按照如下步骤实施:
1)所述代理软件agent按照预设周期向虚拟机申请内存,例如每隔5s申请一次内存,并将申请到的内存页的相关信息放入所述共享内存,以便通知所述虚拟机监视器;其中,所述申请到的内存页的相关信息包括申请到的内存页的数量以及内存地址等。另外,每次申请内存的大小可设置为固定值,例如每次申请40个内存页。在虚拟机释放内存较多的场景下,agent可以申请到足够内存,并将这些内存页的相关信息放入共享内存,通知hypervisor;如果agent没有申请到足够内存,则不做其余动作,等待下一个周期继续申请。
2)所述虚拟机监视器hypervisor从所述共享内存中读取所述代理软件agent申请到的内存页的相关信息,进而在所述回收位图reclaim_bitmap中将申请到的内存页标记为回收页,用于后续过滤脏页。
步骤30,在虚拟机内存热迁移过程中,每次拷贝脏页时基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机。
在虚拟机内存热迁移过程中,通常是通过迁移位图migrate_bitmap来记录虚拟机各内存页的状态,所述迁移位图migrate_bitmap存储于所述虚拟机监视器hypervisor中;当虚拟机监视器hypervisor检测到虚拟机的内存页发生变化时,在所述迁移位图migrate_bitmap中将发生更改的内存页标记为脏页。结合图4,虚拟机内存热迁移的过程具体如下:虚拟机启动内存热迁移后,启动一个循环进行脏页检测、过滤和拷贝,第一次hypervisor从源主机拷贝所有内存页至宿主机,在拷贝过程中使用migrate_bitmap记录下虚拟机所有内存页的状态;当拷贝过程中hypervisor检测到虚拟机的内存页发生变化时,会更改migrate_bitmap中该内存页的值,以标记虚拟机热迁移过程中的脏页,即第一次拷贝的脏页为全量内存页;后续hypervisor每次循环拷贝上次拷贝过程中检测到的脏页,直到拷贝收敛到一个合适点,即剩余脏页小于某个预设阈值时,拷贝最后一次脏页,然后关闭源主机上的虚拟机,并在宿主机启动虚拟机。
对比图1和图4可知,与传统方案相比,本发明在进行内存热迁移过程中主要是在脏页检测和拷贝流程之外增加了步骤301和步骤302,即通过agent申请内存,并将申请到的内存页放入共享内存,由hypervisor从共享内存中读取信息后,将agent申请到的内存页标记为回收页,以便后续进行回收页过滤;进一步在步骤202和203之间增加了步骤202’,即过滤回收页:每次拷贝脏页时,hypervisor会基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机。过滤和拷贝过程具体为:hypervisor遍历所述迁移位图migrate_bitmap,根据脏页标记判断当前内存页是否为脏页,如果不是脏页,则继续遍历所述迁移位图中的剩余内存页;如果是脏页,则根据所述回收位图reclaim_bitmap中的回收页标记判断该脏页是否为回收页;如果该脏页为回收页,则不进行拷贝;如果该脏页不是回收页,则将该脏页从源主机拷贝至宿主机。
在一个具体的实施例中,在所述迁移位图migrate_bitmap中,将发生更改的内存页标记为“1”,表示对应内存页为脏页;其余未发生更改的内存页标记为“0”,表示对应内存页为非脏页。在所述回收位图reclaim_bitmap中,将所述代理软件申请到的内存页标记为“1”,表示对应内存页为回收页;其余内存页标记为“0”,表示对应内存页为非回收页。基于上述标记原则,在虚拟机内存热迁移过程中,脏页的过滤和拷贝过程具体为:对于虚拟机的每个内存页,通过对比所述迁移位图migrate_bitmap中的脏页标记和所述回收位图reclaim_bitmap中的回收页标记,确定是否进行拷贝。对比规则可参考表1:如果脏页标记为“1”,回收页标记为“0”,说明该内存页为脏页且未被回收,则将该内存页从源主机拷贝至宿主机;如果脏页标记为“0”、回收页标记为“1”,或者脏页标记和回收页标记均为“0”,或者脏页标记和回收页标记均为“1”,则不进行拷贝。
表1
migrate_bitmap | 0 | 1 | 1 | 0 |
reclaim_bitmap | 0 | 1 | 0 | 1 |
是否拷贝 | 否 | 否 | 是 | 否 |
当然,在可选的实施例中,还可采用其他不同值在migrate_bitmap中区分标记脏页和非脏页,在reclaim_bitmap中区分标记回收页和非回收页,确保最终进行标记比对之后,仅对脏页中的非回收页进行拷贝即可。
本发明在虚拟机内部安装代理软件agent,并通过创建共享内存在agent与hypervisor之间建立通信,在虚拟机内存热迁移过程中,可利用agent不断向源主机的虚拟机申请内存,并将申请到的内存页的相关信息传递给hypervisor。通过这种方式,在虚拟机内部回收内存频繁的场景下,agent可以申请更多内存并通知hypervisor,申请到的内存页虚拟机不能再使用,就由hypervisor在回收位图中标记为回收页;在每次拷贝脏页时,hypervisor可基于回收位图中从脏页中过滤掉agent申请的内存页,即从脏页中过滤掉回收页,仅将剩余的非回收页拷贝至宿主机,从而可减少每次脏页数据的拷贝,提高虚拟机内存热迁移的效率。
实施例2
在上述实施例1的基础上,本发明实施例进一步提供了一种虚拟机内存热迁移的优化装置,用于完成实施例1中所述的虚拟机内存热迁移的优化方法。结合图3,本发明实施例提供的优化装置包括虚拟机VM、虚拟机以外的虚拟机监视器hypervisor以及虚拟机内部安装的代理软件agent,源主机以及宿主机上均设有上述装置,源主机与宿主机之间通过两个hypervisor建立通信。由于在虚拟机内存热迁移过程中,虚拟机始终运行在源主机上,因此如无特别说明,本发明实施例所指的虚拟机VM、虚拟机监视器hypervisor以及代理软件agent都是指源主机一侧。
所述代理软件agent可以用于动态调整宿主机与虚拟机之间的内存占用,以便更加灵活地使用内存。例如,当宿主机内存使用紧张、空余不多时,可以通过agent向虚拟机请求回收部分分配给虚拟机的内存,虚拟机就会释放其空闲的内存;如果虚拟机内存不足,则可能会回收虚拟机正在使用的内存;申请到的内存虚拟机则不能再使用,agent会将内存返还给宿主机。同样地,当虚拟机内存不足时,agent也可以向宿主机申请内存,把内存返还给虚拟机。所述虚拟机监视器hypervisor则负责在本主机上管理虚拟机的生命周期,包括虚拟机的创建、启动、销毁、管理等。
在本发明实施例中,所述代理软件agent主要用于在虚拟机启动内存热迁移后,按照预设周期向虚拟机申请内存,申请到的内存页被虚拟机监视器hypervisor标记为回收页;所述虚拟机监视器hypervisor主要用于在虚拟机内存热迁移过程中每次拷贝脏页时,基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机。
其中,所述代理软件agent与所述虚拟机监视器hypervisor之间通过共享内存建立通信连接,则所述代理软件agent向虚拟机申请内存后,将申请到的内存页的数量以及内存地址等相关信息放入所述共享内存,通知所述虚拟机监视器hypervisor,以便所述虚拟机监视器hypervisor从所述共享内存中读取相关信息,并在回收位图reclaim_bitmap中将所述代理软件agent申请到的内存页标记为回收页。具体的标记原则以及过滤拷贝过程可参考实施例1,在此不做赘述。
本发明在虚拟机内部安装代理软件agent,并通过创建共享内存在agent与hypervisor之间建立通信,在虚拟机内存热迁移过程中,可利用agent不断向源主机的虚拟机申请内存,并将申请到的内存页的相关信息传递给hypervisor,由hypervisor标记为回收页;在每次拷贝脏页时,hypervisor可基于回收位图中从脏页中过滤掉回收页,仅将剩余的非回收页拷贝至宿主机,从而可减少每次脏页数据的拷贝,提高虚拟机内存热迁移的效率。
实施例3
在上述实施例1提供的虚拟机内存热迁移的优化方法的基础上,本发明还提供了一种可用于实现上述方法的虚拟机内存热迁移的优化装置,如图5所示,是本发明实施例的装置架构示意图。本实施例的虚拟机内存热迁移的优化装置包括一个或多个处理器21以及存储器22。其中,图5中以一个处理器21为例。
所述处理器21和所述存储器22可以通过总线或者其他方式连接,图5中以通过总线连接为例。
所述存储器22作为一种虚拟机内存热迁移的优化方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的虚拟机内存热迁移的优化方法。所述处理器21通过运行存储在所述存储器22中的非易失性软件程序、指令以及模块,从而执行虚拟机内存热迁移的优化装置的各种功能应用以及数据处理,即实现实施例1的虚拟机内存热迁移的优化方法。
所述存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,所述存储器22可选包括相对于所述处理器21远程设置的存储器,这些远程存储器可以通过网络连接至所述处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的虚拟机内存热迁移的优化方法,例如,执行以上描述的图2所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种虚拟机内存热迁移的优化方法,其特征在于,包括:
初始化虚拟机配置时,在虚拟机内部安装代理软件;
在虚拟机启动内存热迁移后,代理软件按照预设周期向虚拟机申请内存,申请到的内存页被标记为回收页;
在虚拟机内存热迁移过程中,每次拷贝脏页时基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机。
2.如权利要求1所述的虚拟机内存热迁移的优化方法,其特征在于,在初始化虚拟机配置时,还通过虚拟机监视器建立共享内存,使得虚拟机启动代理软件进程后,所述代理软件通过所述共享内存与所述虚拟机监视器建立通信连接。
3.如权利要求2所述的虚拟机内存热迁移的优化方法,其特征在于,在虚拟机内存热迁移过程中,通过回收位图记录虚拟机各内存页的回收情况,则所述代理软件按照预设周期向虚拟机申请内存,申请到的内存页被标记为回收页,具体为:
所述代理软件按照预设周期向虚拟机申请内存,并将申请到的内存页的相关信息放入所述共享内存,以便通知所述虚拟机监视器;
所述虚拟机监视器从所述共享内存中读取所述代理软件申请到的内存页的相关信息,进而在所述回收位图中将申请到的内存页标记为回收页。
4.如权利要求3所述的虚拟机内存热迁移的优化方法,其特征在于,所述申请到的内存页的相关信息包括申请到的内存页的数量以及内存地址。
5.如权利要求3所述的虚拟机内存热迁移的优化方法,其特征在于,在虚拟机内存热迁移过程中,通过迁移位图记录虚拟机各内存页的状态,当虚拟机监视器检测到虚拟机的内存页发生变化时,在所述迁移位图中将发生更改的内存页标记为脏页。
6.如权利要求5所述的虚拟机内存热迁移的优化方法,其特征在于,在虚拟机内存热迁移过程中,所述每次拷贝脏页时基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机,具体为:
遍历所述迁移位图,根据脏页标记判断当前内存页是否为脏页,如果不是脏页,则继续遍历所述迁移位图中的剩余内存页;
如果是脏页,则根据所述回收位图中的回收页标记判断该脏页是否为回收页;如果该脏页为回收页,则不进行拷贝;如果该脏页不是回收页,则将该脏页从源主机拷贝至宿主机。
7.如权利要求5所述的虚拟机内存热迁移的优化方法,其特征在于,在所述迁移位图中,将发生更改的内存页标记为“1”,表示对应内存页为脏页;其余未发生更改的内存页标记为“0”,表示对应内存页为非脏页;
在所述回收位图中,将所述代理软件申请到的内存页标记为“1”,表示对应内存页为回收页;其余内存页标记为“0”,表示对应内存页为非回收页。
8.如权利要求7所述的虚拟机内存热迁移的优化方法,其特征在于,在虚拟机内存热迁移过程中,所述每次拷贝脏页时基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机,具体为:
对于虚拟机的每个内存页,通过对比所述迁移位图中的脏页标记和所述回收位图中的回收页标记,确定是否进行拷贝;
如果脏页标记为“1”,回收页标记为“0”,则将该内存页从源主机拷贝至宿主机;
如果脏页标记为“0”、回收页标记为“1”,或者脏页标记和回收页标记均为“0”,或者脏页标记和回收页标记均为“1”,则不进行拷贝。
9.一种虚拟机内存热迁移的优化装置,其特征在于,包括虚拟机、虚拟机监视器以及所述虚拟机内部安装的代理软件;
所述代理软件用于在虚拟机启动内存热迁移后,按照预设周期向虚拟机申请内存,申请到的内存页被标记为回收页;
所述虚拟机监视器用于在虚拟机内存热迁移过程中每次拷贝脏页时,基于回收页标记从脏页中过滤掉回收页,进而将剩余脏页从源主机拷贝至宿主机。
10.如权利要求9所述的虚拟机内存热迁移的优化装置,其特征在于,所述代理软件与所述虚拟机监视器之间通过共享内存建立通信连接;
其中,所述代理软件向虚拟机申请内存后,将申请到的内存页的相关信息放入所述共享内存,以便所述虚拟机监视器从所述共享内存中读取相关信息,并将所述代理软件申请到的内存页标记为回收页。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011136630.3A CN112286630A (zh) | 2020-10-22 | 2020-10-22 | 一种虚拟机内存热迁移的优化方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011136630.3A CN112286630A (zh) | 2020-10-22 | 2020-10-22 | 一种虚拟机内存热迁移的优化方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112286630A true CN112286630A (zh) | 2021-01-29 |
Family
ID=74423267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011136630.3A Withdrawn CN112286630A (zh) | 2020-10-22 | 2020-10-22 | 一种虚拟机内存热迁移的优化方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112286630A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024119924A1 (zh) * | 2022-12-05 | 2024-06-13 | 华为技术有限公司 | 进程的迁移方法、装置及系统 |
WO2024174888A1 (zh) * | 2023-02-24 | 2024-08-29 | 中兴通讯股份有限公司 | 虚拟机的迁移方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986285A (zh) * | 2010-11-03 | 2011-03-16 | 华为技术有限公司 | 虚拟机存储空间管理方法、系统及物理主机 |
CN103092678A (zh) * | 2013-01-22 | 2013-05-08 | 华中科技大学 | 一种多增量虚拟机内存管理系统和方法 |
US20140164591A1 (en) * | 2012-12-06 | 2014-06-12 | At&T Intellectual Property I, L.P. | Synchronization Of A Virtual Machine Across Mobile Devices |
CN105335223A (zh) * | 2014-06-20 | 2016-02-17 | 富士通株式会社 | 源主机和目的主机上的虚拟机内存迁移装置、方法及系统 |
CN109344090A (zh) * | 2018-10-30 | 2019-02-15 | 深圳润迅数据通信有限公司 | 数据中心中kvm虚拟机的虚拟硬盘系统及数据中心 |
US20190205220A1 (en) * | 2016-09-06 | 2019-07-04 | Alibaba Group Holding Limited | System and method for live migration of a virtual machine |
-
2020
- 2020-10-22 CN CN202011136630.3A patent/CN112286630A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101986285A (zh) * | 2010-11-03 | 2011-03-16 | 华为技术有限公司 | 虚拟机存储空间管理方法、系统及物理主机 |
US20140164591A1 (en) * | 2012-12-06 | 2014-06-12 | At&T Intellectual Property I, L.P. | Synchronization Of A Virtual Machine Across Mobile Devices |
CN103092678A (zh) * | 2013-01-22 | 2013-05-08 | 华中科技大学 | 一种多增量虚拟机内存管理系统和方法 |
CN105335223A (zh) * | 2014-06-20 | 2016-02-17 | 富士通株式会社 | 源主机和目的主机上的虚拟机内存迁移装置、方法及系统 |
US20190205220A1 (en) * | 2016-09-06 | 2019-07-04 | Alibaba Group Holding Limited | System and method for live migration of a virtual machine |
CN109344090A (zh) * | 2018-10-30 | 2019-02-15 | 深圳润迅数据通信有限公司 | 数据中心中kvm虚拟机的虚拟硬盘系统及数据中心 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024119924A1 (zh) * | 2022-12-05 | 2024-06-13 | 华为技术有限公司 | 进程的迁移方法、装置及系统 |
WO2024174888A1 (zh) * | 2023-02-24 | 2024-08-29 | 中兴通讯股份有限公司 | 虚拟机的迁移方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10915412B2 (en) | System and method for live migration of a virtual machine | |
US9507672B2 (en) | Method, apparatus, and system for generating and recovering memory snapshot of virtual machine | |
US9055119B2 (en) | Method and system for VM-granular SSD/FLASH cache live migration | |
US10838829B2 (en) | Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium | |
US10884645B2 (en) | Virtual machine hot migration method, host machine and storage medium | |
US20160299774A1 (en) | Techniques for Migrating a Virtual Machine Using Shared Storage | |
US20100299666A1 (en) | Live Migration of Virtual Machines In a Computing environment | |
US8904113B2 (en) | Virtual machine exclusive caching | |
US9354907B1 (en) | Optimized restore of virtual machine and virtual disk data | |
US20140115228A1 (en) | Method and system for vm-granular i/o caching | |
CN105607962B (zh) | 一种虚拟机备份的方法和装置 | |
US9229820B2 (en) | Information processing device with memory dump function, memory dump method, and recording medium | |
CN112286630A (zh) | 一种虚拟机内存热迁移的优化方法与装置 | |
CN108073352B (zh) | 虚拟磁盘处理方法及装置 | |
US9875057B2 (en) | Method of live migration | |
WO2012063334A1 (ja) | 仮想マシンのライブマイグレーションを支援するためのメモリ制御装置及びi/oスイッチ | |
US20190297141A1 (en) | Automatic system response to external field-replaceable unit (fru) process | |
CN103714014A (zh) | 处理缓存数据的方法 | |
US20120210065A1 (en) | Techniques for managing memory in a multiprocessor architecture | |
US11093275B2 (en) | Partial surprise removal of a device for virtual machine migration | |
WO2024113543A1 (zh) | 数据处理方法、系统、装置、非易失性可读存储介质及电子设备 | |
KR102456017B1 (ko) | 응용 프로그램간 파일 공유 장치 및 방법 | |
CN108932149B (zh) | 数据传输方法及装置 | |
CN114461336A (zh) | 一种gpu实时迁移方法、装置及电子设备 | |
CN107436795A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210129 |