书签 分享 收藏 举报 版权申诉 / 16

虚拟机连续快照方法和装置.pdf

  • 上传人:000****221
  • 文档编号:6290853
  • 上传时间:2019-05-28
  • 格式:PDF
  • 页数:16
  • 大小:930.29KB
  • 摘要
    申请专利号:

    CN201410532668.0

    申请日:

    2014.10.10

    公开号:

    CN105573813A

    公开日:

    2016.05.11

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 9/455申请日:20141010|||公开

    IPC分类号:

    G06F9/455; G06F11/14

    主分类号:

    G06F9/455

    申请人:

    北京航空航天大学

    发明人:

    李建欣; 郑京生; 崔磊; 沃天宇; 张扬扬

    地址:

    100191 北京市海淀区学院路37号

    优先权:

    专利代理机构:

    北京同立钧成知识产权代理有限公司 11205

    代理人:

    刘芳

    PDF完整版下载: PDF下载
    内容摘要

    本发明提供一种虚拟机连续快照方法和装置,虚拟机连续快照方法包括:将虚拟机停机;根据虚拟机中各页面的第一位图信息的值更新各页面的第二位图信息的值;初始化虚拟机中各页面的第一位图信息的值;恢复虚拟机的运行;依次判断虚拟机中各页面的第二位图信息的值是否为第一预设的值,并将第二位图信息的值为第一预设的值的各页面保存到缓存区。虚拟机连续快照装置仅需在虚拟机停机过程中对各页面位图信息进行操作,而该过程所需的时间很短,缩短了快照过程中虚拟机停机时间,虚拟机连续快照时依次对需要保存的各页面进行快照保存,仅保存未被保存的页面,大大缩短了虚拟机一次快照的时间,降低了快照过程对虚拟机性能的影响。

    权利要求书

    1.一种虚拟机连续快照方法,其特征在于,包括:
    将虚拟机停机;
    根据所述虚拟机中各页面的第一位图信息的值更新各页面的第二位图信
    息的值,所述第一位图信息用于标识各页面是否已被修改,所述第二位图信
    息用于标识所述各页面是否需要保存,所述各页面的第一位图信息和第二位
    图信息与各页面的地址一一对应;
    初始化所述虚拟机中各页面的第一位图信息的值;
    恢复所述虚拟机的运行;
    依次判断所述虚拟机中各页面的第二位图信息的值是否为第一预设的
    值;
    将第二位图信息的值为第一预设的值的各页面保存到缓存区,并将保存
    到缓存区的各页面的第二位图信息的值更改为第二预设的值。
    2.根据权利要求1所述的虚拟机连续快照方法,其特征在于,所述恢复所述
    虚拟机的运行之前,还包括:
    对所述虚拟机的内存页面进行写保护;
    所述恢复所述虚拟机的运行之前之后,还包括:
    截获对所述虚拟机的被写保护的内存页面的写请求,所述写请求中包括
    待写入的数据及待写入数据的页面的地址;
    将与所述待写入数据的页面的第一位图信息的值更改为第三预设的值;
    判断所述待写入数据的页面的第二位图信息的值是否为第一预设的值;
    若是,则将所述待写入数据的页面保存到缓存区;
    去除对所述待写入数据的页面的写保护,并将所述待写入的数据写入到
    所述待写入数据的页面中。
    3.根据权利要求1或2所述的虚拟机连续快照方法,其特征在于,还包
    括:
    监测所述缓存区的剩余容量是否已达到第四预设的值;
    若是,则将所述缓存区中保存的页面移存至指定的位置,并记录所用时
    间T1;
    判断所述时间T1是否小于预设的时间T2;
    若是,则将所述将第二位图信息的值为第一预设的值的各页面保存到缓
    存区的操作挂起T3时间,所述T3=T2-T1。
    4.根据权利要求3所述的虚拟机连续快照方法,其特征在于,所述判断
    所述时间T1是否小于预设的时间T2之后,还包括:
    若否,则继续执行依次判断所述虚拟机中各页面的第二位图信息的值是
    否为第一预设的值的操作。
    5.根据权利要求4所述的虚拟机连续快照方法,其特征在于,还包括:
    记录从前一次所述将缓存区中保存的页面移存至指定的位置的操作结束
    时至本次将缓存区中保存的页面移存至指定的位置的操作的时间间隔T4内
    所述虚拟机的实际输入输出速率Vvm;
    根据所述虚拟机的最大输入输出速率Vmax及所述实际输入输出速率Vvm,
    确定所述虚拟机的可用输入输出速率Vava=Vmax-Vvm;
    根据所述缓存区当前的存储量Sbuf及所述虚拟机的可用输入输出速率Vava确
    定所述预设的时间T2=Sbuf/Vava。
    6.一种虚拟机连续快照装置,其特征在于,包括:
    停机模块,用于将虚拟机停机;
    更新模块,用于根据所述虚拟机中各页面的第一位图信息的值更新各页
    面的第二位图信息的值,所述第一位图信息用于标识各页面是否已被修改,
    所述第二位图信息用于标识所述各页面是否需要保存,所述各页面的第一位
    图信息和第二位图信息与各页面的地址一一对应;
    初始化模块,用于初始化所述虚拟机中各页面的第一位图信息的值;
    恢复模块,用于恢复所述虚拟机的运行;
    判断模块,用于依次判断所述虚拟机中各页面的第二位图信息的值是否
    为第一预设的值;
    处理模块,用于将第二位图信息的值为第一预设的值的各页面保存到缓
    存区,并将保存到缓存区的各页面的第二位图信息的值更改为第二预设的值。
    7.根据权利要求6所述的虚拟机连续快照装置,其特征在于,还包括:
    写保护模块,用于对所述虚拟机的内存页面进行写保护;
    截获模块,用于截获对所述虚拟机的被写保护的内存页面的写请求,所
    述写请求中包括待写入的数据及待写入数据的页面的地址;
    所述处理模块,还用于将与所述待写入数据的页面的第一位图信息的值
    更改为第三预设的值;
    所述判断模块,还用于判断所述待写入数据的页面的第二位图信息的值
    是否为第一预设的值;
    所述处理模块,还用于若是,则将所述待写入数据的页面保存到缓存区;
    所述处理模块,还用于去除对所述待写入数据页面的写保护,并将所述
    待写入的数据写入到所述待写入数据的页面中。
    8.根据权利要求6或7所述的虚拟机连续快照装置,其特征在于,还包
    括:
    监测模块,用于监测所述缓存区的剩余容量是否已达到第五预设的值;
    所述处理模块,还用于若是,则将所述缓存区中保存的页面移存至指定
    的位置,并记录所用时间T1;
    所述判断模块,还用于判断所述时间T1是否小于预设的时间T2;
    所述处理模块,还用于若是,则将所述将第二位图信息的值为第一预设
    的值的各页面保存到缓存区的操作挂起T3时间,所述T3=T2-T1。
    9.根据权利要求8所述的虚拟机连续快照装置,其特征在于,
    所述处理模块,还用于若否,则继续执行依次判断所述虚拟机中各页面
    的第二位图信息的值是否为第一预设的值的操作。
    10.根据权利要求9所述的虚拟机连续快照装置,其特征在于,还包括:
    运算模块,用于记录从前一次所述将缓存区中保存的页面移存至指定的
    位置的操作结束时至本次将缓存区中保存的页面移存至指定的位置的操作的
    时间间隔T4内所述虚拟机的实际输入输出速率Vvm;
    所述运算模块,还用于根据所述虚拟机的最大输入输出速率Vmax及所述
    实际输入输出速率Vvm,确定所述虚拟机的可用输入输出速率Vava=Vmax-Vvm;
    所述运算算模块,还用于根据所述缓存区当前的存储量Sbuf及所述虚拟
    机的可用输入输出速率Vava确定所述预设的时间T2=Sbuf/Vava。

    说明书

    虚拟机连续快照方法和装置

    技术领域

    本发明涉及计算机技术领域,尤其涉及一种虚拟机连续快照方法和装置。

    背景技术

    虚拟化技术可以有效整合和利用计算机资源,因此成为了云计算领域
    的关键支撑计算。为了提供连续、高可用的云服务,虚拟机中的数据和状
    态需要满足可靠性和安全性,由此引入了快照技术。快照技术可以保存虚
    拟机运行过程中的完整状态,包括虚拟机的磁盘状态、内存状态及设备状
    态,如CPU、网络等,在虚拟机故障时用于恢复虚拟机的状态,尽量少的
    丢失虚拟机的数据和状态。

    目前,虚拟机对内存状态进行快照时主要采用停机拷贝。停机拷贝是
    在进行虚拟机连续快照时将虚拟机挂起,当所有的内存数据被保存了后再
    恢复虚拟机运行,以保证此次快照时虚拟机内存中的各页面的数据完整,
    未被修改。

    但是,停机拷贝使得每次快照时虚拟机的宕机时间非常长,影响了虚
    拟机的性能。

    发明内容

    本发明提供一种虚拟机连续快照方法和装置,用于解决现有技术中虚拟
    机连续快照方法使虚拟机宕机时间长,影响虚拟机性能的问题。

    本发明提供一种虚拟机连续快照方法,包括:

    将虚拟机停机;

    根据所述虚拟机中各页面的第一位图信息的值更新各页面的第二位图信
    息的值,所述第一位图信息用于标识各页面是否已被修改,所述第二位图信
    息用于标识所述各页面是否需要保存,所述各页面的第一位图信息和第二位
    图信息与各页面的地址一一对应;

    初始化所述虚拟机中各页面的第一位图信息的值;

    恢复所述虚拟机的运行;

    依次判断所述虚拟机中各页面的第二位图信息的值是否为第一预设的
    值;

    将第二位图信息的值为第一预设的值的各页面保存到缓存区,并将保存
    到缓存区的各页面的第二位图信息的值更改为第二预设的值。

    本发明提供一种虚拟机连续快照装置,包括:

    停机模块,用于将虚拟机停机;

    更新模块,用于根据所述虚拟机中各页面的第一位图信息的值更新各页
    面的第二位图信息的值,所述第一位图信息用于标识各页面是否已被修改,
    所述第二位图信息用于标识所述各页面是否需要保存,所述各页面的第一位
    图信息和第二位图信息与各页面的地址一一对应;

    初始化模块,用于初始化所述虚拟机中各页面的第一位图信息的值;

    恢复模块,用于恢复所述虚拟机的运行;

    判断模块,用于依次判断所述虚拟机中各页面的第二位图信息的值是否
    为第一预设的值;

    处理模块,用于将第二位图信息的值为第一预设的值的各页面保存到缓
    存区,并将保存到缓存区的各页面的第二位图信息的值更改为第二预设的值。

    本发明提供的虚拟机连续快照方法和装置,虚拟机连续快照装置仅需在
    虚拟机停机过程中将虚拟机中各页面的第一位图信息的值复制到第二位图信
    息中,即可恢复虚拟机的运行,在虚拟机运行过程中根据各页面的第二位图
    信息的值依次对需要保存的各页面进行快照保存,由于对各页面位图信息的
    操作所需的时间很短,使得一次快照过程中虚拟机停机时间较短,且在虚拟
    机连续快照时仅需保存自上次快照后被修改的页面,使得所有的页面仅被保
    存一次,保存的页面数量少,从而大大缩短了虚拟机一次快照的时间,降低
    了虚拟机连续快照过程对虚拟机性能的影响。

    附图说明

    图1为本发明提供的一种虚拟机连续快照方法实施例一的流程示意图;

    图2为本发明提供的一种虚拟机连续快照方法实施例二的流程示意图;

    图3为本发明提供的一种虚拟机连续快照方法实施例三的流程示意图;

    图4为本发明提供的一种虚拟机连续快照装置实施例一的结构示意图;

    图5为本发明提供的一种虚拟机连续快照装置实施例二的结构示意
    图。

    具体实施方式

    图1为本发明提供的一种虚拟机连续快照方法实施例一的流程示意图。
    如图1所示,该方法包括:

    S10,将虚拟机停机。

    S11,根据所述虚拟机中各页面的第一位图信息的值更新各页面的第二位
    图信息的值。

    其中,所述第一位图信息用于标识各页面是否已被修改,所述第二位图
    信息用于标识所述各页面是否需要保存,所述各页面的第一位图信息和第二
    位图信息与各页面的地址一一对应。

    具体的,本方法实施例由虚拟机连续快照装置执行。本发明中虚拟机内
    存的最小单位为页面,每个页面对应一个页面地址。本发明提供的虚拟机连
    续快照方法以对虚拟机的内存快照为例进行说明,首先为虚拟机中各页面建
    立位图信息表,位图信息表中包括虚拟机中各页面的地址与第一位图信息和
    第二位图信息的对应关系。可以分别通过一个比特的值来表示第一位图信息
    和第二位图信息的两种状态。比如分别用1或0来表示第一位图信息和第二
    位图信息的两种状态。

    为方便说明,本发明各实施例中,第一位图信息的值用0表示该页面被
    写保护,未被修改,用1表示改页面已被修改;第二位图信息的值用1表示
    该页面需要保存但未保存,用0表示该页面已经被保存或不需要保存为例进
    行说明。

    本实施例中在进行虚拟机连续快照时,首先将虚拟机停机,然后将位图
    信息表中第一位图信息的值拷贝到第二位图信息中,这样虚拟机连续快照装
    置即可根据该页面是否被修改来判断该页面是否需要保存了。举例来说,若
    虚拟机中共包括3个页面,虚拟机停机时,第一页面和第三页面的第一位图
    信息的值均为1,第二页面的第一位图信息的值为0,则说明第一页面和第三
    页面已被修改,第二页面未被修改,将各页面的第一位图信息复制到第二位
    图信息后,第一页面和第三页面的第二位图信息为1,第二页面的第二位图
    信息为0,则说明第一页面和第三页面需要保存,而第二页面不需要保存。

    S12,初始化所述虚拟机中各页面的第一位图信息的值。

    具体的,将虚拟机中各页面的第一位图信息复制到第二位图信息后,为
    记录此次快照过程中各页面的被修改情况,将各页面的第一位图信息初始化,
    即将各页面的第一位图信息的值置0。在下次快照开始前,虚拟机连续快照
    装置再将各页面的第一位图信息值复制到第二位图信息中,此时根据各页面
    的第二位图信息即可确定在上次快照过程中被修改的页面,从而只保存相应
    被修改过的页面了。

    S13,恢复所述虚拟机的运行。

    需要说明的是,上述S11和S12仅是一些简单的数据操作,所需时间很
    短,从而使虚拟机停机的时间很短。

    S14,依次判断所述虚拟机中各页面的第二位图信息的值是否为第一预设
    的值。

    S15,将第二位图信息的值为第一预设的值的各页面保存到缓存区,并将
    保存到缓存区的各页面的第二位图信息的值更改为第二预设的值。

    具体的,本实施例中的第一预设的值即为1。虚拟机连续快照装置在虚
    拟机停机后,仅将虚拟机中各页面的第一位图信息的值复制到第二位图信息
    后,即恢复虚拟机的运行,之后,依次判断虚拟机中各页面的第二位图信息
    的标识,若某页面的第二位图信息的标识是0,则说明该页面已经被保存或
    无需保存,若为1,则说明该页面需要保存但未保存,将虚拟机中第二位图
    信息的值为1的各页面保存到缓存区中,另外为防止虚拟机连续快照装置在
    依次判断各页面的第二位图信息是否为1的过程中,对某一页面进行了重复
    判断,而多次保存的情况,虚拟机连续快照装置在根据第二位图信息标识将
    需要保存的页面保存到缓存区后,再将该页面地址对应的第二位图信息的标
    识更改为0。

    在本发明提供的虚拟机连续快照方法中,在对虚拟机第一次快照前,可
    将虚拟机中各页面的第二位图信息的值统一设置为1,这样虚拟机连续快照
    装置对虚拟机进行第一次快照时,可以依次将各页面保存到缓存中。在之后
    的快照过程中,各页面的第二位图信息的值可以根据该页面的第一位图信息
    的值来确定,若页面被修改了,则将页面的第二位图信息值修改为1,以便
    下次快照时虚拟机连续快照装置保存该页面,使得虚拟机连续快照装置每次
    快照时只对需要保存的页面进行缓存,保证了虚拟机连续快照的完整性。

    本发明提供的虚拟机连续快照方法,虚拟机连续快照装置仅需在虚拟机
    停机过程中将虚拟机中各页面的第一位图信息的值复制到第二位图信息中,
    即可恢复虚拟机的运行,在虚拟机运行过程中根据各页面的第二位图信息的
    值依次对需要保存的各页面进行快照保存,由于对各页面位图信息的操作所
    需的时间很短,使得一次快照过程中虚拟机停机时间较短,且在虚拟机连续
    快照过程中仅需保存自上次快照后被修改的页面,使得所有的页面仅被保存
    一次,保存的页面数量少,从而大大缩短了虚拟机一次快照的时间,降低了
    虚拟机连续快照过程对虚拟机性能的影响。图2为本发明提供是虚拟机连续
    快照方法实施例二的流程示意图。如图2所示,在上述S13之前,该方法还
    包括:

    S20,对所述虚拟机的内存页面进行写保护。

    具体的,虚拟机连续快照装置为了实时截获对虚拟机内存页面的写请求,
    需要对虚拟机进行写保护。

    上述S13之后,该方法还包括:

    S21,截获对虚拟机的被写保护的内存页面的写请求,所述写请求中包括
    待写入的数据及待写入数据的页面的地址。

    具体的,当网络中任一实体需要向虚拟机内存中的页面写入新数据时,
    可以向虚拟机发送写请求,由于虚拟机进行了写保护,对内存页面的写操作
    会使得虚拟机陷出到虚拟机监控器,从而虚拟快照装置能够截获到对虚拟机
    的写请求。其中,写请求中包括待写入新数据的页面的地址。

    S22,将与所述待写入数据的页面的第一位图信息的值更改为第三预设的
    值。

    具体的,虚拟机连续快照装置在截获到有写请求时,即可确定与该写请
    求中的页面地址对应的第一位图信息的值为0,即说明该页面被写保护,不
    允许修改,则虚拟机连续快照装置可将该页面的第一位图信息的值更改为1,
    以标记该页面被修改。

    S23,判断所述待写入数据的页面的第二位图信息的值是否为第一预设的
    值,若是则执行S24,否则执行S25。

    S24,将所述待写入数据的页面保存到缓存区。

    S25,去除对所述待写入数据的页面的写保护,并将所述待写入的数据写
    入到所述待写入数据的页面中。

    需要说明的是,本实施例中的上述步骤S20对虚拟机进行写保护的操作
    与上述S11及S12间无固定的先后顺序,只要保证S11、S12和S20在S13
    前执行即可,图2中以S20在S12之后为例进行说明。另外本实施例中的步
    骤S21~S25是在截获到对虚拟机的写请求后触发的,它们的执行与上述S14
    由虚拟机连续快照装置主动发起的动作之间可以是同时进行的。上述S14可
    以由虚拟机连续快照装置在后台一直重复执行,而步骤S10~S13、S21~S25
    需要在前台操作控制实现,即两个过程是并行进行的两个线程,互不影响。

    为了防止待写入数据的页面在被修改前未被保存,本实施例中在对待写
    入数据的页面进行修改前先判断该页面是否已存入缓存区,即先判断该页面
    的第二位图信息的值是否为1,若是1则先将该页面存入缓存区后再对该页
    面进行修改,若是0,则说明该页面被修改前的数据可能已在虚拟机连续快
    照装置执行上述S14的过程中存入了缓存区,无需再保存。

    本发明提供的虚拟机连续快照方法,虚拟机连续快照装置仅需在虚拟机
    停机过程中将虚拟机中各页面的第一位图信息的值复制到第二位图信息中,
    即可恢复虚拟机的运行,虚拟机运行时根据各页面的第二位图信息的值依次
    对需要保存的各页面进行快照保存,由于对各页面位图信息的操作所需的时
    间很短,缩短了虚拟机的停机时间,且在虚拟机连续快照过程中仅需保存自
    上次快照后被修改的页面,使得所有的页面仅被保存一次,保存的页面数量
    少,从而大大缩短了虚拟机一次快照的时间,降低了虚拟机连续快照过程对
    虚拟机性能的影响。另外,在收到对虚拟机的写请求时,在修改了待写入数
    据的页面的第一位图信息的值后,先确定待写入数据的页面已保存后再对该
    页面进行修改,使得待写入数据的页面在写入数据前后的状态能在前后两次
    的快照过程中被保存下来,保证了虚拟机连续快照的完整性和连续性。

    图3为本发明提供的虚拟机连续快照方法实施例三的流程示意图。如图
    3所示,该方法还包括:

    S30,监测所述缓存区的剩余容量是否已达到第四预设的值,若是则执行
    S31,否则执行S34。

    具体的,虚拟机连续快照装置在向缓存区中存入页面时,也要同时监测
    缓存区的剩余容量,以防止缓存区已存满或容量不够,而存入的新的页面并
    未被保存。第五预设的值可以根据缓存区的容量设置,比如设置为缓存区容
    量的1%、3%或者0等等。本实施例对此不做限定。

    S31,将所述缓存区中保存的页面移存至指定的位置,并记录所用时间
    T1。

    由于将缓存区中的数据转存至磁盘时,会占用宿主机大量的输入输出
    (InputandOutput,简称IO)速率,从而影响虚拟机对IO资源的访问,影响
    虚拟机的性能,因此本发明实施例中可以控制虚拟机连续快照装置将缓存区
    中的数据移存至指定位置的速率。

    S32,判断所述时间T1是否小于预设的时间T2,若是,则执行S33,否
    则执行S34。

    本发明实施例以相邻两次将缓存区中的数据移存至指定位置的开始时刻
    为一个周期,若能控制每个周期内将缓存区中的数据移存至指定位置占用宿
    主机的IO速率尽量不影响虚拟机占用的IO速率,即可改善虚拟机的性能。

    则该方法中还包括:

    记录从前一次所述将缓存区中保存的页面移存至指定的位置的操作结束
    时至本次将缓存区中保存的页面移存至指定的位置的操作的时间间隔T4内
    所述虚拟机的实际输入输出速率Vvm。

    具体的,在虚拟机运行过程中,记录每一次IO操作的数据的大小,通常
    虚拟机的IO操作以扇区为单位,每个扇区默认为512字节,所以记录时只记
    录每次IO操作的扇区个数即可。假设在T4内记录的扇区总数为N,则可确
    定在T4时间内虚拟机的实际输入输出速率Vvm=(N*512)/T4。

    根据所述虚拟机的最大输入输出速率Vmax及所述实际输入输出速率Vvm,
    确定所述虚拟机的可用输入输出速率Vava=Vmax-Vvm。

    通常,管理员在虚拟机启动时会给定虚拟机一个最大IO速率Vmax,由此
    可确定虚拟机的可用IO速率Vava=Vmax-Vvm。

    根据所述缓存区当前的存储量Sbuf及所述虚拟机的可用输入输出速率
    Vava确定所述预设的时间T2=Sbuf/Vava。若缓存区此次的存储量为Sbuf,则可确
    定此次将缓存区的数据移存至指定位置可用的时间,即预设的时间
    T2=Sbuf/Vava=Sbuf/(Vmax-Vvm)=Sbuf/(Vmax-(N*512)/T4)。

    S33,将所述将第二位图信息的值为第一预设的值的各页面保存到缓存区
    的操作挂起T3时间,所述T3=T2-T1。

    若通过比较确定此次将缓存区的数据写入磁盘所用的时间T1比本周期
    内可用的时间T2短,那么说明此次将缓存区的数据写入磁盘的速率可能大于
    可用的IO速率,为了使本次周期内将缓存区的数据写入磁盘所用的速率比较
    均匀,可以将虚拟机的快照进程挂起T3时间,从而保证从整体上看该次将缓
    存区的数据写入磁盘的操作时间T1与T2相当,继而保证将缓存区的数据写
    入磁盘的速度小于上述可用的IO速率。

    需要说明的是上述S30~S33的过程与上述S10~S14及S20~S25的过程之
    间没有固定的先后顺序,可以是并行进行的过程,也可以在虚拟机连续快照
    装置每完成一次快照时,即触发执行一次S30~S33,或者也可以设定一个固
    定的时间间隔,在每隔该时间间隔后,虚拟机连续快照装置即触发执行一次
    S30~S33等等,本实施例对此不做限定。

    S34,执行依次判断所述虚拟机中各页面的第二位图信息的值是否为第一
    预设的值的操作。

    具体的,若虚拟机连续快照装置判断缓存区的容量仍可继续保存页面时,
    则可继续判断虚拟机中的各页面的第二位图信息是否为1,并将第二位图信
    息为1的页面保存到缓存区中。

    本实施例提供的虚拟机连续快照方法,虚拟机连续快照装置在将虚拟机
    内存中的页面存入到缓存区的过程中,同时检测缓存区的容量,以及时将缓
    存区中的页面移存至指定的位置,且根据将缓存区的页面移至指定位置的时
    间,控制将快照过程挂起的时间,通过控制每次将缓存区中的页面移存至指
    定的位置的速率,尽量降低了将缓存区中的页面移存至指定的位置对虚拟机
    性能的影响。

    图4为本发明提供的虚拟机连续快照装置实施例一的结构示意图。如图
    1所示,该虚拟机连续快照装置400,包括:停机模块401、更新模块402、
    初始化模块403、恢复模块404、判断模块405及处理模块406。其中,停机
    模块401用于将虚拟机停机;更新模块402用于根据所述虚拟机中各页面的
    第一位图信息的值更新各页面的第二位图信息的值,所述第一位图信息用于
    标识各页面是否已被修改,所述第二位图信息用于标识所述各页面是否需要
    保存,所述各页面的第一位图信息和第二位图信息与各页面的地址一一对应;
    初始化模块403用于初始化所述虚拟机中各页面的第一位图信息的值;恢复
    模块404用于恢复所述虚拟机的运行;判断模块405用于依次判断所述虚拟
    机中各页面的第二位图信息的值是否为第一预设的值;处理模块406用于将
    第二位图信息的值为第一预设的值的各页面保存到缓存区,并将保存到缓存
    区的各页面的第二位图信息的值更改为第二预设的值。

    本实施例提供的虚拟机连续快照装置中各模块的具体功能及虚拟机连续
    快照处理流程可参照上述虚拟机连续快照方法实施例一的详细描述,此处不
    再赘述。

    本实施例提供的虚拟机连续快照装置,虚拟机连续快照装置仅需在虚拟
    机停机过程中将虚拟机中各页面的第一位图信息的值复制到第二位图信息
    中,即可恢复虚拟机的运行,在虚拟机运行过程中根据各页面的第二位图信
    息的值依次对需要保存的各页面进行快照保存,由于对各页面位图信息的操
    作所需的时间很短,使得一次快照过程中虚拟机停机时间较短,且在虚拟机
    连续快照过程中仅需保存自上次快照后被修改的页面,使得所有的页面仅被
    保存一次,保存的页面数量少,从而大大缩短了虚拟机一次快照的时间,降
    低了虚拟机连续快照过程对虚拟机性能的影响。

    图5为本发明提供的虚拟机连续快照装置实施例二的结构示意图。如图
    5所示,在图4所示的基础上,该虚拟机连续快照装置400还包括:写保护
    模块501和截获模块502。

    其中,写保护模块501用于对所述虚拟机的内存页面进行写保护;截获
    模块502用于截获对虚拟机的被写保护的内存页面的写请求,所述写请求中
    包括待写入的数据及待写入数据的页面的地址;所述处理模块406还用于将
    与所述待写入数据的页面的第一位图信息的值更改为第三预设的值;所述判
    断模块405还用于判断所述待写入数据的页面的第二位图信息的值是否为第
    一预设的值;所述处理模块406还用于若是,则将所述待写入数据的页面保
    存到缓存区;所述处理模块406还用于去除对所述待写入数据的页面的写保
    护,并将所述待写入的数据写入到所述待写入数据的页面中。

    进一步地,该虚拟机连续快照装置还包括:监测模块503。

    其中,监测模块503用于监测所述缓存区的剩余容量是否已达到第五预
    设的值;所述处理模块406还用于若是,则将所述缓存区中保存的页面移存
    至指定的位置,并记录所用时间T1;所述判断模块405还用于判断所述时间
    T1是否小于预设的时间T2;所述处理模块406还用于若是,则将所述将第
    二位图信息的值为第一预设的值的各页面保存到缓存区的操作挂起T3时间,
    所述T3=T2-T1。

    本发明的一种可能的实现形式中,上述处理模块406还用于若否,则继
    续执行依次判断所述虚拟机中各页面的第二位图信息的值是否为第一预设的
    值的操作。

    本发明的一种较优的实现形式中,虚拟机连续快照装置400还包括:运
    算模块504。

    其中,运算模块504用于记录从前一次所述将缓存区中保存的页面移存
    至指定的位置的操作结束时至本次将缓存区中保存的页面移存至指定的位置
    的操作的时间间隔T4内所述虚拟机的实际输入输出速率Vvm;所述运算模块
    504还用于根据所述虚拟机的最大输入输出速率Vmax及所述实际输入输出速
    率Vvm,确定所述虚拟机的可用输入输出速率Vava=Vmax-Vvm;所述运算模块
    504还用于根据所述缓存区当前的存储量Sbuf及所述虚拟机的可用输入输出
    速率Vava确定所述预设的时间T2=Sbuf/Vava。

    本实施例提供的虚拟机连续快照装置中各模块的具体功能及处理流程可
    参照上述虚拟机连续快照处理方法实施例二和三的详细描述,此处不再赘述。

    本发明提供的虚拟机连续快照方法,虚拟机连续快照装置仅需在虚拟机
    停机过程中将虚拟机中各页面的第一位图信息的值复制到第二位图信息中,
    即恢复虚拟机的运行,在虚拟机运行时根据各页面的第二位图信息的值依次
    对需要保存的各页面进行快照保存,由于对各页面位图信息的操作所需的时
    间很短,缩短了虚拟机的停机时间,且在虚拟机连续快照过程中仅需保存自
    上次快照后被修改的页面,使得所有的页面仅被保存一次,保存的页面数量
    少,从而大大缩短了虚拟机一次快照的时间,降低了虚拟机连续快照过程对
    虚拟机性能的影响。另外,在收到对虚拟机的写请求时,在修改了待写入数
    据的页面的第一位图信息的值后,先确定待写入数据的页面已保存后再对该
    页面进行修改,使得待写入数据的页面在写入数据前后的状态能在前后两次
    的快照过程中被保存下来,保证了虚拟机连续快照的完整性和连续性。另外,
    根据将缓存区的页面移至指定位置的时间,控制将快照过程挂起的时间,通
    过控制每次将缓存区中的页面移存至指定的位置的速率,尽量降低了将缓存
    区的快照移存时对虚拟机性能的影响。

    本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步
    骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可
    读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而
    前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码
    的介质。

    最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对
    其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通
    技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,
    或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并
    不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

    关 键  词:
    虚拟机 连续 快照 方法 装置
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:虚拟机连续快照方法和装置.pdf
    链接地址:https://www.zhuanlichaxun.net/p-6290853.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1