CN101876926A - 一种非对称结构的软件三机热备容错方法 - Google Patents
一种非对称结构的软件三机热备容错方法 Download PDFInfo
- Publication number
- CN101876926A CN101876926A CN2009102384560A CN200910238456A CN101876926A CN 101876926 A CN101876926 A CN 101876926A CN 2009102384560 A CN2009102384560 A CN 2009102384560A CN 200910238456 A CN200910238456 A CN 200910238456A CN 101876926 A CN101876926 A CN 101876926A
- Authority
- CN
- China
- Prior art keywords
- local
- physical host
- backup
- module
- remote
- 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
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明提出了一种非对称结构的软件三机热备容错方法,在本地和远程物理主机之上都装载虚拟机系统,同时为用户应用及其运行环境提供本地和远程两个备份域,用户应用及其运行环境被封装在一个工作域中,本地备份域和工作域运行在同一物理主机之上,远程备份域运行在另一台物理主机之上,两台物理主机通过网络相互连接。由于远程状态备份操作由特定的处理器完成,因此其执行过程不会对本地工作域的运行产生任何影响。该方法在保证系统可靠性的同时,大大降低了主备状态同步带来的性能开销,同时也使得该容错系统的部署更加灵活,可扩展性更好。
Description
技术领域
本发明涉及一种热备容错方法,尤其是一种面向多核平台的利用虚拟化技术实现的非对称结构的三机热备容错方法,属于计算机容错技术领域。
背景技术
随着计算机技术的广泛应用和复杂性的急剧提高,系统运行的可靠性问题越来越引起人们的关注,尤其是在一些安全关键领域,任何微小的故障都可能导致灾难性的后果。而容错技术是构建高可靠性系统最有力的手段之一,它是指当计算机由于器件老化、错误输入、外部环境影响和原始设计错误等因素产生异常行为时维持系统正常工作的技术总和,其目的在于提高系统的可靠性。
通常情况下,冗余是实现容错的基本手段,而传统计算机系统容错设计中,也广泛使用了硬件冗余(如N模冗余、主从备份等机制)、软件冗余(时间冗余、信息冗余、多版本程序设计、检查点恢复、防卫式编程等机制)等方面的设计,其中热备方法是最常用的硬件冗余技术之一,通过故障发生时的主备切换,保证了系统的不间断运行,进而提供较高的可靠性。热备系统通常需要针对特定的应用,定制专用的硬件电路,并为此设计配套的管理软件,因此设计和开发过程较为复杂,且成本较高。此外现有商业应用领域与航空电子应用领域,大量使用了商用计算机系统以及通用操作系统或嵌入式操作系统,计算平台本身也从单核逐渐向多核过度,因此传统计算机容错技术如何适用于现有计算机系统的特征和结构将是容错技术研究的新的挑战。
虚拟化技术是指利用虚拟机监视器(VMM)软件薄层,向下管理资源,向上提供虚拟硬件执行环境,每个虚拟机(VM),都包含处理器、存储器及设备等虚拟硬件资源,而同一台物理主机上可以支持多个VM同时运行。该技术起源于20世纪60年代,IBM公司最早在360系列计算机系统中使用了虚拟化技术,其目的是让用户可以分时共享计算资源,而在随后的二十年间,由于桌面计算机的迅速发展,计算机硬件的成本大幅减低,而虚拟化技术的发展也趋于停顿。到了二十世纪90年代,随着服务器性能的不断提高,以及网络技术的迅速发展,如何提高硬件资源的利用率,并使得现有的计算资源可以更加灵活的进行配置和管理,虚拟化技术再次成为了计算机行业研究的热点。早期的虚拟机系统只是为了实现对大型计算机系统的分时复用,使更多的用户可以使用,而现在的虚拟化技术则在服务器整合、多安全环境、传统应用移植等多个领域都有着广泛的应用前景。
发明内容
本发明针对安全关键领域中系统对可靠性的要求,提出了一种非对称结构的软件三机热备容错方法,该方法以虚拟化技术为基础,面向多核计算平台,通过在虚拟机系统中为工作域构建出位于不同物理主机之上的两个备份域,以提供运行时备份和故障恢复的功能。本发明通过提供本地和远程两级备份,并对其应用不同的备份策略,同时使用特定的处理器核完成本地远程状态同步,大大降低了主备状态同步的性能开销,提高了系统的整体性能。
本发明提出的基于虚拟机和多核计算平台的三机热备容错方法,在本地和远程物理主机之上都装载虚拟机系统,同时为用户应用及其运行环境提供本地和远程两个备份域,用户应用及其运行环境被封装在一个工作域中,本地备份域和工作域运行在同一物理主机之上,远程备份域运行在另一台物理主机之上,两台物理主机通过网络相互连接。本地物理主机的处理器被划分为两个子集,即通用处理器集与远程同步专用处理器集,其中虚拟机监视器VMM,客户域都被调度在通用处理器集之上运行,而远程同步专用处理器集只负责远程状态同步模块的运行,该模块和VMM之间利用信号进行通信。
本发明中,为了减少状态同步带来的额外性能开销,备份操作会首先在本地物理主机之上进行。同步开始时,运行在本地物理主机之上的工作域会被暂停,随后VMM将两次同步间隔中发生改变的状态同步到本地备份域中,包括处理器状态、发生改变的内存和外存数据,以及设备状态;本地同步操作完成后,工作域恢复到正常的运行状态,而VMM以信号的方式通知运行在远程同步专用处理器之上的远程状态同步模块,使其开始执行远程状态备份操作,即将本地备份域的数据同步到远程备份域中,由于远程状态备份操作由特定的处理器完成,因此其执行过程不会对本地工作域的运行产生任何影响。由于受网络传输等因素的限制,远程备份的速度会远远低于本地备份的速度,因此这种两级备份的方式在保证系统可靠性的同时,尽可能的降低了工作域的暂停时间,进而减少了系统因状态同步而带来的性能损失。
本发明提出的基于虚拟化技术的、具有非对称结构的软件三机热备容错方法,包含以下步骤:
步骤1:系统初始化;本地物理主机启动,划分处理器核,创建工作域以及本地备份域,并设定周期性备份时钟,远程物理主机启动,与本地物理主机建立连接,并创建远程备份域;
步骤2:本地备份;当备份时钟到来,本地物理主机上的本地状态同步模块暂停本地工作域的运行,执行本地状态同步操作,将工作域的状态同步到本地备份域中,具体操作包括虚拟处理器状态同步、虚拟内存数据同步、虚拟设备状态同步以及虚拟文件系统状态同步;
步骤3:远程备份;待本地状态同步完成,本地状态同步模块先恢复本地工作域至正常运行状态,随后发出指令至本地物理主机之上的第一远程状态同步模块,由第一远程状态同步模块开始执行远程状态同步操作,将本地备份域的状态同步到远程备份域中,具体操作包括虚拟处理器状态同步、虚拟内存数据同步、虚拟设备状态同步以及虚拟文件系统状态同步;
步骤4:工作域状态监控与故障恢复;本步骤包含:
步骤4.1工作域状态监控;本地物理主机之上的第一健康监控与故障恢复模块监控工作域的运行状态,工作域处于正常工作状态时,本地和远程备份域处于暂停状态,即不参与调度运行,也不进行I/O操作;如有故障发生,执行步骤4.2;
步骤4.2工作域故障恢复;首先尝试激活本地备份域,并恢复工作域到正常状态;如果本地恢复操作失败,则通过网络连接位于远程物理主机之上的第二健康监控与故障恢复模块,尝试激活远程备份域,并恢复工作域到正常运行状态;
步骤5:远程物理主机状态监控与故障恢复;本步骤包含:
步骤5.1远程物理主机状态监控;本地物理主机之上的第一健康监控与故障恢复模块监控远程物理主机的运行状态,该模块中设置周期性时钟,时钟到期后,该模块尝试与位于远程物理主机之上的第二健康监控与故障恢复模块通信,判断远程主机当前状态是否正常,如果通信并读取成功,表明状态正常,重置定时器,返回正常执行状态,如果通信失败,表明有故障发生,执行步骤5.2;
步骤5.2远程物理主机故障恢复;首先重启远程物理主机,然后让其与本地物理主机建立连接,随后立即执行一次远程同步操作,恢复其到正常备份状态;
步骤6:本地物理主机状态监控与故障恢复;本步骤包含:
步骤6.1本地物理主机状态监控;远程物理主机之上的第二健康监控及故障恢复模块监控本地物理主机的运行状态,该模块中设置周期性时钟,时钟到期后,该模块尝试与位于本地物理主机之上的第一健康监控与故障恢复模块通信,判断本地物理主机当前状态是否正常,如果通信并读取成功,表明状态正常,重置定时器,返回正常执行状态;如果通信失败,表明有故障发生,执行步骤6.2;
步骤6.2本地物理主机故障恢复,首先立即激活远程物理主机之上的远程备份域,接替本地物理主机之上工作域的现有工作,之后重启本地物理主机并重新执行初始化过程,随后与远程物理主机建立连接;连接建立后,第一远程状态同步模块与远程物理主机之上的第二远程状态同步模块配合,在本地物理主机之上重新构建工作域,并迭代执行状态同步操作,将远程备份域的当前状态不断增量同步到本地物理主机之上的工作域中,当迭代数量达到预设值后,暂停远程备份域的工作,执行最后一次同步操作,然后重新激活工作域,立即创建本地备份域,并执行一次本地和远程同步操作。
系统处于正常运行状态时,步骤4、步骤5、步骤6中的三类状态监控操作会同时进行,而其故障恢复操作执行时机取决于故障发生时间,无先后次序之分。
本发明利用虚拟化方法和多核平台的计算资源,提出了一种构建非对称三机热备容错系统的方法,相比现有方法具有下述优点和效果:
(1)更好的灵活性和更低的成本
传统的备份容错系统热备系统需要针对特定的应用,定制专用的硬件电路,并为此设计配套的管理软件,因此设计和开发过程较为复杂,且成本较高。而本发明以虚拟化方法为基础,通过在本地主机和远程物理主机之上安装和配置虚拟机系统,将用户应用连同操作系统一起封装在完整的虚拟硬件执行环境中,同时为其配置两个不同级别的备份域,实现了多机热备的容错结构。本发明给出的容错系统构建方法、可以直接利用现有商用硬件和通用操作系统软件,构建出具有高可靠性的系统,从而大大改善了系统配置的灵活性,并避免了专用软硬件设计带来的高额的开发成本。
(2)更低的同步开销和更好的性能
如采用传统的对称式备份容错结构,直接将本地工作域备份到远程物理主机中,由于受网络传输等条件的限制,其同步性能将非常低下,尤其是对于磁盘等大容量块设备状态的备份,需要非常长的数据传输时间。而本发明充分利用了多核计算资源,采用了本地和远程两级的备份策略,每次状态同步时,首先在本地物理主机内存执行备份操作,以降低工作域的暂停时间,在本地备份操作完成,且工作域已经恢复运行后,利用指定的远程同步专用处理器进行远程备份的操作,这样可以在保证系统可靠性的同时,大幅降低了状态同步带来的额外开销,同时由于故障恢复会优先在本地物理主机中进行,因此也加快了系统的故障诊断和恢复速度。
(3)更好的可扩展性
由于本发明所使用的虚拟机系统本身就可以支持多种不同类型的客户域同时运行,因此本发明所设计的非对称热备容错结构,很容易通过增加更多的备份域数量或层次,来提供更高的可靠性。
附图说明
图1是本发明的基于虚拟化技术的非对称三机热备容错系统的模块结构示意图;
图2是本发明在本地物理主机通用处理器集上的运行流程图;
图3是本发明在本地物理主机远程同步专用处理器集上的运行流程图;
图4是本发明在远程物理主机之上的运行流程图。
具体实施方式
在下述具体实施示例中,结合附图对本发明进行进一步的详细说明。
如图1所示,本发明设计的非对称三机热备容错方法其系统在结构上分为5个模块:位于本地物理主机之上的本地主机虚拟机管理模块1,位于远程物理主机之上的远程主机虚拟机管理模块2,位于本地物理主机之上的工作域模块3和本地备份域模块4,以及位于远程物理主机之上的远程备份域模块5。其中,本地主机虚拟机管理模块1还包括以下几个主要功能模块:调度管理模块11,本地状态同步模块12,第一远程状态同步模块13,第一健康监控与故障恢复模块14,其中调度管理模块11用于在系统初始化时分配处理器资源并将第一远程状态同步模块13调度到远程同步专用处理器集之上运行,本地状态同步模块12用于将工作域模块3的状态同步到本地备份域模块4中,第一远程状态同步模块13将和运行在远程物理主机上的第二远程状态同步模块22配合,用于将本地备份域模块4的状态同步到远程备份域模块5中,第一健康监控与故障恢复模块14用于监控工作域模块3的状态,并和运行在远程物理主机上的第二健康监控与故障恢复模块21配合,监控本地物理主机和远程物理主机的状态,并在故障发生时执行恢复操作。而远程主机虚拟机管理模块2包括以下几个主要功能模块:第二健康监控与故障恢复模块21,第二远程状态同步模块22,其中第二健康监控与故障恢复模块21和第一健康监控与故障恢复模块14配合,监控本地物理主机和远程物理主机的状态,并在故障发生时执行恢复操作,第二远程状态同步模块22将和第一远程状态同步模块13配合,用于将本地备份域模块4的状态同步到远程备份域模块5中。
本地主机虚拟机管理模块1用来管理本地物理主机的计算资源,并向上层提供虚拟硬件执行环境,工作域模块3与本地备份域模块4均在此基础上构建。远程主机虚拟机管理模块2用来管理远程物理主机的计算资源,并向上层提供虚拟硬件执行环境,远程备份域模块5在此基础上构建。本地主机虚拟机管理模块1中的各个子模块配合完成工作域本地备份、工作域远程备份、本地客户域健康状态监控以及任务模块调用的功能,本地主机虚拟机管理模块1还和远程主机虚拟机管理模块2配合,完成本地及远程物理主机的健康状态监控功能。
本地主机虚拟机管理模块1用来管理本地物理主机的计算资源,并向上层提供虚拟硬件执行环境,包括虚拟处理器,虚拟内存、虚拟设备等。所有的客户域,包括工作域模块3以及本地备份域模块4都运行在本地主机虚拟机管理模块1提供的虚拟硬件执行环境之上,如图1所示。
本发明提出的基于虚拟化技术的、具有非对称结构的软件三机热备容错方法,包含以下步骤,如图1所示:
步骤1:系统初始化。本地物理主机启动,划分处理器核,创建工作域以及本地备份域、并设定周期性备份时钟;远程物理主机启动,与本地物理主机建立连接,并创建远程备份域。
本地物理主机与远程主机启动,本地主机虚拟机管理模块1和远程主机虚拟机管理模块2完成自身的初始化工作,其中,调度管理模块11在该阶段将本地物理主机中所有可用的物理处理器核划分成两个子集:通用处理器集与远程同步专用处理器集,本地物理主机之上运行的程序中,调度管理模块11、本地状态同步模块12、第一健康监控与故障恢复模块14、工作域模块3以及本地备份域模块4,均在通用处理器集之上调度执行,而第一远程状态同步模块13在远程同步专用处理器集之上运行。随后本地主机虚拟机管理模块1创建并初始化工作域模块3,接着客户操作系统与用户程序开始加载执行。系统运行过程中,调度管理模块11会检查当前执行调度器代码的处理器核信息,并决定将何种任务调度到该处理器核中执行。
虚拟机系统中,处理器资源的管理由虚拟机监视器VMM完成,VMM在启动阶段会扫描并发现所有的物理处理器核,将其放置在可用处理器队列中,之后便根据调度策略将不同的任务分配到各个处理器核上运行。本发明中,本地物理主机在启动时会首先选择系统中最后一颗可用的处理器核(如四核系统中的Core3),该处理器核并不进入可用处理器队列,而是执行一个独立的loop任务,即第一远程状态同步模块13,该模块会不断的检测是否有来自本地状态同步模块12的指令,如果有,则执行本地备份域和远程备份域的同步操作;本地物理主机的其它处理器核都被归为通用处理器集,执行传统的计算任务,包括VMM自身的代码,客户操作系统以及用户程序。
步骤2:本地备份。当备份时钟到来,本地状态同步模块12暂停工作域模块3的运行,执行本地状态同步操作,将工作域的状态同步到本地备份域中,具体操作包括虚拟处理器状态同步、虚拟内存数据同步、虚拟设备状态同步以及虚拟文件系统状态同步;
系统正常运行过程中,本地状态同步模块12根据给定的备份策略,周期性的将工作域模块3的所有状态同步到本地备份域模块4中。同步操作执行前,本地主机虚拟机管理模块1会首先停止对工作域模块3的调度,从而使其状态保持不变,随后利用本地状态同步模块12将工作域模块3的虚拟处理器信息、虚拟内存数据、虚拟设备状态,以及虚拟文件系统数据拷贝到本地备份域模块4的对应地址空间中,其中虚拟处理器信息和虚拟设备状态信息采用管理数据结构直接拷贝的方式进行,而虚拟内存数据和虚拟文件系统数据备份则需要将从上一次本地备份操作执行完成之后到本次本地备份操作执行开始期间所有修改过的数据同步到本地备份域模块4中。
本发明所使用的虚拟机系统中,VMM会负责记录和控制域的状态,包括各种虚拟硬件资源,如虚拟处理器、虚拟内存、虚拟设备、虚拟文件系统,而对工作域和备份域的状态同步,主要也是针对上述几个方面进行,这里主要包括以下四个方面:虚拟处理器状态、虚拟内存状态、虚拟设备状态、虚拟文件系统状态。
由于VMM使用专门的结构体变量来记录每个VCPU(Virtual CPU,即虚拟处理器)的寄存器状态以及上下文信息,因此,虚拟处理器状态的同步只需简单的通过数据拷贝即可完成。内存的情况与此类似,虚拟机系统中的内存资源都是由VMM统一管理,并分配给各个域使用,因此VMM中保留了内存资源分配的相关记录,并为各个域创建运行时所需的页表,内存同步时,VMM会检查所有工作域使用的内存页面,并将其数据拷贝到备份域的内存空间中。在内存数据同步的过程中,有一些特殊的页面需要进行额外的处理,因为这些页面用会用来控制域的运行状态,包括页表,全局描述符表GDT和局部描述符表LDT等。虚拟机系统中,内存的映射包括两个级别,第一级映射为虚拟地址到伪物理地址(V2P vritualto physical),第二级映射为伪物理地址到机器地址(P2M physical to machine)。第一级映射由客户操作系统使用其自身的页表完成,第二级映射由虚拟机监视器VMM负责完成,而实际被硬件MMU(内存管理单元)使用的页表(即虚拟地址到机器地址的映射)同样由VMM进行管理和维护,称为影子页表(shadow page table)。对于泛虚拟化的域来说,为了提高系统的性能,客户操作系统会被修改,部分特权操作会以向VMM发出请求的方式执行,因此在域创建时,VMM会将部分资源分配的情况传递给客户操作系统,使其可以正确的向VMM提交请求,这里就包括P2M表,由于VMM为工作域和备份域分配的物理内存资源并不相同,因此对这些控制相关的内存页面必需进行特殊的处理,即根据工作域和备份域中内存地址信息的不同,对用于页表页面中数据进行提取和转换,并重新建立起正确的映射关系。
本发明所使用的虚拟机系统中,所有的物理设备由VMM负责管理,并提供给各个客户域使用,同时为了减小VMM实现的复杂性,借用了现有操作系统中的设备驱动程序,这些驱动程序运行在一个特定的域之上,称为驱动域,而VMM向其它客户域提供虚拟设备访问接口,并负责在它们之间进行设备访问请求和应答数据的传递,这个通信过程由内存页面共享和信号传递机制配合完成,因此虚拟设备状态的同步就涉及到这两部分数据的检查和拷贝。对于共享内存页面来说,需要做的就是页面拷贝并重新建立映射关系,而信号队列的状态,则由VMM直接进行设置。
和上述三类状态同步有所不同,虚拟文件系统状态同步需要进行特殊的处理。本发明所使用的虚拟机系统中,处理器缓存、内存和外存组成了整个系统的存储层次结构,其中处理器缓存和内存之间的一致性是由硬件进行维护,而内存和外存的一致性必须由VMM和客户操作系统配合进行维护。系统在正常运行时,工作域被调度执行,其内存状态不断的发生改变,同时还会对I/O设备进行访问和操作,其中就包括对磁盘文件系统的读写,由于工作域的内存状态会被不断的同步到备份域中,因此为了保证备份域在激活时能够正确的运行,其内存数据和外存(即虚拟文件系统)也必须保持一致性。我们在这里采用了磁盘数据全备份的方式对工作域和备份域的外存状态进行同步,VMM通过对工作域虚拟磁盘访问请求的监控,获取其物理块的位置信息,并记录其对虚拟磁盘数据的修改情况,每次内存状态同步时,虚拟磁盘中被修改的部分都会被同步到备份分区中,以保证其内存数据和外存数据的一致性。
步骤3:远程备份。本地状态同步完成后,本地状态同步模块12恢复本地物理主机的工作域至正常运行状态,随后发出指令至第一远程状态同步模块13,由第一远程状态同步模块13开始执行远程状态同步操作,将本地备份域的状态同步到远程备份域中,具体操作包括虚拟处理器状态同步、虚拟内存数据同步、虚拟设备状态同步以及虚拟文件系统状态同步;
本地状态同步模块12完成本地备份操作后,恢复工作域模块3的运行,并利用信号的方式通知第一远程状态同步模块13,告知其已经可以开始执行远程备份操作。第一远程状态同步模块13由调度管理模块11管理,始终运行在远程同步专用处理器集之上,若当前没有远程备份操作需要执行,则该模块进入自旋等待状态,直到本地状态同步模块12发送信号将其唤醒,如流程如图3所示。远程备份操作执行时,本地备份域模块4的状态被通过网络同步到远程备份域模块5中,该过程由本地物理主机之上的第一远程状态同步模块13和远程物理主机之上的第二远程状态同步模块22配合完成。远程备份操作开始时,首先由第一远程状态同步模块13向第二远程状态同步模块22发起请求,第二远程状态同步模块22检查远程物理主机的运行状态以及资源使用情况,若可用内存数量及文件系统空闲空间能够满足本次备份操作的需要,则接受第一远程状态同步模块13的备份请求,并发出应答信号,随后第一远程状态同步模块13开始发送需要同步的数据,第二远程状态同步模块22接受到同步数据后,将其写入远程备份域模块5的指定位置,包括虚拟处理器信息、虚拟内存数据、虚拟设备状态信息,以及虚拟文件系统数据,流程如图4所示。本次备份操作完成后,第一远程状态同步模块13检查是否有新的备份操作需要执行,如果有,则开始下一轮数据传递,否则进入睡眠状态,等待下一次本地状态同步模块12将其唤醒,流程如图3所示。远程备份的数据同样包含虚拟处理器信息、虚拟内存数据、虚拟设备状态以及虚拟文件系统数据四类,其同步方法与步骤2本地备份相同。
步骤4:工作域状态监控与故障恢复,其流程图如图2所示。本步骤包含:
步骤4.1工作域状态监控,本地物理主机之上的第一健康监控与故障恢复模块14监控工作域的运行状态,工作域处于正常工作状态时,本地和远程备份域处于暂停状态,即不参与调度运行,也不进行I/O操作;如有故障发生,执行步骤4.2;
步骤4.2工作域故障恢复,首先尝试激活本地备份域,并恢复工作域到正常状态;如本地恢复操作失败,则通过网络连接位于远程物理主机之上的第二健康监控与故障恢复模块21,尝试激活远程备份域,并恢复工作域到正常运行状态;
系统在运行过程中,本地物理主机之上运行的第一健康监控与故障恢复模块14会监控系统中工作域模块3的各种运行状态,并对其健康状况进行评估,包括处理器、内存资源的使用情况,以及心跳检测,当工作域模块3发生故障时,第一健康监控与故障恢复模块14会停止其运行,并尝试激活本地备份域模块4,以接替工作域模块3的工作,随后开始对工作域模块3进行诊断,并在必要时通过重新启动操作将其恢复到可用状态。若本地备份域模块4因某种原因无法激活,如资源不足等,则第一健康监控与故障恢复模块14将向运行在远程物理主机之上的第二健康监控及故障恢复模块21发出请求,由其负责激活远程备份域模块5,以接替工作域模块3的工作。
步骤5:远程物理主机状态监控与故障恢复,其流程图如图2和图4所示。本步骤包含:
步骤5.1远程物理主机状态监控,运行在本地物理主机之上的第一健康监控及故障恢复模块14监控远程物理主机的运行状态,该模块中设置周期性时钟,时钟到期后,该模块尝试与位于远程物理主机之上的第二健康监控与故障恢复模块21通信,判断远程主机当前状态是否正常,如果通信并读取成功,表明状态正常,重置定时器,并返回正常执行状态。如果通信失败,表明有故障发生,则执行步骤5.2;
步骤5.2远程物理主机故障恢复,重启远程物理主机,并重新执行远程物理主机的初始化操作,将其恢复到可用状态,随后立即执行一次远程同步操作,配合第二远程状态同步模块22重新建立远程备份域模块5。
步骤6:本地物理主机状态监控与故障恢复,其流程图如图2和图4所示。本步骤包含:
步骤6.1本地物理主机状态监控,第二健康监控及故障恢复模块21监控本地物理主机的运行状态,该模块中设置周期性时钟,时钟到期后,该模块尝试与位于本地物理主机之上的第一健康监控与故障恢复模块14通信,判断本地物理主机当前状态是否正常,如果通信并读取成功,表明状态正常,重置定时器,并返回正常执行状态;如果通信失败,表明有故障发生,则执行步骤6.2;
步骤6.2本地物理主机故障恢复,首先立即激活远程备份域模块5,接替本地物理主机之上的工作域模块3的现有工作,之后重启本地物理主机并重新执行初始化过程,随后与远程物理主机建立连接。连接建立后,第一远程状态同步模块13与第二远程状态同步模块22配合,在本地物理主机之上重新构建工作域模块3,并迭代执行状态同步操作,将远程备份域模块5的当前状态不断增量同步到本地物理主机之上的工作域模块3中,当迭代数量达到预设值后,暂停远程备份域模块5的工作,执行最后一次同步操作,随后重新激活工作域模块3,之后立即创建本地备份域模块4,并执行一次本地和远程同步操作。
Claims (3)
1.一种非对称结构的软件三机热备容错方法,其特征在于,首先在本地和远程物理主机之上都装载虚拟机系统,再实施以下步骤:
步骤1:系统初始化;本地物理主机启动,划分处理器核,创建工作域以及本地备份域,并设定周期性备份时钟,远程物理主机启动,与本地物理主机建立连接,并创建远程备份域;
步骤2:本地备份;当备份时钟到来,本地物理主机上的本地状态同步模块暂停本地工作域的运行,执行本地状态同步操作,将工作域的状态同步到本地备份域中,具体操作包括虚拟处理器状态同步、虚拟内存数据同步、虚拟设备状态同步以及虚拟文件系统状态同步;
步骤3:远程备份;待本地状态同步完成,本地状态同步模块先恢复本地工作域至正常运行状态,随后发出指令至本地物理主机之上的第一远程状态同步模块,由第一远程状态同步模块开始执行远程状态同步操作,将本地备份域的状态同步到远程备份域中,具体操作包括虚拟处理器状态同步、虚拟内存数据同步、虚拟设备状态同步以及虚拟文件系统状态同步;
步骤4:工作域状态监控与故障恢复;本步骤包含:
步骤4.1工作域状态监控;本地物理主机之上的第一健康监控与故障恢复模块监控工作域的运行状态,工作域处于正常工作状态时,本地和远程备份域处于暂停状态,即不参与调度运行,也不进行I/O操作;如有故障发生,执行步骤4.2;
步骤4.2工作域故障恢复;首先尝试激活本地备份域,并恢复工作域到正常状态;如果本地恢复操作失败,则通过网络连接位于远程物理主机之上的第二健康监控与故障恢复模块,尝试激活远程备份域,并恢复工作域到正常运行状态;
步骤5:远程物理主机状态监控与故障恢复;本步骤包含:
步骤5.1远程物理主机状态监控;本地物理主机之上的第一健康监控与故障恢复模块监控远程物理主机的运行状态,该模块中设置周期性时钟,时钟到期后,该模块尝试与位于远程物理主机之上的第二健康监控与故障恢复模块通信,判断远程主机当前状态是否正常,如果通信并读取成功,表明状态正常,重置定时器,返回正常执行状态,如果通信失败,表明有故障发生,执行步骤5.2;
步骤5.2远程物理主机故障恢复;首先重启远程物理主机,然后让其与本地物理主机建立连接,随后立即执行一次远程同步操作,恢复其到正常备份状态;
步骤6:本地物理主机状态监控与故障恢复;本步骤包含:
步骤6.1本地物理主机状态监控;远程物理主机之上的第二健康监控及故障恢复模块监控本地物理主机的运行状态,该模块中设置周期性时钟,时钟到期后,该模块尝试与位于本地物理主机之上的第一健康监控与故障恢复模块通信,判断本地物理主机当前状态是否正常,如果通信并读取成功,表明状态正常,重置定时器,返回正常执行状态;如果通信失败,表明有故障发生,执行步骤6.2;
步骤6.2本地物理主机故障恢复,首先立即激活远程物理主机之上的远程备份域,接替本地物理主机之上工作域的现有工作,之后重启本地物理主机并重新执行初始化过程,随后与远程物理主机建立连接;连接建立后,第一远程状态同步模块与远程物理主机之上的第二远程状态同步模块配合,在本地物理主机之上重新构建工作域,并迭代执行状态同步操作,将远程备份域的当前状态不断增量同步到本地物理主机之上的工作域中,当迭代数量达到预设值后,暂停远程备份域的工作,执行最后一次同步操作,然后重新激活工作域,立即创建本地备份域,并执行一次本地和远程同步操作。
2.根据权利要求1所述的一种非对称结构的软件三机热备容错方法,其特征在于,所述步骤1中本地物理主机启动,划分处理器核具体为:本地物理主机在启动时,位于本地物理主机上的调度管理模块首先会选择系统中最后一颗能用的处理器核作为远程同步专用处理器集,该处理器核并不进入能用处理器队列,而是不断执行第一远程状态同步模块,该模块会不断的检测是否有来自本地状态同步模块的指令,如果有,则执行本地备份域和远程备份域的同步操作;而本地物理主机的其它处理器核都被调度管理模块归为通用处理器集,执行传统的计算任务。
3.根据权利要求1所述的一种非对称结构的软件三机热备容错方法,其特征在于,所述步骤3具体为:本地状态同步模块完成本地备份操作后,恢复本地物理主机之上工作域的运行,并利用信号的方式通知第一远程状态同步模块,告知其已经能够开始执行远程备份操作;若当前没有远程备份操作需要执行,则第一远程状态同步模块进入自旋等待状态,直到本地状态同步模块发送信号将其唤醒;远程备份操作执行时,本地备份域的状态被通过网络同步到远程备份域中,该过程由第一远程状态同步模块和远程物理主机之上的第二远程状态同步模块配合完成,首先由第一远程状态同步模块向第二远程状态同步模块发起请求,第二远程状态同步模块检查远程物理主机的运行状态以及资源使用情况,若能用内存数量及文件系统空闲空间能够满足本次备份操作的需要,则接受第一远程状态同步模块的备份请求,并发出应答信号,然后第一远程状态同步模块开始发送需要同步的数据,第二远程状态同步模块接受到同步数据后,将其写入远程备份域的指定位置,包括虚拟处理器信息、虚拟内存数据、虚拟设备状态信息,以及虚拟文件系统数据;当本次备份操作完成后,第一远程状态同步模块检查是否有新的备份操作需要执行,如果有,则开始下一轮数据传递,否则进入睡眠状态,等待下一次本地状态同步模块将其唤醒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102384560A CN101876926B (zh) | 2009-11-26 | 2009-11-26 | 一种非对称结构的软件三机热备容错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102384560A CN101876926B (zh) | 2009-11-26 | 2009-11-26 | 一种非对称结构的软件三机热备容错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101876926A true CN101876926A (zh) | 2010-11-03 |
CN101876926B CN101876926B (zh) | 2012-06-20 |
Family
ID=43019487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102384560A Expired - Fee Related CN101876926B (zh) | 2009-11-26 | 2009-11-26 | 一种非对称结构的软件三机热备容错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101876926B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246562A (zh) * | 2013-04-23 | 2013-08-14 | 上海交通大学 | 一种基于众核阵列架构的故障主动预防策略及装置 |
CN103246522A (zh) * | 2013-05-28 | 2013-08-14 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟化平台的热备环境的快速搭建方法 |
CN103309764A (zh) * | 2013-07-04 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 虚拟机的容错机制的保护方法和装置 |
CN103412800A (zh) * | 2013-08-05 | 2013-11-27 | 华为技术有限公司 | 一种虚拟机热备份方法和设备 |
CN103473156A (zh) * | 2013-09-24 | 2013-12-25 | 北京控制工程研究所 | 一种基于实时操作系统的星载计算机三机热备份容错方法 |
CN103677080A (zh) * | 2013-12-04 | 2014-03-26 | 北京控制工程研究所 | 一种三机热备份的时间同步方法 |
CN104427002A (zh) * | 2013-09-09 | 2015-03-18 | 三星Sds株式会社 | 集群系统及用于在集群系统中提供服务可用性的方法 |
CN105335254A (zh) * | 2015-11-03 | 2016-02-17 | 烽火通信科技股份有限公司 | 虚拟化备份容错系统及方法 |
WO2016197798A1 (zh) * | 2015-06-08 | 2016-12-15 | 中兴通讯股份有限公司 | 一种实现配置同步的方法、虚拟机及备机 |
CN106844005A (zh) * | 2016-12-29 | 2017-06-13 | 北京瑞星信息技术股份有限公司 | 基于虚拟化环境下的数据恢复方法及系统 |
CN108073477A (zh) * | 2016-11-09 | 2018-05-25 | 阿里巴巴集团控股有限公司 | 设备监控系统、设备和设备监控方法 |
CN108594635A (zh) * | 2018-04-13 | 2018-09-28 | 成都赫尔墨斯科技股份有限公司 | 一种用于航电系统中数据综合显示控制的装置和方法 |
CN110972497A (zh) * | 2018-11-02 | 2020-04-07 | 深信服科技股份有限公司 | 虚拟化平台的容灾方法及装置 |
WO2020088533A1 (zh) * | 2018-11-02 | 2020-05-07 | 深信服科技股份有限公司 | 虚拟化平台的容灾方法及装置 |
CN112204482A (zh) * | 2018-05-31 | 2021-01-08 | 西门子股份公司 | 冗余热备控制系统、方法、控制设备及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004355446A (ja) * | 2003-05-30 | 2004-12-16 | Hitachi Ltd | クラスタシステム及びその制御方法 |
CN101079747A (zh) * | 2007-07-18 | 2007-11-28 | 优网通国际资讯股份有限公司 | 多机热备的系统及其容错方法 |
-
2009
- 2009-11-26 CN CN2009102384560A patent/CN101876926B/zh not_active Expired - Fee Related
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246562A (zh) * | 2013-04-23 | 2013-08-14 | 上海交通大学 | 一种基于众核阵列架构的故障主动预防策略及装置 |
CN103246522A (zh) * | 2013-05-28 | 2013-08-14 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟化平台的热备环境的快速搭建方法 |
CN103309764A (zh) * | 2013-07-04 | 2013-09-18 | 曙光信息产业(北京)有限公司 | 虚拟机的容错机制的保护方法和装置 |
CN103412800A (zh) * | 2013-08-05 | 2013-11-27 | 华为技术有限公司 | 一种虚拟机热备份方法和设备 |
CN104427002A (zh) * | 2013-09-09 | 2015-03-18 | 三星Sds株式会社 | 集群系统及用于在集群系统中提供服务可用性的方法 |
CN104427002B (zh) * | 2013-09-09 | 2018-02-16 | 三星Sds株式会社 | 集群系统及用于在集群系统中提供服务可用性的方法 |
CN103473156B (zh) * | 2013-09-24 | 2015-07-08 | 北京控制工程研究所 | 一种基于实时操作系统的星载计算机三机热备份容错方法 |
CN103473156A (zh) * | 2013-09-24 | 2013-12-25 | 北京控制工程研究所 | 一种基于实时操作系统的星载计算机三机热备份容错方法 |
CN103677080A (zh) * | 2013-12-04 | 2014-03-26 | 北京控制工程研究所 | 一种三机热备份的时间同步方法 |
CN103677080B (zh) * | 2013-12-04 | 2015-08-19 | 北京控制工程研究所 | 一种三机热备份的时间同步方法 |
WO2016197798A1 (zh) * | 2015-06-08 | 2016-12-15 | 中兴通讯股份有限公司 | 一种实现配置同步的方法、虚拟机及备机 |
CN106301856A (zh) * | 2015-06-08 | 2017-01-04 | 中兴通讯股份有限公司 | 一种实现配置同步的方法、虚拟机及备机 |
CN105335254B (zh) * | 2015-11-03 | 2018-07-24 | 烽火通信科技股份有限公司 | 虚拟化备份容错系统及方法 |
CN105335254A (zh) * | 2015-11-03 | 2016-02-17 | 烽火通信科技股份有限公司 | 虚拟化备份容错系统及方法 |
CN108073477A (zh) * | 2016-11-09 | 2018-05-25 | 阿里巴巴集团控股有限公司 | 设备监控系统、设备和设备监控方法 |
CN106844005A (zh) * | 2016-12-29 | 2017-06-13 | 北京瑞星信息技术股份有限公司 | 基于虚拟化环境下的数据恢复方法及系统 |
CN106844005B (zh) * | 2016-12-29 | 2020-04-14 | 北京瑞星网安技术股份有限公司 | 基于虚拟化环境下的数据恢复方法及系统 |
CN108594635A (zh) * | 2018-04-13 | 2018-09-28 | 成都赫尔墨斯科技股份有限公司 | 一种用于航电系统中数据综合显示控制的装置和方法 |
CN108594635B (zh) * | 2018-04-13 | 2021-06-29 | 成都赫尔墨斯科技股份有限公司 | 一种用于航电系统中数据综合显示控制的装置和方法 |
CN112204482A (zh) * | 2018-05-31 | 2021-01-08 | 西门子股份公司 | 冗余热备控制系统、方法、控制设备及计算机可读存储介质 |
CN110972497A (zh) * | 2018-11-02 | 2020-04-07 | 深信服科技股份有限公司 | 虚拟化平台的容灾方法及装置 |
WO2020088533A1 (zh) * | 2018-11-02 | 2020-05-07 | 深信服科技股份有限公司 | 虚拟化平台的容灾方法及装置 |
CN111143114A (zh) * | 2018-11-02 | 2020-05-12 | 深信服科技股份有限公司 | 虚拟化平台容灾方法、系统、服务器及存储介质 |
CN111143114B (zh) * | 2018-11-02 | 2024-05-28 | 深信服科技股份有限公司 | 虚拟化平台容灾方法、系统、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101876926B (zh) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101876926B (zh) | 一种非对称结构的软件三机热备容错方法 | |
US7523344B2 (en) | Method and apparatus for facilitating process migration | |
CN112035293B (zh) | 确定虚拟机节点所有权的方法、计算机系统和程序产品 | |
US9671967B2 (en) | Method and system for implementing a distributed operations log | |
Wang et al. | Proactive process-level live migration in HPC environments | |
US8307363B2 (en) | Virtual machine system, restarting method of virtual machine and system | |
CN101103338B (zh) | 对用于录入和重放确定性事件序列的指令进行计数的方法 | |
US9665386B2 (en) | Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment | |
CN102325192B (zh) | 云计算实现方法和系统 | |
CN101556545B (zh) | 一种实现进程支持的方法、装置和多线程系统 | |
US9189381B2 (en) | Managing CPU resources for high availability micro-partitions | |
WO2014090008A1 (zh) | 一种任务处理的方法和虚拟机 | |
KR20140055451A (ko) | 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체 | |
AU2007333390A1 (en) | Replacing system hardware | |
US9158470B2 (en) | Managing CPU resources for high availability micro-partitions | |
US20230185465A1 (en) | Fast restart of large memory systems | |
CN111400086B (zh) | 虚拟机容错的实现方法和系统 | |
US8505020B2 (en) | Computer workload migration using processor pooling | |
Du et al. | MPI-Mitten: Enabling migration technology in MPI | |
EP1815332A1 (en) | Process checkpointing and migration in computing systems | |
US20220318053A1 (en) | Method of supporting persistence and computing device | |
Tripathy et al. | On a Virtual Shared Memory Cluster System with VirtualMachines | |
Wang | Transparent fault tolerance for job healing in HPC environments | |
Boyd et al. | Preemptive Module Replacement Using the Virtualizing Operating System | |
Gordon et al. | Lifting and Dropping VMs to Dynamically Transition Between Time-and Space-sharing for Large-Scale HPC Systems |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120620 Termination date: 20131126 |