CN105808383A - 一种快速响应的虚拟机检查点保存方法 - Google Patents
一种快速响应的虚拟机检查点保存方法 Download PDFInfo
- Publication number
- CN105808383A CN105808383A CN201610135917.1A CN201610135917A CN105808383A CN 105808383 A CN105808383 A CN 105808383A CN 201610135917 A CN201610135917 A CN 201610135917A CN 105808383 A CN105808383 A CN 105808383A
- Authority
- CN
- China
- Prior art keywords
- page
- virtual machine
- working set
- inspection point
- data block
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种快速响应的虚拟机检查点保存方法,属于移动设备的技术领域。它包括以下步骤:步骤1、对虚拟机检查点需要保存的CPU状态页面和内存页面划分为工作集页面和非工作集页面,所述的工作集页面为虚拟机在检查点保存时频繁访问的页面,所述的非工作集页面为在检查点保存时很少使用到的页面;步骤2、对工作集页面和非工作集页面进行冗余数据去除,将工作集页面保存在内存NVRAM中,非工作集页面保存到闪存中,减少对NVRAM的空间占用。本发明优点是:既加快了检查点保存的速度,又实现了检查点的快速恢复,提高了虚拟机快速响应的性能。
Description
技术领域
本发明属于移动设备的技术领域,具体涉及一种移动设备上多个操作系统同时运行的数据保存方法。
背景技术
随着移动微处理器和移动操作系统的发展,移动设备(例如智能手机,平板等)越来越普及,其性能得到了极大的提升,使得移动虚拟化获到了应用。移动虚拟化即在同一个硬件平台(例如,同一部手机)上通过虚拟化技术同时运行多个相互隔离的、互不影响的操作系统。例如,通过虚拟化技术,可以在一部智能手机上同时运行Android和iOS系统。一般称通过虚拟化技术运行的系统为虚拟机VirtualMachine(VM),而管理这些VM的程序为虚拟机监视器VirtualMachineMonitor(VMM)。
如图1所示,宿主机系统(HostOS)直接运行在硬件平台之上。在HostOS中,通过虚拟化技术同时运行着Android系统和iOS系统,并由VMM进行管理。每个虚拟机有独立的操作系统,称为寄生系统(GuestOS)。在每个GuestOS中,运行有各自的应用程序。在图1中,VMM运行在HostOS中,对下层硬件进行虚拟化,从而实现多个VM对底层硬件平台的共享,并使得各个VM可以独立的互不干扰的运行。
检查点保存是移动虚拟化中一个非常重要的功能。通过把虚拟机当前运行状态和虚拟机对应的内存页面保存为一个镜像文件,实现虚拟机的检查点保存。通过重新加载镜像文件,并恢复虚拟机的运行状态,可以使虚拟机恢复到检查点保存时的状态,从而实现检查点的恢复。虚拟机检查点的保存和恢复,可以实现虚拟机的休眠、动态迁移和容错。从而提高移动虚拟化平台的资源利用率,便利性、安全性和可靠性。
目前,移动设备的外部存储器为闪存,检查点产生的镜像文件都存放在外存中,即闪存中。检查点保存需要保存虚拟机所有的内存页面以及虚拟机的运行状态,从而对闪存造成频繁的、大量的写操作。然而,移动设备中闪存面临着读写性能低、容量小、擦写次数有限等问题。检查点保存所引发的大量I/O操作无疑会占用大量的存储空间,并且降低闪存的寿命。大量的I/O操作也会增加系统中其它应用程序I/O的延迟,从而影响系统的总体性能。
众所周知:随机存取存储器DRAM作为移动设备的主存,但DRAM具有静态功耗高、存储密度低等问题。对具有能量限制的移动设备来说,DRAM的静态功耗是致命的缺点。
新型非易失存储器(NVM)包括相变存储器(PCM),忆阻器(memristor)和由这些新型NVM所产生的RAM有PCRAM、STT-RAM和RRAM等,我们将这些RAM统称为NVRAM。NVRAM的数据具有掉电不丢失的特性,即非易失性,NVRAM能像DRAM一样按字节寻址且读写性能与DRAM相当。与DRAM相比,它在静态功耗和可缩性上具有很大的优势。目前国内外很多学者都提出了用NVRAM替代DRAM,从而使系统具有更低的功耗和扩展性。
针对NVRAM作为内存的移动设备,如何提高虚拟机检查点的保存及恢复速度,获得移动设备快速响应的性能是一个难题。
发明内容
本发明所要解决的技术问题就是提供一种快速响应的虚拟机检查点保存方法,它通过检查点保存页面的划分,既能加快检查点保存的速度,又能实现检查点的快速恢复,能获得快速响应的性能。
本发明所要解决的技术问题是通过这样的技术方案实现的,它包括以下步骤:
步骤1、对虚拟机检查点需要保存的CPU状态页面和内存页面划分为工作集页面和非工作集页面,所述的工作集页面为虚拟机在检查点保存时频繁访问的页面,所述的非工作集页面为在检查点保存时很少使用到的页面;
步骤2、对工作集页面和非工作集页面进行冗余数据去除,将工作集页面保存在内存NVRAM中,非工作集页面保存到闪存中,减少对NVRAM的空间占用;
由于对检查点的页面进行划分,将工作集页面存放在NVRAM中,非工作集存放在闪存中,使虚拟机检查点能快速保存和快速恢复;再因为清除了检查点镜像文件中的冗余数据,减少了镜像文件对存储空间的占用,减少了写操作,进一步的加快了检查点保存的速度。在恢复虚拟机运行时,VMM从NVRAM中读出工作集页面,利用工作集页面立即恢复运行,并通过后台加载的方式对非工作集页面进行恢复,由此也缩短了检查点的恢复时间。所以本发明具有如下的优点:既加快了检查点保存的速度,又实现了检查点的快速恢复,提高了虚拟机快速响应的性能。
附图说明
本发明的附图说明如下:
图1为一个典型移动虚拟机系统的结构示意图;
图2为本发明的虚拟机检查点保存的流程图;
图3为本发明检查点镜像文件的去冗流程图;
图4为本发明一个实施例的结构示意图;
图5为本发明一个实施例实物结构图;
图6为在不同β时划分工作集页面准确率的分布图;
图7为数据块长度为4KB时,部分Hash的节能状态图;
图8为数据块长度为8KB时,部分Hash的节能状态图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
如图2所示,VMM接收到检查点保存的请求之后,本发明包括以下步骤:
1、对虚拟机的状态页面和内存页面进行搜集,对收集到的这些页面进行分类:分为工作集页面和非工作集页面;
2、对工作集页面和非工作集页面进行冗余数据去除,并对页面进行分类存储,将工作集页面保存在内存NVRAM中,非工作集页面保存到闪存中。
恢复虚拟机的运行时,VMM从NVRAM中读出工作集页面,利用工作集页面立即恢复虚拟机的运行,并通过后台加载的方式对非工作集页面进行恢复。
1、划分工作集页面和非工作集页面
工作集页面应该尽可能的包含检查点恢复之后虚拟机访问的内存页面,即在检查点保存时,虚拟机需要频繁访问的内存页面。在虚拟化技术中,为了使得虚拟机可以访问内存,虚拟机监视器VMM维护虚拟机的页表。在进行检查点恢复时,保存虚拟机状态的页面需要首先被加载,以便恢复虚拟机的运行状态。所以,工作集页面包含3类页面:a)检查点保存时虚拟机访问的内存页面,根据程序局部性原理,在检查点恢复之后,虚拟机很有可能会访问这些页面,所以,这些页面即为虚拟机恢复之后频繁访问的内存页面;b)用于存放虚拟机页表的内存页面;c)用于存放检查点保存时虚拟机运行状态的页面,虚拟机的状态包括虚拟CPU的状态,虚拟机所打开的设备状态。
(a)检查点保存时虚拟机访问的页面
为了确定检查点保存时虚拟机访问内存页面,本发明采用两步扫描法:当VMM接收到检查点保存请求时,第一步,扫描虚拟机页面中的所有页表项(PTE),并把PTE中的访问标志位设置“0”;第二步,在时间Ttimer之后再次扫描所有的PTE,并检测PTE中的访问标志位,若该页面在时间Ttimer内被访问过,则将其标志位设为“1”,属于工作集页面;否则,属于非工作集页面。
两步扫描时间Ttimer的长短控制着频繁访问页面的数量,较长Ttimer会使得收集到过多页的面,较短的Ttimer会使得收集到的页面不足。由于页表页面和虚拟机状态页的数量只占工作集的很小一部分,可以假设频繁访问的页面数量即为工作集的页面数量,并用符号N-working_set表示,非工作集页面的数量用N-non_working_set表示,虚拟机检查点的总页面数量用Ntotal表示,则有:
(1)
式(1)中,r为闪存的读取速度(r页面/秒),α和β为系数,α为虚拟机每秒钟访问的页面数量;β为非工作集页面的读取时间和Ttimer的比值,是一个可调节参数。根据公式(1)可得计算出Ttimer,从而精确地对频繁访问的页面进行收集。
(b)虚拟机页表页面
为了使虚拟机能够正常的访存,VMM需要为虚拟机维护页表,从而实现从虚拟机物理地址到宿主机物理地址的转换,用于存放虚拟机页表的页面称为页表页面。页表页面属于工作集页面,在进行检查点保存时,VMM直接将对应虚拟机的页表页面存储在NVRAM中。
(c)虚拟机状态页面
虚拟机运行在由VMM虚拟出来的CPU上,所有的指令都由VMM在宿主机的CPU上进行执行。同时,VMM也为虚拟机维护着虚拟机所打开的设备信息,例如文件等。虚拟机的状态页面即用来存储虚拟机虚拟CPU状态和所打开的设备状态的页面。虚拟机状态页面属于工作集页面,在检查点保存时,VMM直接在虚拟机状态页面存储在NVRAM中。
2、去除检查点镜像文件的冗余数据
首先,检查点镜像文件被分为固定大小的数据块,然后去除重复块。数据块的Hash值用于判断该数据块是否是唯一的,但是用于计算Hash值的Hash函数是一个高能耗的函数,且能耗随着计算的数据长度而增加。为了减少数据去冗过程中Hash函数带来的能量消耗,本发明采取部分Hash计算,即针对一个数据块进行采样,利用采样数据来计算数据块的部分Hash值,若该块的部分Hash值在Hash表中存在,再通过计算该数据块的全部Hash值来判断该块是否冗余。
部分Hash计算的具体应用方案是:首先计算待检查数据块的部分Hash值,若部分Hash值不存在,则可直接判断该块不重复,若部分Hash值存在,则再计算该数据块的全部Hash值,并与所有部分Hash值相同的数据块的全部Hash值进行比较,若全部Hash值都不相等,则该数据块不重复,反之,该数据块为重复数据块,不需要保存。
图3是本发明检查点镜像文件的去冗流程图。由图3看出,对文件划分的数据块进行部分Hash计算,获得部分Hash值,重复数据块的数目较多;再对初步确定的重复数据块进行全部Hash计算,获得全部Hash值,最后确定的重复数据块的数目有所减少;图3展示了使用部分Hash计算判断数据块是否重复的过程,本发明减少了不重复数据块的大量计算,由此减少了去冗的能耗。
为了进行一步减少数据去冗的能耗,在移动设备剩余电量大于或等于40%时,将检查点镜像文件划分为较小的数据块,例如数据块为4KB,从而提高数据的去冗率,相应地,去冗需要较多的处理器时间,能耗较多;在移动设备剩余电量不足40%时,将检查点镜像文件划分为较大的数据块,例如数据块为8KB,去冗率较低,但去冗需要较少的处理器时间,能耗较少。
实施例
如图4和图5所示,本实施例的主板为Arndale开发板,安装三星Exynos5250CPU,该CPU支持硬件虚拟化,Exynos5250是一个基于ARMv7架构的4核CPU,核心频率为1.7GHz。Arndale开发板具有2GB的DRAM,用于模拟NVRAM,64GB的闪存(SDcard)。在Arndale开发板上运行的宿主机操作系统为Ubuntu12.04,内核版本为3.8。KVM(Kernel-basedVirtualMachine)为运行在宿主机操作系统内核空间中的虚拟机监视器(VMM),QEMU为运行在宿主机用户空间中的虚拟机,每个虚拟机中各自运行一个寄生系统Android操作系统。在每个Android系统中,有各自的应用程序。每个虚拟机的内存大小为512M,且每次只运行一个虚拟机。
1、划分工作集页面
工作集页面划分的准确率是衡量工作集页面划分策略的一个重要的指标,而工作集页面的划分的准确率和α、β以及r有关,本实施例中的SD卡为80MB/s,所以r=20480pages/s,α根据不同虚拟机的访存特点可取不同的值。本实施例中的每个虚拟机,β都设置了三个不同的值,分别为2,3,4。表1展示了不同虚拟α和β的值。
表1虚拟机检查点的工作集页面参数设置
图6显示了各虚拟机在不同的β之下,工作集页面划分的准确性,由图6可以看出,β值越大,工作集页面划分的准确率就越高。当β=4时,两步扫描法中的Ttimer就越大,收集到的工作集页面的数量就越多,所以在虚拟机恢复之后,虚拟机访问的页面属于工作集页面的概率就越大,所以此时,工作集页面划分的准确率高达95%。然而,β值越大,所收集到的工作集页面的数量就越多。为了平衡工作集页面的数量和准确率,β一般为3。
2、去除冗余数据
数据去冗中的Hash函数是主要能耗来源。本实施例使用了部分Hash来减少Hash函数的能耗,部分Hash需要对数据块进行取样,不同的取样的长度(L)会对部分Hash所带来的能耗减少造成影响。
图7为检查点镜像文件划分的数据块长度为4KB时,不同的取样的长度L的情况下,部分Hash的节能状态图,从图7看出,在L=64bit或128bit的情况下,节能量有所增加。
图8为检查点镜像文件划分的数据块长度为8KB时,不同的取样的长度L的情况下,部分Hash的节能状态图,从图8看出,在L=128bit或256bit的情况下,节能量有所增加。
通过图7与图8的比较:在分块长度为4KB时,部分Hash能实现约50%的节能量(节能是指去冗能耗减少);在分块长度为8KB时,部分Hash能实现约75%的节能量。因此,在移动虚拟机剩余电量不足的情况下,可以使用8KB的分块大小进行数据区去冗,节约系统用电量。
Claims (4)
1.一种快速响应的虚拟机检查点保存方法,其特征是,包括以下步骤:
步骤1、对虚拟机检查点需要保存的CPU状态页面和内存页面划分为工作集页面和非工作集页面,所述的工作集页面为虚拟机在检查点保存时频繁访问的页面,所述的非工作集页面为在检查点保存时很少使用到的页面;
步骤2、对工作集页面和非工作集页面进行冗余数据去除,将工作集页面保存在内存NVRAM中,非工作集页面保存到闪存中,减少对NVRAM的空间占用。
2.根据权利要求1所述的快速响应的虚拟机检查点保存方法,其特征是,步骤1中,所述虚拟机内存页面划分步骤:
第一步,扫描虚拟机页面中的所有页表项,并把PTE中的访问标志位设置“0”;
第二步,在时间Ttimer之后再次扫描所有的PTE,并检测PTE中的访问标志位,若该页面在时间Ttime内被访问过,则将其标志位设为“1”,属于工作集页面;否则,属于非工作集页面。
3.根据权利要求1所述的快速响应的虚拟机检查点保存及恢复方法,其特征是,步骤2中,所述冗余数据去除的方法为:
首先,将检查点镜像文件分为固定大小的数据块;
然后,针对一个数据块进行采样,利用采样数据来计算数据块的部分Hash值,若该块的部分Hash值在Hash表中存在,再通过计算该数据块的全部Hash值来判断该块是否冗余。
4.根据权利要求3所述的快速响应的虚拟机检查点保存及恢复方法,其特征是:在移动设备剩余电量大于或等于40%条件下,所述数据块选择4KB;在移动设备剩余电量小于40%条件下,所述数据块选择8KB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135917.1A CN105808383B (zh) | 2016-03-11 | 2016-03-11 | 一种快速响应的虚拟机检查点保存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135917.1A CN105808383B (zh) | 2016-03-11 | 2016-03-11 | 一种快速响应的虚拟机检查点保存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808383A true CN105808383A (zh) | 2016-07-27 |
CN105808383B CN105808383B (zh) | 2020-04-07 |
Family
ID=56467201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610135917.1A Active CN105808383B (zh) | 2016-03-11 | 2016-03-11 | 一种快速响应的虚拟机检查点保存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808383B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797885A (zh) * | 2016-09-07 | 2018-03-13 | 蔚山科学技术院 | 电子设备及其控制方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120011508A1 (en) * | 2010-07-12 | 2012-01-12 | Vmware, Inc. | Multiple time granularity support for online classification of memory pages based on activity level |
CN102722452A (zh) * | 2012-05-29 | 2012-10-10 | 南京大学 | 一种内存冗余消除方法 |
CN104156255A (zh) * | 2014-07-31 | 2014-11-19 | 华为技术有限公司 | 一种虚拟机迁移方法、虚拟机迁移装置及源物理主机 |
CN104166583A (zh) * | 2014-08-11 | 2014-11-26 | 香港理工大学深圳研究院 | 一种基于移动设备虚拟化环境的数据存储方法及装置 |
CN105183379A (zh) * | 2015-09-01 | 2015-12-23 | 上海新储集成电路有限公司 | 一种混合内存的数据备份系统及方法 |
-
2016
- 2016-03-11 CN CN201610135917.1A patent/CN105808383B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120011508A1 (en) * | 2010-07-12 | 2012-01-12 | Vmware, Inc. | Multiple time granularity support for online classification of memory pages based on activity level |
CN102722452A (zh) * | 2012-05-29 | 2012-10-10 | 南京大学 | 一种内存冗余消除方法 |
CN104156255A (zh) * | 2014-07-31 | 2014-11-19 | 华为技术有限公司 | 一种虚拟机迁移方法、虚拟机迁移装置及源物理主机 |
CN104166583A (zh) * | 2014-08-11 | 2014-11-26 | 香港理工大学深圳研究院 | 一种基于移动设备虚拟化环境的数据存储方法及装置 |
CN105183379A (zh) * | 2015-09-01 | 2015-12-23 | 上海新储集成电路有限公司 | 一种混合内存的数据备份系统及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797885A (zh) * | 2016-09-07 | 2018-03-13 | 蔚山科学技术院 | 电子设备及其控制方法 |
CN107797885B (zh) * | 2016-09-07 | 2021-08-24 | 蔚山科学技术院 | 电子设备及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105808383B (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9910786B2 (en) | Efficient redundant array of independent disks (RAID) write hole solutions | |
US8793427B2 (en) | Remote memory for virtual machines | |
US10303600B2 (en) | Method and storage device for collecting garbage data | |
CN103995578B (zh) | 一种具有数据持续模式的器件驱动器 | |
CN102331949B (zh) | 一种虚拟机内存快照生成和恢复方法、装置及系统 | |
US7917689B2 (en) | Methods and apparatuses for nonvolatile memory wear leveling | |
CN107615255B (zh) | 利用持久存储器的计算装置和方法 | |
US20190369892A1 (en) | Method and Apparatus for Facilitating a Trim Process Using Auxiliary Tables | |
US10049004B2 (en) | Electronic system with memory data protection mechanism and method of operation thereof | |
US8914608B2 (en) | Data storage device and computing system including the same | |
US10949342B2 (en) | Persistent memory garbage collection | |
US10824362B2 (en) | File migration to persistent memory | |
CN105868122A (zh) | 快闪存储设备的数据处理方法及装置 | |
US9335944B2 (en) | In-place change between transient and persistent state for data structures on non-volatile memory | |
US10922234B2 (en) | Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive | |
CN102662799B (zh) | 数据备份的方法、服务器及热备份系统 | |
CN111868678A (zh) | 混合存储器系统 | |
CN106445832A (zh) | 闪存存储系统的地址映射方法及装置 | |
Kannan et al. | Reducing the cost of persistence for nonvolatile heaps in end user devices | |
KR20140147017A (ko) | 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법 | |
CN108874574A (zh) | 一种垃圾回收处理方法及相关装置 | |
TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
KR20210028265A (ko) | 고속 비휘발성 스토리지 장치 복구 기술 | |
CN111868679A (zh) | 混合存储器系统 | |
CN106055488B (zh) | 数据储存设备及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |