CN112783599B - 虚拟机热迁移方法、装置、终端设备及计算机存储介质 - Google Patents

虚拟机热迁移方法、装置、终端设备及计算机存储介质 Download PDF

Info

Publication number
CN112783599B
CN112783599B CN201911072990.9A CN201911072990A CN112783599B CN 112783599 B CN112783599 B CN 112783599B CN 201911072990 A CN201911072990 A CN 201911072990A CN 112783599 B CN112783599 B CN 112783599B
Authority
CN
China
Prior art keywords
page table
page
virtual machine
stage
memory
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
Application number
CN201911072990.9A
Other languages
English (en)
Other versions
CN112783599A (zh
Inventor
张超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201911072990.9A priority Critical patent/CN112783599B/zh
Publication of CN112783599A publication Critical patent/CN112783599A/zh
Application granted granted Critical
Publication of CN112783599B publication Critical patent/CN112783599B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

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

本发明实施例提供了一种虚拟机热迁移方法、装置、终端设备及计算机存储介质,其中,虚拟机热迁移方法包括:确定与虚拟机的内存页面关联的页表;将页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个设定大小的末级页表;根据分割后的末级页表将虚拟机从第一物理机热迁移到第二物理机。根据本发明实施例提供的方案,可以避免了虚拟机热迁移对带宽的需求较大的问题,还可以避免出现大量的缺页异常的问题,进而避免了由于重建页表导致的虚拟机性能受损。

Description

虚拟机热迁移方法、装置、终端设备及计算机存储介质
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种虚拟机热迁移方法、装置、终端设备及计算机存储介质。
背景技术
在云计算运营中,虚拟机的热迁移是一个关键技术,通过虚拟机的热迁移技术,可以在保证虚拟机正常运行的同时将虚拟机从一个物理机迁移至另一个物理机,方便了物理机的资源动态调度、物理机故障维修等。具体地,虚拟机的热迁移过程是通过迭代的方式将虚拟机的内存从一个物理机拷贝到另一个物理机中,每次拷贝的内存内容根据虚拟机的内存分页确定。
传统的虚拟机一般采用4k BYTES的内存分页方式,即末级页表指示的内存页面大小为4k,而现在,为了提高虚拟机的性能,在分页时一般采用大页,例如采用2M BYTES的内存分页方式。然而,内存分页方式的改变增加了虚拟机热迁移的对带宽的消耗,使得虚拟机热迁移的难度较高。现有技术中,为了较少对带宽的消耗,会在热迁移前直接删除原2M的大页,然后通过缺页异常实现4K页表的重建,但是这种方式会导致虚拟机内的缺页异常量较大,使得虚拟机的性能受损。
有鉴于此,现有技术中亟需解决的技术问题是如何提供另一种难度较低的虚拟机热迁移方法。
发明内容
有鉴于此,本发明实施例提供一种虚拟机热迁移方法、装置、终端设备及计算机存储介质,以解决上述问题。
根据本发明实施例的第一方面,提供了一种虚拟机热迁移方法,其包括:确定与虚拟机的内存页面关联的页表;将所述页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个所述设定大小的末级页表;根据分割后的所述末级页表将所述虚拟机从第一物理机热迁移到第二物理机。
根据本发明实施例的第二方面,提供了一种虚拟机热迁移装置,其包括:页表确定模块,用于确定与虚拟机的内存页面关联的页表;分割模块,用于将所述页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个所述设定大小的末级页表;迁移模块,用于根据分割后的所述末级页表将所述虚拟机从第一物理机热迁移到第二物理机。
根据本发明实施例的第三方面,提供了一种终端设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的虚拟机热迁移方法对应的操作。
根据本发明实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的虚拟机热迁移方法。
根据本发明实施例提供的方案,通过确定虚拟机的内存页面对应的页表,然后将指示的页面大于设定阈值的原始末级页表根据设定大小进行分割,得到多个设定大小的末级页表,与原始末级页表所指示的内存页面的大小相比,得到的末级页表所指示的内存页面较小,从而避免了虚拟机热迁移对带宽的需求较大的问题,且由于本方案中是将原始末级页表根据设定大小进行分割得到设定大小的末级页表,而并非通过触发缺页异常后重建得到的页表,从而可以避免出现大量的缺页异常的问题,进而避免了由于重建页表导致的虚拟机性能受损。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例一的一种虚拟机热迁移方法的步骤流程图;
图2为一种物理机的内存页面与虚拟机的内存页面的映射关系示意图;
图3为本发明实施例二的一种虚拟机热迁移方法的步骤流程图;
图4为一种虚拟机的内存空间示意图;
图5为一种通过缺页异常的方式重建页表的流程示意图;
图6为本发明实施例四的一种虚拟机热迁移装置的结构框图;
图7为本发明实施例五的一种终端设备的结构示意图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
下面结合本发明实施例附图进一步说明本发明实施例具体实现。
实施例一
参照图1,示出了根据本发明实施例一的一种虚拟机热迁移方法的步骤流程图。
本实施例的虚拟机热迁移方法包括以下步骤:
S102、确定与虚拟机的内存页面关联的页表。
本实施例中,页表中存储有页表项,页表项用于记录物理机的内存页面映射至虚拟机的内存页面的映射关系。一个物理机的内存页面可以被映射给一个或多个虚拟机的物理页面,例如图2所示,物理机上的内存页面2通过页表中的页表项SP0和SP1分别映射给了虚拟机的内存页面1和虚拟机的内存页面4;物理机上的内存页面N-3通过页表中的页表项SP2映射给了虚拟机的内存页面N-2。需要说明的是,这里仅通过页表中的末级页表对映射关系进行示例说明,在实际使用时,页表的结构不仅限于此。
本实施例中,通过确定与虚拟机的内存页面关联的页表,可以确定物理机的内存页面与虚拟机的内存页面的映射关系。
S104、将所述页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个所述设定大小的末级页表。
本实施例中,预设阈值可以为根据热迁移的难度设置的页面大小阈值,当虚拟机的末级页表指示的页面大小大于预设阈值时,会导致虚拟机热迁移难度较大。本领域的技术人员可以根据虚拟机的实际使用情况设置预设阈值的具体数值,例如预设阈值可以为4K等。
由于原始末级页表指示的页面大小大于预设阈值,会导致虚拟机的难度较大,因此,本实施例中,通过将原始末级页表按照设定大小进行分割,可以直接根据原始末级页表得到多个设定大小的末级页表,设定大小的末级页表是指末级页表所指示的页面大小为设定大小。由于多个设定大小的末级页表是通过分割原始末级页表得到的,因此得到的设定大小的末级页表指示的页面大小小于原始末级页表指示的页面大小。
本实施例中,分割后的末级页表的具体大小同样可以由本领域的技术人员确定,例如,设定大小也可以为4K。
S106、根据分割后的所述末级页表将所述虚拟机从第一物理机热迁移到第二物理机。
本实施例中,由于得到的设定大小的末级页表指示的页面大小小于原始末级页表指示的页面大小,使得基于多个设定大小的末级页表进行热迁移的难度较低。因此分割完成后,可以根据需求将虚拟机从其原本所在的第一物理机热迁移至第二物理机。
本实施例中,由于采用大页导致虚拟机热迁移的难度提高的具体原因可以包括以下几点:
1)虚拟机的热迁移是通过迭代的方式将虚拟机的内存从一个物理机拷贝到另一个物理机中,每次拷贝的内存内容根据虚拟机的分页方式确定。因此,末级页表指示的页面大小大于设定阈值,会导致每次需要拷贝的数据数量增多,进而使得热迁移过程对带宽的需求变大;
2)为了降低热迁移过程对带宽的需求,可以删除原始末级页表,然后通过缺页异常的方式重建4k的页表。然而由于末级页表指示的内存页面大小大于设定阈值,即大页,当虚拟机使用的内存规格比较大,同时并发运行的任务量也比较多时,在大页被删除后,虚拟机在同一时间会触发大量的内存访问,从而产生大量的缺页异常,而每触发一次缺页异常都会虚拟机的运行被暂停,直至缺页异常被处理(即缺页异常对应的页表重建完成),使得大量的缺页异常导致虚拟机的性能受损。
而根据本实施例提供的方案,通过确定虚拟机的内存页面对应的页表,然后将页表内的原始末级页表根据设定大小进行分割,从而得到多个设定大小的末级页表,由于与原始末级页表所指示的内存页面的大小相比,得到的末级页表所指示的内存页面较小,从而避免了虚拟机热迁移对带宽的需求较大的问题,且由于本方案中是将原始末级页表根据设定大小进行分割得到设定大小的末级页表,而并非通过触发缺页异常后重建得到的页表,从而可以避免出现大量的缺页异常的问题,进而避免了由于重建页表导致的虚拟机性能受损。
本实施例的虚拟机热迁移方法可以由任意适当的具有数据处理能力的终端设备执行,包括但不限于:服务器、移动终端(如平板电脑、手机等)和PC机。
实施例二
参照图3,示出了根据本发明实施例二的一种虚拟机热迁移方法的步骤流程图。
本实施例的虚拟机热迁移方法包括以下步骤:
S202、根据内存反向映射表,确定与虚拟机的内存页面关联的页表。
在内存管理系统中,通常把内存划分为固定大小的块,每个内存块的长度一般为4k或者8k,这些块在本发明实施例中被称为页框,内核以页框为基本单位管理物理内存,每个页框可以对应一个内存页面,页框号为页框的框编号,与页框一一对应。
基于此,确定的虚拟机的内存页面具体可以为虚拟机的内存页面对应的客户页框号gfn,页表中记录的映射关系具体可以为物理机的内存页面对应的物理页框号pfn映射至虚拟机的内存页面对应的客户页框号gfn的映射关系。
本实施例中,虚拟机的内存页面可以根据虚拟机的内存分配信息确定,确定的内存页面具体可以为内存页面的页框号。
具体地,虚拟机的内存空间可以包括多个内存槽(memslot),每个内存槽中包括多个内存页面,虚拟机的内存分配信息可以包括每个内存槽在整个虚拟机的内存空间中的起始偏移,以及内存槽内部的每个内存页面的偏移。例如图4所示,内存槽在整个虚拟机的内存空间中的起始偏移可以为内存槽memslot1对应的起始偏移addr0,内存槽memslot2对应的起始偏移addr N;内存槽内部的每个内存页面的偏移,可以为内存槽memslot2中内存页面的偏移1、2、3、4,内存槽memslot2中内存页面的偏移N-1、N-2、N-3、N-4。
本实施例中,可以根据每个内存槽对应的起始偏移以及内存槽内部的每个内存页面的偏移,确定虚拟机内存页面的客户页框号gfn,从而可以通过内存反向映射表确定客户页框号gfn对应的页表。
具体地,虚拟机对应的页表一般为EPT页表,EPT页表由物理机控制,并且仅在处理器工作于非根模式时才参与地址转换,采用EPT页表可以提高内存虚拟化的效率,简化内存虚拟化的实现。
在EPT页表创建时,可以同时通过内存反向映射表rmap记录虚拟机的内存页面的页表项与物理机的内存页面的对应关系。当一个物理机的内存页面映射至一个虚拟机的内存页面时,会将该映射关系对应的页表项的地址记录于内存反向映射表中;当一个物理机的内存页面映射到虚拟机的多个内存页面时,会将多个映射关系对应的多个页表项的地址记录于链表中,并将链表的首地址记录于内存反向映射表中。
确定虚拟机内存页面的客户页框号gfn后,可以通过rmap[gfn],即根据gfn对应的内存反向映射表项,确定虚拟机内存页面的客户页框号gfn对应的页表项或存储有多个页表项的链表,从而确定虚拟机的内存页面关联的页表。
进一步地,本实施例中,为了确定虚拟机内存页面对应的所有页表,使得在后续步骤中将所有指示的页面大于设定阈值的末级页表进行分割,可以遍历虚拟机的所有memslot中的所有客户页框号gfn,从而确定所有客户页框号gfn关联的页表。
S204、判断页表中的末级页表所指示的页面大小是否大于设定阈值。
如果是,则执行步骤S206,如果不是,则继续通过步骤S204判断下一个末级页表,直至遍历所有的末级页表。
S206、为原始末级页表,建立对应的多级页表,其中,建立的多级页表中的末级页表的大小为所述设定大小。
本实施例中,步骤S206具体可以包括:建立与原始末级页面指示的页面大小相同的上级页表;为所述上级页表建立至少一级下级页表,所述至少一级下级页表中的末级页表为所述设定大小的末级页表。通过先建立与原始页面指示页面大小相同的上级页表,可以保证建立的多级页表可以直接替换原始的末级页表,且,由于虚拟机中使用的页表是EPT页表,则建立下级页表时建立了至少一级下级页表,而并非只建立了设定大小的最末级页表,使得建立的多级页表结构与原EPT页表的结构相同,进一步保证了建立的多级页表可以直接替换原始末级页表。
S208、使用建立的所述多级页表替代所述原始末级页表,以得到多个所述设定大小的末级页表。
本实施例提供的方案,通过步骤S206直接建立原始末级页表对应的多级页表,在步骤S208中直接使用多级页表直接替换原始末级页表即可,无需更改页表中的其他内容,简单方便。
具体地,本实施例中,步骤S206以及步骤S208的具体实现方法可以如下:
a)首先从该页表项中,查询所述原始末级页表对应的第一物理机的首个物理内存页面的物理页框号pfn1,以及查询所述原始末级页表对应的虚拟机的首个物理内存页面的虚拟页框号gfn1。查询得到的结果可以用于后续步骤S210中。
b)判断创建EPT页表项所需的内存缓存池资源是否充足。
如果不充足,则向缓存池中新增缓存资源,直至资源满足创建EPT页表项所需的内存缓存池资源,再执行下一步骤c);若充足,则直接执行下一步骤c)。
c)删除原始末级页表。
d)从缓存池中依次申请资源,建立与原始末级页面指示的页面大小相同的上级页表,为所述上级页表建立至少一级下级页表,所述至少一级下级页表中的末级页表为所述设定大小的末级页表,以使用创建的多级页表替代原始末级页表。
具体地,假设设定大小的末级页表指示的页面大小为4k,且在EPT页表中,非末级页表中一般存储512个页表项。基于此,若原始末级页表指示的页面大小为2M,2M的大页包含512个4K小页,则创建的上级页表指示的页面大小也为2M,为其建立下级页表时,可以只建立512个4K的末级页表即可,即创建的多级页表为两级页表;若原始末级页表所指示的页面大小为1G,1G的大页包含262407个小页,则创建的上级页表指示的页面大小也为1G,为其建立下级页表时,可以先建立512个2M的页表,再为每个2M的页表建立512个4K的末级页表即可,即创建的多级页表为三级页表。
本实施例中,在步骤S208之后,所述方法还包括:
S210、根据所述原始末级页表对应的第一物理机的首个物理内存页面的物理页框号,以及根据所述原始末级页表对应的虚拟机的首个物理内存页面的虚拟页框号,填写建立的所述多级页表的页表项。
本实施例中,通过根据原始末级页表对应的第一物理机的首个物理内存页面的物理页框号pfn1以及原始末级页表对应的虚拟机的首个物理内存页面的虚拟页框号gfn1填写建立的多级页表的页表项,可以使得建立的多级页表中的页表项与原始末级页表中的页表项一致,进而使得建立的多级页表中存储的映射关系与原始末级页表中的映射关系一致,避免了由于重建页表导致的映射关系可能出错的问题。
具体地,步骤S210的具体实现方法如下:
a)确定使用建立的多级页表替代原始末级页表后对应的EPT页表。
b)从EPT页表中确定一当前页表,判断当前页表是否为末级页表。
若当前页表并非末级页表,则执行步骤c),若当前页表为末级页表,则执行步骤e)。
本实施例中,可以从EPT页表中的第一级页表作为首个当前页表,并按照级别关系依次遍历所有的页表,当然,本实施例对具体顺序不进行限定,只要能够将全部EPT页表遍历完成即可。
c)查看当前页表的下一级页表是否存在用于存储页表项的页。
若查看结果为存在,则直接确定下一个作为当前页表的页表,再次执行步骤b);若查看结果为不存在,则先执行步骤d),然后确定下一个作为当前页表的页表,再次执行步骤b)。
本实施例中,在建立的EPT页表中,部分页表可能仅存在于目录中,但并未为页表分配物理机的内存页面,导致其不存在用于存储页表项的页。例如,建立的多级页表的页表项未被填写时,建立的多级页表仅存在于页表的目录中,并不存在与页表对应的、用于存储页表项的页。
d)为下级页表申请一个用于存储页表项的页,并根据申请的页的地址信息填写当前页表的页表项。
e)根据原始末级页表对应的第一物理机的首个物理内存页面的物理页框号以及对应的虚拟机的首个物理内存页面的客户页框号,填写末级页表的页表项。
填写页表项时,以2M的上级页表以及512个4k的下级页表为例,上级页表中包括512个页表项,分别填写有512个4k页表的页的地址信息;512个4k页表对应的首个客户页框号可以为gfn1、gfn1+1、gfn1+2…gfn1+511,根据客户页框号可以确定物理页框号,基于此,可以填写每个4k页表中的页表项,当然,页表项中还可以包括其他的属性信息,属性信息的具体内容可根据物理机或者虚拟机的架构确定,本实施例对此不进行限定。
可选地,本实施例中,由于使用多级页表替代原始末级页表,使得原属于原始末级页表中的页表项被删除,进而使得内存反向映射表中存储的页表项地址可能存在错误或不可用的情况,因此,所述方法还包括:
S212、删除所述内存反向映射表中与所述原始末级页表对应的数据,以及根据得到的多个所述设定大小的末级页表,更新所述内存反向映射表。
本实施例中,当原始末级页表被删除时,其中的页表项也会被删除,则内存反向映射表rmap中与被删除的内存项相关的地址信息等也会被删除。此外,可以直接将设定大小的末级页表中的页表项填入内存反向映射表中,或者填入内存反向映射表的链表中。
当虚拟机的所有内存页面gfn对应的页表被分割完成后,可以刷新虚拟机的tlb缓存信息,使得虚拟机可以使用分割后的页表。本实施例中,由于分割页表的过程,会导致EPT页表结构以及页表项的更新和切换,而虚拟机可能会使用分割前的页表,若不进行EPT页表的更换,可能会使得虚拟机产生不可预期的行为。因此,本实施例中,通过刷新虚拟机的内存信息来实现分割后EPT页表的更新和切换,可以极大地降低分割页表的过程对虚拟机性能的影响。
S214、根据分割后的所述末级页表将所述虚拟机从第一物理机热迁移到第二物理机。
本实施例中,若不将指示的页面大小大于设定阈值的原始末级页表根据设定大小进行分割,而是采用通过缺页异常的方式重建页表,重建页表的过程可以如图5所示。
基于图5,以末级页表指示的页面大小为2M为例,热迁移过程具体包括以下步骤:
a)通过访问虚拟机内存,将EPT页表中的2M末级页表设为只读。
b)通过对页表进行写操作触发2M末级页表的EPTviolation。
c)删除2M末级页表,并进行4K页表的重建,以重建后的4k页表为单位,通过迭代的方式将虚拟机的内存数据从第一物理机拷贝至第二物理机,以进行热迁移。
具体地,删除2M末级页表并进行4K页表的重建具体可以为,将2M末级页表删除,然后当虚拟机对EPT页表的读写操作触发缺页异常时,进行页表重建,默认的页表重建为进行4K页表的重建。
由于上述过程中,删除的页表为2M页表,重建时进行的是4K页表的重建,需要根据删除的一个页表重建512个4k的页表,即重建时触发的缺页异常的异常量大,这会影响虚拟机的性能,导致虚拟机的性能可能出现较大抖动。
而本实施例中,由于通过步骤S202-S212预先将内存页表中指示的内存页面大于设定阈值的原始末级页表根据设定大小进行分割,得到多个设定大小的末级页表,而不是通过缺页异常进行重建,从而避免了出现大量的缺页异常的情况。
当页表中所有原始末级页表均被分割完成后,即可以以设定大小的末级页表为单位,将虚拟机的内存数据从第一物理机拷贝至第二物理机,从而实现虚拟机的热迁移。
可选地,本实施例中,在步骤S214之后,所述方法还包括:
S216、在所述第二物理机中重建所述虚拟机对应的页表。
本实施例中,虚拟机热迁移至第二物理机后,可以根据第二物理机中的页表建立方案重建虚拟机对应的页表。具体地,在第二物理机中重建页表时,为了提高虚拟机的性能,可以直接建立大于设定阈值的末级页表,本实施例对此不进行限定。
此外,在热迁移结束后,还可以对第一物理机中的资源进行回收,例如将第一物理机中虚拟机的内存数据、虚拟机的页表等删除。
本实施例提供的方案,通过预先将内存页表中指示的内存页面大于设定阈值的末级页表按照设定大小进行分割,得到多个设定大小的末级页表,使得从第一物理机热迁移至第二物理机时,可以每次拷贝设定大小的内存页面中的数据,极大地减小了每次需要拷贝的数据量,降低了对带宽的要求,还避免了缺页异常的异常量大导致的风险。
本实施例的虚拟机热迁移方法可以由任意适当的具有数据处理能力的终端设备执行,包括但不限于:移动终端(如平板电脑、手机等)和PC机。
实施例三
参照图6,示出了根据本发明实施例四的一种虚拟机热迁移装置的结构框图。
如图6所示,虚拟机热迁移装置包括:页表确定模块602、分割模块604、迁移模块606。
页表确定模块602,用于确定与虚拟机的内存页面关联的页表。
分割模块604,用于将所述页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个所述设定大小的末级页表。
迁移模块606,用于根据分割后的所述末级页表将所述虚拟机从第一物理机热迁移到第二物理机。
在一种可选的实施方式中,所述分割模块604包括:多级页表建立模块,用于为所述原始末级页表,建立对应的多级页表,其中,建立的多级页表中的末级页表的大小为所述设定大小;替代模块,用于使用建立的所述多级页表替代所述原始末级页表,以得到多个所述设定大小的末级页表。
在一种可选的实施方式中,所述多级页表建立模块包括:上级页表建立模块,用于建立与所述原始末级页面指示的页面大小相同的上级页表;下级页表建立模块,用于为所述上级页表建立至少一级下级页表,所述至少一级下级页表中的末级页表为所述设定大小的末级页表。
在一种可选的实施方式中,所述装置还包括:页表项填写模块,用于根据所述原始末级页表对应的第一物理机的首个内存页面的物理页框号,以及根据所述原始末级页表对应的虚拟机的首个内存页面的虚拟页框号,填写建立的所述多级页表的页表项。
在一种可选的实施方式中,所述页表确定模块602具体根据内存反向映射表,确定与虚拟机的内存页面关联的页表。
在一种可选的实施方式中,所述装置还包括:更新模块,用于删除所述内存反向映射表中与所述原始末级页表对应的数据,以及根据得到的多个所述设定大小的末级页表,更新所述内存反向映射表。
在一种可选的实施方式中,所述装置还包括:重建模块,用于在所述第二物理机中重建所述虚拟机对应的页表。
本实施例提供的方案,通过确定虚拟机的内存页面对应的页表,然后将指示的页面大于设定阈值的原始末级页表根据设定大小进行分割,得到多个设定大小的末级页表,由于与原始末级页表所指示的内存页面的大小相比,得到的末级页表所指示的内存页面较小,从而避免了虚拟机热迁移对带宽的需求较大的问题,且由于本方案中是将原始末级页表根据设定大小进行分割得到设定大小的末级页表,而并非通过触发缺页异常后重建得到的页表,从而可以避免出现大量的缺页异常的问题,进而避免了由于重建页表导致的虚拟机性能受损。
实施例五
一种终端设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如上所述的虚拟机热迁移方法对应的操作。
具体地,参照图7,示出了根据本发明实施例五的一种终端设备的结构示意图,本发明具体实施例并不对终端设备的具体实现做限定。
如图7所示,该终端设备可以包括:处理器(processor)702、通信接口(Communications Interface)704、存储器(memory)706、以及通信总线708。
其中:
处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。
通信接口704,用于与其它终端设备或服务器进行通信。
处理器702,用于执行程序710,具体可以执行上述虚拟机热迁移方法实施例中的相关步骤。
具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。
处理器702可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。终端设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器706,用于存放程序710。存储器706可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
程序710具体可以用于使得处理器702执行以下操作:确定与虚拟机的内存页面关联的页表;将所述页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个所述设定大小的末级页表;根据分割后的所述末级页表将所述虚拟机从第一物理机热迁移到第二物理机。
在一种可选的实施方式中,所述将所述页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个所述设定大小的末级页表,包括:为所述原始末级页表,建立对应的多级页表,其中,建立的多级页表中的末级页表的大小为所述设定大小;使用建立的所述多级页表替代所述原始末级页表,以得到多个所述设定大小的末级页表。
在一种可选的实施方式中,所述为所述原始末级页表,建立对应的多级页表,包括:建立与所述原始末级页面指示的页面大小相同的上级页表;为所述上级页表建立至少一级下级页表,所述至少一级下级页表中的末级页表为所述设定大小的末级页表。
在一种可选的实施方式中,所述方法还包括:根据所述原始末级页表对应的第一物理机的首个内存页面的物理页框号,以及根据所述原始末级页表对应的虚拟机的首个内存页面的虚拟页框号,填写建立的所述多级页表的页表项。
在一种可选的实施方式中,所述确定与虚拟机的内存页面关联的页表包括:根据内存反向映射表,确定与虚拟机的内存页面关联的页表。
在一种可选的实施方式中,所述方法还包括:删除所述内存反向映射表中与所述原始末级页表对应的数据,以及根据得到的多个所述设定大小的末级页表,更新所述内存反向映射表。
在一种可选的实施方式中,所述方法还包括:在所述第二物理机中重建所述虚拟机对应的页表。
程序710中各步骤的具体实现可以参见上述虚拟机热迁移方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本实施例的终端设备,通过确定虚拟机的内存页面对应的页表,然后将指示的页面大于设定阈值的原始末级页表根据设定大小进行分割,得到多个设定大小的末级页表,由于与原始末级页表所指示的内存页面的大小相比,得到的末级页表所指示的内存页面较小,从而避免了虚拟机热迁移对带宽的需求较大的问题,且由于本方案中是将原始末级页表根据设定大小进行分割得到设定大小的末级页表,而并非通过触发缺页异常后重建得到的页表,从而可以避免出现大量的缺页异常的问题,进而避免了由于重建页表导致的虚拟机性能受损。
需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的虚拟机热迁移方法。此外,当通用计算机访问用于实现在此示出的虚拟机热迁移方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的虚拟机热迁移方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。

Claims (16)

1.一种虚拟机热迁移方法,其特征在于,包括:
确定与虚拟机的内存页面关联的页表;
将所述页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个所述设定大小的末级页表;
根据分割后的所述末级页表将所述虚拟机从第一物理机热迁移到第二物理机。
2.根据权利要求1所述的方法,其特征在于,所述将所述页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个所述设定大小的末级页表,包括:
为所述原始末级页表,建立对应的多级页表,其中,建立的多级页表中的末级页表的大小为所述设定大小;
使用建立的所述多级页表替代所述原始末级页表,以得到多个所述设定大小的末级页表。
3.根据权利要求2所述的方法,其特征在于,所述为所述原始末级页表,建立对应的多级页表,包括:
建立与所述原始末级页面指示的页面大小相同的上级页表;
为所述上级页表建立至少一级下级页表,所述至少一级下级页表中的末级页表为所述设定大小的末级页表。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
根据所述原始末级页表对应的第一物理机的首个内存页面的物理页框号,以及根据所述原始末级页表对应的虚拟机的首个内存页面的虚拟页框号,填写建立的所述多级页表的页表项。
5.根据权利要求1所述的方法,其特征在于,所述确定与虚拟机的内存页面关联的页表包括:
根据内存反向映射表,确定与虚拟机的内存页面关联的页表。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
删除所述内存反向映射表中与所述原始末级页表对应的数据,以及根据得到的多个所述设定大小的末级页表,更新所述内存反向映射表。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
在所述第二物理机中重建所述虚拟机对应的页表。
8.一种虚拟机热迁移装置,其特征在于,包括:
页表确定模块,用于确定与虚拟机的内存页面关联的页表;
分割模块,用于将所述页表中指示的页面大小大于预设阈值的原始末级页表按照设定大小进行分割,得到多个所述设定大小的末级页表;
迁移模块,用于根据分割后的所述末级页表将所述虚拟机从第一物理机热迁移到第二物理机。
9.根据权利要求8所述的装置,其特征在于,所述分割模块包括:
多级页表建立模块,用于为所述原始末级页表,建立对应的多级页表,其中,建立的多级页表中的末级页表的大小为所述设定大小;
替代模块,用于使用建立的所述多级页表替代所述原始末级页表,以得到多个所述设定大小的末级页表。
10.根据权利要求9所述的装置,其特征在于,所述多级页表建立模块包括:
上级页表建立模块,用于建立与所述原始末级页面指示的页面大小相同的上级页表;
下级页表建立模块,用于为所述上级页表建立至少一级下级页表,所述至少一级下级页表中的末级页表为所述设定大小的末级页表。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
页表项填写模块,用于根据所述原始末级页表对应的第一物理机的首个内存页面的物理页框号,以及根据所述原始末级页表对应的虚拟机的首个内存页面的虚拟页框号,填写建立的所述多级页表的页表项。
12.根据权利要求8所述的装置,其特征在于,所述页表确定模块具体根据内存反向映射表,确定与虚拟机的内存页面关联的页表。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
更新模块,用于删除所述内存反向映射表中与所述原始末级页表对应的数据,以及根据得到的多个所述设定大小的末级页表,更新所述内存反向映射表。
14.根据权利要求8-13任一项所述的装置,其特征在于,所述装置还包括:重建模块,用于在所述第二物理机中重建所述虚拟机对应的页表。
15.一种终端设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7任一项所述的虚拟机热迁移方法对应的操作。
16.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一所述的虚拟机热迁移方法。
CN201911072990.9A 2019-11-05 2019-11-05 虚拟机热迁移方法、装置、终端设备及计算机存储介质 Active CN112783599B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911072990.9A CN112783599B (zh) 2019-11-05 2019-11-05 虚拟机热迁移方法、装置、终端设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911072990.9A CN112783599B (zh) 2019-11-05 2019-11-05 虚拟机热迁移方法、装置、终端设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN112783599A CN112783599A (zh) 2021-05-11
CN112783599B true CN112783599B (zh) 2024-03-29

Family

ID=75747476

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911072990.9A Active CN112783599B (zh) 2019-11-05 2019-11-05 虚拟机热迁移方法、装置、终端设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN112783599B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115016901B (zh) * 2022-08-09 2022-10-14 中航金网(北京)电子商务有限公司 一种虚拟机的迁移方法、装置、介质、及电子设备
CN118550637A (zh) * 2023-02-24 2024-08-27 中兴通讯股份有限公司 虚拟机迁移加速方法、系统、迁移设备及介质
CN116185902B (zh) * 2023-04-13 2023-08-01 阿里云计算有限公司 一种表切分方法、系统、电子设备及可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103353850A (zh) * 2013-06-13 2013-10-16 华为技术有限公司 虚拟机热迁移内存处理方法、装置和系统
CN108037980A (zh) * 2018-01-02 2018-05-15 腾讯科技(深圳)有限公司 控制执行虚拟机热迁移的方法、装置和可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9767039B2 (en) * 2011-07-18 2017-09-19 Vmware, Inc. Increasing granularity of dirty bit information in hardware assisted memory management systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103353850A (zh) * 2013-06-13 2013-10-16 华为技术有限公司 虚拟机热迁移内存处理方法、装置和系统
CN108037980A (zh) * 2018-01-02 2018-05-15 腾讯科技(深圳)有限公司 控制执行虚拟机热迁移的方法、装置和可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于能耗降低的虚拟机动态迁移算法;李飞标;虞慧群;范贵生;;华东理工大学学报(自然科学版)(第05期);全文 *

Also Published As

Publication number Publication date
CN112783599A (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
CN112783599B (zh) 虚拟机热迁移方法、装置、终端设备及计算机存储介质
US10983955B2 (en) Data unit cloning in memory-based file systems
US11003625B2 (en) Method and apparatus for operating on file
EP3037988A1 (en) Configuration method and device for hash database
US20210081388A1 (en) Methods, apparatuses and computer program products for managing metadata of storage object
US20110225342A1 (en) Opportunistic page caching for virtualized servers
TW201220197A (en) for improving the safety and reliability of data storage in a virtual machine based on cloud calculation and distributed storage environment
CN112328354A (zh) 虚拟机热迁移方法、装置、电子设备及计算机存储介质
US11977451B2 (en) Application-based packing for storing backup data to an object storage
US20220156106A1 (en) Virtual Machine Hot Migration Method, Apparatus, Electronic Device, and Computer Storage Medium
US20240160528A1 (en) Data Storage Method and Apparatus in Storage System
CN110399096B (zh) 分布式文件系统元数据缓存重删的方法、装置以及设备
CN111506253A (zh) 一种分布式存储系统及其存储方法
US20200183602A1 (en) Systems and methods for storing information within hybrid storage with local and cloud-based storage devices
CN111708738A (zh) 实现hadoop文件系统hdfs与对象存储s3数据互访方法及系统
KR20220125198A (ko) 데이터의 추가 기록 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램매체
US20240281365A1 (en) Memory paging method and system, and storage medium
CN113535068A (zh) 数据读取方法和系统
CN104035822A (zh) 一种低开销的高效内存去冗余方法及系统
US11669403B2 (en) Intelligent re-tiering of incremental backup data stored on a cloud-based object storage
US11663165B2 (en) Method, electronic device, and computer program product for managing file system
CN106598502B (zh) 数据存储方法和系统
US11775394B2 (en) Size-based organization of backup files within an object storage for efficient object re-tiering
US20170090803A1 (en) Method and device for checking false sharing in data block deletion
US10712959B2 (en) Method, device and computer program product for storing data

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