基于前驱依赖的故障恢复方法

文档序号:9417262阅读:240来源:国知局
基于前驱依赖的故障恢复方法
【技术领域】
[0001]本发明属于系统安全技术领域,特别涉及系统的故障恢复方法,可用于应用故障数据恢复。
【背景技术】
[0002]近年来,互联网技术得到快速发展,其中最典型的特点是数据呈现几何级式地爆炸增长,无论是个人电脑还是企业级服务器,其存储的数据内容都是之前的若干倍,大数据无疑为我们带来了很多便利,然而也带来了一个不可忽视的隐患,即系统故障恢复处理。目前,已经有了很多针对原来少量数据存储的解决方案,如本地磁盘备份异地保存,数据热备份站点保存以及活动备援技术等等,但是这些解决方案均存在以下几个缺点:
[0003]1.系统一旦发生故障,不能精确的定位故障点,而是对整个系统进行粗放式的全盘恢复,这种解决方案对于少量数据恢复是可行的,然而在大数据时代若对整个系统的数据进行全盘恢复,其需要花费大量时间;
[0004]2.系统故障恢复依赖单一的检查点设置,若要对系统进行精确度较高的恢复,则需要设置大量的检查点,这种做法对处理器的占用较高,若系统同时正在进行海量数据处理,则其将带来大量的效率损失;
[0005]3.若多个具有相同原子功能的系统需要进行故障恢复备份,则现有技术只能对其全部进行完全备份,这些相同的原子功能将会被重复备份,会造成大量的空间浪费。

【发明内容】

[0006]本发明的目的在于提出一种基于前驱依赖的故障恢复方法,以解决现有技术中不能精确定位到故障点,单一检查点设置以及多个具有相同原子功能的系统重复备份的问题。
[0007]实现本方法的主要思想是:为需要进行数据保护的应用构造一棵功能依赖树,树的根节点为应用本身,根节点的子节点为将应用按功能划分之后的功能集合,树的叶子节点为将功能集合中的元素按实现划分成的原子功能集合,并周期性的将功能依赖树的叶子节点备份至外部存储。当应用发生故障时,首先找到发生故障的功能集合,再通过故障功能集合找到故障原子功能集合,之后去外部存储中找到故障原子功能对应的备份,从而实现对故障原子功能的恢复,再通过故障原子功能的恢复实现对上层故障功能的恢复,最终实现对整个应用的恢复。
[0008]根据以上思路,本发明的具体实现主要包括以下三个步骤:
[0009](I)构造功能依赖树T:
[0010]Ia)令需要进行故障数据恢复的应用A作为功能依赖树T的根节点,将其按功能划分为独立的功能集合F= {Fk|k= 1,2,...,η},并将功能集合F中的元素作为根节点的子节点接入功能依赖树Τ,构成功能依赖树T的功能节点,其中,η表示需要进行故障数据恢复的应用A依赖的功能个数;
[0011]lb)对功能集合F中的每一项功能Fk按其实现划分为原子功能集合P k= {P kji I i=I, 2,..., km},将原子功能集合Pk中的元素作为节点F k的子节点接入功能依赖树T,构成功能依赖树T的原子功能节点,其中,Icni为功能F k所依赖的原子功能个数,k为应用A依赖的第k个功能;
[0012](2)备份功能依赖树T的原子功能:
[0013]2a)对功能依赖树T的所有η个原子功能节点集合Pk= {Pkjl|i = 1,2,..., kn}求并集,得到去除重复原子功能后的原子功能总集合C= (Ci I i = I, 2,..., 1},其中,k =1,2,...,n,I为应用A依赖的去除重复功能后的原子功能个数;
[0014]2b)设置全备份周期^及增量备份周期12,将原子功能总集合C中的每一个原子功能C1周期性地备份至外部存储D ;
[0015](3)功能依赖树T的根节点发生故障时的恢复处理:
[0016]3a)遍历功能依赖树T,找到发生故障的功能节点集合G = {Pb |b = 1,2,...,x},Pb为发生故障的功能节点,对这些故障节点的子节点求并集,得到故障原子功能集合C’ =(Cj |j = 1,2,...,y},Cj为发生故障的原子功能节点,其中,b为发生故障的功能节点下标,
X为发生故障的功能节点个数,j为发生故障的原子功能下标,y为发生故障的原子功能节点个数;
[0017]3b)在外部存储D中查找最新的一次全备份,根据全备份的状态信息对故障原子功能集合C’中的每一个原子功能节点Cj进行恢复,其中j = 1,2,...y, y为发生故障的原子功能节点个数;
[0018]3c)在外部存储D中查找最近的一次全备份之后的全部增量备份,根据先后顺序逐一对该C’中的每一个原子功能节点C,进行增量恢复,完成对功能节点集合G中的故障功能节点恢复。
[0019]本发明与现有技术相比具有如下优点:
[0020]1.由于本发明使用前驱依赖的方法对应用进行功能细化,当应用发生故障时可针对故障功能进行恢复,因此可以避免现有方案无法精确定位故障点,从而导致全盘恢复的问题。
[0021]2.由于本发明使用全备份和增量备份双层级备份模式,因此可以避免现有方案检查点设置单一从而导致的备份效率低的问题。
[0022]3.由于本发明使用原子功能备份的方式对应用进行恢复,因此当多个具有重复原子功能的应用需要进行故障恢复备份时,其重复的原子功能将不会被多次备份,可解决现有技术中多个系统只能分别完全备份的问题。
【附图说明】
[0023]图1是本发明的实现总流程图;
[0024]图2是本发明中构造功能依赖树的子流程图;
[0025]图3是本发明中对功能依赖树原子功能进行备份的子流程图;
[0026]图4是本发明中对功能依赖树的根节点发生故障时的恢复处理子流程图。
【具体实施方式】
[0027]参照图1,本发明的实现步骤如下:
[0028]步骤1,为需要进行故障数据恢复的应用A构造功能依赖树T。
[0029]需要进行故障数据恢复的应用A包括多种对数据容灾能力需求较高的应用,如计算机集群应用、大型数据库应用以及需要提供高可用服务的云服务器应用等,本实例选取常见的计算机集群应用进行说明。
[0030]参照图2,本步骤的具体实现如下:
[0031]Ia)令应用A作为功能依赖树T的根节点,将其按功能划分为独立的功能集合F={Fk|k = I, 2,..., η},并将功能集合F中的元素作为根节点的子节点接入功能依赖树Τ,构成功能依赖树T的功能节点,其中,η表示需要进行故障数据恢复的应用A依赖的功能个数;
[0032]Ib)对功能集合F中的每一项功能Fk按其实现划分为原子功能集合P k= {P kji | i=I, 2,..., km},将原子功能集合Pk中的元素作为节点F k的子节点接入功能依赖树T,构成功能依赖树T的原子功能节点,其中,Icni为功能F k所依赖的原子功能个数,k为应用A依赖的第k个功能。
[0033]步骤2,选取两层增量检查点恢复算法对功能依赖树T的原子功能进行备份。
[0034]检查点恢复技术是一种行之有效,并被广泛应用于计算机集群应用以及数据库应用的容错恢复方法,其可以通过设置检查点和事务卷回的方式对数据进行保护,目前常见的检查点恢复备份算法有两层增量检查点恢复算法、完全检查点恢复算法以及日志驱动检查点恢复算法。本实例选取但不限于两层增量检查点恢复算法对功能依赖树T的原子功能进行备份,该算法的详细计算过程参见Two-Level Incremental Checkpoint RecoveryScheme for Reducing System Total Overheads, Plos ONE,20140
[0035]参照图3,本步骤的具体实现如下:
[0036]2a)对功能依赖树T的所有η个原子功能节点集合Pk= {Pkjl|i = 1,2,..., kn}求并集,得到去除重复原子功能
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1