虚拟机热升级方法、主机设备及存储介质技术

技术编号:29788702 阅读:11 留言:0更新日期:2021-08-24 18:07
本申请实施例提供一种虚拟机热升级方法、主机设备及存储介质。在本申请实施例中,针对虚拟机面临的软件型升级需求,通过升级虚拟机进程的方式在同一台主机设备上完成虚拟机的热升级,由于不涉及主机设备之间的迁移,可节约热升级消耗的资源,有利于提高热升级效率;另外,通过为初始进程占用的内存添加锁定标记,以锁定该内存不被释放,使得在重新创建新进程后可以将该内存分配给新进程,实现内存共享,而无需进行内存拷贝,只需进行运行状态的迁移,可进一步节约资源,减少热升级所消耗的时间,进一步提高热升级效率。

【技术实现步骤摘要】
虚拟机热升级方法、主机设备及存储介质
本申请涉及计算机
,尤其涉及一种虚拟机热升级方法、主机设备及存储介质。
技术介绍
虚拟机(VirtualMachine,VM),一种资源隔离手段,能够在计算机中实现计算内存、存储、网络等资源隔离。与物理机一样,虚拟机同样需要升级。热迁移是一种可在用户无感知的情况下,将虚拟机的资源从一台主机中迁移到另一台主机的热升级方案。然而,在虚拟机热迁移过程中,需要将虚拟机内存中的数据从一台主机迁移到另一台主机上,其耗费资源较多,总迁移时间长,热升级效率低。
技术实现思路
本申请的多个方面提供一种虚拟机热升级方法、主机设备及存储介质,用以减少虚拟机热升级所耗费的资源,提高热升级效率。本申请实施例提供一种虚拟机热升级方法,包括:在虚拟机热升级过程中,控制所述虚拟机在主机上运行的初始进程进入暂停状态;采集所述初始进程的状态数据进行保存,并为所述初始进程占用的内存添加锁定标记,以锁定所述内存不被释放;由所述初始进程在同一主机上创建所述虚拟机对应的目标进程,并将带有所述锁定标记的内存分配给所述目标进程,以实现内存共享;根据所述虚拟机对应的升级文件执行所述目标进程,并由所述目标进程在执行过程中基于所保存的状态数据恢复所述虚拟机的状态。本申请实施例还提供一种主机设备,包括:存储器和处理器,以及运行在由所述存储器和处理器构建的隔离环境中的虚拟机;所述存储器,用于存储计算机程序;所述处理器,与所述存储器耦合,用于执行所述计算机程序,以用于:在虚拟机热升级过程中,控制所述虚拟机在所述主机设备上运行的初始进程进入暂停状态;采集所述初始进程的状态数据进行保存,并为所述初始进程占用的内存添加锁定标记,以锁定所述内存不被释放;由所述初始进程在所述主机设备上创建所述虚拟机对应的目标进程,并将带有所述锁定标记的内存分配给所述目标进程,以实现内存共享;根据所述虚拟机对应的升级文件执行所述目标进程,并由所述目标进程在执行过程中基于所保存的状态数据恢复所述虚拟机的状态。本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器实现本申请实施例提供的虚拟机热升级方法中的步骤。在本申请实施例中,针对虚拟机面临的软件型升级需求,通过升级虚拟机进程的方式在同一台主机设备上完成虚拟机的热升级,由于不涉及主机设备之间的迁移,可节约热升级消耗的资源,有利于提高热升级效率;另外,通过为初始进程占用的内存添加锁定标记,以锁定该内存不被释放,使得在重新创建新进程后可以将该内存分配给新进程,实现内存共享,而无需进行内存拷贝,只需进行运行状态的迁移,可进一步节约资源,减少热升级所消耗的时间,进一步提高热升级效率。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1a为本申请示例性实施例提供的一种VM热升级方法的逻辑框图;图1b为本申请示例性实施例提供的另一种VM热升级方法的逻辑框图;图1c为本申请示例性实施例提供的一种VM热升级方法的流程示意图;图1d为本申请示例性实施例提供的另一种VM热升级方法的流程示意图;图1e为本申请示例性实施例提供的又一种VM热升级方法的流程示意图;图1f为本申请示例性实施例提供的又一种VM热升级方法的流程示意图;图2为本申请示例性实施例提供的由VMM控制基于LinuxKVM构建的VM进行热升级的过程示意图;图3为本申请示例性实施例提供的一种主机设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。VM热升级是指在用户无感知VM服务被暂停的情况下,对VM进行在线升级的过程。在实际应用中,可能因为打补丁或发布新版本引起VM热升级,也可能因为VM所在主机设备的硬件损坏引起VM热升级。对于主机设备的硬件损坏引起VM热升级的情况,可称为硬件型升级需求,这类热升级需要采用热迁移的方式,将VM从当前所在主机设备上迁移到另一台主机设备上。当然,对于因为打补丁或发布新版本引起VM热升级的情况,可称为软件型升级需求,这类热升级也可以采用热迁移的方式。但是,热迁移方式存在以下缺陷:1、热迁移过程中需要迁移大量内存数据,耗费资源多;2、热迁移过程中,还是需要暂停VM的服务,宕机时间长;3、由于热迁移的数据量较大,总体迁移时间较长。其中,对于软件型升级需求引起的VM热升级,其任务相对比较轻量,采用热迁移的方式虽然可行,但热升级代价较大,并不合适。另外,考虑到因为打补丁或发布新版本引起VM热升级的概率,要远高于因为VM所在主机设备的硬件损坏引起VM热升级的概率。因此,本申请实施例针对VM面临的软件型升级需求,提供一种新的VM热升级方案,即通过升级虚拟机进程的方式在同一台主机设备上完成虚拟机的热升级,由于不涉及主机设备之间的迁移,可节约热升级消耗的资源,有利于提高热升级效率;另外,通过为初始进程占用的内存添加锁定标记,以锁定该内存不被释放,使得在重新创建新进程后可以将该内存分配给新进程,实现内存共享,而无需进行内存拷贝,只需进行运行状态的迁移,可进一步节约资源,减少热升级所消耗的时间,进一步提高热升级效率。以下结合附图,详细说明本申请各实施例提供的技术方案。图1a为本申请示例性实施例提供的一种VM热升级方法的逻辑框图;图1b为本申请示例性实施例提供的另一种VM热升级方法的逻辑框图;图1c为本申请示例性实施例提供的一种VM热升级方法的流程示意图。参考图1a-图1c,本申请实施例提供的VM热升级方法包括以下步骤:11、在VM热升级过程中,控制VM在主机上运行的初始进程进入暂停状态。13、采集初始进程的状态数据进行保存,并为初始进程占用的内存添加锁定标记,以锁定所述内存不被释放。15、由初始进程在同一主机上创建VM对应的目标进程,并将带有锁定标记的内存分配给目标进程,以实现内存共享。16、根据VM对应的升级文件执行目标进程,并由目标进程在执行过程中基于所保存的状态数据恢复VM的状态。在本实施例中,同一主机100上可以部署有一个或多个VM300,在图1a中,以同一主机100上部署有多个VM300为例进行图示,各VM300的运行环境相互隔离。在本实施例中,并不限定承载VM300的主机100的设备形态,例如可以是智能手机、笔记本电脑、台式电脑或平板电脑等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。如图1a所示,根据初始文件创建VM300对应的初始进程301,执行初始进程301可实现VM300的各种功能。其本文档来自技高网...

【技术保护点】
1.一种虚拟机热升级方法,其特征在于,包括:/n在虚拟机热升级过程中,控制所述虚拟机在主机上运行的初始进程进入暂停状态;/n采集所述初始进程的状态数据进行保存,并为所述初始进程占用的内存添加锁定标记,以锁定所述内存不被释放;/n由所述初始进程在同一主机上创建所述虚拟机对应的目标进程,并将带有所述锁定标记的内存分配给所述目标进程,以实现内存共享;/n根据所述虚拟机对应的升级文件执行所述目标进程,并由所述目标进程在执行过程中基于所保存的状态数据恢复所述虚拟机的状态。/n

【技术特征摘要】
1.一种虚拟机热升级方法,其特征在于,包括:
在虚拟机热升级过程中,控制所述虚拟机在主机上运行的初始进程进入暂停状态;
采集所述初始进程的状态数据进行保存,并为所述初始进程占用的内存添加锁定标记,以锁定所述内存不被释放;
由所述初始进程在同一主机上创建所述虚拟机对应的目标进程,并将带有所述锁定标记的内存分配给所述目标进程,以实现内存共享;
根据所述虚拟机对应的升级文件执行所述目标进程,并由所述目标进程在执行过程中基于所保存的状态数据恢复所述虚拟机的状态。


2.根据权利要求1所述的方法,其特征在于,还包括:
向所述初始进程同步所述目标进程的执行状态,并在所述目标进程执行成功后关闭所述初始进程。


3.根据权利要求1所述的方法,其特征在于,在控制所述虚拟机在主机上运行的初始进程进入暂停状态之前,还包括:
根据所述虚拟机当前的运行状态,判断是否适合对所述虚拟机进行热升级;
若是,则执行控制所述虚拟机在主机上运行的初始进程进入暂停状态的操作;
若否,则等待第一指定时间后,继续执行根据所述虚拟机当前的运行状态,判断是否适合对所述虚拟机进行热升级的操作。


4.根据权利要求3所述的方法,其特征在于,根据所述虚拟机当前的运行状态,判断是否适合对所述虚拟机进行热升级,包括:
判断所述虚拟机当前是否正处于启动状态;
若是,确定不适合对所述虚拟机进行热升级;
若否,确定适合对所述虚拟机进行热升级。


5.根据权利要求1所述的方法,其特征在于,在采集所述初始进程的状态数据进行保存之前,还包括:
判断所述虚拟机是否还有未完成的IO操作;
若否,则执行保存所述初始进程的状态数据的操作;
若是,则等待未完成的IO操作在第二指定时间内完成后,或者在所述第二指定时间结束后,执行保存所述初始进程的状态数据的操作。


6.根据权利要求1所述的方法,其特征在于,控制所述虚拟机在主机上运行的初始进程进入暂停状态,包括:
暂停所述初始进程中所有虚拟处理器线程的执行,并在所有虚拟处理器线程在内核虚拟机接口上返回后,确定所述初始进程进入暂停状态。


7.根据权利要求6所述的方法,其特征在于,所述方法由虚拟机监视器执行,则采集所述初始进程的状态数据进行保存,包括:
采集所述虚拟处理器线程的状态、所述虚拟机的状态以及所述虚拟机监视器的状态进行保存。


8.根据权利要求1所述的方法,其特征在于,在创建所述虚拟机对应的目标进程之前,还包括:为所述初始进程访问的资源添加保留标记,以保留所述资源不被销毁;
相应地,在恢复所述虚拟机的状态之后,还包括:由所述目标进程直接访问带有所述保留标记的资源。


9.根据权利要求1-8任一项所述的方法,其特征在于,在创建所述虚拟机对应的目标进程之前,还包括:
结合所述状态数据涉及的数据类型序列化所述状态数据,以得到序列化后的状态数据。


10.根据权利要求9所述的方法,其特征在于,由所述目标进程在执行过程中基于所保存的状态数据恢复所述虚拟机的状态,包括:
由所述目标进程在执行过程中反序列化所述序列化后的状态数据,并基于反序列化出的状态数据恢复所述虚拟机的状态。


11.根据权利要求10所述的方法,其特征在于,结合所述状态数据涉及的数据类型序列化所述状态数据,以得到序列化后的状态数据,包括:
若所述状态数据涉及目标编程语言从第三方库中引入的目标数据类型,则生成与所述目标数据类型包含的字段相同的影子数据类型;
从所述目标数据类型对应的内存中拷贝各字段的值并赋值给所述影子数据类型中的相同字段,以得到数据类型为影子数据类型的状态数据...

【专利技术属性】
技术研发人员:朱延海王磊
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1