CN114490193B - 一种面向异构冗余系统的恢复方法及装置 - Google Patents
一种面向异构冗余系统的恢复方法及装置 Download PDFInfo
- Publication number
- CN114490193B CN114490193B CN202210387237.4A CN202210387237A CN114490193B CN 114490193 B CN114490193 B CN 114490193B CN 202210387237 A CN202210387237 A CN 202210387237A CN 114490193 B CN114490193 B CN 114490193B
- Authority
- CN
- China
- Prior art keywords
- executive
- abnormal
- comparison window
- read
- heterogeneous
- 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.)
- Active
Links
Images
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/1415—Saving, restoring, recovering or retrying at system level
-
- 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/1474—Saving, restoring, recovering or retrying in transactions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种面向异构冗余系统的恢复方法及装置,所述方法包括:将执行体的工作内容切分成互相独立的业务集合;按预设策略确定对比窗口,取出对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出对比窗口;在异常执行体清洗并就绪后,若当前业务结束,则将就绪后的异常执行体对应的访问请求重新纳入对比窗口。本发明是异构冗余系统恢复的一种普适性解决方案,不受限于具体应用层协议,无需占用大量内存资源,不影响系统连续运行,且简单易实现。
Description
技术领域
本发明涉及异构冗余系统容错技术领域,尤其涉及一种面向异构冗余系统的恢复方法及装置。
背景技术
冗余的锁步结构是容错系统最常用方法,根据冗余部件之间的同质性其分为同构冗余和异构冗余。与同构执行体相比,异构执行体间共同攻击面小,能有效降低共模逃逸发生概率,进而提高系统整体可靠性。在异构冗余系统检出错误的情况下,如何处理产生错误的异常执行体使得系统继续正常工作,这就是异构冗余系统的恢复问题。
同构冗余系统中,当检出错误时,可以通过保存正常执行体的寄存器、PC指针、数据段等资源至异常执行体,立即恢复系统。在异构冗余系统中,执行体之间的寄存器、程序段、数据段、PC指针等不具有简单的对应关系,无法直接通过上述方法恢复。
目前,面向异构冗余系统的恢复技术大致分为三种:基于检查点的回滚机制、基于协议的训练机制和基于指令集的转换机制。基于检查点的回滚机制需要频繁插入检查点,不仅占用内存资源,而且影响系统性能;基于协议的训练机制仅用于带自学习算法的少数应用场景,不是一种普适性的解决方案;基于指令集的转换机制尚处于理论探索阶段。
发明内容
本发明提供一种面向异构冗余系统的恢复方法及装置,该方法是异构冗余系统恢复的一种普适性解决方案,不受限于具体应用层协议,无需占用大量内存资源,不影响系统连续运行,且简单易实现。
本发明提供一种面向异构冗余系统的恢复方法,包括:
将执行体的工作内容切分成互相独立的业务集合;
按预设策略确定对比窗口,取出所述对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;各请求队列基于所述工作执行体的读写访问请求构成,所述工作执行体指参与异构冗余系统当前业务的执行体;
在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出所述对比窗口;
在所述异常执行体清洗并就绪后,若当前业务结束,则将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口。
根据本发明提供的一种面向异构冗余系统的恢复方法,所述执行体包括硬件异构执行体和/或软件异构执行体,且各执行体的功能等价。
根据本发明提供的一种面向异构冗余系统的恢复方法,所述互相独立的业务集合中各业务的起点不受历史输入和历史状态的影响,各业务内部的时间序列之间前后依赖,且各业务的起点均为候选启动点。
根据本发明提供的一种面向异构冗余系统的恢复方法,各请求队列基于如下步骤确定:
基于所述预设策略从正常执行体中确定所述工作执行体;
基于所述工作执行体的读写访问请求,构建对应的请求队列;各请求队列中的读写访问请求依次对应。
根据本发明提供的一种面向异构冗余系统的恢复方法,所述对比窗口是将所述工作执行体的请求队列对应的读写访问请求之间进行对比确定的;
所述对比窗口的深度基于请求队列的数量确定,所述对比窗口的宽度基于各请求队列每次对应的读写访问请求数量确定,所述对比窗口的步长基于每次滑动所述对比窗口时所间隔的读写访问请求数量确定。
根据本发明提供的一种面向异构冗余系统的恢复方法,所述取出所述对比窗口内多个请求队列对应的读写访问请求,之后还包括:
将各工作执行体对应的读写访问请求作为一个整体访问外部资源。
根据本发明提供的一种面向异构冗余系统的恢复方法,在确定任一工作执行体异常之后,还包括:控制所述异常执行体跳出异常状态。
根据本发明提供的一种面向异构冗余系统的恢复方法,各执行体之间没有通信通路。
根据本发明提供的一种面向异构冗余系统的恢复方法,所述将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口,包括:
在新启动点将就绪后的异常执行体对应的读写访问请求重新纳入所述对比窗口,以使所述异构冗余系统完成一次状态恢复;所述新启动点为下一业务对应的起点。
本发明还提供一种面向异构冗余系统的恢复装置,包括:
划分单元,用于将执行体的工作内容切分成互相独立的业务集合;
确定单元,用于按预设策略确定对比窗口,取出所述对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;各请求队列基于所述工作执行体的读写访问请求构成,所述工作执行体指参与异构冗余系统当前业务的执行体;
移出单元,用于在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出所述对比窗口;
恢复单元,用于在所述异常执行体清洗并就绪后,若当前业务结束,则将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述面向异构冗余系统的恢复方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种面向异构冗余系统的恢复方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种面向异构冗余系统的恢复方法。
本发明提供的一种面向异构冗余系统的恢复方法,在任意执行体异常时退出对比窗口,其余正常执行体能够继续执行当前业务,克服了传统方法中保存历史数据、重新学习协议、进行指令转换等导致的占用系统资源、降低系统性能的缺点。此外,下次不需要依赖历史的机会到来时,就绪执行体重新被纳入对比窗口,不仅保证了异构冗余系统的性能,而且恢复了异构冗余系统的可靠度。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的面向异构冗余系统的恢复方法的流程示意图;
图2是本发明提供的异构冗余系统模型示意图;
图3是本发明提供的时序信息模型示意图;
图4是本发明提供的各业务启动点示意图;
图5是本发明提供的调度器对比窗口示意图;
图6是本发明提供的异常执行体恢复流程示意图;
图7是本发明提供的面向异构冗余系统的恢复装置的结构示意图;
图8是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,面向异构冗余系统的恢复方法,多采用基于检查点的回滚机制。基于检查点的回滚机制是由软硬件在系统正常运行时保存检查点快照,各执行体之间程序状态的保存和恢复互不干预。一旦裁决某执行体出错,则将其恢复到上一个正常的检查点,待其追赶到其他正常执行体的工作进度后,再重新加入多模工作模式。该方法需要频繁插入检查点,保存检查点快照的动作既占用内存资源又影响系统性能。
此外,也有基于协议的训练机制进行冗余系统恢复,该训练机制由软件内置恢复模块,恢复模块在冗余系统正常运行时或执行体出错时记录运行环境,或通过发送报文等手段专门收集环境信息。执行体是否正常可由恢复模块自行根据数据协议判断,也可用调度器对比其他执行体数据判断。一旦判断出某执行体出错,则根据运行环境和数据协议本身重新训练,直到与其他正常执行体的状态和信息一致。该方法仅用于生成树协议(Spanning Tree Protocol,STP)、开放式最短路径优先协议(Open Shortest Path First,OSPF)等带自学习算法的少数应用场景,不是一种普适性的解决方案。
再有,也有基于指令集的转换机制进行冗余系统恢复,该转换机制由软件内置转换模块,试图从执行体的硬件差异、软件差异中寻找对应关系。在某执行体出错时,保存正常执行体的寄存器、程序段、数据段、PC指针等资源,再通过这些信息准确推算出异常执行体的对应终值,从而修复异常执行体,恢复系统。该方法尚处于理论探索阶段,无法有效进行冗余系统恢复,例如不同指令集的对应关系并不明确可解。
对此,本发明提供一种面向异构冗余系统的恢复方法。图1是本发明提供的面向异构冗余系统的恢复方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤110、将执行体的工作内容切分成互相独立的业务集合。
具体地,异构冗余系统(以下简称“系统”)一般由调度器、功能等价执行体集合、输入输出代理等部件组成,完成与外部资源的交互,详见图2。系统中的各执行体之间可以是部分同构的、硬件异构的、软件异构的等关系,但所有执行体的功能等价。功能等价执行体对外表现为一个整体,当对比窗口内的多个执行体根据输入数据和既定功能逻辑需要访问系统外部资源并分别发出一次请求时,系统作为一个整体向外部发生一次相应访问。各执行体的工作内容切分成互相独立的业务集合,不同业务之间没有依赖关系,业务内部的时间序列可以前后依赖。
步骤120、按预设策略确定对比窗口,取出对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;各请求队列基于工作执行体的读写访问请求构成,工作执行体指参与异构冗余系统当前业务的执行体。
步骤130、在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出对比窗口。
具体地,系统将正在参与内部业务工作的执行体的请求队列对应的读写访问请求之间进行对比,构成对比窗口。取出对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常。
所有执行体的输入数据完全相同、执行体的功能完全等价,在需要访问系统外部资源时发出的请求应当等效。执行体因存在内部漏洞或受到外部恶意攻击等情况下,功能可能受到影响,而发生请求不同、无请求或请求超时等异常情况。系统可以根据不同策略裁定执行体异常。
异常执行体对外部资源的访问行为不可信,现有恢复机制对系统资源、性能、普适性等方面有负面影响,详细分析见图3。对此,本发明实施例在任意执行体异常的情况下,将异常执行体的访问请求移出对比窗口。其他正常执行体仍能支撑系统的不间断运行,而无需等待异常执行体的恢复,保证了异构冗余系统的原有性能不受影响。
步骤140、在异常执行体清洗并就绪后,若当前业务结束,则将就绪后的异常执行体对应的访问请求重新纳入对比窗口。
具体地,执行体在被系统裁定异常时,可以采取多种方法跳出自身的异常状态。在异常执行体被移出对比窗口到异常执行体清洗完成期间,其他正常执行体已经运行了一段时间,系统性能不受影响,系统功能不被打断。清洗后的执行体并不立即参与系统的业务工作,进入就绪状态,等待当前业务结束。
将执行体工作内容切分成互相独立的业务集合,不同业务之间没有依赖关系,业务内部的时间序列可以前后依赖,具体阐述见图4。就绪执行体等待下一个不需要依赖历史的机会到来,才能重新参与系统的业务工作。
系统在异常执行体就绪、正常执行体报告当前业务结束两个条件同时满足的情况下,在新启动点将就绪执行体纳入对比窗口,详见图5。注意,执行体之间在任意时刻都没有通信通路,这样的设计可以减少系统共模攻击面。
图2虚线框内为异构冗余系统,它由输入代理、功能等价执行体集合、调度器、输出代理等部件组成,完成与外部资源的交互。输入代理将输入序列复制为多份,分别发送给每个工作中的执行体。系统的功能由执行体具体完成,执行体之间可能是硬件异构的,例如采用不同的硬件结构、使用不同CPU、甚至CPU分别基于不同的指令集;执行体之间也可能是软件异构的,例如针对相同的高级语言代码进行多样化编译,在软件运行逻辑、时间序列、内存分布等方面变化,产生多个软件变体。调度器对执行体的读写请求进行对比,根据策略裁决执行体是否正常,并控制执行体的清洗和恢复。调度器是异构冗余系统与外部资源的统一接口,是异构冗余设备的核心控制组件,可以控制输入代理、异构执行体、输出代理的工作模式和功能。调度器从对比窗口取出各执行体的请求并裁决,使得系统作为一个整体经由输出代理向外部发生一次相应访问。
图3所示为时序信息系统的一般模型,各执行体的输入数据为x,输出数据为y,隐含状态数据为s,数据之间的作用关系分别用U、W和V表示。以上数据和作用关系都与时间t相关,可看作关于t的函数。U、W和V由应用程序给定,表示针对每种场景如何进行业务逻辑处理;当次输出yt由当次输入xt和当前状态st决定,当前状态st由历史输入和历史状态决定,即状态s中承载着系统对时间的记忆。
假设某异构冗余系统中共有三个执行体,分别记为E1、E2、E3,并假设te时刻经调度器裁决认定执行体E3出错。在基于回滚机制的恢复方法中,将执行体E3恢复到上一检查点tc时刻的快照,并对tc时刻到te时刻的所有历史输入数据进行保持和计算,以追赶到其他正常执行体的工作进度。在基于训练机制的恢复方法中,不向前回退状态,而是在te时刻通过报文收集数据、根据协议的自学习方法重新训练,试图重新生成te时刻的状态。在基于转换机制的恢复方法中,不向前回退状态,而是根据其他执行体的状态s1、s2等,推算出异常执行体应有的状态s3。这三种恢复机制的缺点已经在背景技术中阐述,此处不再赘述。
本发明实施例在te时刻不纠结于如何恢复异常执行体E3的状态s3,而是通知调度器将执行体E3的请求移出对比窗口,等待下一个不需要依赖历史的机会到来,再将清洗后的就绪执行体E3的请求重新纳入对比窗口。
由图4所示候选启动点特征示意图可知,执行体的工作内容可以看作由若干候选启动点切分的互不干扰的业务集合,业务的起点不受历史输入和历史状态的影响,业务内部的时间序列之间可以前后依赖。所有业务的起点都是候选启动点,上层应用程序开发人员可根据应用特性确定实际的启动点。
由图4可见,除当前业务起始时刻对应的节点(即当前业务的起点),当前业务其它时刻对应的节点均可能依赖历史时刻的输出结果。从而若在当前业务其它时刻对应的节点将就绪执行体恢复,由于异常执行体还未完成te时刻至今的业务,对缺失历史数据的追赶、重新学习、推算等,都会影响异构冗余系统的资源和性能。
在本实施例中,当正常执行体报告当前业务执行结束时,表明此后需要执行的新业务不需要依赖历史时刻的输出结果,此时将清洗后的就绪执行体对应的请求重新纳入对比窗口,使得该就绪执行体和其余正常执行体共同执行此后业务。
需要说明的是,步骤120中将异常执行体的访问请求移出对比窗口,此后异构冗余系统的冗余度减一,安全等级降一级。步骤140中在当前业务结束的情况下,将就绪执行体的访问请求重新纳入对比窗口,从而使得异构冗余系统在冗余度加一,安全等级升一级,至此系统完成一次恢复。步骤130中就绪执行体处于等待状态,其他正常执行体仍在支撑系统的不间断运行,不仅保证了异构冗余系统的性能,而且在步骤140中恢复了异构冗余系统的可靠性。
可以理解的是,若在将异常执行体的访问请求移出对比窗口后,需要获得n模异构冗余系统的可靠性,则可以将异构冗余系统设置为n+1模异构冗余系统。例如,异构冗余系统在采用本发明的恢复方法时,在短暂的恢复阶段想获得三模异构冗余系统的可靠性,则在正常运行时该异构冗余系统为四模异构冗余系统。
相较于传统方法中基于检查点的回滚机制的冗余系统恢复方法,本发明实施例无需频繁保存历史数据,避免占用大量内存资源、计算资源等,保障了恢复阶段系统的性能不受影响。相较于传统方法中基于协议的训练机制的冗余系统恢复方法,本发明不受限于具体应用层协议,是异构冗余系统恢复问题的一种普适性的解决方案。相较于传统方法中基于指令集的转换机制的冗余系统恢复方法,本发明无需对其他异构执行体的快照信息进行转换,更加简单且易于实现。此外,本发明实施例无需建立异构执行体之间的通信通道,不会扩大系统的共模攻击面,保障了系统的安全性。
基于上述实施例,执行体包括硬件异构执行体和/或软件异构执行体,且各执行体的功能等价。
具体地,各执行体之间可以是部分同构的、硬件异构的、软件异构的等关系,但所有执行体的功能等价。功能等价执行体对外表现为一个整体,当对比窗口内的多个执行体根据输入数据和既定功能逻辑需要访问系统外部资源并分别发出一次请求时,系统作为一个整体向外部发生一次相应访问。
基于上述任一实施例,互相独立的业务集合中各业务的起点不受历史输入和历史状态的影响,各业务内部的时间序列之间前后依赖,且各业务的起点均为候选启动点。
具体地,各执行体的工作内容切分成互相独立的业务集合,不同业务之间没有依赖关系,业务内部的时间序列可以前后依赖。所有业务起点都是候选启动点,上层应用程序开发人员可根据应用特性确定实际的启动点。
基于上述任一实施例,各请求队列基于如下步骤确定:
基于预设策略从正常执行体中确定工作执行体;
基于工作执行体的读写访问请求,构建对应的请求队列;各请求队列中的读写访问请求依次对应。
具体地,每个执行体并非总是参与系统内部的业务工作,系统可以根据不同的预设策略从正常执行体中选择少数参与系统当前业务,或者全部参与系统当前业务。
此外,受执行体的运行性能等影响,不同执行体的请求队列中的请求的个数未必相等,但这些请求队列的读写访问请求依次对应。
基于上述任一实施例,对比窗口是将工作执行体的请求队列对应的读写访问请求之间进行对比确定的;
对比窗口的深度基于请求队列的数量确定,对比窗口的宽度基于各请求队列每次对应的读写访问请求数量确定,对比窗口的步长基于每次滑动对比窗口时所间隔的读写访问请求数量确定。
具体地,系统将正在参与系统内部业务工作的工作执行体的请求队列对应的读写访问请求之间进行对比,构成对比窗口,如图5所示。对比窗口的深度取决于从多少个请求队列取请求;对比窗口的宽度取决于从每个请求队列一次取多少个请求;对比窗口的步长取决于每隔多少个请求滑动一次窗口。
假设执行窗口深度为3个队列,宽度为1个请求,步长为1个请求,在处理te时刻请求时裁定执行体E3异常。发现执行体E3异常时,调度器按照其余两个正常执行体E1和E2的一致请求与外部交互,异构冗余系统对外表现正常。调度器从下一个对比窗口中无视异常执行体E3的请求,系统整体冗余度减一,安全等级降一级,但系统性能不受影响,系统功能不被打断。假设在处理tn时刻请求时正常执行体通知当前业务结束,即下一业务与历史状态无关,且此时执行体E3已经完成清洗并处于就绪状态。则调度器从下一个对比窗口中纳入就绪执行体E3的业务请求,系统整体冗余度加一,安全等级升一级。
基于上述任一实施例,取出对比窗口内多个请求队列对应的读写访问请求,之后还包括:
将各工作执行体对应的读写访问请求作为一个整体访问外部资源。
具体地,功能等价执行体对外表现为一个整体,当对比窗口内的多个执行体根据输入数据和既定功能逻辑需要访问系统外部资源并分别发出一次请求时,系统作为一个整体向外部发生一次相应访问。
基于上述任一实施例,确定各工作执行体是否正常,包括:
在任一请求队列的读写访问请求与其它请求列队的读写访问请求不同,或任一请求队列不存在读写访问请求,或任一请求队列的读写访问请求超时的情况下,确定对应请求队列的工作执行体为异常执行体。
具体地,所有执行体的输入数据完全相同、执行体的功能完全等价,在需要访问系统外部资源时发出的请求应当等效。
执行体因存在内部漏洞或受到外部恶意攻击等情况下,功能可能受到影响,而发生请求不同、无请求或请求超时等异常情况,此时系统可以根据不同策略裁定执行体异常。
基于上述任一实施例,在确定任一工作执行体异常之后,还包括:控制异常执行体跳出异常状态。
具体地,执行体在被确定为异常执行体时,可以采取多种方法跳出自身的异常状态。在异常执行体被移出对比窗口到异常执行体清洗完成期间,其他正常执行体已经运行了一段时间,系统性能不受影响,系统功能不被打断;此外,清洗后的执行体并不立即参与系统的业务工作,进入就绪状态。
基于上述任一实施例,各执行体之间没有通信通路。
具体地,本发明实施例无需建立异构执行体之间的通信通道,不会扩大系统的共模攻击面,保障了系统的安全性。
基于上述任一实施例,将就绪后的异常执行体对应的访问请求重新纳入对比窗口,包括:
在新启动点将就绪后的异常执行体对应的读写访问请求重新纳入对比窗口,以使异构冗余系统完成一次状态恢复;新启动点为下一业务对应的起点。
具体地,新启动点为下一业务对应的起点,从而该新启动点不受历史输入和历史状态的影响,进而此时可以重新将异常执行体对应的读写访问请求重新纳入对比窗口,以完成一次状态恢复。
基于上述任一实施例,本发明提供的一种面向异构冗余系统的高性能恢复方法,如图6所示,该方法包括:
步骤a、适配上层应用代码,在无需依赖历史状态的合适程序位置插入启动点,作为执行体清洗后可重新工作的程序入口之一。
步骤b、将同一份上层应用代码编译成多份可执行文件,分别在不同的执行体上运行。
步骤c、各执行体请求访问外部资源,调度器对对比窗口内对应请求进行判决。
步骤d、当调度器判决各执行体对外部资源的访问等效时,进行一次实际的外部资源访问,并按需记录时间戳、成功次数等日志。
以上步骤c-d根据系统运行的实际情况可能重复多次。
步骤e、当调度器判决某执行体对外部资源的访问异常时,确定该执行体为异常执行体,此时将异常执行体对应的请求移出对比窗口,通知异常执行体进行清洗复位。
步骤f、异常执行体清洗复位后等待当前业务结束,进入就绪状态,不参与系统内部的业务工作,此时系统整体冗余度减一,安全等级降一级。
步骤g、正常执行体不间断工作,重复以上步骤c-d,系统对外表现正常,系统性能不受影响。
步骤h、正常执行体到达启动点,通知调度器当前业务结束,下一业务与历史状态无关。
步骤i、调度器转告就绪执行体当前业务结束,就绪执行体拷贝共享数据、跳转下一业务起始程序地址,并通知调度器恢复完毕。需要说明的是,各执行体之间并没有通信通路,从而可以减少系统共模攻击面。
步骤j、调度器将清洗恢复后的就绪执行体的请求纳入对比窗口,从而使得系统整体冗余度加一,安全等级升一级。
此外,如果在步骤g期间有新的执行体异常,可同样进入步骤e- j,也可进行全盘复位,具体调度策略可根据实际情况确定。
下面对本发明提供的面向异构冗余系统的恢复装置进行描述,下文描述的面向异构冗余系统的恢复装置与上文描述的面向异构冗余系统的恢复方法可相互对应参照。
基于上述任一实施例,本发明还提供一种面向异构冗余系统的恢复装置,如图7所示,该装置包括:
划分单元710,用于将执行体的工作内容切分成互相独立的业务集合;
确定单元720,用于按预设策略确定对比窗口,取出所述对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;各请求队列基于所述工作执行体的读写访问请求构成,所述工作执行体指参与异构冗余系统当前业务的执行体;
移出单元730,用于在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出所述对比窗口;
恢复单元740,用于在所述异常执行体清洗并就绪后,若当前业务结束,则将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口。
图8是本发明提供的电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、存储器(memory)820、通信接口(Communications Interface)830和通信总线840,其中,处理器810,存储器820,通信接口830通过通信总线840完成相互间的通信。处理器810可以调用存储器820中的逻辑指令,以执行本发明提供的面向异构冗余系统的恢复方法,该方法包括:将执行体的工作内容切分成互相独立的业务集合;按预设策略确定对比窗口,取出所述对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;各请求队列基于所述工作执行体的读写访问请求构成,所述工作执行体指参与异构冗余系统当前业务的执行体;在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出所述对比窗口;在所述异常执行体清洗并就绪后,若当前业务结束,则将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口。
此外,上述的存储器820中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序;所述计算机程序包括程序指令。当所述程序指令被计算机执行时,计算机能够执行上述面向异构冗余系统的恢复方法,该方法包括:将执行体的工作内容切分成互相独立的业务集合;按预设策略确定对比窗口,取出所述对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;各请求队列基于所述工作执行体的读写访问请求构成,所述工作执行体指参与异构冗余系统当前业务的执行体;在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出所述对比窗口;在所述异常执行体清洗并就绪后,若当前业务结束,则将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的面向异构冗余系统的恢复方法,该方法包括:将执行体的工作内容切分成互相独立的业务集合;按预设策略确定对比窗口,取出所述对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;各请求队列基于所述工作执行体的读写访问请求构成,所述工作执行体指参与异构冗余系统当前业务的执行体;在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出所述对比窗口;在所述异常执行体清洗并就绪后,若当前业务结束,则将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种面向异构冗余系统的恢复方法,其特征在于,包括:
将执行体的工作内容切分成互相独立的业务集合;
按预设策略确定对比窗口,取出所述对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;各请求队列基于所述工作执行体的读写访问请求构成,所述工作执行体指参与异构冗余系统当前业务的执行体;
在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出所述对比窗口,并通知所述异常执行体进行清洗,且其它正常执行体支撑系统继续不间断运行;
在所述异常执行体清洗后,进入就绪状态,直至当前业务结束后,在新启动点将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口;
所述互相独立的业务集合中各业务的起点不受历史输入和历史状态的影响,各业务内部的时间序列之间前后依赖,且各业务的起点均为候选启动点。
2.根据权利要求1所述的面向异构冗余系统的恢复方法,其特征在于,所述执行体包括硬件异构执行体和/或软件异构执行体,且各执行体的功能等价。
3.根据权利要求1所述的面向异构冗余系统的恢复方法,其特征在于,所述确定各工作执行体是否正常,包括:
在任一请求队列的读写访问请求与其它请求列队的读写访问请求不同,或任一请求队列不存在读写访问请求,或任一请求队列的读写访问请求超时的情况下,确定对应请求队列的工作执行体为异常执行体。
4.根据权利要求1所述的面向异构冗余系统的恢复方法,其特征在于,各请求队列基于如下步骤确定:
基于所述预设策略从正常执行体中确定所述工作执行体;
基于所述工作执行体的读写访问请求,构建对应的请求队列;各请求队列中的读写访问请求依次对应。
5.根据权利要求1所述的面向异构冗余系统的恢复方法,其特征在于,所述对比窗口是将所述工作执行体的请求队列对应的读写访问请求之间进行对比确定的;
所述对比窗口的深度基于请求队列的数量确定,所述对比窗口的宽度基于各请求队列每次对应的读写访问请求数量确定,所述对比窗口的步长基于每次滑动所述对比窗口时所间隔的读写访问请求数量确定。
6.根据权利要求1所述的面向异构冗余系统的恢复方法,其特征在于,所述取出所述对比窗口内多个请求队列对应的读写访问请求,之后还包括:
将各工作执行体对应的读写访问请求作为一个整体访问外部资源。
7.根据权利要求1所述的面向异构冗余系统的恢复方法,其特征在于,在确定任一工作执行体异常之后,还包括:控制所述异常执行体跳出异常状态。
8.根据权利要求1所述的面向异构冗余系统的恢复方法,其特征在于,各执行体之间没有通信通路。
9.根据权利要求1所述的面向异构冗余系统的恢复方法,其特征在于,所述将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口,包括:
在新启动点将就绪后的异常执行体对应的读写访问请求重新纳入所述对比窗口,以使所述异构冗余系统完成一次状态恢复;所述新启动点为下一业务对应的起点。
10.一种面向异构冗余系统的恢复装置,其特征在于,包括:
划分单元,用于将执行体的工作内容切分成互相独立的业务集合;
确定单元,用于按预设策略确定对比窗口,取出所述对比窗口内多个请求队列对应的读写访问请求,并确定各工作执行体是否正常;各请求队列基于所述工作执行体的读写访问请求构成,所述工作执行体指参与异构冗余系统当前业务的执行体;
移出单元,用于在确定任一工作执行体异常的情况下,将异常执行体的读写访问请求移出所述对比窗口,并通知所述异常执行体进行清洗,且其它正常执行体支撑系统继续不间断运行;
恢复单元,用于在所述异常执行体清洗后,进入就绪状态,直至当前业务结束后,在新启动点将就绪后的异常执行体对应的访问请求重新纳入所述对比窗口;
所述互相独立的业务集合中各业务的起点不受历史输入和历史状态的影响,各业务内部的时间序列之间前后依赖,且各业务的起点均为候选启动点。
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至9任一项所述面向异构冗余系统的恢复方法。
12.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述面向异构冗余系统的恢复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210387237.4A CN114490193B (zh) | 2022-04-14 | 2022-04-14 | 一种面向异构冗余系统的恢复方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210387237.4A CN114490193B (zh) | 2022-04-14 | 2022-04-14 | 一种面向异构冗余系统的恢复方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114490193A CN114490193A (zh) | 2022-05-13 |
CN114490193B true CN114490193B (zh) | 2022-09-02 |
Family
ID=81487731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210387237.4A Active CN114490193B (zh) | 2022-04-14 | 2022-04-14 | 一种面向异构冗余系统的恢复方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490193B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116112286B (zh) * | 2023-04-04 | 2023-06-20 | 井芯微电子技术(天津)有限公司 | 一种网络异常检测及恢复方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015149350A1 (zh) * | 2014-04-04 | 2015-10-08 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN110781012A (zh) * | 2019-10-22 | 2020-02-11 | 河南信大网御科技有限公司 | 一种基于统一消息队列的拟态裁决器和裁决方法 |
CN110913019A (zh) * | 2019-12-20 | 2020-03-24 | 中国人民解放军战略支援部队信息工程大学 | 一种云服务的安全保护方法及装置 |
CN112100627A (zh) * | 2020-10-30 | 2020-12-18 | 之江实验室 | 适用于拟态防御系统的多队列随机参数归一化装置及方法 |
CN112182018A (zh) * | 2020-10-16 | 2021-01-05 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 面向web应用的拟态构造数据库访问系统及方法 |
CN113569238A (zh) * | 2021-08-16 | 2021-10-29 | 郑州昂视信息科技有限公司 | 一种拟态防御裁决方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603708B (zh) * | 2016-12-30 | 2019-10-18 | 中国建设银行股份有限公司 | 一种业务处理方法及装置 |
CN110336799A (zh) * | 2019-06-19 | 2019-10-15 | 五邑大学 | 一种面向边缘计算终端的网络防御方法及其终端 |
-
2022
- 2022-04-14 CN CN202210387237.4A patent/CN114490193B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015149350A1 (zh) * | 2014-04-04 | 2015-10-08 | 华为技术有限公司 | 一种数据处理方法及系统 |
CN110781012A (zh) * | 2019-10-22 | 2020-02-11 | 河南信大网御科技有限公司 | 一种基于统一消息队列的拟态裁决器和裁决方法 |
CN110913019A (zh) * | 2019-12-20 | 2020-03-24 | 中国人民解放军战略支援部队信息工程大学 | 一种云服务的安全保护方法及装置 |
CN112182018A (zh) * | 2020-10-16 | 2021-01-05 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 面向web应用的拟态构造数据库访问系统及方法 |
CN112100627A (zh) * | 2020-10-30 | 2020-12-18 | 之江实验室 | 适用于拟态防御系统的多队列随机参数归一化装置及方法 |
CN113569238A (zh) * | 2021-08-16 | 2021-10-29 | 郑州昂视信息科技有限公司 | 一种拟态防御裁决方法及系统 |
Non-Patent Citations (2)
Title |
---|
Efficient Stochastic Approximation Monte Carlo Sampling for Heterogeneous Redundancy Allocation Problem;Min Xu等;《IEEE Access》;20160921;全文 * |
基于异构冗余架构的拟态防御建模技;秦俊宁等;《电信科学》;20200630;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114490193A (zh) | 2022-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8898108B2 (en) | System and method for scheduling data storage replication over a network | |
US7392433B2 (en) | Method and system for deciding when to checkpoint an application based on risk analysis | |
EP0212791A1 (en) | Method and apparatus for fault recovery within a computing system | |
US10866866B2 (en) | Query fault processing method and processing apparatus | |
CN102609296A (zh) | 虚拟机分支和并行执行 | |
CN110134385A (zh) | 记录c语言函数调用链的方法及c语言通用日志框架 | |
CN114490193B (zh) | 一种面向异构冗余系统的恢复方法及装置 | |
CN106201904A (zh) | 用于内存垃圾回收的方法及装置 | |
CN115145697A (zh) | 数据库事务的处理方法、装置及电子设备 | |
CN110648124A (zh) | 在区块链中并发执行交易的方法和装置 | |
CN112749041B (zh) | 虚拟化网络功能备份策略自决策方法、装置及计算设备 | |
CN109491834A (zh) | 一种应用于数据库的数据恢复方法及装置 | |
CN111666266A (zh) | 一种数据迁移方法及相关设备 | |
CN114564281A (zh) | 容器调度方法、装置、设备及存储介质 | |
CN111222022B (zh) | 一种基于正则表达式的匹配方法及装置 | |
CN113254536A (zh) | 数据库事务处理方法、系统、电子设备及存储介质 | |
CN115454958B (zh) | 基于人工智能的数据处理方法、装置、设备、系统及介质 | |
Lima et al. | Scheduling fixed-priority hard real-time tasks in the presence of faults | |
CN112596801A (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
JP5231035B2 (ja) | ジョブ処理システムおよびジョブ処理方法 | |
CN113297318A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
Kany et al. | Design optimisation of fault-tolerant eventtriggered embedded systems | |
US20240037014A1 (en) | Prediction of an anomaly of a resource for programming a checkpoint | |
CN114490147A (zh) | 故障处理方法以及装置 | |
CN113703733A (zh) | 对象键值清除方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |