虚拟机容错方法以及设备技术

技术编号:10152841 阅读:158 留言:0更新日期:2014-06-30 19:21
本发明专利技术提供了一种虚拟机容错方法以及设备。其中,该方法包括:判断预取缓冲区中的缓存数据是否是完整的文件;根据判断结果确定备用虚拟机的同步完成状态,并将预取缓冲区中的缓存数据写入相关地址;当主虚拟机发生故障时,根据与故障发生时间最相近一次确定的备用虚拟机处于的同步完成状态启动容错功能。在保证同步数据的实时性的前提下,本发明专利技术实施例能够有效避免因同步中断,同步数据不完整导致主虚拟机发生故障时,备用虚拟机未处于同步完成状态,无法启动容错功能进行容错的恶劣后果。

【技术实现步骤摘要】
虚拟机容错方法以及设备
本专利技术涉及虚拟机容错领域,特别是涉及虚拟机容错方法以及设备。
技术介绍
随着各种云计算平台得到广泛应用,对系统高可用的要求也逐步提高。提高系统可用性的常用方法之一就是系统容错,系统容错的技术包括:硬件冗余、软件备份和检查点、虚拟机容错。以上系统容错的技术中,虚拟机容错是目前云时代系统容错的研究热点。对虚拟机进行容错保护时,需要先创建与被保护的虚拟机完全一样的副本,称为备用虚拟机。在主虚拟机(即被保护的虚拟机)正常运行时,备用虚拟机保持与主虚拟机的同步。当主虚拟机由于发生故障,备用虚拟机能够立即代替主虚拟机运行,保证虚拟机的对外服务不会中断。现有技术中,主虚拟机与备用虚拟机能够实现基本的虚拟机容错功能,但现有技术存在如下缺点:在主虚拟机负载较重并且系统事件频繁的时候,主虚拟机和备用虚拟机之间的同步时间增长,若此时同步中断,容错功能会失败,即主虚拟机发生故障后,备用虚拟机无法正常运行,导致无法实现对系统高可用的要求。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的虚拟机容错方法以及相应的设备。依据本专利技术的一个方面,提供了一种虚拟机容错方法,在与主虚拟机相应的备用虚拟机中设有预取缓冲区,用于接收来自所述主虚拟机的同步数据并进行缓存,包括:判断所述预取缓冲区中的缓存数据是否是完整的文件;根据判断结果确定所述备用虚拟机的同步完成状态,并将所述预取缓冲区中的缓存数据写入相关地址;当主虚拟机发生故障时,根据与故障发生时间最相近一次确定的所述备用虚拟机处于的同步完成状态启动容错功能。可选地,根据判断结果确定所述备用虚拟机的同步完成状态,并将所述预取缓冲区中的缓存数据写入相关地址,包括:若否,拒绝将所述预取缓冲区中的缓存数据写入所述相关地址,确定所述备用虚拟机处于上一同步完成状态,其中,所述处于上一同步完成状态是指所述备用虚拟机中存储的数据与上一次同步完成状态时存储的数据相同;若是,将所述缓存数据写入所述相关地址,确定所述备用虚拟机处于与所述上一同步完成状态不同的下一同步完成状态。可选地,所述缓存数据包括下列至少任意之一:内存脏页数据;设备数据。可选地,所述主虚拟机与所述备用虚拟机通过传输控制协议TCP进行连接。可选地,所述主虚拟机以及所述备用虚拟机均采用模拟处理器的自由软件QEMU执行运行操作。可选地,判断所述预取缓冲区中的缓存数据是否是完整的文件,包括:监测到所述主虚拟机与所述备用虚拟机的数据同步过程停止时,判断所述预取缓冲区中的缓存数据是否是完整的文件。依据本专利技术的另一个方面,还提供了一种备用虚拟机,其中,所述备用虚拟机中设有预取缓冲区,用于接收来自所述主虚拟机的同步数据并进行缓存,包括:判断器,配置为判断预取缓冲区中的缓存数据是否是完整的文件;确定器,配置为根据判断结果确定所述备用虚拟机的同步完成状态;写入器,配置为根据判断结果将所述预取缓冲区中的缓存数据写入相关地址;启动器,配置为当主虚拟机发生故障时,根据与故障发生时间最相近一次所述确定器确定的所述备用虚拟机处于的同步完成状态启动容错功能。可选地,所述备用虚拟机还包括:监测器,配置为监测所述主虚拟机与所述备用虚拟机的数据同步过程;以及监测到所述主虚拟机与所述备用虚拟机的数据同步过程停止时,触发所述判断器判断所述预取缓冲区中的缓存数据是否完整。依据本专利技术实施例能够判断备用虚拟机中用于接收及缓存同步数据的预取缓冲区中的缓存数据是否是完整的文件,并根据判断结果确定备用虚拟机的同步完成状态。继而,在主虚拟机发生故障时,根据确定的同步完成状态启动容错功能。其中,备用虚拟机的预取缓冲区能够预取缓存数据同步过程中主虚拟机发送至备用虚拟机的同步数据。因此,若同步中断时,预取缓冲区中的同步数据不完整,本专利技术实施例能够确定备用虚拟机处于上一同步完成状态。若同步中断时,预取缓冲区中的同步数据为完整的文件,则能够将同步数据写入相关地址。在保证同步数据的实时性的前提下,本专利技术实施例能够有效避免因同步中断,同步数据不完整导致主虚拟机发生故障时,备用虚拟机未处于同步完成状态,无法启动容错功能进行容错的恶劣后果。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。根据下文结合附图对本专利技术具体实施例的详细描述,本领域技术人员将会更加明了本专利技术的上述以及其他目的、优点和特征。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的备用虚拟机的数据写入方法的处理流程图;图2示出了根据本专利技术一个实施例的备用虚拟机容错方法的处理流程图;图3示出了根据本专利技术一个实施例的包括主虚拟机和备用虚拟机的容错系统的技术架构图;图4示出了根据本专利技术一个实施例的数据同步过程的同步时间以及时间间隔的关系;图5示出了根据本专利技术一个实施例的一种备用虚拟机的数据写入装置的结构示意图;以及图6示出了根据本专利技术一个实施例的备用虚拟机的结构示意图。具体实施方式在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本专利技术也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本专利技术的内容,并且上面对特定语言所做的描述是为了披露本专利技术的最佳实施方式。相关技术中提及,在主虚拟机负载较重并且系统时间频繁的时候,主虚拟机和备用虚拟机之间的同步时间增长,若此时同步中断,容错功能会失败。为解决上述技术问题,本专利技术实施例提供了一种备用虚拟机的数据写入方法。图1示出了根据本专利技术一个实施例的备用虚拟机的数据写入方法的处理流程图。需要说明的是,本专利技术实施例中,在与主虚拟机相应的备用虚拟机中设有预取缓冲区,用于接收来自主虚拟机的同步数据,并对接收到的数据进行缓存。如图1所示,本专利技术实施例的备用虚拟机的数据写入方法的流程起始于步骤S102。如图1所示的步骤S102,本专利技术实施例判断预取缓冲区中缓存的数据是否是完整的文件。得到判断结果之后,执行步骤S104,根据判断结果确定备用虚拟机的同步完成状态。另外,得到判断结果之后,本专利技术实施例将预取缓冲区中的缓存数据写入相关地址。依据本专利技术实施例能够判断备用虚拟机中用于接收及缓存同步数据的预取缓冲区中的缓存数据是否是完整的文件,并根据判断结果确定备用虚拟机的同步完成状态。因此,依据本专利技术实施例能够实现主虚拟机与备用虚拟机的数据同步过程,将主虚拟机的数据备份至任意备用虚拟机,避免数据丢失造成的不良后果。并且,依据本专利技术实施例能够在主虚拟机与备用虚拟机进行数据同步的过程中,根据需要随时终止数据同步过程而不影响主虚拟机与备用虚拟机各自的运行操作。本专利技术实施例提供的数据写入方法能够适用于存在备用虚拟机的多种环境,除常用于容错功能外,还可能应用于存在同步备份功能、数据复制功能等环境。本文档来自技高网...
虚拟机容错方法以及设备

【技术保护点】
一种虚拟机容错方法,在与主虚拟机相应的备用虚拟机中设有预取缓冲区,用于接收来自所述主虚拟机的同步数据并进行缓存,包括:判断所述预取缓冲区中的缓存数据是否是完整的文件;根据判断结果确定所述备用虚拟机的同步完成状态,并将所述预取缓冲区中的缓存数据写入相关地址;当主虚拟机发生故障时,根据与故障发生时间最相近一次确定的所述备用虚拟机处于的同步完成状态启动容错功能。

【技术特征摘要】
1.一种虚拟机容错方法,在与主虚拟机相应的备用虚拟机中设有预取缓冲区,用于接收来自所述主虚拟机的同步数据并进行缓存,包括:判断所述预取缓冲区中的缓存数据是否是完整的文件;根据判断结果确定所述备用虚拟机的同步完成状态,并将所述预取缓冲区中的缓存数据写入相关地址;当主虚拟机发生故障时,根据与故障发生时间最相近一次确定的所述备用虚拟机处于的同步完成状态启动容错功能;其中,所述根据判断结果确定所述备用虚拟机的同步完成状态,并将所述预取缓冲区中的缓存数据写入相关地址,包括:若所述预取缓冲区中的缓存数据不是完整的文件,则拒绝将所述预取缓冲区中的缓存数据写入所述相关地址,确定所述备用虚拟机处于上一同步完成状态,其中,所述处于上一同步完成状态是指所述备用虚拟机中存储的数据与上一次同步完成状态时存储的数据相同;若所述预取缓冲区中的缓存数据是完整的文件,则将所述预取缓冲区中的缓存数据写入所述相关地址,确定所述备用虚拟机处于与所述上一同步完成状态不同的下一同步完成状态。2.根据权利要求1所述的方法,其中,所述缓存数据包括下列至少任意之一:内存脏页数据;设备数据。3.根据权利要求2所述的方法,其中,所述主虚拟机与所述备用虚拟机通过传输控制协议TCP进行连接。4.根据权利要求1至3任一项所述的方法,其中,所述主虚拟机以及所述备用虚拟机均采用开源虚拟机软件QEMU-KVM执行运行操作。5.根据权利要求1至3任一项所述的方法,其中,判断所述预取缓冲区中的...

【专利技术属性】
技术研发人员:王峻青尹殷田媛媛
申请(专利权)人:中标软件有限公司
类型:发明
国别省市:上海;31

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

1