一种虚拟机故障快速恢复方法及系统技术方案

技术编号:21627334 阅读:93 留言:0更新日期:2019-07-17 10:36
本发明专利技术公开了一种虚拟机故障快速恢复方法及系统,通过备份虚拟机地址映射表,设置虚拟机对应的宿主机物理页为只读,利用写时复制技术实现虚拟机对应宿主机物理内存内容的保护,虚拟机故障之后能够快速恢复到虚拟机前一个备份的状态。本发明专利技术具有备份数据量小,并且备份和恢复速度快等优点,保障了虚拟机的可靠运行。

A Fast Fault Recovery Method and System for Virtual Machine

【技术实现步骤摘要】
一种虚拟机故障快速恢复方法及系统
本专利技术涉及一种虚拟机故障快速恢复方法及系统,属于虚拟机故障处理

技术介绍
目前,提高虚拟机可靠性的主要方法是检查点技术,检查点技术是保存进程或系统运行过程中瞬时状态信息的一个镜像文件,根据某种需求可以通过它把系统回滚到之前运行的某个状态。虚拟机内存检查点技术主要有四个重要性能量化指标,分别是检查点大小、停机时间、保存总时间和恢复时间。内存排除是减小检查点大小的一个重要手段,进程中不需要保存的内存部分包括只读的和已消亡的。增量机制是一项广为人知的检查点优化技术,它只保存最近一次检查点文件中那些修改过的部分,当需要从检查点文件恢复进程的执行时,未修改的数据可以从上一次检查点文件中读取,因此增量技术可以减少保存的检查点数据主要取决于应用程序的内存访问特性。气球机制是另一种内存排除技术,通过改变物理内存和虚拟机内存之间的映射关系来动态调整虚拟机的内存大小。为了减小保存虚拟机检查点的停机时间,Factor等提出利用虚拟机在线迁移技术来实现在线的虚拟机检查点机制。当保存某个虚拟机的检查点的时候,该虚拟机在本机进行在线迁移,然而迁移传输的数据在传递到虚拟机管理器的同时都被截获并写入磁盘。该机制利用了Xen的现有特性并简化了虚拟机检查点的实现,但是这种方法实现的检查点并不适用于时间敏感性的应用场合,比如系统的Debug或要求精确输出的高可靠系统的状态保护,因为迁移是一个需要耗费较长时间的过程,基于预拷贝算法的迁移同步机制使得最终保存下来的检查点状态总是超前于应该捕获的时间点(即检查点触发的时刻)。但是该方法存在一个重大缺陷,由于虚拟机迁移需要耗费一定的时间,迁移的触发时刻总是滞后于虚拟机停机并保存虚拟CPU状态的时刻,所以利用虚拟机在线迁移技术来保存的检查点文件的状态总是超前于系统触发保存检查点时刻的虚拟机状态。也就是说,当需要t时刻的系统瞬时状态,利用该策略保存的却是t+Δt(Δt为虚拟机迁移的总时间)时刻的系统状态,这在某种需要精确捕获虚拟机瞬时状态的情形下是不可接受的。
技术实现思路
为了实现虚拟机故障之后的快速恢复,需要优化虚拟机内存检查点的性能,使之轻量化。此外,保存内存检查点的过程应该不影响系统的可用性,以及对应用程序执行的透明性,同时保存内存检查点的停机时间应该足够小到让用户无法感知,因此,有必要提出一种虚拟机故障之后的快速恢复方法。为实现上述目的,本专利技术提出一种基于虚拟机地址映射表备份和内存写时复制的虚拟机内存检查点的方法来实现虚拟机故障之后的快速恢复。本专利技术主要采用如下技术方案:一种虚拟机故障快速恢复方法,包括以下步骤:S100、备份虚拟机地址映射表,设置虚拟机对应的宿主机物理页为只读,同时保存此时刻的虚拟CPU状态和虚拟外设状态。S200、利用写时复制技术,执行虚拟机对应宿主机物理页的写操作。S300、判断虚拟机是否故障崩溃;若是,则执行S400,若否,则执行S500。S400、恢复备份的虚拟机地址映射表,然后执行S700。S500、判断上一轮备份的时间或写操作占用的物理页是否超过预设的阈值条件;若是,则执行S600,若否,则执行S700。S600、更新备份的虚拟机地址映射表。S700、开始下一轮备份操作,返回S100。基于相同的专利技术构思,本专利技术还提供了一种虚拟机故障快速恢复系统,包括:备份模块:用于备份虚拟机地址映射表,设置虚拟机对应的宿主机物理页为只读,同时保存此时刻的虚拟CPU状态和虚拟外设状态。写时复制模块:用于利用写时复制技术,执行虚拟机对应宿主机物理页的写操作。判断模块:用于判断虚拟机是否故障崩溃,和/或判断上一轮备份的时间或写操作占用的物理页是否超过预设的阈值条件。故障恢复模块:用于当虚拟机故障崩溃时,恢复备份的虚拟机地址映射表。备份更新模块:用于当上一轮备份的时间或写操作占用的物理页超过预设的阈值条件时,更新备份的虚拟机地址映射表。本专利技术带来的有益技术效果是:为保障虚拟机的可靠运行,本专利技术只实现上一个正常运行状态的快速恢复,通过备份虚拟机的地址映射表而不是备份虚拟机全部内存数据,具有备份数据量小、备份和恢复速度快等优点。同时利用写时复制技术实现了备份点虚拟机的内存保护,同时保存内存检查点的过程不影响系统的可用性、以及对应用程序执行的透明性,保存内存检查点的停机时间已足够小到让用户无法感知,可靠性更高。附图说明图1是本专利技术一个实施例提供的一种虚拟机故障快速恢复方法的流程示意图;图2是本专利技术另一个实施例提供的利用写时复制技术,执行虚拟机对应宿主机物理页的写操作流程示意图;图3是本专利技术又一个实施例提供的恢复备份的虚拟机地址映射表流程示意图;图4是本专利技术又一个实施例提供的一种虚拟机故障快速恢复系统的结构示意图。具体实施方式下面结合附图1至附图4和实施例对本专利技术进行详细描述,但不作为对本专利技术的限定。在一个实施例中,本公开揭示了一种虚拟机故障快速恢复方法,如图1所示,包括以下步骤:S100、备份虚拟机地址映射表,设置虚拟机对应的宿主机物理页为只读,同时保存此时刻的虚拟CPU状态和虚拟外设状态。S200、利用写时复制技术,执行虚拟机对应宿主机物理页的写操作。S300、判断虚拟机是否故障崩溃;若是,则执行S400,若否,则执行S500。S400、恢复备份的虚拟机地址映射表,然后执行S700。S500、判断上一轮备份的时间或写操作占用的物理页是否超过预设的阈值条件;若是,则执行S600,若否,则执行S700。S600、更新备份的虚拟机地址映射表。S700、开始下一轮备份操作,返回S100。应用本公开实施例的技术方案,至少具有如下有益效果:本公开实施例通过备份虚拟机的地址映射表,而不是备份虚拟机全部内存数据,当虚拟机故障之后可以快速恢复到虚拟机前一个备份的状态。同时,利用写时复制技术实现了备份点虚拟机的内存保护。具有备份数据量小、备份和恢复速度快、以及可靠性更高等优点。在另一个实施例中,步骤S100,备份虚拟机地址映射表包括:对客户机原有的影子页表进行备份,得到新备份的影子页表;对客户机原有的地址转换表进行备份,得到新备份的地址转换表。本实施例中,新备份的影子页表用于维护客户机虚拟地址到宿主机物理地址的映射关系,新备份的地址转换表用于维护客户机物理地址到宿主机物理地址的映射关系。当虚拟机故障崩溃时,通过新备份的影子页表和新备份的地址转换表可以快速还原虚拟机内存状态。在另一个实施例中,步骤S200中,利用写时复制技术,执行虚拟机对应宿主机物理页的写操作,如图2所示,包括以下步骤:S201、设置原有的影子页表的页表项读写位为只读,执行虚拟机对应宿主机物理页的写操作。S202、判断写操作过程中是否存在缺页异常;若是,则执行S203;若否,则执行S300。S203、捕获缺页异常,判断该缺页异常是否为设置宿主机物理页为只读而导致的异常;若是,则执行S204;若否,则执行S300。S204、为虚拟机执行写操作重新分配宿主机物理页,并将引起缺页故障的写操作目标页复制到重新分配的宿主机物理页,更新原有的影子页表,执行虚拟机对应重新分配的宿主机物理页的写操作,然后执行S300。本实施例中,通过将原有的影子页表的页表项读写位设为只读,虚拟机执行对应宿主机物理页的写操作本文档来自技高网
...

【技术保护点】
1.一种虚拟机故障快速恢复方法,包括以下步骤,S100、备份虚拟机地址映射表,设置虚拟机对应的宿主机物理页为只读,同时保存此时刻的虚拟CPU状态和虚拟外设状态;S200、利用写时复制技术,执行虚拟机对应宿主机物理页的写操作;S300、判断虚拟机是否故障崩溃;若是,则执行S400,若否,则执行S500;S400、恢复备份的虚拟机地址映射表,然后执行S700;S500、判断上一轮备份的时间或写操作占用的物理页是否超过预设的阈值条件;若是,则执行S600,若否,则执行S700;S600、更新备份的虚拟机地址映射表;S700、开始下一轮备份操作,返回S100。

【技术特征摘要】
1.一种虚拟机故障快速恢复方法,包括以下步骤,S100、备份虚拟机地址映射表,设置虚拟机对应的宿主机物理页为只读,同时保存此时刻的虚拟CPU状态和虚拟外设状态;S200、利用写时复制技术,执行虚拟机对应宿主机物理页的写操作;S300、判断虚拟机是否故障崩溃;若是,则执行S400,若否,则执行S500;S400、恢复备份的虚拟机地址映射表,然后执行S700;S500、判断上一轮备份的时间或写操作占用的物理页是否超过预设的阈值条件;若是,则执行S600,若否,则执行S700;S600、更新备份的虚拟机地址映射表;S700、开始下一轮备份操作,返回S100。2.根据权利要求1所述的方法,其中,优选的,所述步骤S100中,备份虚拟机地址映射表包括:对客户机原有的影子页表进行备份,得到新备份的影子页表;对客户机原有的地址转换表进行备份,得到新备份的地址转换表。3.根据权利要求2所述的方法,其中,所述步骤S200中,利用写时复制技术,执行虚拟机对应宿主机物理页的写操作,包括:S201、设置原有的影子页表的页表项读写位为只读,执行虚拟机对应宿主机物理页的写操作;S202、判断写操作过程中是否存在缺页异常;若是,则执行S203;若否,则执行S300;S203、捕获缺页异常,判断该缺页异常是否为设置宿主机物理页为只读而导致的异常;若是,则执行S204;若否,则执行S300;S204、为虚拟机执行写操作重新分配宿主机物理页,并将引起缺页故障的写操作目标页复制到重新分配的宿主机物理页,更新原有的影子页表,执行虚拟机对应重新分配的宿主机物理页的写操作,然后执行S300。4.根据权利要求3所述的方法,其中,所述步骤S400中,恢复备份的虚拟机地址映射表,包括:S401、以新备份的影子页表覆盖原有的影子页表;S402、释放重新分配的宿主机物理页;S403、以新备份的地址转换表覆盖原有的地址转换表;S404、加载保存的虚拟CPU状态和虚拟外设状态,恢复到虚拟机备份操作之前的状态。5.根据权利要求4所述的方法,其中,所述步骤S600中,更新备份的虚拟机地址映射表,包括:S601、修正原有的影子页表的页表项为可读写,释放新备份的影子页表占用的宿主机物理页,以修正后的原有的影子页表更新新备份的影子页表;S602、以原有的地址转换...

【专利技术属性】
技术研发人员:王强董小社折波杨帆崔靖茹张哲安宁刚成永刚董凡覃遵颖朱晓芒
申请(专利权)人:西安交通大学赛尔网络有限公司
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1