CN102193843B - 虚拟机系统崩溃现场保存的加速方法 - Google Patents

虚拟机系统崩溃现场保存的加速方法 Download PDF

Info

Publication number
CN102193843B
CN102193843B CN 201010130134 CN201010130134A CN102193843B CN 102193843 B CN102193843 B CN 102193843B CN 201010130134 CN201010130134 CN 201010130134 CN 201010130134 A CN201010130134 A CN 201010130134A CN 102193843 B CN102193843 B CN 102193843B
Authority
CN
China
Prior art keywords
virtual machine
collapse
disk
virtual
service recovery
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.)
Expired - Fee Related
Application number
CN 201010130134
Other languages
English (en)
Other versions
CN102193843A (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.)
Fudan University
Original Assignee
Fudan University
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 Fudan University filed Critical Fudan University
Priority to CN 201010130134 priority Critical patent/CN102193843B/zh
Publication of CN102193843A publication Critical patent/CN102193843A/zh
Application granted granted Critical
Publication of CN102193843B publication Critical patent/CN102193843B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明属计算机系统软件领域,涉及一种虚拟机系统崩溃现场保存的加速方法,包括利用虚拟机管理工具并行化虚拟机崩溃时虚拟机系统崩溃现场保存与服务恢复过程;利用虚拟机管理工具分析崩溃虚拟机的系统状态,选择性地只将被虚拟机使用过的内存写入磁盘,而不保存没有用过的虚拟机内的闲置内存;使用虚拟机管理工具在并行化的虚拟机系统崩溃现场保存与服务恢复之间合理分配磁盘写入带宽。本发明能提高CPU和内存资源的利用率,避免冗余的系统崩溃现场保存,优化并行化的系统崩溃现场保存与服务恢复时的磁盘写入优先级,明显缩短虚拟机系统崩溃现场保存与服务恢复所产生的系统宕机时间。

Description

虚拟机系统崩溃现场保存的加速方法
技术领域
本发明属计算机系统软件领域,涉及系统虚拟化技术,具体涉及一种虚拟机系统崩溃现场保存的加速方法。本发明通过提高虚拟资源分配的高效性和公平性,以及选择性地保存状态,加速虚拟机系统崩溃时的崩溃现场保存。
背景技术
现代操作系统在实现对各种硬件资源的有效管理和为应用程序提供丰富的编程接口的同时,其复杂性也随着功能的不断丰富大大增加。此外,为了实现高度灵活的功能扩展,现代操作系统采用模块化设计,使得大量不受信任的恶意第三方程序能够以系统中的最高特权级执行,造成系统不稳定。因此,操作系统本身的复杂性与模块化地任意执行第三方程序,使得操作系统的可靠性受到了影响,引发经常性的系统崩溃。这种系统崩溃发生在操作系统内部,将直接导致操作系统和其上的所有应用程序均无法继续运行,危害十分严重。
为了尽快恢复崩溃的系统,计算机系统管理员通常选择重新启动系统,以恢复软件应用服务。在理想情况下,这一时间可以缩短至数分钟,对用户影响不大。另一方面,为了防止同样的系统崩溃在将来不断发生,必须从崩溃时的系统状态分析导致崩溃的原因,再针对性地开发出系统补丁,修补系统缺陷与漏洞。为此,计算机系统管理软件提供了保存系统崩溃现场的功能。通常,系统崩溃现场保存是指将系统的内存等状态全部写入到磁盘等永久性介质中。实现系统状态保存的关键是保持系统崩溃现场的完整性,防止它在这一过程中被篡改。例如,Linux操作系统上的系统崩溃现场保存工具kexec,在系统崩溃时,利用未被崩溃的系统访问过的一块内存区域执行保存系统崩溃现场的逻辑,从而保证了崩溃系统的状态不会被破坏。再比如,在系统虚拟化环境中,虚拟机内的客户机操作系统和应用软件运行在虚拟化层提供的虚拟硬件环境里;虚拟化层提供的虚拟机管理工具实现了虚拟机内的客户机操作系统崩溃时对虚拟机系统的状态保存。为了防止状态保存过程中系统状态被修改,虚拟机管理工具独占性地访问崩溃了的虚拟机的伪物理内存,将其数据写入到磁盘中。这些工具所保存下来的系统崩溃现场,可以利用调试软件进行访问,通过数据结构挖掘技术从中分析出异常的系统状态,帮助技术人员重现崩溃的过程,找出系统崩溃的原因。
由于磁盘写入是一个耗时的输出操作,传统的系统崩溃现场保存过程十分缓慢。在系统崩溃现场保存的过程中,系统全部内存资源被系统崩溃现场保存工具所独占性访问,以便能完整地将系统崩溃时的内存数据写入到磁盘中,供将来分析系统崩溃的原因。所以,在系统崩溃现场保存的过程中,系统管理员必须等待崩溃现场的所有内存数据全部写入到磁盘之后,才能重新启动计算机,利用释放出来的内存资源恢复因系统崩溃而中断的服务。因此,执行传统的系统崩溃现场保存会造成从发生系统崩溃到系统崩溃现场保存与服务恢复结束之间的长时间内,系统无法恢复服务。这段系统服务不可访问的时间称为宕机时间。由此可见,虽然系统崩溃现场保存提供了分析系统崩溃原因的第一手资料,但是这一漫长的保存过程大大延后了系统的重新启动,使得从系统崩溃到恢复服务所需的宕机时间从原来的数分钟,增加到了数十分钟甚至更长。
发明内容
本发明的目的是克服现有技术的不足,提供一种虚拟机系统崩溃现场保存的加速方法。
本发明方法能解决如何缩短传统的虚拟机系统崩溃现场保存所造成的较长宕机时间等问题。在传统系统崩溃现场保存的过程中,只有所有内存都写入了磁盘,才能重启服务,造成内存资源无法在这一过程中至少部分地用于系统重启和服务恢复;其次,传统的系统崩溃现场保存无选择性地保存所有的内存数据,而事实上通常只有一部分内存数据才与系统崩溃的原因相关,因此造成了不必要的冗余状态保存。
通常系统崩溃以后,系统无法继续执行任何程序,所以很难执行复杂优化逻辑加速系统崩溃现场保存过程。然而在虚拟化环境中,一台虚拟机内的客户机操作系统崩溃不会导致提供虚拟硬件环境的底层虚拟机监控器和虚拟机管理工具的崩溃,所以可以利用虚拟机管理工具优化这一过程。
为解决上述问题,本发明提出了一种虚拟机系统崩溃现场保存的加速方法。具体而言,本发明针对虚拟化环境,用以下三种技术优化虚拟化环境中虚拟机崩溃现场保存的过程,缩短宕机时间:首先,利用虚拟机管理工具并行化虚拟机崩溃时虚拟机系统崩溃现场保存与服务恢复这两个过程;其次,利用虚拟机管理工具分析崩溃虚拟机的系统状态,选择性地只将被虚拟机使用过的内存写入磁盘,而不保存没有用过的虚拟机内的闲置内存;最后,使用虚拟机管理工具在并行化的虚拟机系统崩溃现场保存与服务恢复之间合理分配磁盘写入带宽,达到最小化宕机时间的目的。
本发明中,所述的并行化虚拟机崩溃现场保存和服务恢复,是指在保存崩溃虚拟机的内存数据的同时,启动另一台虚拟机以恢复服务。写入崩溃了的虚拟机的内存数据到磁盘,和启动另一台虚拟机以恢复服务,两者同时进行。在这里,另外启动的这台用于恢复服务的虚拟机称为“恢复虚拟机”。为了使崩溃虚拟机先前的文件系统状态能被恢复虚拟机所访问,崩溃虚拟机和恢复虚拟机共享文件系统。为了使恢复虚拟机能尽快利用崩溃虚拟机的内存资源,将崩溃虚拟机的内存分段,每当有一段内存被虚拟机崩溃现场保存工具写入磁盘,就立即将它分配给恢复虚拟机用于恢复服务。随着更多崩溃虚拟机的内存被系统崩溃现场保存工具写入磁盘,越来越多的内存被用于恢复虚拟机的服务恢复。这样,通过并行化提高了CPU和内存的利用率,加快了整个系统崩溃现场保存与服务恢复的过程。
本发明中,所述的选择性地保存崩溃系统的状态,是指挖掘崩溃虚拟机的内存数据,从中分析出虚拟机崩溃时没有被使用的内存页,不将它们写入磁盘。虚拟机管理工具分析虚拟机内客户机操作系统的物理页描述符数组;根据每个物理页描述符中的引用计数,判断相应内存页是否被使用。如果引用计数为0,则此内存页在虚拟机崩溃时未被使用,无需写入磁盘。这样,通过不保存没有使用的内存页,缩短了系统崩溃现场保存所需的时间。
本发明中,所述的在虚拟机系统崩溃现场保存与服务恢复之间按需分配磁盘写入带宽,是指利用磁盘输入输出调度器按需调整两者的磁盘写入速率,以最小化系统宕机时间。当服务恢复不需要频繁写入磁盘时,应优先执行系统崩溃现场保存的磁盘写入请求,使磁盘写入速率最大化;当系统崩溃现场保存与服务恢复都需要频繁写入磁盘时,通过在两者之间权衡,找出最佳的磁盘带宽分配策略,缩短整体的系统宕机时间。
本发明的有益效果是,通过并行化虚拟机系统崩溃现场保存与服务恢复,提高了CPU和内存资源的利用率;通过分析虚拟机内存数据,选择性地保存虚拟机崩溃现场,避免了冗余的系统崩溃现场保存;通过合理分配磁盘写入带宽,进一步优化了并行化的系统崩溃现场保存与服务恢复时的磁盘写入优先级。由此,本发明缩短了虚拟机系统崩溃现场保存与服务恢复所产生的系统宕机时间。
附图说明
图1为本发明的系统架构示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
实施例1
如图1所示,在虚拟化环境中,虚拟机监控器运行于真实物理硬件之上;虚拟机运行于虚拟机监控器所创建的虚拟硬件之上;此外,虚拟机监控器之上还运行着虚拟机管理工具,用于动态监控、配置和管理虚拟机。虚拟机崩溃现场保存工具是虚拟机管理工具的一部分。本发明的系统使用经过优化了的虚拟机崩溃现场保存工具。
虚拟机系统崩溃时,虚拟机管理工具调用虚拟机系统崩溃现场保存工具;系统崩溃现场保存工具读取崩溃了的虚拟机的内存,将之写入到磁盘中。
为了实现并行化的虚拟机系统崩溃现场保存与服务恢复,在保存崩溃虚拟机状态的同时,启动另一台恢复虚拟机以同时恢复服务,从而实现并行化。崩溃虚拟机和恢复虚拟机共享文件系统,以使恢复虚拟机能继续访问崩溃虚拟机留下的系统状态,继续先前中断的应用服务。由于恢复虚拟机只在崩溃虚拟机宕机后才访问共享的文件系统,因此这种共享不会引起访问竞争,是安全的。在虚拟机系统崩溃现场保存的过程中,要尽早释放崩溃虚拟机的内存,供恢复虚拟机尽快恢复服务。为此,将崩溃虚拟机的内存分段;每一段的大小固定。每当有一段内存被虚拟机崩溃现场保存工具写入到磁盘,立即将它分配给恢复虚拟机使用。这样,随着崩溃虚拟机状态保存与恢复虚拟机启动的同时进行,崩溃虚拟机的内存不断减少;恢复虚拟机的内存不断增大,如图中标有“减少”、“增加”的箭头所示。最终,崩溃虚拟机的内存状态全部被写入到硬盘;恢复虚拟机利用这一并行执行过程中释放出的内存恢复了中断的应用服务。
为了避免冗余的系统状态保存,虚拟机管理工具在读取崩溃虚拟机内存的同时,加以分析,从中挖掘出崩溃虚拟机内客户机操作系统的物理页描述符数组。虚拟机管理工具读取每个物理页描述符的引用计数。如果它为0,表明相应的内存页在崩溃时没有被虚拟机使用,虚拟机管理工具不将它写入磁盘;如果它大于0,说明相应的内存页包含有用的数据,则虚拟机管理工具将它写入磁盘。通过引用计数,选择性地忽略没有被使用的内存页,缩短了虚拟机系统崩溃现场保存所需的时间。
通过磁盘输入输出调度器,在虚拟机崩溃现场保存工具与恢复虚拟机之间按需调整磁盘写入带宽,以最小化宕机时间。当恢复虚拟机恢复服务不需要频繁写入内存时,为虚拟机崩溃现场保存工具分配较大的磁盘写入带宽,以最大化磁盘写入带宽的利用率,从而最大化虚拟机崩溃现场保存的速度;当恢复虚拟机和虚拟机崩溃现场保存工具一样需要频繁写入磁盘时,需要在崩溃现场保存的速度和服务恢复的速度之间权衡,使得总体上系统崩溃现场保存与恢复服务所产生的系统宕机时间最小化。例如,当服务恢复的速度不依赖于内存的大小,却主要取决于服务数据写入磁盘的速度时,应优先为服务恢复分配更大的磁盘写入带宽。
结果显示,本发明提供的虚拟机崩溃现场保存加速方法,通过并行化虚拟机崩溃现场保存与服务恢复,选择性地保存系统状态,以及按需分配磁盘写入带宽,有效地缩短了虚拟机崩溃现场保存与服务恢复所需的系统宕机时间。本发明提出的加速机制实现在虚拟机管理工具中,对虚拟机内的客户机操作系统和应用程序透明,无需修改虚拟机系统本身。

Claims (5)

1.一种虚拟机系统崩溃现场保存的加速方法,其特征在于,其包括:
(1)利用虚拟机管理工具并行化虚拟机崩溃时虚拟机系统崩溃现场保存与服务恢复过程;
(2)利用虚拟机管理工具分析崩溃虚拟机的系统状态,选择性地保存崩溃系统的状态,只将被虚拟机使用过的内存写入磁盘,不保存没有用过的虚拟机内的闲置内存;
(3)使用虚拟机管理工具在并行化的虚拟机系统崩溃现场保存与服务恢复之间合理分配磁盘写入带宽,达到最小化宕机时间的目的。
2.按权利要求1所述的方法,其特征在于,所述的并行化虚拟机系统崩溃现场保存和服务恢复,是指在保存崩溃虚拟机的内存数据的同时启动另一台虚拟机以恢复服务。
3.按权利要求2所述的方法,其特征在于,所述的并行化虚拟机系统崩溃现场保存和服务恢复中,将崩溃虚拟机的内存分段,每有一段内存被虚拟机崩溃现场保存工具写入磁盘,立即将其分配给恢复虚拟机用于恢复服务。
4.按权利要求1所述的方法,其特征在于,所述的选择性地保存崩溃系统的状态,是指挖掘崩溃虚拟机的内存数据,分析其中虚拟机崩溃时没有被使用的内存页,不将它们写入磁盘。
5.按权利要求1所述的方法,其特征在于,所述的虚拟机系统崩溃现场保存与服务恢复之间合理分配磁盘写入带宽,是指利用磁盘输入输出调度器按需调整两者的磁盘写入速率,以最小化系统宕机时间。
CN 201010130134 2010-03-19 2010-03-19 虚拟机系统崩溃现场保存的加速方法 Expired - Fee Related CN102193843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010130134 CN102193843B (zh) 2010-03-19 2010-03-19 虚拟机系统崩溃现场保存的加速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010130134 CN102193843B (zh) 2010-03-19 2010-03-19 虚拟机系统崩溃现场保存的加速方法

Publications (2)

Publication Number Publication Date
CN102193843A CN102193843A (zh) 2011-09-21
CN102193843B true CN102193843B (zh) 2013-05-29

Family

ID=44601947

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010130134 Expired - Fee Related CN102193843B (zh) 2010-03-19 2010-03-19 虚拟机系统崩溃现场保存的加速方法

Country Status (1)

Country Link
CN (1) CN102193843B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331949B (zh) 2011-10-12 2014-11-05 华为技术有限公司 一种虚拟机内存快照生成和恢复方法、装置及系统
CN102541468B (zh) * 2011-12-12 2015-03-04 华中科技大学 虚拟化环境下的脏数据回写系统
CN103838639B (zh) * 2012-11-23 2018-04-27 华为技术有限公司 一种恢复虚拟磁盘元数据的方法、装置及系统
CN109543417B (zh) * 2018-11-26 2021-06-22 杭州安恒信息技术股份有限公司 一种基于Qemu平台的漏洞挖掘方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1963773A (zh) * 2005-11-10 2007-05-16 国际商业机器公司 在系统崩溃时提取日志和追踪缓冲器的方法和系统
CN101075202A (zh) * 2006-05-16 2007-11-21 中兴通讯股份有限公司 用于现场数据保护的内存管理方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415466B2 (en) * 1996-03-19 2008-08-19 Oracle International Corporation Parallel transaction recovery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1963773A (zh) * 2005-11-10 2007-05-16 国际商业机器公司 在系统崩溃时提取日志和追踪缓冲器的方法和系统
CN101075202A (zh) * 2006-05-16 2007-11-21 中兴通讯股份有限公司 用于现场数据保护的内存管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《基于虚拟技术的操作系统内存崩溃修复方法》;孙通;《计算机工程》;20090430;第35卷(第8期);全文 *
孙通.《基于虚拟技术的操作系统内存崩溃修复方法》.《计算机工程》.2009,第35卷(第8期),

Also Published As

Publication number Publication date
CN102193843A (zh) 2011-09-21

Similar Documents

Publication Publication Date Title
TWI498728B (zh) 非搶占式圖形處理單元上互動除錯之方法和裝置
US7849327B2 (en) Technique to virtualize processor input/output resources
US8972780B2 (en) Low-latency fault-tolerant virtual machines
US20140223233A1 (en) Multi-core re-initialization failure control system
CN102317912A (zh) 多线程处理器和数字电视系统
CN103229149A (zh) 使用分层中断管理压缩存储器
US20090276205A1 (en) Stablizing operation of an emulated system
US10049064B2 (en) Transmitting inter-processor interrupt messages by privileged virtual machine functions
US10416897B2 (en) Memory system with latency distribution optimization and an operating method thereof
Li et al. A new disk I/O model of virtualized cloud environment
Knodel et al. Migration of long-running tasks between reconfigurable resources using virtualization
Lu et al. HSG-LM: hybrid-copy speculative guest OS live migration without hypervisor
US10949243B2 (en) Reducing IPI overhead with CPU overcommit support via IPI broadcast
CN102193843B (zh) 虚拟机系统崩溃现场保存的加速方法
CN103996003A (zh) 一种虚拟化环境中的数据擦除系统及方法
US9053022B2 (en) Synchronous software interface for an accelerated compute engine
Mao et al. Trisk: Task-centric data stream reconfiguration
US9740544B2 (en) Live snapshotting of multiple virtual disks in networked systems
CN106445691A (zh) 一种面向虚拟化云计算平台的内存优化的方法
US9329883B2 (en) Post-execution instruction tracing of virtualized instructions
US9098461B2 (en) Live snapshots of multiple virtual disks
US11436141B2 (en) Free memory page hinting by virtual machines
JP2011243012A (ja) 仮想計算機システムのメモリダンプ取得方法
Lu et al. Successor: Proactive cache warm-up of destination hosts in virtual machine migration contexts
Moroo et al. Operating System for the K computer

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130529

Termination date: 20190319