CN113032086A - 虚拟机部署及热迁移方法、vmm升级方法、服务器 - Google Patents
虚拟机部署及热迁移方法、vmm升级方法、服务器 Download PDFInfo
- Publication number
- CN113032086A CN113032086A CN201911355638.6A CN201911355638A CN113032086A CN 113032086 A CN113032086 A CN 113032086A CN 201911355638 A CN201911355638 A CN 201911355638A CN 113032086 A CN113032086 A CN 113032086A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- page
- space
- upgraded
- hva
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种虚拟机的部署方法、一种虚拟机的热迁移方法、一种VMM的升级方法、一种服务器和一种计算机可读存储介质。所述部署方法包括:根据升级前虚拟机的宿主机虚拟地址HVA空间与所述升级前虚拟机的宿主机物理地址HPA空间之间的映射关系,建立升级后虚拟机的HVA空间与所述升级前虚拟机的HPA空间之间的映射,所述升级后虚拟机部署在升级后的虚拟机监控器VMM上,且所述升级后虚拟机的内存配置与在升级前的VMM上运行的所述升级前虚拟机的内存配置相同。本发明能够在无需预留大量的计算资源的情况下实现从升级前虚拟机到升级后虚拟机的在线热迁移,进而完成VMM软件新旧版本的热替换。部署方法及热迁移方法还适用于虚拟机批量热迁移。
Description
技术领域
本公开涉及计算机技术领域,具体地,涉及一种虚拟机的部署方法,一种虚拟机的热迁移方法、一种VMM的升级方法、一种服务器和一种计算机可读存储介质。
背景技术
虚拟机监控器(Virtual Machine Monitor,VMM)是承载虚拟机运行及监视的程序,为了对它进行升级以增加功能或修复程序缺陷,需要对在VMM上运行的虚拟机进行迁移。为了在迁移的同时不影响或中断业务虚拟机的运行,现有技术主要通过虚拟机在线迁移、结合软件冷补丁的方法来完成。具体可以分两种:一、异地迁移,即先将待升级服务器的虚拟机在线热迁移到其它服务器,然后用冷补丁的方法升级VMM,最后再将虚拟机在线热迁移回升级后的VMM上运行;二、本地迁移,即服务器主机上同时启动新旧两个版本的VMM程序,然后使用本地迁移技术将虚拟机从旧VMM迁移在线热迁移到新VMM上。
以上两种在线迁移结合冷补丁的方法,其本质都是虚拟机计算资源先复制后释放,执行过程中需要对虚拟机整个内存空间内容进行复制,因此在执行前需要在其它服务器或本服务器预留至少等于被迁移虚拟机内存空间的计算资源。但在实际中,计算资源通常都是根据实际业务分配好的,而且在云计算服务器虚拟化场景中,有些服务器用途的虚拟机的内存空间动辄几十、上百GB,因此很难做到资源预留。而且当涉及到大量虚拟机需要迁移时,整个实施过程也会非常复杂,耗时耗力。
发明内容
为解决现有技术存在的上述问题的至少一个方面,本公开提供一种虚拟机的部署方法、一种虚拟机的热迁移方法、一种VMM的升级方法、一种服务器和一种计算机可读存储介质。
为实现上述目的,作为本公开的第一个方面,提供一种虚拟机的部署方法,包括:
根据升级前虚拟机的宿主机虚拟地址HVA空间与所述升级前虚拟机的宿主机物理地址HPA空间之间的映射关系,建立升级后虚拟机的HVA空间与所述升级前虚拟机的HPA空间之间的映射,其中,所述升级后虚拟机部署在升级后的虚拟机监控器VMM上,且所述升级后虚拟机的内存配置与在升级前的VMM上运行的所述升级前虚拟机的内存配置相同。
可选地,根据升级前虚拟机的宿主机虚拟地址HVA空间与所述升级前虚拟机的宿主机物理地址HPA空间之间的映射关系,建立升级后虚拟机的HVA空间与所述升级前虚拟机的HPA空间之间的映射的步骤包括:
确定升级前虚拟机的HPA空间中各个物理内存页的页表项的顺序及顺序号;
根据各个所述物理内存页的页表项与所述顺序号的对应关系,将各个所述物理内存页反映射到相应的升级后虚拟机的HVA空间的虚拟内存页上。
可选地,确定升级前虚拟机的HPA空间中各个物理内存页的页表项的顺序及顺序号的步骤包括:
获取升级前虚拟机的HVA空间的第一入口地址;
获取各个所述物理内存页对应的升级前虚拟机的HVA空间虚拟内存页相对于所述第一入口地址的页地址偏移量;
将所述页地址偏移量的大小顺序确定为各个所述物理内存页的页表项的所述顺序,将所述页地址偏移量确定为对应的物理内存页的页表项的所述顺序号。
可选地,根据各个所述物理内存页的页表项与所述顺序号的对应关系,将各个所述物理内存页反映射到相应的升级后虚拟机的HVA空间的虚拟内存页上的步骤包括:
获取所述升级后虚拟机的HVA空间的第二入口地址;
按照所述顺序号递增的顺序,以所述第二入口地址为起点,将各个所述物理内存页反映射到所述升级后虚拟机的HVA空间的虚拟内存页上,其中,每一个所述物理内存页对应的所述虚拟内存页相对于所述第二入口地址的页地址偏移量与所述物理内存页的页表项对应的所述顺序号相等。
可选地,在按照所述顺序号递增的顺序,以所述第二入口地址为起点,将各个所述物理内存页反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的步骤之前,所述部署方法还包括:
向所述升级后的VMM发送信令,以将所述升级后虚拟机的虚拟中央处理器VCPU置于暂停状态。
可选地,根据各个所述物理内存页的页表项与所述顺序号的对应关系,将各个所述物理内存页反映射到相应的升级后虚拟机的HVA空间的虚拟内存页上的步骤包括:
获取所述升级后虚拟机的HVA空间的第三入口地址;
向所述升级后的VMM发送信令,以将所述升级后虚拟机的VCPU置于运行状态;
根据缺页中断产生的缺页地址偏移量,将所述物理内存页反映射到目标虚拟内存页上,其中,所述目标虚拟内存页为所述升级后虚拟机的HVA空间的虚拟内存页,所述物理内存页的页表项的顺序号与所述缺页地址偏移量相等,且所述目标虚拟内存页的相对于所述第三入口地址的页地址偏移量与所述缺页地址偏移量相等。
可选地,在根据缺页中断产生的缺页地址偏移量,将所述物理内存页反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的步骤之后,所述部署方法还包括:
判断待反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页的数量是否小于预定阈值;
响应于待反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页的数量小于所述预定阈值,向所述升级后的VMM发送信令,以将所述升级后虚拟机的VCPU置于暂停状态;
将待反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页反映射到所述升级后虚拟机的HVA空间的虚拟内存页上,其中,每一个所述物理内存页对应的所述虚拟内存页相对于所述第三入口地址的页地址偏移量与所述物理内存页的页表项对应的所述顺序号相等。
可选地,确定各个所述物理内存页的页表项的顺序的步骤包括:
获取各个物理内存页对应的升级前虚拟机的HVA空间的虚拟内存页在所述升级前虚拟机的页框映射图MS中的序号;
将所述序号的大小顺序确定为各个所述物理内存页的页表项的所述顺序,将所述序号确定为对应物理内存页的页表项的所述顺序号。
可选地,在根据各个所述物理内存页的页表项与所述顺序号的对应关系,将所述物理内存页反映射到相应的升级后虚拟机的HVA空间的虚拟内存页上的步骤之后,所述部署方法还包括:
为反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页创建多级页表。
可选地,在根据升级前虚拟机的宿主机虚拟地址HVA空间与所述升级前虚拟机的宿主机物理地址HPA空间之间的映射关系,建立升级后虚拟机的HVA空间与所述升级前虚拟机的HPA空间之间的映射的步骤之前,所述部署方法还包括:
判断所述升级后虚拟机的MS与所述升级前虚拟机的MS是否一致;
若不一致,将所述升级前虚拟机的MS复制到所述升级后虚拟机。
作为本公开的第二个方面,提供一种虚拟机的热迁移方法,包括:
执行上述的部署方法,以将升级前虚拟机的HPA空间映射到升级后虚拟机的HVA空间;
向升级后的VMM发送信令,以将所述升级后虚拟机的VCPU置于运行状态,其中,所述升级后虚拟机的HPA空间为所述升级前虚拟机的HPA空间。
作为本公开的第三个方面,提供一种VMM的升级方法,包括:
将升级后的VMM部署在宿主机上;
在宿主机上同时启动升级前的VMM和升级后的VMM;
执行上述的热迁移方法,以将在升级前的VMM上运行的升级前虚拟机迁移到在升级后的VMM上运行的升级后虚拟机;
删除升级前的VMM。
作为本公开的第四个方面,提供一种服务器,所述服务器用作虚拟机的宿主机,所述服务器包括:
存储模块,该存储模块上存储有应用程序;
一个或多个处理器,当所述应用程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现以下方法中的一者:
上述的部署方法;
上述的热迁移方法;
上述的升级方法。
作为本公开的第五个方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行程序,所述可执行程序被执行时能够实现以下方法中的一者:
上述的部署方法;
上述的热迁移方法;
上述的升级方法。
本公开提供的虚拟机的部署方法,在虚拟机部署过程中,仅复制了宿主机虚拟地址HVA空间与宿主机物理地址HPA空间之间的映射关系(可通过复制或修改页表(PageTable Entry,PTE)来实现),而不用复制虚拟机的整个内存空间的内容,因此可以在不中断虚拟机业务也无需预留大量的计算资源的情况下建立升级后虚拟机的HVA空间与升级前虚拟机的HPA空间的映射关系。当所述部署方法用于虚拟机迁移过程中时,能够实现从升级前虚拟机到升级后虚拟机的迁移,进而完成VMM软件新旧版本的热替换。而且,还适用于大量虚拟机的批量热迁移,能够有效节省时间成本和资源成本。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是本公开提供的部署方法的一种实施方式的流程图;
图2虚拟化场景中各内存概念及其转换关系示意图;
图3是本公开提供的部署方法的另一种实施方式的流程图;
图4是本公开提供的部署方法的又一种实施方式的流程图;
图5是本公开提供的部署方法的再一种实施方式的流程图;
图6是本公开提供的部署方法的再一种实施方式的流程图;
图7是本公开提供的部署方法的再一种实施方式的流程图;
图8是本公开提供的热迁移方法的一种实施方式的流程图;
图9是本公开提供的升级方法的一种实施方式的流程图;
图10是本公开中的部署方法执行前后虚拟机内存映射示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
作为本公开的第一个方面,提供一种虚拟机的部署方法,如图1所示,包括:
在步骤S110中,根据升级前虚拟机的宿主机虚拟地址HVA空间与所述升级前虚拟机的宿主机物理地址HPA空间之间的映射关系,建立升级后虚拟机的HVA空间与所述升级前虚拟机的HPA空间之间的映射,其中,所述升级后虚拟机部署在升级后的虚拟机监控器VMM上,且所述升级后虚拟机的内存配置与在升级前的VMM上运行的所述升级前虚拟机的内存配置相同。
如图2所示,虚拟机内的页表(Guest Page Table,GPT)提供了虚拟机虚拟地址(Guest Virtual Address,GVA)空间到虚拟机伪物理地址(Guest Physical Address,GPA)空间的映射关系;宿主机的页表(Host Page Table,HPT)提供了宿主机虚拟地址(HostVirtual Address,HVA)空间到宿主机物理地址(Host Physical Address,HPA)空间的映射关系;页框映射图(Memory Slot,MS)则将GPA和HVA按照序号进行了对应。
需要说明的是,在本公开中提到的页地址偏移量都是相对于各自地址空间入口地址的页地址偏移量。例如,HVA空间的虚拟内存页的页地址偏移量是相对于所述HVA空间的入口地址的页地址偏移量,HPA空间的物理内存页的页地址偏移量是相对于所述HPA空间的入口地址的页地址偏移量。
在本公开中,当进行虚拟机部署时,先在升级后的VMM上启动升级后虚拟机,使升级后虚拟机的内存配置与在升级前的VMM上运行的升级前虚拟机的内存配置保持一致,但不向升级后虚拟机分配实际的物理内存。因为升级后虚拟机与升级前虚拟机的内存配置和初始化过程是一致的,所以升级后虚拟机的GPA到HVA的映射关系与升级前虚拟机的GPA到HVA的映射关系也保持一致。具体来说,升级后虚拟机的MS与升级前虚拟机的MS一致,即,具有相同序号的升级后虚拟机中HVA空间的页与升级前虚拟机中HVA空间的页分别对应的升级后虚拟机中GPA空间的页与升级前虚拟机中GPA空间的页的序号相同;此外,具有相同页偏移量的升级后虚拟机的HVA空间虚拟内存页与升级前虚拟机的HVA空间虚拟内存页分别对应的升级后虚拟机的GPA空间中的页与升级前虚拟机的GPA空间中的页也具有相同的页偏移量。
下面结合图10对升级前后虚拟机的地址空间的映射关系做进一步说明。在图10(a)中,在服务器上同时部署升级前VMM和升级后VMM,并且在升级后的VMM上启动升级后虚拟机,但未向升级后虚拟机分配实际的物理内存HPA空间。由于在升级前后的VMM上虚拟机的内存配置和初始化过程是一致的,因此,升级前虚拟机的GPA空间与HVA空间的映射关系和升级后虚拟机的GPA空间与HVA空间的映射关系相同。在图10中,数字1、2、3可以表示内存页在对应的MS中的序号,也可以表示内存在其地址空间中的页地址偏移量。因此,如图10(a)所示,当图中的数字1、2、3表示序号时,序号为1的升级后虚拟机中HVA空间的页与升级前虚拟机中HVA空间的页分别对应的升级后虚拟机中GPA空间的页与升级前虚拟机中GPA空间的页的序号都为1,序号为2的升级后虚拟机中HVA空间的页与升级前虚拟机中HVA空间的页分别对应的升级后虚拟机中GPA空间的页与升级前虚拟机中GPA空间的页的序号都为2;当图中的数字1、2、3表示页地址偏移量时,页地址偏移量为1的升级后虚拟机中HVA空间的页与升级前虚拟机中HVA空间的页分别对应的升级后虚拟机中GPA空间的页与升级前虚拟机中GPA空间的页的页地址偏移量都为1,页地址偏移量为2的升级后虚拟机中HVA空间的页与升级前虚拟机中HVA空间的页分别对应的升级后虚拟机中GPA空间的页与升级前虚拟机中GPA空间的页的页地址偏移量都为2。需要说明的是,当图中的数字1、2、3表示页地址偏移量时,图10仅示例性的画出了GPA空间的页的页地址偏移量与对应的HVA空间的页的页地址偏移量相等的情况,在实际应用中,GPA空间的页的页地址偏移量与对应的HVA空间的页的页地址偏移量可以不相等,只要保证具有相同页偏移量的升级后虚拟机的HVA空间虚拟内存页与升级前虚拟机的HVA空间虚拟内存页分别对应的升级后虚拟机的GPA空间中的页与升级前虚拟机的GPA空间中的页也具有相同的页偏移量即可。例如,页地址偏移量为1的升级后虚拟机中HVA空间的页与升级前虚拟机中HVA空间的页分别对应的升级后虚拟机中GPA空间的页与升级前虚拟机中GPA空间的页的页地址偏移量都为3。
在本公开中,按照升级前虚拟机的宿主机虚拟地址HVA空间与所述升级前虚拟机的宿主机物理地址HPA空间的映射关系,将升级前虚拟机的HPA空间反映射到升级后虚拟机的HVA空间上,当升级后虚拟机访问HVA空间的页时,经过多级查表查到的物理内存页与升级前虚拟机中具有相同序号或页地址偏移量的HVA空间的页所对应的HPA空间的物理页是相同的,即,升级后虚拟机可以访问与升级前虚拟机相同的物理内存页,从而完成升级后虚拟机的部署。
下面结合图10做进一步说明。如图10(a)所示,在升级前虚拟机的HVA空间中,序号为1的页对应于HPA空间的p1物理内存页,序号为2的页对应于HPA空间的p2物理内存页,序号为3的页对应于HPA空间的p3物理内存页。在本公开的步骤S110中,升级前虚拟机的HPA空间反映射到升级后虚拟机的HVA空间上,即如图10(b)所示,在升级后虚拟机的HVA空间中,序号为1的页对应于HPA空间的p1物理内存页,序号为2的页对应于HPA空间的p2物理内存页,序号为3的页对应于HPA空间的p3物理内存页。也就是说,升级后虚拟机与升级前虚拟机对应于同一块HPA空间。如前文所述,升级前虚拟机的GPA空间与HVA空间的映射关系和升级后虚拟机的GPA空间与HVA空间的映射关系相同,因此,如图10所示,升级后虚拟机的GVA空间、GPA空间、HVA空间、HPA空间之间的各级映射关系与升级前虚拟机的GVA空间、GPA空间、HVA空间、HPA空间之间的各级映射关系均相同。在图10(b)中,将升级前的VMM删除并启动升级后虚拟机后,在升级后虚拟机上运行的程序经过多级查表访问的物理内存页与在升级前虚拟机上运行时访问的物理内存页相同。
如图10所示,在步骤S110中,并没有复制物理内存页的内存,仅通过复制或修改页表(Page Table Entry,PTE)建立了升级后虚拟机的HVA空间与所述升级前虚拟机的HPA空间之间的映射。因此,整个映射关系的建立过程非常迅速,且不需要预留大量的内存资源。
本公开提供的虚拟机的部署方法,在虚拟机部署过程中,仅复制了宿主机虚拟地址HVA空间与宿主机物理地址HPA空间之间的映射关系(可通过复制或修改页表(PageTable Entry,PTE)来实现),而不用复制虚拟机的整个内存空间的内容,因此可以在不中断虚拟机业务也无需预留大量的计算资源的情况下建立升级后虚拟机的HVA空间与升级前虚拟机的HPA空间的映射关系。当所述部署方法用于虚拟机迁移过程中时,能够实现从升级前虚拟机到升级后虚拟机的迁移,进而完成VMM软件新旧版本的热替换。而且,还适用于大量虚拟机的批量热迁移,能够有效节省时间成本和资源成本。
在本公开中,当升级后虚拟机在访问HVA空间的页时,为了使经过多级查表查到的物理内存页与升级前虚拟机中具有相同序号或页地址偏移量的HVA空间的页所对应的HPA空间的物理页是相同的,升级后虚拟机的MS应当与升级前虚拟机的MS保持一致。为了确保升级后虚拟机的MS应当与升级前虚拟机的MS保持一致,如图3所示,在启动升级后虚拟机后,所述部署方法还可以包括以下步骤:
在步骤S121中,判断所述升级后虚拟机的页框映射图MS与所述升级前虚拟机的MS是否一致;
若不一致,则在步骤S122中,将所述升级前虚拟机的MS复制到所述升级后虚拟机。
在本公开中,对步骤S121与步骤S110之间的顺序不做特殊的限定,可以在步骤S110之前执行步骤S121,也可以在步骤S110之后执行步骤S121。在图3中所示的实施方式中,在步骤S110之前执行步骤S121。
在本公开中,对如何实施步骤S110不做特殊限定,作为一种可选实施方式,如图3所示,步骤S110具体包括以下步骤:
在步骤S111中,确定升级前虚拟机的HPA空间中各个所述物理内存页的页表项的顺序及顺序号。
在步骤S112中,根据各个所述物理内存页的页表项与所述顺序号的对应关系,将各个所述物理内存页反映射到相应的升级后虚拟机的HVA空间的虚拟内存页上。
在本公开中,可以根据升级前虚拟机的HVA空间的入口地址和HVA空间的大小信息,查找升级前虚拟机的HVA空间对应的HPA空间的物理内存页的页表项。在确定各个物理内存页的页表项的顺序后,可以创建一个列表,将各个物理内存页及其在所述顺序中的顺序号,按照所述顺序依次保存到上述列表中。
在本公开中,对于如何将所述物理内存页反映射到升级后虚拟机的HVA空间的虚拟内存页上不作具体限定,只要当升级后虚拟机在访问HVA空间的页时,使经过多级查表查到的物理内存页与升级前虚拟机中具有相同序号或页地址偏移量的HVA空间的页所对应的HPA空间的物理页是相同的,都属于本公开的范围。
为了节省内存空间,在内存管理中多采用多级页表。当为反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的物理内存页创建完善多级页表,就最终完成了HPA空间的物理内存页的页表项从升级前虚拟机的HVA空间到升级后虚拟机的HVA空间的切换。相应地,如图3所示,在步骤S112之后,步骤S110还包括:
在步骤S113中,为反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的物理内存页创建多级页表。
由前述分析可知,具有相同页地址偏移量的升级后虚拟机的HVA空间虚拟内存页与升级前虚拟机的HVA空间虚拟内存页分别对应的升级后虚拟机的GPA空间中的页与升级前虚拟机的GPA空间中的页也具有相同的页地址偏移量。因此,如图4所示,步骤S111可以具体包括以下步骤:
在步骤S111a中,获取升级前虚拟机的HVA空间的第一入口地址;
在步骤S111b中,获取各个所述物理内存页对应的升级前虚拟机的HVA空间的虚拟内存页相对于所述第一入口地址的页地址偏移量;
在步骤S111c中,将所述页地址偏移量的大小顺序确定为各个所述物理内存页的页表项的所述顺序,将所述页地址偏移量确定为对应的物理内存页的页表项的所述顺序号。
如图10所示,当图中的数字1、2、3表示页地址偏移量时,在升级前虚拟机的HVA空间中,页地址偏移量为1的页对应于HPA空间的p1物理内存页,页地址偏移量为2的页对应于HPA空间的p2物理内存页,页地址偏移量为3的页对应于HPA空间的p3物理内存页。因此,p1物理内存页对应的顺序号为1,p2物理内存页对应的顺序号为2,p3物理内存页对应的顺序号为3。
在本公开中,可以通过宿主机的页表HPT得到物理内存页与与其对应的虚拟内存页的页地址偏移量的对应关系。可以根据偏移量大小的递增、递增或其他任意一种方式对各个所述物理内存页的页表项进行排序,对此不作特殊限定。
在本公开中,对如何实现步骤S112不做特殊限定,作为一种可选实施方式,如图5所示,步骤S112具体包括:
在步骤S112a中,获取所述升级后虚拟机的HVA空间的第二入口地址;
在步骤S112b中,按照所述顺序号递增的顺序,以所述第二入口地址为起点,将各个所述物理内存页反映射到所述升级后虚拟机的HVA空间虚拟内存页上,其中,每一个所述物理内存页对应的所述虚拟内存页相对于所述第二入口地址的页地址偏移量与所述物理内存页的页表项对应的所述顺序号相等。
在本公开中,利用内存页反向映射机制(rmap)将升级前虚拟机的HPA空间的物理内存页的页表项反映射到页地址偏移量与所述物理内存页的页表项对应的页地址偏移量相等的目标虚拟机的HVA空间的虚拟内存页上,也即完成了将所述物理内存页反映射到页地址偏移量与所述物理内存页的页表项对应的页地址偏移量相等的目标虚拟机的HVA空间的虚拟内存页上。
为了防止升级后虚拟机的虚拟中央处理器(VCPU)运行产生缺页中断,在执行步骤S112b之前,所述部署方法还包括:
在步骤S112c中,向所述升级后的VMM发送信令,以将所述升级后虚拟机的虚拟中央处理器VCPU置于暂停状态。
对步骤S112a与步骤S112c之间的先后顺序不做特殊限定,可以先执行步骤S112a后执行步骤S112c,也可以先执行步骤S112c再执行步骤S112a,还可以在执行步骤S112a的同时执行步骤S112c,只要确保步骤S112c在步骤S112b之前执行即可。
需要指出的是,此处的“缺页中断”指的是由于升级后虚拟机的HVA空间的虚拟内存页没有映射到物理内存且升级后虚拟机的扩展页表EPT为空,当升级后虚拟机访问物理内存时,服务器中央处理器的内存管理单元所发出的中断。
在某些具体的应用场景下,在执行步骤S112b将物理内存页反映射到升级后虚拟机的HVA空间的虚拟内存页上的过程中,可以将升级前虚拟机的VCPU短暂暂停,其中,所有物理内存页反映射到升级后虚拟机的HVA空间的虚拟内存页上所需时间即为升级前虚拟机的VCPU短暂暂停的时间,一般不超过1秒。
在另外一些具体的应用场景下,在执行步骤S112b将物理内存页反映射到升级后虚拟机的HVA空间的虚拟内存页上的过程中,可以将该物理内存页暂时置为固定状态,待该物理内存页反映射到升级后虚拟机的HVA空间的虚拟内存页上后,解除其固定状态。
通过将升级前虚拟机的VCPU短暂暂停或将物理内存页暂时置为固定状态,可以防止升级前虚拟机的VCPU修改、添加或删除物理内存页,确保将物理内存页反映射到升级后虚拟机的HVA空间的虚拟内存页前后,物理内存页的页表或页内容保持一致,进而使业务程序能够在升级前虚拟机和升级后虚拟机上接续运行。
上述通过步骤S112a到S112b实现步骤S112的实施方式流程简单、易于实现,但当需要反映射到升级后虚拟机的HVA空间的物理内存较大时,将升级前虚拟机的VCPU置于暂停状态的时间较长,通常会导致业务长达1秒钟左右的暂停,因此仅适用于内存较小的虚拟机的热迁移。为了缩短将物理内存页反映射到升级后虚拟机的HVA空间的虚拟内存页导致的在虚拟机上运行的业务程序的暂停时间,以适用于内存较大的虚拟机的热迁移,本公开还提供一种主动触发缺页中断,以执行步骤S112的实施方式。在本实施方式中,如图6所示,步骤S112具体包括:
在步骤S112d中,获取所述升级后虚拟机的HVA空间的第三入口地址;
在步骤S112e中,向所述升级后的VMM发送信令,以将所述升级后虚拟机的VCPU置于运行状态;
在步骤S112f中,根据缺页中断产生的缺页地址偏移量,将所述物理内存页反映射到目标虚拟内存页上,其中,所述目标虚拟内存页为所述升级后虚拟机的HVA空间的虚拟内存页,所述物理内存页的页表项的顺序号与所述缺页地址偏移量相等,且所述目标虚拟内存页的相对于所述第三入口地址的页地址偏移量与所述缺页地址偏移量相等。
由于未向升级后虚拟机分配实际的物理内存,当升级后VCPU运行访问内存时,会产生缺页中断,并产生缺页地址偏移量。所述缺页地址偏移量对应于升级后虚拟机的HVA空间的虚拟内存页的页地址偏移量。
为了进一步缩短上述业务程序的暂停时间,可以在升级后虚拟机运行过程中,对升级后虚拟机内存缺页情况及HPA空间的物理内存页切换情况进行跟踪,并且,在步骤S112g中,判断待反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页的数量是否小于预定阈值。
在步骤S112h中,当待反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页的数量小于预定阈值时,向所述升级后的VMM发送信令,以将所述升级后虚拟机的VCPU置于暂停状态。
在步骤S112i中,将待反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页反映射到所述升级后虚拟机的HVA空间的虚拟内存页上,其中,每一个所述物理内存页对应的所述虚拟内存页相对于所述第三入口地址的页地址偏移量与所述物理内存页的页表项对应的所述顺序号相等。
由于此时需一次性反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页的数量已经很少,升级后虚拟机的VCPU暂停的时间可以控制在微秒级,虚拟机内的业务程序对上述暂停无感知,因此不会引起业务暂停或中断。
上文中详细介绍了以升级前虚拟机的HVA空间的虚拟内存页的页地址偏移量确定各个所述物理内存页的页表项的顺序、并将物理内存页反映射到升级后虚拟机的HVA空间的虚拟内存页的实施方式。当然,本公开并不限于此,任何能够反映升级前虚拟机的HVA空间与升级前虚拟机的HPA空间的映射关系的排序方式都属于本公开的范围。下面介绍另外一种确定各个所述物理内存页的页表项的顺序的实施方式。
由前述分析可知,升级后虚拟机的MS与升级前虚拟机的MS一致,即,在MS中具有相同序号的升级后虚拟机中HVA空间的页与升级前虚拟机中HVA空间的页分别对应的升级后虚拟机中GPA空间的页与升级前虚拟机中GPA空间的页在MS中的序号相同。因此,在本公开中,如图7所示,步骤S111可以具体包括:
在步骤S111d中,获取各个物理内存页对应的升级前虚拟机的HVA空间的虚拟内存页在所述升级前虚拟机的页框映射图MS中的序号;
在步骤S111e中,将所述序号的大小顺序确定为各个所述物理内存页的页表项的所述顺序,将所述序号确定为对应物理内存页的页表项的所述顺序号。
如图10所示,当图中的数字1、2、3表示序号时,在升级前虚拟机的HVA空间中,序号为1的页对应于HPA空间的p1物理内存页,序号为2的页对应于HPA空间的p2物理内存页,序号为3的页对应于HPA空间的p3物理内存页。因此,p1物理内存页对应的顺序号为1,p2物理内存页对应的顺序号为2,p3物理内存页对应的顺序号为3。
作为本公开的第二个方面,提供一种虚拟机的热迁移方法,如图8所示,包括:
在步骤S210中,执行上述的部署方法,以将升级前虚拟机的HPA空间映射到升级后虚拟机的HVA空间;
在步骤S220中,向升级后的VMM发送信令,以将所述升级后虚拟机的VCPU置于运行状态,其中,所述升级后虚拟机的HPA空间为所述升级前虚拟机的HPA空间。
图10示出了使用本公开提供的热迁移方法对虚拟机进行热迁移前后的内存映射示意图。其中,图10(a)为热迁移前虚拟机内存映射情况,图10(b)为热迁移后虚拟机内存映射情况。可见,热迁移前后,虚拟机在同一HPA空间上运行,且由于不对物理内存页的内容进行复制,整个热迁移过程非常迅速,虚拟机的业务程序无感知。
本公开提供的虚拟机的热迁移方法,使用本公开提供的虚拟机的部署方法通过建立升级后虚拟机的HVA空间与升级前虚拟机的HPA空间的映射关系部署升级后虚拟机,在虚拟机迁移过程中,仅复制了宿主机虚拟地址HVA空间与宿主机物理地址HPA空间之间的映射关系(可通过复制或修改页表(Page Table Entry,PTE)来实现),而不用复制虚拟机的整个内存空间的内容,因此可以在不中断虚拟机业务也无需预留大量的计算资源的情况下将升级前虚拟机迁移到升级后虚拟机,从而实现从升级前虚拟机到升级后虚拟机的迁移。而且,所述热迁移方法还适用于大量虚拟机的批量热迁移,能够有效节省时间成本和资源成本。
作为本公开的第三个方面,提供一种VMM的升级方法。如图9所示,所述升级方法包括:
在步骤S310中,将升级后的VMM部署在宿主机上;
在步骤S320中,在宿主机上同时启动升级前的VMM和升级后的VMM;
在步骤S330中,执行上述的热迁移方法,以将在升级前的VMM上运行的升级前虚拟机迁移到在升级后的VMM上运行的升级虚拟机;
在步骤S340中,删除升级前的VMM。
需要说明的是,现有技术在对虚拟机进行热迁移时,为了确保虚拟机业务对迁移过程无感知,必须将升级前的VMM保存的升级前虚拟机后端设备信息复制到升级后的VMM上,因此,本公开提供的VMM的升级方法当然地包含上述将升级前的VMM保存的升级前虚拟机后端设备信息复制到升级后的VMM上的步骤。
此外,由于升级后虚拟机在服务器内核里的扩展页表EPT初始为空,随着升级后虚拟机的运行,服务器内核会根据和升级前虚拟机一致的MS开始建立升级后虚拟机的EPT,从而形成从GPA到HPA的高速转换。
本公开提供的VMM的升级方法,使用本公开提供的热迁移方法实现了VMM上运行的虚拟机的热迁移,进而实现了VMM的热升级,能够有效节省时间成本和资源成本。
目前,常用的VMM软件包括VMware公司的vSphere、微软Hyper-V、开升级前的QEMU,XEN,KVM等。下面分别以QEMU-KVM和XEN为例,对本公开提供的虚拟机的部署方法、热迁移方法以及VMM的升级方法作进一步说明。
实施例一
本实施例运行在x86服务器,CPU采用Intel(R)Xeon(R)CPU E5-2640,并已开启EPT功能。操作系统运行2.6版本LINUX的内核,以QEMU-KVM作为虚拟化VMM(Hypervisor),同时在上面运行了业务用户正在使用的Window 7系统虚拟机。
用户的虚拟机在升级前的QEMU上正常运行,升级前虚拟机内操作系统(windows7)所用的GPA空间和升级前的QEMU进程的HVA空间通过内核KVM模块维护的kvm_memory_slot数据结构建立映射关系,而HVA空间又通过服务器LINUX内核维护的、包括PTE的多级页表映射到GPA空间的物理内存页上。
在升级后的QEMU上通过KVM创建升级后虚拟机,但不向升级后虚拟机分配实际的物理内存,将升级后虚拟机的VCPU置于暂停状态。
将升级前的QEMU程序的迁移执行线程,通过传输控制协议(TCP,TransmissionControl Protocol)与升级后的QEMU程序的迁移线程建立连接,同步虚拟网卡、virtio等后端设备信息。
将升级前虚拟机的VCPU置于暂停状态。
本公开第一个方面所提供的部署方法中步骤S111a被具体执行为以下步骤:
获取升级前虚拟机HVA空间的起始地址。
本公开第一个方面所提供的部署方法中步骤S111b被具体执行为以下步骤:
通过HVA的起始地址找到内核中该HVA空间对应的虚拟内存空间(VMA,VirtualMemory Area);
根据HVA的起始地址及VMA红黑树,利用内核提供的页表遍历(memory walk)机制,逐级遍历旧升级前虚拟机HVA对应的多级页表。例如,对于本实施例中的x86_64的linux内核,需要依次遍历PGD表、PUD表、PMD表、及最后的PTE表,找到所有HVA内存页的指针(步骤S111b结束)。
本公开第一个方面所提供的部署方法中步骤S111c被具体执行为以下步骤:
创建一个列表将上述升级前虚拟机HVA空间对应的所有页指针按序排列保存。
本公开第一个方面所提供的部署方法中步骤S112a被具体执行为以下步骤:
获取升级后虚拟机的HVA空间入口地址。
本公开第一个方面所提供的部署方法中步骤S112b被具体执行为以下步骤:
通过内核的反向映射匿名页的技术(page_set_anon_rmap)将上述保存的页指针按序计算相对入口地址的偏移后,映射到升级后虚拟机的HVA空间内。
本公开第一个方面所提供的部署方法中步骤S113被具体执行为:创建多级页表。
此时即完成了页表从升级前虚拟机切换到升级后虚拟机。
确认升级后虚拟机与升级前虚拟机的kvm_memory_slot结构中,GPA空间到HVA空间序号对应关系一致。正常由于升级后虚拟机与升级前虚拟机的内存配置一样,初始化过程一样,kvm_memory_slot中的映射关系应当是一致的。该步骤相当于本公开第一方面所提供的步骤S121,可以看出,在此实施方式中,在步骤S110之后执行步骤S121。
在本实施例中,可以按照如下步骤执行本公开第二个方面所提供的热迁移方法:
步骤S210被具体执行为上文中所述的各个步骤;
步骤S220被具体执行为:将升级后虚拟机的VCPU置于运行状态。
由于升级后虚拟机的EPT初始为空表,运行中通过不停访问HVA地址空间,使得KVM模块进入Page Fault流程,根据KVM模块内和升级前虚拟机一致的kvm_memory_slot结构,找出其中的映射信息,逐渐建立EPT新表。
最终升级后虚拟机所有内存页在KVM模块上完成EPT建表并生效,实现从GPA到HPA高速转换。确认升级后虚拟机的正常运行后,删除升级前的QEMU运行进程。
实施例二
本实施例的目的在于尽量缩减虚拟机在页表切换期间VCPU暂停的时间,运行的软硬件环境及QEMU升级前的宿主机、虚拟机状态均和实施例一相同。只有将升级前虚拟机的HPA空间反映射到升级后虚拟机的HVA空间的步骤不同。
本公开第一个方面所提供的部署方法中步骤S112e被具体执行为以下步骤:
将升级后虚拟机VCPU置于运行状态,由于没有向升级后虚拟机的HVA空间分配实际物理内存,因此当升级后虚拟机的HVA空间中某个HVA地址被访存时,内核会产生缺页中断(no_page_fault)。
本公开第一个方面所提供的部署方法中步骤S112f被具体执行为以下步骤:
根据缺页中断所需的缺页地址偏移,在保存的升级前虚拟机HVA空间对应的所有页指针中进行查找,找到对应同样偏移的页的指针,通过内核的反向映射匿名页的技术(page_set_anon_r-map)映射到升级后虚拟机的HVA空间内。
本公开第一个方面所提供的部署方法中步骤S113被具体执行为:
创建该页对应的多级页表。
本公开第一个方面所提供的部署方法中步骤S112g被具体执行为:
保持对升级后虚拟机内存缺页情况及页表切换情况的检查.
本公开第一个方面所提供的部署方法中步骤S112h被具体执行为:
当待切换页数目少于一定阈值时,暂停升级后虚拟机VCPU.
本公开第一个方面所提供的部署方法中步骤S112i被具体执行为:
一次反向映射所有剩余内存到升级后虚拟机HVA空间,并创建多级页表。
在上述缺页并依次切换内存页的过程中,KVM模块也会根据和升级前虚拟机一致的kvm_memory_slot逐渐建立EPT新表。最终升级后虚拟机所有内存页在KVM模块上完成EPT建表并生效,实现从GPA到HPA高速转换。
确认升级后虚拟机的正常运行后,删除升级前的QEMU运行进程。
实施例三
本实施例以XEN作为虚拟化VMM(Hypervisor)软件。
在升级后的XEN hypervisor上创建升级后虚拟机,但不申请实际的HVA内存,将升级后虚拟机VCPU处于暂停状态。
暂停升级前虚拟机VCPU的执行。
本公开第一个方面所提供的部署方法中步骤S111被具体执行为以下步骤:
获取升级前虚拟机的HVA空间入口地址,传入服务器LINUX操作系统内核;
根据HVA的起始地址及VMA红黑树,利用内核提供的memory walk(页表遍历)机制,逐级遍历旧虚拟机HVA对应的多级页表,以x86_64架构的linux内核为例,依次遍历PGD表、PUD表、PMD表、及最后的PTE表,找到所有的HVA内存页指针(步骤S111结束)。
本公开第一个方面所提供的部署方法中步骤S112被具体执行为以下步骤:
通过XEN的TestSetPagePinned()方法,将遍历的HVA对应的内存页打上标记并锁定;
获取升级后虚拟机的HVA空间入口地址。同时遍历页表,通过XEN的PagePinned()方法判断内存页是否打上标记并锁定;
将锁定的页通过map_pages_to_xen映射到升级后虚拟机的HVA空间上(步骤S112结束)。
本公开第一个方面所提供的部署方法中步骤S113被具体执行为以下步骤
创建完善相应的多级页表,作为升级后虚拟机实际的运行内存。通过ClearPagePinned()方法清除锁定标记。
在本实施例中,可以按照如下步骤执行本公开第二个方面所提供的热迁移方法:
步骤S210被具体执行为上文中所述的各个步骤;
步骤S220被具体执行为:将升级后虚拟机VCPU置于运行状态,以在运行中通过不停访问HVA地址空间,自动创建相应的影子页表或EPT页表。
确认升级后虚拟机正常运行后,删除升级前的XEN上的虚拟机进程。
作为本公开的第四个方面,提供一种服务器,所述服务器用作虚拟机的宿主机,所述服务器包括:
存储模块,该存储模块上存储有应用程序;
一个或多个处理器,当所述应用程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现以下方法中的一者:
上述的部署方法;
上述的热迁移方法;
上述的升级方法。
上文已经对本公开提供的部署方法、热迁移方法或升级方法的工作原理及有益效果进行了详细的描述,此处不再赘述。
作为本公开的第五个方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行程序,所述可执行程序被执行时能够实现以下方法中的一者:
上述的部署方法;
上述的热迁移方法;
上述的升级方法。
上文已经对本公开提供的部署方法、热迁移方法或升级方法的工作原理及有益效果进行了详细的描述,此处不再赘述。
其中,计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储介质、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (14)
1.一种虚拟机的部署方法,包括:
根据升级前虚拟机的宿主机虚拟地址HVA空间与所述升级前虚拟机的宿主机物理地址HPA空间之间的映射关系,建立升级后虚拟机的HVA空间与所述升级前虚拟机的HPA空间之间的映射,其中,
所述升级后虚拟机部署在升级后的虚拟机监控器VMM上,且所述升级后虚拟机的内存配置与在升级前的VMM上运行的所述升级前虚拟机的内存配置相同。
2.根据权利要求1所述的部署方法,其中,根据升级前虚拟机的宿主机虚拟地址HVA空间与所述升级前虚拟机的宿主机物理地址HPA空间之间的映射关系,建立升级后虚拟机的HVA空间与所述升级前虚拟机的HPA空间之间的映射的步骤包括:
确定升级前虚拟机的HPA空间中各个物理内存页的页表项的顺序及顺序号;
根据各个所述物理内存页的页表项与所述顺序号的对应关系,将各个所述物理内存页反映射到相应的升级后虚拟机的HVA空间的虚拟内存页上。
3.根据权利要求2所述的部署方法,其中,确定升级前虚拟机的HPA空间中各个物理内存页的页表项的顺序及顺序号的步骤包括:
获取升级前虚拟机的HVA空间的第一入口地址;
确定各个所述物理内存页对应的升级前虚拟机的HVA空间虚拟内存页相对于所述第一入口地址的页地址偏移量;
将所述页地址偏移量的大小顺序确定为各个所述物理内存页的页表项的所述顺序,将所述页地址偏移量确定为对应的物理内存页的页表项的所述顺序号。
4.根据权利要求3所述的部署方法,其中,根据各个所述物理内存页的页表项与所述顺序号的对应关系,将各个所述物理内存页反映射到相应的升级后虚拟机的HVA空间的虚拟内存页上的步骤包括:
获取所述升级后虚拟机的HVA空间的第二入口地址;
按照所述顺序号递增的顺序,以所述第二入口地址为起点,将各个所述物理内存页反映射到所述升级后虚拟机的HVA空间的虚拟内存页上,其中,每一个所述物理内存页对应的所述虚拟内存页相对于所述第二入口地址的页地址偏移量与所述物理内存页的页表项对应的所述顺序号相等。
5.根据权利要求4所述的部署方法,其中,在按照所述顺序号递增的顺序,以所述第二入口地址为起点,将各个所述物理内存页反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的步骤之前,所述部署方法还包括:
向所述升级后的VMM发送信令,以将所述升级后虚拟机的虚拟中央处理器VCPU置于暂停状态。
6.根据权利要求3所述的部署方法,其中,根据各个所述物理内存页的页表项与所述顺序号的对应关系,将各个所述物理内存页反映射到相应的升级后虚拟机的HVA空间的虚拟内存页上的步骤包括:
获取所述升级后虚拟机的HVA空间的第三入口地址;
向所述升级后的VMM发送信令,以将所述升级后虚拟机的VCPU置于运行状态;
根据缺页中断产生的缺页地址偏移量,将所述物理内存页反映射到目标虚拟内存页上,其中,所述目标虚拟内存页为所述升级后虚拟机的HVA空间的虚拟内存页,所述物理内存页的页表项的顺序号与所述缺页地址偏移量相等,且所述目标虚拟内存页的相对于所述第三入口地址的页地址偏移量与所述缺页地址偏移量相等。
7.根据权利要求6所述的部署方法,其中,在根据缺页中断产生的缺页地址偏移量,将所述物理内存页反映射到目标虚拟内存页上的步骤之后,所述部署方法还包括:
判断待反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页的数量是否小于预定阈值;
响应于待反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页的数量小于所述预定阈值,向所述升级后的VMM发送信令,以将所述升级后虚拟机的VCPU置于暂停状态;
将待反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页反映射到所述升级后虚拟机的HVA空间的虚拟内存页上,其中,每一个所述物理内存页对应的所述虚拟内存页相对于所述第三入口地址的页地址偏移量与所述物理内存页的页表项对应的所述顺序号相等。
8.根据权利要求2所述的部署方法,其中,确定各个所述物理内存页的页表项的顺序的步骤包括:
获取各个物理内存页对应的升级前虚拟机的HVA空间的虚拟内存页在所述升级前虚拟机的页框映射图MS中的序号;
将所述序号的大小顺序确定为各个所述物理内存页的页表项的所述顺序,将所述序号确定为对应物理内存页的页表项的所述顺序号。
9.根据权利要求2至8中任意一项所述的部署方法,其中,在根据各个所述物理内存页的页表项与所述顺序号的对应关系,将所述物理内存页反映射到相应的升级后虚拟机的HVA空间的虚拟内存页上的步骤之后,所述部署方法还包括:
为反映射到所述升级后虚拟机的HVA空间的虚拟内存页上的所述物理内存页创建多级页表。
10.根据权利要求1至8中任意一项所述的部署方法,其中,在根据升级前虚拟机的宿主机虚拟地址HVA空间与所述升级前虚拟机的宿主机物理地址HPA空间之间的映射关系,建立升级后虚拟机的HVA空间与所述升级前虚拟机的HPA空间之间的映射的步骤之前,所述部署方法还包括:
判断所述升级后虚拟机的MS与所述升级前虚拟机的MS是否一致;
若不一致,将所述升级前虚拟机的MS复制到所述升级后虚拟机。
11.一种虚拟机的热迁移方法,包括:
执行权利要求1至10任意一项所述的部署方法,以将升级前虚拟机的HPA空间映射到升级后虚拟机的HVA空间;
向升级后的VMM发送信令,以将所述升级后虚拟机的VCPU置于运行状态,其中,所述升级后虚拟机的HPA空间为所述升级前虚拟机的HPA空间。
12.一种VMM的升级方法,包括:
将升级后的VMM部署在宿主机上;
在宿主机上同时启动升级前的VMM和升级后的VMM;
执行权利要求11所述的热迁移方法,以将在升级前的VMM上运行的升级前虚拟机迁移到在升级后的VMM上运行的升级后虚拟机;
删除升级前的VMM。
13.一种服务器,所述服务器用作虚拟机的宿主机,所述服务器包括:
存储模块,该存储模块上存储有应用程序;
一个或多个处理器,当所述应用程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现以下方法中的一者:
权利要求1至10中任意一项所述的部署方法;
权利要求11所述的热迁移方法;
权利要求12所述的升级方法。
14.一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行程序,所述可执行程序被执行时能够实现以下方法中的一者:
权利要求1至10中任意一项所述的部署方法;
权利要求11所述的热迁移方法;
权利要求12所述的升级方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911355638.6A CN113032086A (zh) | 2019-12-25 | 2019-12-25 | 虚拟机部署及热迁移方法、vmm升级方法、服务器 |
EP20905775.1A EP4080358A4 (en) | 2019-12-25 | 2020-12-02 | VIRTUAL MACHINE DEPLOYMENT AND HOT MIGRATION PROCESSES, VMM UPGRADE PROCESS AND SERVER |
PCT/CN2020/133341 WO2021129332A1 (zh) | 2019-12-25 | 2020-12-02 | 虚拟机部署及热迁移方法、vmm升级方法、服务器 |
US17/783,417 US20230009596A1 (en) | 2019-12-25 | 2020-12-02 | Virtual machine deployment and hot-migration methods, vmm upgrade method, and server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911355638.6A CN113032086A (zh) | 2019-12-25 | 2019-12-25 | 虚拟机部署及热迁移方法、vmm升级方法、服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113032086A true CN113032086A (zh) | 2021-06-25 |
Family
ID=76458285
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911355638.6A Pending CN113032086A (zh) | 2019-12-25 | 2019-12-25 | 虚拟机部署及热迁移方法、vmm升级方法、服务器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230009596A1 (zh) |
EP (1) | EP4080358A4 (zh) |
CN (1) | CN113032086A (zh) |
WO (1) | WO2021129332A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391881A (zh) * | 2021-06-28 | 2021-09-14 | 元心信息科技集团有限公司 | 中断的管理方法、装置、电子设备及计算机存储介质 |
CN115061954A (zh) * | 2022-08-18 | 2022-09-16 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434371B (zh) * | 2021-08-26 | 2022-01-25 | 阿里云计算有限公司 | 内存访问信息的采集方法、计算设备及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636831B1 (en) * | 2006-03-31 | 2009-12-22 | Vmware, Inc. | Optimization of reverse mappings for immutable guest physical pages of virtual memories in a virtualized computer system |
TW201201102A (en) * | 2010-06-18 | 2012-01-01 | Inst Information Industry | Resource adjustment methods and systems for virtual machines, and computer program products thereof |
US9183035B2 (en) * | 2013-11-08 | 2015-11-10 | International Business Machines Corporation | Virtual machine migration with swap pages |
CN103942087B (zh) * | 2014-03-31 | 2017-11-17 | 华为技术有限公司 | 虚拟机热迁移方法及相关装置和集群系统 |
WO2017219250A1 (zh) * | 2016-06-21 | 2017-12-28 | 华为技术有限公司 | 一种虚拟机内存的映射方法、装置及数据传输设备 |
US10705867B2 (en) * | 2016-06-22 | 2020-07-07 | Vmware, Inc. | Hypervisor exchange with virtual machines in memory |
US10452430B2 (en) * | 2016-08-29 | 2019-10-22 | Vmware, Inc. | Live migration of virtual computing instances between data centers |
CN107168769B (zh) * | 2017-03-30 | 2020-12-18 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
US11016798B2 (en) * | 2018-06-01 | 2021-05-25 | The Research Foundation for the State University | Multi-hypervisor virtual machines that run on multiple co-located hypervisors |
-
2019
- 2019-12-25 CN CN201911355638.6A patent/CN113032086A/zh active Pending
-
2020
- 2020-12-02 WO PCT/CN2020/133341 patent/WO2021129332A1/zh unknown
- 2020-12-02 US US17/783,417 patent/US20230009596A1/en active Pending
- 2020-12-02 EP EP20905775.1A patent/EP4080358A4/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113391881A (zh) * | 2021-06-28 | 2021-09-14 | 元心信息科技集团有限公司 | 中断的管理方法、装置、电子设备及计算机存储介质 |
CN115061954A (zh) * | 2022-08-18 | 2022-09-16 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
CN115061954B (zh) * | 2022-08-18 | 2022-11-29 | 统信软件技术有限公司 | 一种缺页中断处理方法、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4080358A1 (en) | 2022-10-26 |
US20230009596A1 (en) | 2023-01-12 |
EP4080358A4 (en) | 2023-01-25 |
WO2021129332A1 (zh) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9317279B2 (en) | Virtual machine block substitution | |
US20210349767A1 (en) | Migrating virtual machines between computing environments | |
US9361218B2 (en) | Method of allocating referenced memory pages from a free list | |
US20230009596A1 (en) | Virtual machine deployment and hot-migration methods, vmm upgrade method, and server | |
US20190012110A1 (en) | Information processing apparatus, and control method of information processing system | |
US9330013B2 (en) | Method of cloning data in a memory for a virtual machine, product of computer programs and computer system therewith | |
US7451443B2 (en) | Online computer maintenance utilizing a virtual machine monitor | |
US8793528B2 (en) | Dynamic hypervisor relocation | |
US20160266938A1 (en) | Load balancing function deploying method and apparatus | |
US9558023B2 (en) | Live application mobility from one operating system level to an updated operating system level and applying overlay files to the updated operating system | |
US11188347B2 (en) | Virtual function driver loading method and server using global and local identifiers corresponding to locations of the virtual functions | |
US11809888B2 (en) | Virtual machine memory migration facilitated by persistent memory devices | |
US20210019171A1 (en) | Physical-to-virtual migration method and apparatus, and storage medium | |
CN112328354A (zh) | 虚拟机热迁移方法、装置、电子设备及计算机存储介质 | |
US20210318900A1 (en) | Systems and methods for live update of operating systems and hypervisors within virtualization systems | |
US20220197758A1 (en) | Methods for backup and recovery | |
US20170147501A1 (en) | Post-copy vm migration speedup using free page hinting | |
US20230195533A1 (en) | Prepopulating page tables for memory of workloads during live migrations | |
US10877771B2 (en) | Virtual machine booting using disk metadata | |
CN112241337A (zh) | 用于管理备份数据的方法、设备和计算机程序产品 | |
US11762573B2 (en) | Preserving large pages of memory across live migrations of workloads | |
US11586371B2 (en) | Prepopulating page tables for memory of workloads during live migrations | |
US11093275B2 (en) | Partial surprise removal of a device for virtual machine migration | |
US20230176889A1 (en) | Update of virtual machines using clones | |
US12020053B2 (en) | Exposing untrusted devices to virtual machines |
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 |