CN107643937A - 一种虚拟机监视器升级方法及装置 - Google Patents

一种虚拟机监视器升级方法及装置 Download PDF

Info

Publication number
CN107643937A
CN107643937A CN201610584045.7A CN201610584045A CN107643937A CN 107643937 A CN107643937 A CN 107643937A CN 201610584045 A CN201610584045 A CN 201610584045A CN 107643937 A CN107643937 A CN 107643937A
Authority
CN
China
Prior art keywords
virtual machine
monitor
aku
machine monitor
upgrading
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.)
Granted
Application number
CN201610584045.7A
Other languages
English (en)
Other versions
CN107643937B (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co 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 Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201610584045.7A priority Critical patent/CN107643937B/zh
Publication of CN107643937A publication Critical patent/CN107643937A/zh
Application granted granted Critical
Publication of CN107643937B publication Critical patent/CN107643937B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明实施例提供了一种虚拟机监视器升级方法及装置,方法包括:获得用于升级第一虚拟机监视器的升级包;运行升级包;利用第二虚拟监视器创建第二虚拟机,并将第二虚拟机设置为暂停状态;对第一虚拟机所对应的内容修改日志执行预定拷贝操作;在执行预定拷贝操作过程中,监测剩余需要拷贝的内存信息的数据量是否小于第一阈值,如果是,暂停第一虚拟机,拷贝剩余内存并基于内存文件中当前所存储的内存信息,启动第二虚拟机。应用本发明实施例,解决必须在关闭虚拟机的情况下才能实现虚拟机监视器升级的问题。

Description

一种虚拟机监视器升级方法及装置
技术领域
本发明涉及虚拟化技术领域,特别是涉及一种虚拟机监视器升级方法及装置。
背景技术
目前,通常在物理机上创建虚拟机,以实现物理机资源的合理利用。其中,虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整物理机系统。其中,可以通过虚拟机监视器对建立在物理机上的虚拟机进行创建、销毁、启动、重启、关闭、查看、修改和暂停等操作。当虚拟机监视器出现漏洞时,会影响对虚拟机的创建等操作,因此需要对虚拟机监视器进行升级,以修复漏洞,进而规避漏洞带来的风险。
现有技术中,目前常采用的虚拟机监视器的升级方式均需要关闭所监视的虚拟机后执行升级。尽管现有的虚拟机监视器升级方式能够实现升级,但是由于虚拟机被关闭导致虚拟机所处理业务被中断,会影响业务运行,尤其对于一些不能被中断的业务而言,将造成极坏的影响。
因此,亟需提供一种新虚拟机监视器升级方案,以解决现有技术必须在关闭虚拟机的情况下才能实现虚拟机监视器升级的问题。
发明内容
本发明实施例的目的在于提供一种虚拟机监视器升级方案,以实现在不关闭虚拟机的情况下,完成对虚拟机监视器升级。具体技术方案如下:
第一方面,本发明实施例提供了一种虚拟机监视器升级方法,所述方法可以包括:
获得用于升级第一虚拟机监视器的升级包,其中,所述第一虚拟机监视器运行有第一虚拟机;
运行所述升级包,以安装第二虚拟机监视器;
利用所述第二虚拟监视器创建第二虚拟机,并将所述第二虚拟机设置为暂停状态,其中,所述第二虚拟机与所述第一虚拟机所对应的虚拟资源相同;
对所述第一虚拟机所对应的内容修改日志执行预定拷贝操作,其中,所述内容修改日志记录有所述第一虚拟机所使用/修改的内存信息,所述预定拷贝操作为将所述第一虚拟机所使用/修改的内存信息拷贝至所述第二虚拟机所对应的内存文件中的操作;
在执行所述预定拷贝操作过程中,监测剩余需要拷贝的内存信息的数据量是否小于第一阈值,如果是,暂停所述第一虚拟机,拷贝剩余内存并基于所述内存文件中当前所存储的内存信息,启动所述第二虚拟机。
可选地,在所述启动所述第二虚拟机之后,所述方法还可以包括:
将所述第一虚拟机和所述第一虚拟机监视器关闭。
可选地,所述获得用于升级第一虚拟机监视器的升级包,可以包括:
获得升级第一虚拟机监视器的指令;
响应所述指令,获取用于升级所述第一虚拟机监视器的升级包。
可选地,所述获得用于升级第一虚拟机监视器的升级包,可以包括:
按照预设频率,获取用于升级第一虚拟机监视器的升级包。
可选地,所述获得用于升级第一虚拟机监视器的升级包后,所述方法还可以包括:
将所述升级包存储在掉电非遗失存储区。
可选地,在所述获得用于升级第一虚拟机监视器的升级包后,所述方法还可以包括:
判断所述升级包是否为所述第一虚拟机监视器的最新版本的升级包,若是,执行所述运行所述升级包,以安装第二虚拟机监视器的步骤。
可选地,所述方法还可以包括:
当所述预定拷贝操作执行失败时,运行所述第一虚拟机监视器及所述第一虚拟机,并关闭所述第二虚拟机监视器及所述第二虚拟机。
可选地,所述升级包可以用于修复所述第一虚拟机监视器所存在的漏洞或用于新增所述第一虚拟机监视器的功能。
可选地,所述虚拟资源包括:
网络资源和磁盘资源。
第二方面,本发明实施例提供了一种虚拟机监视器升级装置,所述装置可以包括:获取单元、第一运行单元、创建单元、拷贝单元、检测单元和启动单元;
所述获取单元,用于获得用于升级第一虚拟机监视器的升级包,其中,所述第一虚拟机监视器运行有第一虚拟机;
所述第一运行单元,用于运行所述升级包,以安装第二虚拟机监视器;
所述创建单元,用于利用所述第二虚拟监视器创建第二虚拟机,并将所述第二虚拟机设置为暂停状态,其中,所述第二虚拟机与所述第一虚拟机所对应的虚拟资源相同;
所述拷贝单元,用于对所述第一虚拟机所对应的内容修改日志执行预定拷贝操作,其中,所述内容修改日志记录有所述第一虚拟机所使用/修改的内存信息,所述预定拷贝操作为将所述第一虚拟机所使用/修改的内存信息拷贝至所述第二虚拟机所对应的内存文件中的操作;
所述检测单元,用于在执行所述预定拷贝操作过程中,监测剩余需要拷贝的内存信息的数据量是否小于第一阈值,如果是,触发启动单元;
所述启动单元,用于暂停所述第一虚拟机,拷贝剩余内存并基于所述内存文件中当前所存储的内存信息,启动所述第二虚拟机。
可选地,所述装置还可以包括:关闭单元;
所述关闭单元,用于在启动所述第二虚拟机之后,将所述第一虚拟机和所述第一虚拟机监视器关闭。
可选地,所述获取单元可以包括:第一获取子单元和第二获取子单元;
所述第一获取子单元,用于获得升级第一虚拟机监视器的指令;
所述第二获取子单元,用于响应所述指令,获取用于升级所述第一虚拟机监视器的升级包。
可选地,所述获取单元可以包括:第三获取子单元;
所述第三获取子单元,用于升级包按照预设频率,获取用于升级第一虚拟机监视器的升级包。
可选地,所述装置还可以包括:存储单元;
所述存储单元,用于将所述升级包存储在掉电非遗失存储区。
可选地,所述装置还可以包括:执行单元;
所述执行单元,用于判断所述升级包是否为所述第一虚拟机监视器的最新版本的升级包,若是,执行所述运行所述升级包,以安装第二虚拟机监视器的步骤。
可选地,所述装置还可以包括:第二运行单元;
所述第二运行单元,用于当所述预定拷贝操作执行失败时,运行所述第一虚拟机监视器及所述第一虚拟机,并关闭所述第二虚拟机监视器及所述第二虚拟机。
可选地,所述获取单元所获取的升级包可以用于修复所述第一虚拟机监视器所存在的漏洞或用于新增所述第一虚拟机监视器的功能。
可选地,所述虚拟资源包括:
网络资源和磁盘资源。
在本发明实施例中,当需要对第一虚拟机监视器升级,但是第一虚拟机监视器上运行有第一虚拟机时,运行第一虚拟机监视器的升级包,即利用该升级包启动一个第二虚拟机监视器。并利用该第二虚拟机监视器创建一个第二虚拟机,将该第二虚拟机设置为暂停状态。将第一虚拟机中所修改的内存记录到内存修改日志中,并将该所修改的内存拷贝到该第二虚拟机的内存文件中,以实现第一虚拟机与第二虚拟机的同步。当需要拷贝到第二虚拟机中的内存小于第一阈值时,说明第一虚拟机和第二虚拟机差异并不大,此时暂停第一虚拟机,拷贝剩余内存,并基于所述内存文件中当前所存储的内存信息启动第二虚拟机,实现第一虚拟机向第二虚拟机的迁移,呈现给用户一直未关闭第一虚拟机的感受,提升用户体验。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种虚拟机监视器升级方法示意图;
图2为本发明实施例提供的另一种虚拟机监视器升级方法示意图;
图3为本发明实施例提供的一种升级准备过程的原理示意图;
图4为本发明实施例提供的一种内存拷贝过程的原理示意图;
图5为本发明实施例提供的一种运行状态迁移过程的原理示意图;
图6为本发明实施例提供的一种升级确认过程的原理示意图;
图7为本发明实施例提供的一种虚拟机监视器升级系统结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术问题,本发明实施例提供了一种虚拟机监视器升级方法及系统,以实现在不关闭虚拟机的情况下,完成对虚拟机监视器升级。
下面首先对本发明实施例提供的虚拟机监视器升级方法进行介绍。
本领域技术人员可以理解的是,VMM(Virtual Machine Monitor,虚拟机监视器)是一个系统软件,可以维护多个高效的、隔离的程序环境,该程序环境支持用户直接去访问真实硬件,而这样的程序环境就称为虚拟机,即虚拟机监视器为虚拟机提供访问真实硬件资源的接口。其中,当在物理机上启动并执行虚拟机监视器时,虚拟机监视器会给其所维护的每一台虚拟机分配适量的内存、CPU、网络和硬盘。
需要强调的是,本发明所提供的虚拟机监视器升级方法,适用于任意一台物理机上的虚拟机监视器的升级。并且,本发明实施例所提供的虚拟机监视器升级方法的执行主体可以为虚拟机监视器升级装置,具体的,该虚拟机监视器升级装置可以为专门的用于虚拟机监视器升级的程序软件,也可以为现有程序软件的功能插件,这都是合理的。
如图1所示,本发明实施例提供的虚拟机监视器升级方法,可以包括如下步骤:
S101:获得用于升级第一虚拟机监视器的升级包,其中,该第一虚拟机监视器运行有第一虚拟机;
其中,物理机上的第一虚拟机监视器运行有第一虚拟机,当需要对该第一虚拟机监视器进行升级时,可以首先获得升级该第一虚拟机监视器的升级包,并执行后续的处理步骤。需要强调的是,所谓的第一虚拟机监视器运行有第一虚拟机指:第一虚拟机监视器上的第一虚拟机处于非关闭状态。
另外,可以理解的是,在S101之前,可以判断待升级的第一虚拟机监视器是否运行有第一虚拟机,如果判断结果为是,触发执行本发明实施例所提供的S101~S106;而如果判断结果为否,即第一虚拟机处于关闭状态时,可以直接采用现有的任一升级方式升级该第一虚拟机监视器即可。其中,由于一台虚拟机监视器可以同时监视多台虚拟机,因此,该第一虚拟机监视器运行有的第一虚拟机的数量可以为一台或至少两台。
另外,需要强调的是,本发明实施例中所提及的“第一虚拟机监视器”中的“第二虚拟机监视器”中的“第二”仅仅用于从命名上区分升级前和升级后的虚拟机监视器,并不具有任何限定意义;类似的,“第一虚拟机”中的“第一”和“第二虚拟机”中的“第二”仅仅用于从命名上区分位于升级前的虚拟机监视器中的虚拟机和位于升级后的虚拟机监视器上的虚拟机,并不具有任何限定意义。
其中,在实际应用中,可以从网上下载获得用于升级第一虚拟机监视器的升级包,当然,也可以从本地获得预先下载并缓存的升级包,这都是合理的。
S102:运行该升级包,以安装第二虚拟机监视器;
其中,在获得升级该第一虚拟机监视器的升级包后,可以运行该升级包,实现通过运行该升级包安装第二虚拟机监视器。
可以理解的是,该第二虚拟机监视器为该第一虚拟机监视器的升级版本,即该第二虚拟机监视器相对于该第一虚拟监视器,存在更少的虚拟机监视器漏洞,或者新增了一种或多种虚拟机监视器的功能,当然并不局限于此。
其中,运行该升级包从而安装该第二虚拟机监视的具体实现方式可以采用现有技术中的实现方式,在此不做赘述。
值得注意的是,该升级包为可执行文件,即.EXE文件。
S103:利用该第二虚拟监视器创建第二虚拟机,并将该第二虚拟机设置为暂停状态,其中,该第二虚拟机与该第一虚拟机所对应的虚拟资源相同;
其中,在安装第二虚拟机监视器后,可以利用运行升级包所得到的第二虚拟机监视器创建与第一虚拟机具有相同虚拟资源的第二虚拟机,即在物理机看来,该第一虚拟机和第二虚拟机为同一虚拟机。但是由于正在运行的第一虚拟机所使用/修改的内存信息会发生改变,所以第一虚拟机和第二虚拟机的区别在于第一虚拟机所使用/修改的内存信息。
需要强调的是,该第一虚拟机所对应的虚拟资源的确定过程只要在利用第二虚拟机监视器创建第二虚拟机之前即可。另外,利用该第二虚拟监视器创建第二虚拟机的具体实现方式可以采用现有技术中的任一实现方式,在此不做赘述。
S104:对该第一虚拟机所对应的内容修改日志执行预定拷贝操作,其中,该内容修改日志记录有该第一虚拟机所使用/修改的内存信息,该预定拷贝操作为将该第一虚拟机所使用/修改的内存信息拷贝至该第二虚拟机所对应的内存文件中的操作;
其中,由于第一虚拟机在运行过程中会产生相对于第二虚拟机的修改操作,此时为了保证第一虚拟机和第二虚拟机尽可能的相同,可对第一虚拟机所对应的内容修改日志执行预定拷贝操作,以将记录有该第一虚拟机所使用/修改的内存信息拷贝到第二虚拟机所对应的内存文件中。
可以理解的是,该第二虚拟机所对应的内存文件是指,该第二虚拟机在内存中所要运行的文件。
需要强调的是,该预定拷贝操作包括但并不局限于定时对该内容修改日志执行拷贝操作,也可以为每隔预定时间对该内容修改日志执行拷贝操作。
S105:在执行该预定拷贝操作过程中,监测剩余需要拷贝的内存信息的数据量是否小于第一阈值,如果是,触发S106;如果否,执行S104;
其中,可在执行拷贝记录有该第一虚拟机所使用/修改的内存信息的内容修改日志过程中,实时地或者定时的对剩余需要拷贝的内存信息的数据量进行判断,即判断该剩余需要拷贝的内存日志信息是否小于预设阈值,当确定所拷贝的内存信息的数据量小于第一阈值时,执行暂停第一虚拟机,拷贝剩余内存并基于该内存文件中当前所存储的内存信息,启动该第二虚拟机的步骤;当确定所拷贝的内存信息的数据量大于第一阈值时,继续执行预定拷贝操作。
需要强调的是,该第一阈值可由本领域技术人员根据具体需求进行确定,在此不对该第一阈值进行限定。
S106:暂停所述第一虚拟机,拷贝剩余内存并基于该内存文件中当前所存储的内存信息,启动该第二虚拟机。
其中,当监测到剩余需要拷贝的内存信息的数据量小于第一阈值时,也就是当前第二虚拟机与第一虚拟机的区别在于该小于第一阈值的内存信息。当该第一阈值取得足够小时,也就是剩余需要拷贝的内存足够小,可以认为拷贝剩余内存时间很短。可以暂停第一虚拟机,拷贝剩余内存并基于该内存文件中当前所存储的内存信息,启动该第二虚拟机。这样,第二虚拟机可通过调用其所对应的内存文件进内存运行,并且由于第一虚拟机所处理的业务被转移到第二虚拟机进行处理,即可以给用户产生一种未关闭第一虚拟机即可实现第二虚拟机监视器的升级的感受,提升了用户体验。
在本发明实施例中,当需要对第一虚拟机监视器升级,但是第一虚拟机监视器上运行有第一虚拟机时,运行第一虚拟机监视器的升级包,即利用该升级包启动一个第二虚拟机监视器。并利用该第二虚拟机监视器创建一个第二虚拟机,将该第二虚拟机设置为暂停状态。将第一虚拟机中所修改的内存记录到内存修改日志中,并将该所修改的内存拷贝到该第二虚拟机的内存文件中,以实现第一虚拟机与第二虚拟机的同步。当需要拷贝到第二虚拟机中的内存小于第一阈值时,说明第一虚拟机和第二虚拟机差异并不大,此时暂停所述第一虚拟机,拷贝剩余内存并基于所述内存文件中当前所存储的内存信息启动第二虚拟机,实现第一虚拟机向第二虚拟机的迁移,呈现给用户一直未关闭第一虚拟机的感受,提升用户体验。
下面结合图2对本发明实施例提供的另一种虚拟机监视器升级方法进行说明。
相对于图1所示的虚拟机监视器升级方法而言,如图2所示,本实施例所提供的另一种虚拟机监视器升级方法,在步骤S106之后,还可以包括如下步骤:
S107:将该第一虚拟机和该第一虚拟机监视器关闭。
可以理解的是,在该种实现方式中,由于第二虚拟机监视器是第一虚拟机监视器的升级版本,并且由于基于内存文件中当前所存储的内存信息启动的第二虚拟机与第一虚拟机的差别很小,在对第二虚拟机成功启动后,可将第一虚拟机和第一虚拟机监视器关闭,减少物理机内存的占用。
另外,在关闭该第一虚拟机和第一虚拟机监视器后,可以将运行该第一虚拟机监视器的相关文件删除,扩大物理机可利用的存储空间。
可选地,该获得用于升级第一虚拟机监视器的升级包,可以包括:
获得升级第一虚拟机监视器的指令;
响应该指令,获取用于升级该第一虚拟机监视器的升级包。
可以理解的是,在该种实现方式中,在获取用于升级该第一虚拟机监视器的升级包之前,接收获得该第一虚拟机监视器升级的指令,并响应该指令获取用于升级该第一虚拟机监视器的升级包;当未接收到升级该第一虚拟机监视器的指令时,不获取用于升级该第一虚拟机监视器的升级包,以此保证升级过程的可控性。
可选地,该获得用于升级第一虚拟机监视器的升级包,可以包括:
按照预设频率,获取用于升级第一虚拟机监视器的升级包。
可以理解的是,在该种实现方式中,可以按照预设频率,例如每隔一天或每隔一个月,获取一次用于升级该第一虚拟机监视器的升级包,也就是说,根据具体需要,可定时对第一虚拟机监视器进行升级,以保证在物理机上所运行的虚拟机监视器为能够实现按时更新。
可选地,该获得用于升级第一虚拟机监视器的升级包后,该方法还包括:
将该升级包存储在掉电非遗失存储区。
可以理解的是,在该种实现方式中,将该升级包存储在掉电非遗失存储区,可避免在获取该用于升级第一虚拟机监视器的升级包的过程中发生掉电时,所获取的该升级包丢失的情况发生。
可选地,在该获得用于升级第一虚拟机监视器的升级包后,该方法还可以包括:
判断该升级包是否为该第一虚拟机监视器的最新版本的升级包,若是,执行该运行该升级包,以安装第二虚拟机监视器的步骤。
可以理解的是,在该种实现方式中,为了避免对该第一虚拟机监视器进行盲目地多次升级,可在获得升级包后,判断所获得的升级包是否为升级该第一虚拟机监视器的最新版本,如果是,则运行该升级包,以安装第二虚拟机监视器;如果否,删除该升级包。
当然,也可以在获取升级包的过程中,判断将要获取的升级包是否为升级该第一虚拟机监视器的最新版本,如果是,则下载升级包,以安装第二虚拟机监视器;如果否,则重新寻找最新版本的升级包。
其中,可以通过物理机所携带的控制器API(Application ProgrammingInterface,应用程序编程接口)获得与该第一虚拟机监视器标识相对应的升级包。
可选地,本发明实施例提供的虚拟机监视器升级方法,还可以包括:
当该预定拷贝操作执行失败时,运行该第一虚拟机监视器及该第一虚拟机,并关闭该第二虚拟机监视器及该第二虚拟机。
可以理解的是,在该种实现方式在中,当预定拷贝操作执行失败时,其中,当所拷贝的内容存在丢失,即拷贝不完全时,可认为预定拷贝操作执行失败;当在拷贝过程中,拷贝操作跳出,即中断拷贝操作时,同样可认为预定拷贝操作失败,当然并不局限于此。
也就是说,当拷贝操作执行失败时,不能保证能给用户产生第一虚拟机一直在运行的效果,即不能实现在不关闭第一虚拟机的情况下升级第一虚拟机监视器,则此时继续运行该第一虚拟机监视器及该第一虚拟机,并关闭第二虚拟机及第二虚拟机监视器,即不对第一虚拟机监视器进行升级,以保证第一虚拟机所处理的业务不被中断,保证该业务的正常运行。
可选地,该升级包用于修复该第一虚拟机监视器所存在的漏洞或用于新增该第一虚拟机监视器的功能。
可以理解的是,在该种实现方式中,该升级包可以用来修复第一虚拟机监视器所存在的漏洞或用于新增该第一虚拟机监视器的功能,当然并不局限于此。
可选地,该升级包可以用于优化迭代该第一虚拟机监视器的功能,其中,迭代是指软件开发迭代模式,即新功能不断叠加。
可选地,该虚拟资源包括:
网络资源和磁盘资源。
可以理解的是,在该种实现方式中,网络资源可以包括但并不局限于MAC(MediaAccess Control,媒体访问控制地址)地址和IP(Internet Protocol Address,互联网协议地址)地址。其中,第一虚拟机和第二虚拟机的网络资源相同是指第一虚拟机和第二虚拟机的MAC地址和IP地址等网络标识相同。
另外,磁盘资源是指只读存储器ROM和随机存储器RAM等存储器。其中,第一虚拟机和第二虚拟机的磁盘资源相同是指所对应的存储器的存储寻址空间相同,即存储器编码地址的范围相同。
下面结合图3至图6对本发明实施例提供的虚拟机监视器升级方法中的升级准备过程、内存拷贝过程、运行状态迁移过程和升级确认过程作进一步说明。
如图3所示,在对第一虚拟机监视器升级前(箭头左边):物理机H上正在运行有第一虚拟机监视器,第一虚拟机监视器上运行有第一虚拟机,即第一虚拟机处于运行状态,第一虚拟机上运行有用户业务。当需要对物理机H上正在的第一虚拟机监视器进行升级时,对第一虚拟机监视器进行升级的升级准备过程(箭头右边):利用相对于第一虚拟机监视器来说为升级版本的第二虚拟机监视器启动第二虚拟机。并由于所启动的第二虚拟机和第一虚拟机对应相同的虚拟资源,因此在关闭第一虚拟机之前,将第二虚拟机为暂停状态。
在完成升级准备后,需要对第一虚拟机监视器进行升级,升级过程包括:内存拷贝和运行状态迁移两个过程。
其中,内存拷贝过程如图4所示:1表示获取第一虚拟机的内存修改信息,并将内存修改信息记录到内存修改日志中,此时第一虚拟机仍处于运行状态;2表示将第一虚拟机所使用/修改的内存信息拷贝到第二虚拟机中,此时第二虚拟机处于暂停状态;3表示当监测到内存修改日志中剩余需要拷贝的内存信息较多时,继续执行内存拷贝操作;4表示当监测到内存修改日志中剩余需要拷贝的内存信息小于第一阈值时,暂停第一虚拟机,完成剩余内存的拷贝,并执行运行状态迁移。
运行状态迁移过程如图5所示,在内存拷贝过程完成内存信息拷贝之后,暂停第一虚拟机监视器,运行第二虚拟机,即此时第一虚拟机处于暂停状态,第二虚拟机处于运行状态。其中,第二虚拟机上运行有用户业务。其中,运行在第一虚拟机上的用户业务与运行在第二虚拟机上的用户业务为同一用户业务。
如图6所示,确认第二虚拟机正常运行后,关闭第一虚拟机监视器,并回收第一虚拟机监视器和第一虚拟机所占用的内存空间。此时物理机H上运行有第二虚拟机监视器,第二虚拟机监视器上运行有第二虚拟机,第二虚拟机上运行有用户业务。
需要强调的是,当确认第二虚拟机未能正常运行,关闭第二虚拟机监视器,恢复运行第一虚拟机,并回收第二虚拟机监视器和第二虚拟机所占用的内存空间。
相应于方法实施例,本发明还提供了一种虚拟机监视器升级装置,下面对该虚拟机监视器升级装置进行介绍。
如图7所示,本发明提供的虚拟机监视器升级装置,可以包括:获取单元701、第一运行单元702、创建单元703、拷贝单元704、检测单元705和启动单元706;
该获取单元701,用于获得用于升级第一虚拟机监视器的升级包,其中,该第一虚拟机监视器运行有第一虚拟机;
该第一运行单元702,用于运行该升级包,以安装第二虚拟机监视器;
创建703,用于利用该第二虚拟监视器创建第二虚拟机,并将该第二虚拟机设置为暂停状态,其中,该第二虚拟机与该第一虚拟机所对应的虚拟资源相同;
该拷贝单元704,用于对该第一虚拟机所对应的内容修改日志执行预定拷贝操作,其中,该内容修改日志记录有该第一虚拟机所使用/修改的内存信息,该预定拷贝操作为将该第一虚拟机所使用/修改的内存信息拷贝至该第二虚拟机所对应的内存文件中的操作;
该检测单元705,用于在执行该预定拷贝操作过程中,监测剩余需要拷贝的内存信息的数据量是否小于第一阈值,如果是,触发启动单元406;
该启动单元706,用于暂停所述第一虚拟机,拷贝剩余内存并基于所述内存文件中当前所存储的内存信息,启动所述第二虚拟机。
在本发明实施例中,当需要对第一虚拟机监视器升级,但是第一虚拟机监视器上运行有第一虚拟机时,运行第一虚拟机监视器的升级包,即利用该升级包启动一个第二虚拟机监视器。并利用该第二虚拟机监视器创建一个第二虚拟机,将该第二虚拟机设置为暂停状态。将第一虚拟机中所修改的内存记录到内存修改日志中,并将该所修改的内存拷贝到该第二虚拟机的内存文件中,以实现第一虚拟机与第二虚拟机的同步。当需要拷贝到第二虚拟机中的内存小于第一阈值时,说明第一虚拟机和第二虚拟机差异并不大,此时暂停第一虚拟机,拷贝剩余内存,并基于所述内存文件中当前所存储的内存信息启动第二虚拟机,实现第一虚拟机向第二虚拟机的迁移,呈现给用户一直未关闭第一虚拟机的感受,提升用户体验。
可选地,作为本发明的一种实施例,该装置还包括:关闭单元;
该关闭单元,用于在启动该第二虚拟机之后,将该第一虚拟机和该第一虚拟机监视器关闭。
可选地,作为本发明的一种实施例,该获取单元701,可以包括:第一获取子单元和第二获取子单元;
该第一获取子单元,用于获得升级第一虚拟机监视器的指令;
该第二获取子单元,用于响应该指令,获取用于升级该第一虚拟机监视器的升级包。
可选地,作为本发明的另一种实施例,该获取单元701,可以包括:第三获取子单元;
该第三获取子单元,用于升级包按照预设频率,获取用于升级第一虚拟机监视器的升级包。
可选地,本发明实施例提供的虚拟机监视器升级装置,还可以包括:存储单元;
该存储单元,用于将该升级包存储在掉电非遗失存储区。
可选地,该装置还包括:执行单元;
该执行单元,用于判断该升级包是否为该第一虚拟机监视器的最新版本的升级包,若是,执行该运行该升级包,以安装第二虚拟机监视器的步骤。
可选地,本发明实施例提供的虚拟机监视器升级装置,还可以包括:第二运行单元;
该第二运行单元,用于当该预定拷贝操作执行失败时,运行该第一虚拟机监视器及该第一虚拟机,并关闭该第二虚拟机监视器及该第二虚拟机。
可选地,该获取单元701所获取的升级包用于修复该第一虚拟机监视器所存在的漏洞或用于新增该第一虚拟机监视器的功能。
可选地,该虚拟资源包括:
网络资源和磁盘资源。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (18)

1.一种虚拟机监视器升级方法,其特征在于,包括:
获得用于升级第一虚拟机监视器的升级包,其中,所述第一虚拟机监视器运行有第一虚拟机;
运行所述升级包,以安装第二虚拟机监视器;
利用所述第二虚拟监视器创建第二虚拟机,并将所述第二虚拟机设置为暂停状态,其中,所述第二虚拟机与所述第一虚拟机所对应的虚拟资源相同;
对所述第一虚拟机所对应的内容修改日志执行预定拷贝操作,其中,所述内容修改日志记录有所述第一虚拟机所使用/修改的内存信息,所述预定拷贝操作为将所述第一虚拟机所使用/修改的内存信息拷贝至所述第二虚拟机所对应的内存文件中的操作;
在执行所述预定拷贝操作过程中,监测剩余需要拷贝的内存信息的数据量是否小于第一阈值,如果是,暂停所述第一虚拟机,拷贝剩余内存并基于所述内存文件中当前所存储的内存信息,启动所述第二虚拟机。
2.根据权利要求1所述的方法,其特征在于,在所述启动所述第二虚拟机之后,所述方法还包括:
将所述第一虚拟机和所述第一虚拟机监视器关闭。
3.根据权利要求1所述的方法,其特征在于,所述获得用于升级第一虚拟机监视器的升级包,包括:
获得升级第一虚拟机监视器的指令;
响应所述指令,获取用于升级所述第一虚拟机监视器的升级包。
4.根据权利要求1所述的方法,其特征在于,所述获得用于升级第一虚拟机监视器的升级包,包括:
按照预设频率,获取用于升级第一虚拟机监视器的升级包。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述获得用于升级第一虚拟机监视器的升级包后,所述方法还包括:
将所述升级包存储在掉电非遗失存储区。
6.根据权利要求1-4任一项所述的方法,其特征在于,在所述获得用于升级第一虚拟机监视器的升级包后,所述方法还包括:
判断所述升级包是否为所述第一虚拟机监视器的最新版本的升级包,若是,执行所述运行所述升级包,以安装第二虚拟机监视器的步骤。
7.根据权利要求1所述的方法,其特征在于,还包括:
当所述预定拷贝操作执行失败时,运行所述第一虚拟机监视器及所述第一虚拟机,并关闭所述第二虚拟机监视器及所述第二虚拟机。
8.根据权利要求1-4任一项所述的方法,其特征在于,所述升级包用于修复所述第一虚拟机监视器所存在的漏洞或用于新增所述第一虚拟机监视器的功能。
9.根据权利要求1所述的方法,其特征在于,所述虚拟资源包括:
网络资源和磁盘资源。
10.一种虚拟机监视器升级装置,其特征在于,包括:
获取单元,用于获得用于升级第一虚拟机监视器的升级包,其中,所述第一虚拟机监视器运行有第一虚拟机;
第一运行单元,用于运行所述升级包,以安装第二虚拟机监视器;
创建单元,用于利用所述第二虚拟监视器创建第二虚拟机,并将所述第二虚拟机设置为暂停状态,其中,所述第二虚拟机与所述第一虚拟机所对应的虚拟资源相同;
拷贝单元,用于对所述第一虚拟机所对应的内容修改日志执行预定拷贝操作,其中,所述内容修改日志记录有所述第一虚拟机所使用/修改的内存信息,所述预定拷贝操作为将所述第一虚拟机所使用/修改的内存信息拷贝至所述第二虚拟机所对应的内存文件中的操作;
检测单元,用于在执行所述预定拷贝操作过程中,监测剩余需要拷贝的内存信息的数据量是否小于第一阈值,如果是,触发启动单元;
所述启动单元,用于暂停所述第一虚拟机,拷贝剩余内存并基于所述内存文件中当前所存储的内存信息,启动所述第二虚拟机。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
关闭单元,用于在启动所述第二虚拟机之后,将所述第一虚拟机和所述第一虚拟机监视器关闭。
12.根据权利要求10所述的装置,其特征在于,所述获取单元,包括:
第一获取子单元,用于获得升级第一虚拟机监视器的指令;
第二获取子单元,用于响应所述指令,获取用于升级所述第一虚拟机监视器的升级包。
13.根据权利要求10所述的装置,其特征在于,所述获取单元,包括:
第三获取子单元,用于升级包按照预设频率,获取用于升级第一虚拟机监视器的升级包。
14.根据权利要求10-13任一项所述的装置,其特征在于,所述装置还包括:
存储单元,用于将所述升级包存储在掉电非遗失存储区。
15.根据权利要求10-13任一项所述的装置,其特征在于,所述装置还包括:
执行单元,用于判断所述升级包是否为所述第一虚拟机监视器的最新版本的升级包,若是,执行所述运行所述升级包,以安装第二虚拟机监视器的步骤。
16.根据权利要求10所述的装置,其特征在于,所述装置还包括:
第二运行单元,用于当所述预定拷贝操作执行失败时,运行所述第一虚拟机监视器及所述第一虚拟机,并关闭所述第二虚拟机监视器及所述第二虚拟机。
17.根据权利要求10-13任一项所述的装置,其特征在于,所述获取单元所获取的升级包用于修复所述第一虚拟机监视器所存在的漏洞或用于新增所述第一虚拟机监视器的功能。
18.根据权利要求10所述的装置,其特征在于,所述虚拟资源包括:
网络资源和磁盘资源。
CN201610584045.7A 2016-07-22 2016-07-22 一种虚拟机监视器升级方法及装置 Active CN107643937B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610584045.7A CN107643937B (zh) 2016-07-22 2016-07-22 一种虚拟机监视器升级方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610584045.7A CN107643937B (zh) 2016-07-22 2016-07-22 一种虚拟机监视器升级方法及装置

Publications (2)

Publication Number Publication Date
CN107643937A true CN107643937A (zh) 2018-01-30
CN107643937B CN107643937B (zh) 2020-07-03

Family

ID=61109428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610584045.7A Active CN107643937B (zh) 2016-07-22 2016-07-22 一种虚拟机监视器升级方法及装置

Country Status (1)

Country Link
CN (1) CN107643937B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117162A (zh) * 2018-08-29 2019-01-01 武汉光庭信息技术股份有限公司 一种基于Hypervisor的多系统升级方法
CN109324820A (zh) * 2018-11-01 2019-02-12 郑州云海信息技术有限公司 一种宿主机的更新方法、装置、设备及介质
CN110968392A (zh) * 2018-09-30 2020-04-07 华为技术有限公司 一种升级虚拟化模拟器的方法和装置
CN116302006A (zh) * 2023-05-18 2023-06-23 珠海星云智联科技有限公司 模拟器的热升级方法及相关装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727331A (zh) * 2008-10-24 2010-06-09 国际商业机器公司 升级活动虚拟机的客户操作系统的方法和设备
US20120198431A1 (en) * 2011-01-30 2012-08-02 Lin Qiangmin Method for upgrading hypervisor component and computer system
WO2012152153A1 (zh) * 2011-05-10 2012-11-15 中兴通讯股份有限公司 虚拟机无缝迁移的方法、管理器及系统
CN103136030A (zh) * 2011-11-24 2013-06-05 鸿富锦精密工业(深圳)有限公司 虚拟机管理系统及方法
CN103577249A (zh) * 2013-11-13 2014-02-12 中国科学院计算技术研究所 虚拟机在线迁移方法与系统
CN104102527A (zh) * 2014-07-10 2014-10-15 国云科技股份有限公司 一种虚拟机软件更新方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727331A (zh) * 2008-10-24 2010-06-09 国际商业机器公司 升级活动虚拟机的客户操作系统的方法和设备
US20120198431A1 (en) * 2011-01-30 2012-08-02 Lin Qiangmin Method for upgrading hypervisor component and computer system
WO2012152153A1 (zh) * 2011-05-10 2012-11-15 中兴通讯股份有限公司 虚拟机无缝迁移的方法、管理器及系统
CN103136030A (zh) * 2011-11-24 2013-06-05 鸿富锦精密工业(深圳)有限公司 虚拟机管理系统及方法
CN103577249A (zh) * 2013-11-13 2014-02-12 中国科学院计算技术研究所 虚拟机在线迁移方法与系统
CN104102527A (zh) * 2014-07-10 2014-10-15 国云科技股份有限公司 一种虚拟机软件更新方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117162A (zh) * 2018-08-29 2019-01-01 武汉光庭信息技术股份有限公司 一种基于Hypervisor的多系统升级方法
CN109117162B (zh) * 2018-08-29 2021-07-16 武汉光庭信息技术股份有限公司 一种基于Hypervisor的多系统升级方法
CN110968392A (zh) * 2018-09-30 2020-04-07 华为技术有限公司 一种升级虚拟化模拟器的方法和装置
US20210089345A1 (en) * 2018-09-30 2021-03-25 Huawei Technologies Co., Ltd. Method and Apparatus for Virtual Machine Emulator Upgrading Virtualization Emulator
EP3783481A4 (en) * 2018-09-30 2021-08-04 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR UPGRADING A VIRTUALIZED EMULATOR
US11875174B2 (en) * 2018-09-30 2024-01-16 Huawei Technologies Co., Ltd. Method and apparatus for virtual machine emulator upgrading virtualization emulator
CN110968392B (zh) * 2018-09-30 2024-04-12 华为技术有限公司 一种升级虚拟化模拟器的方法和装置
CN109324820A (zh) * 2018-11-01 2019-02-12 郑州云海信息技术有限公司 一种宿主机的更新方法、装置、设备及介质
CN109324820B (zh) * 2018-11-01 2021-12-17 郑州云海信息技术有限公司 一种宿主机的更新方法、装置、设备及介质
CN116302006A (zh) * 2023-05-18 2023-06-23 珠海星云智联科技有限公司 模拟器的热升级方法及相关装置
CN116302006B (zh) * 2023-05-18 2023-08-18 珠海星云智联科技有限公司 模拟器的热升级方法及相关装置

Also Published As

Publication number Publication date
CN107643937B (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
JP4288292B2 (ja) オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置
EP1974264B1 (en) Method and system for sharing files among different virtual machine images
TWI575362B (zh) 備份方法、環境更新預先檢測方法及其系統
EP3036623B1 (en) Method and apparatus for modifying a computer program in a trusted manner
JP5444368B2 (ja) アプリケーション復元ポイント
CN107643937A (zh) 一种虚拟机监视器升级方法及装置
US20040117414A1 (en) Method and system for automatically updating operating systems
CN102236764B (zh) 用于Android系统的抵御桌面信息攻击的方法和监控系统
CN104679534B (zh) 系统应用安装包加载处理方法、装置及终端
US20110214111A1 (en) Systems and methods for detecting computing processes requiring reinitialization after a software package update
US20140047553A1 (en) Method and apparatus for data security reading
CN105204902B (zh) 一种虚拟机的安全补丁升级方法,及装置
EP3761173A1 (en) Physical-to-virtual migration method and apparatus, and storage medium
CN105786538A (zh) 基于安卓系统的软件升级方法和装置
CN103299270A (zh) 运行时指令重组方法及装置
US9330266B2 (en) Safe data storage method and device
WO2015105486A1 (en) Dynamically applying a software patch to a computer program
CN107656765A (zh) 一种设备初始化的方法、系统及终端设备
CN105550573B (zh) 拦截捆绑软件的方法和装置
CN109670296A (zh) 一种移除iOS备份密码的方法和装置
CN111625296B (zh) 一种通过构建代码副本保护程序的方法
CN103713937B (zh) 变电站终端系统运行方法
CN114996955A (zh) 一种云原生混沌工程实验的靶场环境构建方法及装置
TWI467491B (zh) 用於使用協調物件之修正式電腦結構之方法、系統與電腦程式產品
CN107301072A (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