CN108268302A - 实现设备启动的方法和装置 - Google Patents
实现设备启动的方法和装置 Download PDFInfo
- Publication number
- CN108268302A CN108268302A CN201611265943.2A CN201611265943A CN108268302A CN 108268302 A CN108268302 A CN 108268302A CN 201611265943 A CN201611265943 A CN 201611265943A CN 108268302 A CN108268302 A CN 108268302A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- operating system
- state
- virtual
- writeable
- 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
Links
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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种实现设备启动的方法和装置,方法包括:设备上电启动且执行引导加载程序之后,加载虚拟机监控程序;通过虚拟机监控程序加载虚拟机的状态镜像,并读取备份文件,备份文件为创建状态镜像时虚拟机的操作系统的虚拟磁盘中的可写系统配置文件;根据备份文件与最后一次保存的虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复虚拟机的操作系统的状态;恢复虚拟机的操作系统已暂停的系统服务,完成虚拟机的操作系统的启动。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种采用虚拟化实现设备启动的方法和装置。
背景技术
安卓(Android)系统已广泛应用于各种智能设备中,如智能手机、智能电视等。启动速度对智能设备的使用者来说,是一个重要的体验。一般的Android设备启动流程的启动速度不是很快,例如Android智能手机启动一般要20秒以上。
为提升用户体验,需要对Android设备启动速度进行优化,现有技术中主要有以下两种优化方案。
一种优化方案为休眠(Hibernate)或快照技术。将Android设备正在运行的系统制作成快照,下次启动该Android设备时直接从快照恢复系统,减少内核加载和应用启动等方面的时间,从而达到提升启动速度的目的。但是该优化方案为了恢复系统,必须在关机或重启之前制作休眠镜像,加长了关机时间,也无法实现快速重启。另外,该优化方案不能应用于系统卡慢或系统崩溃(crash)重启的情况,如果制作镜像时系统已经出问题(如卡慢或crash),恢复后的系统仍然会是卡慢,而在系统crash情况下,甚至无法制作休眠镜像。
另一种优化方案为虚拟机快照技术。虚拟机监控程序(例如VMM)制作虚拟机操作系统(Operating System)的状态镜像,在设备上电启动后,先启动虚拟机监控程序,由虚拟机监控程序加载虚拟机OS的状态镜像,从而将系统运行起来。但是该优化方案只能恢复到虚拟机快照制作时的状态,不能恢复到最新系统状态,影响系统功能和用户体验。
发明内容
本发明实施例提供了一种采用虚拟化实现设备启动的方法和装置,由于根据创建状态镜像时虚拟机的操作系统的虚拟磁盘中的可写系统配置文件与最后一次保存的虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,确定所述虚拟磁盘中的可写系统配置文件,即使虚拟机的操作系统能够恢复到最新系统状态,解决了现有利用虚拟机快照技术的启动速度优化方案只能恢复到虚拟机快照制作时的状态,不能恢复到最新系统状态的问题。
第一方面,本发明实施例提供了一种采用虚拟化实现设备启动的方法,所述方法包括:
设备上电启动且执行引导加载程序之后,加载虚拟机监控程序;
所述设备通过所述虚拟机监控程序加载虚拟机的状态镜像,并读取备份文件,所述备份文件为创建所述状态镜像时所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件;
所述设备根据所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述虚拟机的操作系统的状态;
所述设备恢复所述虚拟机的操作系统已暂停的系统服务,完成所述虚拟机的操作系统的启动。
上述方法中,在设备上电启动后,先加载虚拟机监控程序,由虚拟机监控程序加载虚拟机的状态镜像,然后恢复虚拟机的操作系统的状态,再继续暂停的操作系统服务后,从而启动整个系统。由于根据创建状态镜像时虚拟机的操作系统的虚拟磁盘中的可写系统配置文件与最后一次保存的虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复虚拟机的操作系统的状态,使虚拟机的操作系统能够恢复到最新状态。
其中,最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件中记录的数据,即为当前可获取到的所述虚拟机的操作系统的状态。
需要说明的是,上述方法可以在设备除了首次上电外的任一次上电启动后执行,也可以在设定条件下的上电启动后执行,如设备故障重启后,或者设备卡慢或crash恢复后启动。
在一种可能的实施方式中,所述方法还包括:
所述设备首次上电启动且执行完所述引导加载程序后,加载所述虚拟机监控程序;
所述设备通过所述虚拟机监控程序启动虚拟机和所述虚拟机的操作系统;
在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,所述设备通过所述虚拟机监控程序创建所述虚拟机的状态镜像。
上述实施方式中,由于在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,通过所述虚拟机监控程序创建所述虚拟机的状态镜像,实现对所述虚拟机的部分状态进行镜像,相比于现有技术中在虚拟机的操作系统完全启动后制作虚拟机的状态镜像,所创建的虚拟机的状态镜像文件更小,减少了镜像文件对系统资源的占用,同时也提高了恢复镜像文件时的速度。
在一种可能的实施方式中,在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,还包括:
所述设备暂停所述虚拟机的操作系统的系统服务,保存所述备份文件。
在一种可能的实施方式中,所述设备根据所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述虚拟机的操作系统的状态,包括:
所述设备判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件相同时,所述设备根据所述备份文件恢复所述虚拟机操作系统的状态;或者
所述设备判定出最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件无法读取时,所述设备根据所述备份文件恢复所述虚拟机操作系统的状态;或者
所述设备判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件不同时,所述设备根据所述最后一次保存的所述可写系统配置文件恢复所述虚拟机的操作系统的状态。
在一种可能的实施方式中,所述方法还包括:
任一虚拟机重启后,所述设备通过所述虚拟机监控程序加载重启的虚拟机的状态镜像,并读取所述备份文件;
所述设备根据所述备份文件与最后一次保存的所述重启的虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述重启的虚拟机的的操作系统的状态;
所述设备恢复所述虚拟机的操作系统已暂停的系统服务,完成所述操作系统的重启。
在虚拟机重启后,通过虚拟机监控程序加载虚拟机的状态镜像,然后恢复上述虚拟机的操作系统的状态,再恢复Android系统的系统服务,从而能够快速恢复或启动整个操作系统。
第二方面,提供了一种创建虚拟机的状态镜像的方法,包括:
所述设备首次上电启动且执行完所述引导加载程序后,加载所述虚拟机监控程序;
所述设备通过所述虚拟机监控程序启动虚拟机和所述虚拟机的操作系统;
在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,所述设备通过所述虚拟机监控程序创建所述虚拟机的状态镜像。
上述实施方式中,由于在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,通过所述虚拟机监控程序创建所述虚拟机的状态镜像,实现对所述虚拟机的部分状态进行镜像,相比于现有技术中在虚拟机的操作系统完全启动后制作虚拟机的状态镜像,所创建的虚拟机的状态镜像文件更小,减少了镜像文件对系统资源的占用,同时也提高了恢复镜像文件时的速度。
在一种可能的实施方式中,在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,还包括:
所述设备暂停所述虚拟机的操作系统的系统服务,保存所述备份文件。
第三方面,提供了一种计算机可读存储介质,其中存储有可执行的程序代码,该程序代码用以实现第一方面所述的方法。
第四方面,提供了一种计算机可读存储介质,其中存储有可执行的程序代码,该程序代码用以实现第二方面所述的方法。
第五方面,提供了一种采用虚拟化实现设备启动的装置,所述装置包括:
虚拟机监控程序加载模块,用于在上电启动且执行引导加载程序之后,加载虚拟机监控程序;
状态镜像加载模块,用于通过所述虚拟机监控程序加载虚拟机的状态镜像,并读取备份文件,所述备份文件为创建所述状态镜像时所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件;
状态恢复模块,用于根据所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述虚拟机的操作系统的状态;
系统服务恢复模块,用于恢复所述虚拟机的操作系统已暂停的系统服务,完成所述虚拟机的操作系统的启动。
在一种可能的实施方式中,所述装置还包括:启动模块和状态镜像创建模块;其中:
所述虚拟机监控程序加载模块还用于:在首次上电启动且执行完所述引导加载程序后,加载所述虚拟机监控程序;
所述启动模块用于:通过所述虚拟机监控程序启动虚拟机和所述虚拟机的操作系统;
所述状态镜像创建模块用于:在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,通过所述虚拟机监控程序创建所述虚拟机的状态镜像。
在一种可能的实施方式中,所述装置还包括:
备份文件保存模块,用于在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,暂停所述虚拟机的操作系统的系统服务,保存所述备份文件。
在一种可能的实施方式中,所述状态恢复模块具体用于:
判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件相同时,根据所述备份文件恢复所述虚拟机操作系统的状态;或者
判定出最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件无法读取时,根据所述备份文件恢复所述虚拟机操作系统的状态;或者
判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件不同时,根据所述最后一次保存的所述可写系统配置文件恢复所述虚拟机的操作系统的状态。
在一种可能的实施方式中,所述状态镜像加载模块还用于:在任一虚拟机重启后,通过所述虚拟机监控程序加载重启的虚拟机的状态镜像,并读取所述备份文件;
所述状态恢复模块还用于:根据所述备份文件与最后一次保存的所述重启的虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述重启的虚拟机的操作系统的状态;
所述系统服务恢复模块还用于:恢复所述虚拟机的操作系统已暂停的系统服务,完成所述操作系统的重启。
第六方面,提供了一种计算机设备,包括:处理器、输入接口、输出接口、以及存储器,其中:所述处理器读取所述存储器中的程序,执行第一方面所述的方法。
第七方面,提供了一种计算机设备,包括:处理器、输入接口、输出接口、以及存储器,其中:所述处理器读取所述存储器中的程序,执行第二方面所述的方法。
附图说明
图1为Android设备启动流程示意图;
图2为通过Hibernate或快照技术的优化方案的流程示意图;
图3为利用虚拟机快照技术的优化方案的流程示意图;
图4为本发明实施例提供的一种计算机设备的系统架构示意图;
图5为本发明实施例提供的一种实现设备启动的方法的流程示意图;
图6为本发明实施例提供的一种虚拟机状态镜像的制作方法的流程示意图;
图7为本发明实施例提供的一种故障恢复/快速启动的方法的流程示意图
图8为本发明实施例提供的一种实现设备启动的装置的示意图;
图9为本发明实施例提供的一种计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例提供的技术方案进行清楚地描述。
图1为一般的Android设备(其他操作系统的设备启动类似)的启动流程。如图1所示,首先系统上电(APPLY POWER),然后执行上电自检(POST PROCESS),接着执行引导程序(EXECUTE BOOT LOADER),接着加载内核(LOAD KERNEL),接着执行INIT进程(INITPROCESS)完成用户态程序的启动,最后加载控制台程序并进入用户操作界面(LOADCONSOLE)。这样启动速度不是很快,如果系统中安装的应用比较多的话,INIT PROCESS过程需要的时间就更长,导致启动时间会更长。
图2为利用休眠或快照技术实现的优化启动方案。如图2所示,首先应用上电(APPLY POWER),然后POST PROCESS,接着执行引导程序加载(EXECUTE BOOT LOADER),接着加载内核(LOAD KERNEL),接着恢复系统(RESUME),最后加载控制台程序(LOAD CONSOLE)。该优化方案利用Hibernate技术,将正在运行的系统暂停(suspend)后,把当前系统内存状态保存为镜像,在系统上电启动后,由BOOT LOADER或KERNEL恢复内存镜像,并由KERNEL执行RESUME流程将系统运行起来。但是该方案导致关机时间长或重启慢,且关机时制作的镜像不能保证系统是干净和正常的。
图3为利用虚拟机快照技术的优化启动方案。如图3所示,,首先应用上电(APPLYPOWER),然后POST PROCESS,接着执行引导程序加载(EXECUTE BOOT LOADER),接着加载虚拟机监控程序(LOAD虚拟机监控程序),接着加载OS镜像(LOAD OS IMAGE),最后加载控制台程序(LOAD CONSOLE)。该优化方案只能恢复到虚拟机快照制作时的状态,不能恢复到最新系统状态,影响系统功能和用户体验。
为此,本发明实施例提供一种设备启动方法,该方法可以一定程度上解决上述方案存在的问题。
如图4所示,本发明实施例提供的计算机设备(简称为设备)中包含硬件层(Hardware),一个虚拟机监视器(Virtual Machine Monitor,VMM)和在该VMM上运行的虚拟机(Virtual Machine,VM)1和VM2。硬件层里包括物理硬件资源,例如物理处理器、物理内存等;虚拟机监控程序为一种虚拟机管理装置;该设备作为虚拟机的宿主机运行有宿主操作系统,VM1和VM2内部又运行有虚拟机操作系统(或称之为客户操作系统,guest OS)。应用本发明实施例提供的装置或方法,VM1可以快速重启或恢复成VM1’。
需要说明的是,图4的虚拟化架构仅是举例说明,在其他实施例中,虚拟化设备还可以采用其它类型的虚拟化架构,例如Xen等。根据虚拟化架构的不同,虚拟机监视程序作为实现虚拟机管理的功能模块,其部署位置可能是不一样的,并不以图4为限。
如图4所示,虚拟机状态保存/恢复模块用于保存和恢复虚拟机的状态,虚拟机OS备份/恢复模块用于保存VM内部的操作系统和应用状态。虚拟机OS更新模块触发虚拟机操作系统的备份和恢复动作。通过VM内部的故障检测模块,VMM内部的虚拟机故障监控模块可以快速恢复故障的VM。
本发明实施例不限定VM的操作系统,可应用于各种操作系统,如安卓(Android)操作系统,苹果操作系统,Linux操作系统等。
图5所示实施例中,以安卓系统为例,提供了一种虚拟机状态镜像的制作方法,应用于具有虚拟机的设备中。示例性的,该虚拟机的操作系统为安卓系统。
S51、设备首次上电。
S52、执行上电自检,并加载BOOT LOADER程序。
S53、执行引导加载程序。
S54、加载VMM。
S55、启动虚拟机的操作系统,即安卓系统。
具体的,通过所述VMM启动虚拟机和所述虚拟机的操作系统。
S56、暂停所述虚拟机的操作系统的系统服务。
具体的,在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,暂停所述虚拟机的操作系统的系统服务,以使无法对所述虚拟机的操作系统的可写系统配置文件进行写操作,确保对可写配置文件的修改都保存到备份文件中。
S57、保存安卓系统的状态,即保存备份文件,其中,所述备份文件为当前虚拟机的虚拟磁盘中的可写系统配置文件。
该步骤可以通过图4中虚拟OS备份/恢复模块实现。
S58、VMM创建VM的状态镜像。
该步骤可以通过图4中虚拟机状态保存/恢复模块实现。
具体的,在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,通过所述VMM创建所述虚拟机的状态镜像,即通过所述VMM读取当前虚拟机的虚拟内存中的所有内容并保存到磁盘文件中,状态镜像中包含当前虚拟机内存中的所有内容。
步骤S58和步骤S57的顺序可以调整。
本实施例中,在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前的一种可能的实现为:在所述虚拟机的操作系统的系统服务启动之后,Android AMS(Activity Manager Service)发出BOOT_COMPLETED广播通知应用程序启动之前。
本实施例中,由于在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,通虚拟机监控程序创建所述虚拟机的状态镜像,实现对所述虚拟机的部分状态进行镜像,相比于现有技术中在虚拟机的操作系统完全启动后制作虚拟机的状态镜像,本实施例创建的虚拟机的状态镜像文件更小,减少了镜像文件对系统资源的占用,同时也提高了恢复镜像文件时的速度。所述虚拟机在从状态镜像恢复后需要恢复Android系统配置的变化,因此,状态镜像创建的时间越早,那么需要恢复的可写系统配置文件变化也越少,相比于操作系统完全启动后再创建镜像,所需恢复的配置文件会大大减少,降低了恢复操作系统的最新状态的难度,缩短了恢复操作系统的最新状态所消耗的时间。
图6所示的实施例中提供了一种利用前述实施例生成的虚拟机的状态镜像实现设备快速启动的方法。
S61、设备上电。
S62、执行上电自检,并加载BOOT LOADER程序。
S63、执行引导加载程序。
S64、加载VMM。
S65、加载虚拟机的状态镜像。
具体的,通过所述VMM加载虚拟机的状态镜像。具体的,读取备份文件,即将所述备份文件写入所述虚拟机的虚拟磁盘中,所述备份文件为创建所述状态镜像时所述虚拟机的虚拟磁盘中的可写系统配置文件,亦即前述实施例步骤S57保存的备份文件。
由于所述备份文件是创建所述状态镜像时所述虚拟机的虚拟磁盘中的可写系统配置文件,在加载虚拟机的状态镜像时,读取所述备份文件执行操作系统的启动过程,可以保持操作系统的一致性。
该步骤可以通过图4中虚拟机状态保存/恢复模块实现。
S66、恢复安卓系统的状态。
具体的,根据读取的所述备份文件与最后一次保存的所述虚拟机的虚拟磁盘中的可写系统配置文件,恢复安卓系统的状态,从而使所述虚拟机的操作系统恢复到最新的状态。
该步骤可以通过图4中虚拟OS备份/恢复模块实现。
由于在虚拟机的操作系统启动之后,用户可能会对所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件进行更改,每次更改后都会保存所述可写系统配置文件,当所述虚拟机重启或关机时,所保存的可写系统配置文件即为最后一次保存的可写系统配置文件。加载虚拟机的状态镜像时,为了保持所述虚拟机的操作系统的一致性,读取的是创建所述状态镜像时虚拟磁盘中的可写系统配置文件,即所述备份文件,为了使所述虚拟机的操作系统恢复到最新的状态,可以比较一下所述备份文件与最后一次保存的可写系统配置文件是否一致,根据该比较结果恢复所述虚拟机的操作系统的状态。
以Android系统为例,可写系统配置文件可以是系统设置文件settings.db、用户信息文件accounts.db、property配置文件等。
需要说明的是,不同操作系统的磁盘中的可写系统配置文件可能不同,并且同一操作系统不同版本下,磁盘中的可写系统配置文件也有可能不同,这里不再一一举例说明。
S67、恢复安卓系统的系统服务。
S68、加载控制台程序,从而完成设备的启动。
本实施例中,在设备上电启动后,先加载VMM,由VMM加载虚拟机的状态镜像,然后恢复最新Android系统状态的变化,再继续暂停的Android系统服务后,从而启动整个系统。
由于根据创建状态镜像时虚拟机的虚拟磁盘中的可写系统配置文件与最后一次保存的可写系统配置文件,确定恢复操作系统所需的可写系统配置文件,能够确保虚拟机的操作系统恢复到最新系统状态。
本实施例中,根据所述备份文件与最后一次保存的可写系统配置文件,确定所述虚拟磁盘中的可写系统配置文件,包括:
判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件相同时,可认为所述虚拟机的虚拟磁盘中的可写系统配置文件未发生变化,此时,所述备份文件中的数据即为所述虚拟机的操作系统的最新系统状态;或者
判定出最后一次保存的可写系统配置文件无法读取时,确定所述备份文件为所述虚拟磁盘中的可写系统配置文件,此时,由于所述虚拟机的虚拟磁盘中的可写系统配置文件已损坏,因此可认为所述备份文件中的数据即为所述虚拟机的操作系统的最新系统状态;或者
判定出所述备份文件与最后一次保存的可写系统配置文件不同时,可认为所述虚拟机的虚拟磁盘中的可写系统配置文件发生了变化,此时,将最后一次保存的可写系统配置文件写入所述虚拟磁盘中,以恢复所述虚拟机的操作系统的状态。
图7所示实施例中,以安卓系统为例,提供了一种故障恢复/快速启动的方法,包括:
S71、虚拟机重启或崩溃重启。
虚拟机重启的原因很多,具体可以是图4中故障检测模块检测到故障或虚拟机崩溃之后引发的重启。
S72、加载虚拟机的状态镜像。本实施例中假设虚拟机重启时,VMM还是正常运行的。
具体的,通过VMM加载虚拟机的状态镜像,读取备份文件,所述备份文件为创建所述状态镜像时所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件。
S73、恢复安卓系统的状态。
具体的,比较所述备份文件与最后一次保存的所述虚拟机的虚拟磁盘中的可写系统配置文件(即所述虚拟机的操作系统出现故障时刻时虚拟磁盘中的可写系统配置文件),若内容一致,则所述备份文件中的数据即为所述虚拟机的操作系统的最新系统状态;若内容不一致,则将所述虚拟机的操作系统出现故障时刻时虚拟磁盘的可写系统配置文件写入所述虚拟磁盘中,以同步所述虚拟机的操作系统的最新系统状态;
S74、恢复安卓系统服务。
S75、加载控制台程序,从而完成设备的启动。
本实施例中,在虚拟机重启后,通过虚拟机监控程序加载虚拟机的状态镜像,然后恢复Android系统的状态,再恢复Android系统的系统服务,从而快速恢复或启动整个操作系统。
上述方法处理流程可以用软件程序实现,该软件程序可以存储在存储介质中,当存储的软件程序被一个或多个处理器调用时,执行上述方法步骤。
本发明实施例提供的方法可以通过图4提供的装置或类似装置来实现。这里提供另一种实现方式,该实现方式如图8所示,为本发明实施例提供的另一种设备启动装置80的逻辑模块划分示意图。
虚拟机监控程序加载模块81,用于在上电启动且执行引导加载程序之后,加载虚拟机监控程序。
状态镜像加载模块82,用于通过所述虚拟机监控程序加载虚拟机的状态镜像,并读取备份文件,所述备份文件为创建所述状态镜像时所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件。
状态恢复模块83,用于根据所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述虚拟机的操作系统的状态。
系统服务恢复模块84,用于恢复所述虚拟机的操作系统已暂停的系统服务,完成所述虚拟机的操作系统的启动。
在一种可能的实施方式中,所述装置还包括:启动模块85和状态镜像创建模块86。其中:
所述虚拟机监控程序加载模块81还用于:在首次上电启动且执行完所述引导加载程序后,加载所述虚拟机监控程序。
所述启动模块85用于:通过所述虚拟机监控程序启动虚拟机和所述虚拟机的操作系统。
所述状态镜像创建模块86用于:在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,通过所述虚拟机监控程序创建所述虚拟机的状态镜像。
在一种可能的实施方式中,所述装置还包括:
备份文件保存模块87,用于在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,暂停所述虚拟机的操作系统的系统服务,保存所述备份文件。
在一种可能的实施方式中,所述状态恢复模块83具体用于:
判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件相同时,根据所述备份文件恢复所述虚拟机操作系统的状态;或者
判定出最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件无法读取时,根据所述备份文件恢复所述虚拟机操作系统的状态;或者
判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件不同时,根据所述最后一次保存的所述可写系统配置文件恢复所述虚拟机的操作系统的状态。
在一种可能的实施方式中,所述状态镜像加载模块82还用于:在任一虚拟机重启后,通过所述虚拟机监控程序加载重启的虚拟机的状态镜像,并读取所述备份文件;
所述状态恢复模块83还用于:根据所述备份文件与最后一次保存的所述重启的虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述重启的虚拟机的操作系统的状态;
所述系统服务恢复模块84还用于:恢复所述虚拟机的操作系统已暂停的系统服务,完成所述操作系统的重启。
本发明实施例提供了一种计算机设备900,如图9所示,包括:处理器91、输入接口92、输出接口93、存储器94和系统总线95;其中:
处理器91用于读取存储器94中的程序执行前述任意一个实施例所述的方法。
存储器94包括内存和硬盘,可以存储处理器91在执行操作时所使用的数据。输入接口92用于在处理器91的控制下读入数据,例如键盘或鼠标或触摸输入装置,输出接口93在处理器91的控制下输出数据,例如显示屏。
总线架构可以包括任意数量的互联的总线和桥,具体由处理器91代表的一个或多个处理器和存储器94代表的内存和硬盘的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种实现设备启动的方法,其特征在于,所述方法包括:
设备上电启动且执行引导加载程序之后,加载虚拟机监控程序;
所述设备通过所述虚拟机监控程序加载虚拟机的状态镜像,并读取备份文件,所述备份文件为创建所述状态镜像时所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件;
所述设备根据所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述虚拟机的操作系统的状态;
所述设备恢复所述虚拟机的操作系统已暂停的系统服务,完成所述虚拟机的操作系统的启动。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述设备首次上电启动且执行完所述引导加载程序后,加载所述虚拟机监控程序;
所述设备通过所述虚拟机监控程序启动虚拟机和所述虚拟机的操作系统;
在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,所述设备通过所述虚拟机监控程序创建所述虚拟机的状态镜像。
3.如权利要求2所述的方法,其特征在于,在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,还包括:
所述设备暂停所述虚拟机的操作系统的系统服务,保存所述备份文件。
4.如权利要求3所述的方法,其特征在于,所述设备根据所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述虚拟机的操作系统的状态,包括:
所述设备判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件相同时,所述设备根据所述备份文件恢复所述虚拟机操作系统的状态;或者
所述设备判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件不同时,所述设备根据所述最后一次保存的所述可写系统配置文件恢复所述虚拟机的操作系统的状态。
5.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
任一虚拟机重启后,所述设备通过所述虚拟机监控程序加载重启的虚拟机的状态镜像,并读取所述备份文件;
所述设备根据所述备份文件与最后一次保存的所述重启的虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述重启的虚拟机的操作系统的状态;
所述设备恢复所述虚拟机的操作系统已暂停的系统服务,完成所述操作系统的重启。
6.一种实现设备启动的装置,其特征在于,所述装置包括:
虚拟机监控程序加载模块,用于在上电启动且执行引导加载程序之后,加载虚拟机监控程序;
状态镜像加载模块,用于通过所述虚拟机监控程序加载虚拟机的状态镜像,并读取备份文件,所述备份文件为创建所述状态镜像时所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件;
状态恢复模块,用于根据所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述虚拟机的操作系统的状态;
系统服务恢复模块,用于恢复所述虚拟机的操作系统已暂停的系统服务,完成所述虚拟机的操作系统的启动。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:启动模块和状态镜像创建模块;其中:
所述虚拟机监控程序加载模块还用于:在首次上电启动且执行完所述引导加载程序后,加载所述虚拟机监控程序;
所述启动模块用于:通过所述虚拟机监控程序启动虚拟机和所述虚拟机的操作系统;
所述状态镜像创建模块用于:在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,通过所述虚拟机监控程序创建所述虚拟机的状态镜像。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
备份文件保存模块,用于在所述虚拟机的操作系统的系统服务启动之后,且所述虚拟机的部分或全部应用程序启动之前,暂停所述虚拟机的操作系统的系统服务,保存所述备份文件。
9.如权利要求8所述的装置,其特征在于,所述状态恢复模块具体用于:
判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件相同时,根据所述备份文件恢复所述虚拟机操作系统的状态;或者
判定出所述备份文件与最后一次保存的所述虚拟机的操作系统的虚拟磁盘中的可写系统配置文件不同时,根据所述最后一次保存的所述可写系统配置文件恢复所述虚拟机的操作系统的状态。
10.如权利要求6-9任一项所述的装置,其特征在于,
所述状态镜像加载模块还用于:在任一虚拟机重启后,通过所述虚拟机监控程序加载重启的虚拟机的状态镜像,并读取所述备份文件;
所述状态恢复模块还用于:根据所述备份文件与最后一次保存的所述重启的虚拟机的操作系统的虚拟磁盘中的可写系统配置文件,恢复所述重启的虚拟机的操作系统的状态;
所述系统服务恢复模块还用于:恢复所述虚拟机的操作系统已暂停的系统服务,完成所述操作系统的重启。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611265943.2A CN108268302B (zh) | 2016-12-30 | 2016-12-30 | 实现设备启动的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611265943.2A CN108268302B (zh) | 2016-12-30 | 2016-12-30 | 实现设备启动的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108268302A true CN108268302A (zh) | 2018-07-10 |
CN108268302B CN108268302B (zh) | 2020-12-04 |
Family
ID=62770162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611265943.2A Active CN108268302B (zh) | 2016-12-30 | 2016-12-30 | 实现设备启动的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108268302B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857466A (zh) * | 2018-11-29 | 2019-06-07 | 新华三技术有限公司 | Bios配置方法、装置、服务器及计算机可读存储介质 |
CN111090546A (zh) * | 2019-12-13 | 2020-05-01 | 苏州浪潮智能科技有限公司 | 一种操作系统重启方法、装置、设备及可读存储介质 |
CN111124728A (zh) * | 2019-12-12 | 2020-05-08 | 加弘科技咨询(上海)有限公司 | 业务自动恢复方法、系统、可读存储介质及服务器 |
CN111427721A (zh) * | 2020-03-05 | 2020-07-17 | 杭州宏杉科技股份有限公司 | 异常恢复方法及装置 |
CN112685141A (zh) * | 2021-03-12 | 2021-04-20 | 北京易捷思达科技发展有限公司 | 虚拟机启动方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541686A (zh) * | 2011-11-29 | 2012-07-04 | 中标软件有限公司 | 一种使用虚拟机来实现系统的备份以及灾难恢复的方法 |
CN103299278A (zh) * | 2010-11-14 | 2013-09-11 | 博科通迅系统有限公司 | 通过广域网的虚拟机和应用移动 |
CN103853595A (zh) * | 2012-11-29 | 2014-06-11 | 国际商业机器公司 | 用于替换虚拟机盘的方法和系统 |
CN105302661A (zh) * | 2014-06-04 | 2016-02-03 | 北京云端时代科技有限公司 | 一种实现虚拟化管理平台高可用的系统和方法 |
-
2016
- 2016-12-30 CN CN201611265943.2A patent/CN108268302B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103299278A (zh) * | 2010-11-14 | 2013-09-11 | 博科通迅系统有限公司 | 通过广域网的虚拟机和应用移动 |
CN102541686A (zh) * | 2011-11-29 | 2012-07-04 | 中标软件有限公司 | 一种使用虚拟机来实现系统的备份以及灾难恢复的方法 |
CN103853595A (zh) * | 2012-11-29 | 2014-06-11 | 国际商业机器公司 | 用于替换虚拟机盘的方法和系统 |
CN105302661A (zh) * | 2014-06-04 | 2016-02-03 | 北京云端时代科技有限公司 | 一种实现虚拟化管理平台高可用的系统和方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857466A (zh) * | 2018-11-29 | 2019-06-07 | 新华三技术有限公司 | Bios配置方法、装置、服务器及计算机可读存储介质 |
CN111124728A (zh) * | 2019-12-12 | 2020-05-08 | 加弘科技咨询(上海)有限公司 | 业务自动恢复方法、系统、可读存储介质及服务器 |
CN111124728B (zh) * | 2019-12-12 | 2024-02-23 | 加弘科技咨询(上海)有限公司 | 业务自动恢复方法、系统、可读存储介质及服务器 |
CN111090546A (zh) * | 2019-12-13 | 2020-05-01 | 苏州浪潮智能科技有限公司 | 一种操作系统重启方法、装置、设备及可读存储介质 |
CN111090546B (zh) * | 2019-12-13 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种操作系统重启方法、装置、设备及可读存储介质 |
CN111427721A (zh) * | 2020-03-05 | 2020-07-17 | 杭州宏杉科技股份有限公司 | 异常恢复方法及装置 |
CN111427721B (zh) * | 2020-03-05 | 2023-04-28 | 杭州宏杉科技股份有限公司 | 异常恢复方法及装置 |
CN112685141A (zh) * | 2021-03-12 | 2021-04-20 | 北京易捷思达科技发展有限公司 | 虚拟机启动方法、装置、设备和存储介质 |
CN112685141B (zh) * | 2021-03-12 | 2021-09-21 | 北京易捷思达科技发展有限公司 | 虚拟机启动方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108268302B (zh) | 2020-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108268302A (zh) | 实现设备启动的方法和装置 | |
JP3598272B2 (ja) | オペレーティングシステムの起動及びリスタート方法 | |
US10404795B2 (en) | Virtual machine high availability using shared storage during network isolation | |
US8635395B2 (en) | Method of suspending and resuming virtual machines | |
US8719631B2 (en) | Virtual machine (VM)-based disk rescue | |
CN112199162B (zh) | 基于虚拟化磁盘双活容灾的磁盘快照方法、装置及介质 | |
US9632813B2 (en) | High availability for virtual machines in nested hypervisors | |
KR101696490B1 (ko) | 부분 리부팅 복구 장치 및 방법 | |
EP2220558A1 (en) | System synchronization in cluster | |
US20160154664A1 (en) | Information processing system and method of controlling same | |
CN105940375B (zh) | 针对多操作系统设备的动态再分配 | |
US10402264B2 (en) | Packet-aware fault-tolerance method and system of virtual machines applied to cloud service, computer readable record medium and computer program product | |
CN114741233A (zh) | 快速启动方法 | |
US20020049897A1 (en) | Method for adding processor | |
JP2014059733A (ja) | 情報処理システム、画像処理装置 | |
CN105808440A (zh) | 应用程序的低内存测试方法、装置和系统 | |
JP6859463B2 (ja) | 仮想マシンを起動させるための方法、装置、デバイス及び媒体 | |
CN107506141B (zh) | 一种存储系统对卷组状态自动判断和激活的方法及系统 | |
CN109308232B (zh) | 虚拟机热迁移故障后回滚的方法、装置以及系统 | |
CN109189444A (zh) | 一种服务器虚拟化系统的管理节点的升级控制方法及装置 | |
CN107710156B (zh) | 一种基于多核嵌入式处理器的显示方法、装置和嵌入式设备 | |
CN112379973B (zh) | 重载方法和装置 | |
CN114217905A (zh) | 虚拟机高可用恢复处理方法及系统 | |
CN114416148A (zh) | 一种虚拟机管理程序热升级方法、装置及存储介质 | |
US20230081290A1 (en) | Duplex operation system, duplex operation method, and program |
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 |