一种基于溯源信息的数据重建系统及方法

文档序号:10569808阅读:357来源:国知局
一种基于溯源信息的数据重建系统及方法
【专利摘要】本发明公开了一种基于溯源信息的数据重建系统及方法;其方法包括溯源收集、溯源查询、因子分析、重建执行和恢复过程;溯源收集通过监控系统调用并将获得的系统调用信息转换为溯源信息,存储在溯源数据库中;溯源查询则从溯源数据库中查询必要的溯源信息,为数据重建做准备;对拟重建的文件进行因子分析,判断拟重建的文件里否包括多余文件,并对多余文件进行删除、覆盖或重命名处理;根据溯源信息,获取重建序列,根据重建序列进行数据重建;恢复过程是重建之后,删除不必要的文件,并恢复较高版本的文件;本发明提供的系统及方法使用溯源数据来准确重建受损或丢失的文件,加强系统的可靠性。
【专利说明】
一种基于溯源信息的数据重建系统及方法
技术领域
[0001 ]本发明属于计算机数据存储技术领域,更具体地,涉及一种基于溯源信息的数据重建系统及方法。
【背景技术】
[0002]在计算机存储领域,存储可靠性一直是一个重要的问题。目前已经存在了一系列的解决方案,如日志技术,快照,备份和纠删码;这些技术确保整个系统的安全性或存储可靠性,通过记录磁盘活动,复制原始数据或计算完整性校验数据以防止其崩溃。
[0003]另一方面,人们越来越关心单个数据对象的重建;与恢复整个系统相比,重建一个文件或恢复一个重要文件的内容是一种很常见需求。现有的一种数据重建方法基于纠删码,其优点在于重建性能的高效性,同时独立于安装在磁盘上的任何软件;另一种广泛使用的技术是日志结构文件系统,使用日志文件记录磁盘活动,在系统崩溃的情况下可以对其重建;快照则通过“即写即拷”技术,保证了系统的安全性;上述方法更侧重于整个系统的安全,并没有从一个更细粒度的角度,考虑单个文件的安全。
[0004]溯源信息能够精确地描述一个数据对象的起源,显示创建一个数据对象的细节,并揭示不同对象之间的依赖性,可以用来调试程序,揭露系统受攻击的根本原因,并加快桌面搜索,也可以用来作为复原实验数据的重要线索,以及重放生成过程来重建个人文件。现有技术利用在科学工作流中生成的中间数据,减少存储的开销和提高重新计算的时间,也有一些通过使用溯源信息寻找存储和计算之间的权衡,但这类研究专注于使用溯源和重新计算以提高整个系统的效率,而不是侧重于溯源重建。

【发明内容】

[0005]针对现有技术的以上缺陷或改进需求,本发明提供了一种基于溯源信息的数据重建系统及方法,其目的在于利用溯源信息进行数据重建,填补对单个文件进程重建的技术空白。
[0006]为实现上述目的,按照本发明的一个方面,提供了一种基于溯源信息的数据重建系统,该系统包括溯源信息收集模块、数据发送模块、数据接收模块、溯源信息存储模块和数据重建模块;
[0007]其中,溯源信息收集模块用于拦截系统调用,并产生溯源信息,溯源信息包括文件对象、进程对象以及文件与进程之间的依赖关系;数据发送模块用于将上述溯源信息发送到数据接收模块;数据接收模块用于接收上述溯源信息并转发到溯源信息存储模块;溯源信息存储模块用于将溯源信息存入数据库;数据重建模块用于根据溯源信息对文件进行重建。
[0008]优选地,上述基于溯源信息的数据重建系统,存放溯源信息的数据库包括身份数据库、祖先数据库;
[0009]其中,身份数据库用于保存对象名字;祖先数据库用于保存对象间的依赖关系。
[0010]优选地,上述基于溯源信息的数据重建系统,其溯源信息收集模块包括拦截单元、溯源信息生成单元和检测单元;
[0011]拦截单元用于拦截系统调用信息,并将该信息发送到溯源信息生成单元;溯源信息生成单元用于将系统调用信息转换为溯源信息;检测单元判断溯源信息是否重复或者构成环,若为重复就丢弃,若构成环则采用循环避免算法避免溯源信息成环。
[0012]为实现本发明目的,按照本发明的另一个方面,提供了一种基于溯源信息的数据重建方法,包括如下步骤:
[0013](I)拦截系统调用,根据系统调用生成溯源信息;其中,溯源信息包括文件对象、进程对象以及文件与进程之间的依赖关系;进程对象包括进程的输入参数、环境变量、进程名称或标识符;文件对象包括文件名、节点号,偏移量与写入文件里的详细字节;
[0014](2)将溯源信息存储到溯源数据库;并为每个进程对象或文件对象分配编号;该编号用于唯一的标识进程对象或文件对象
[0015](3)当接收到溯源请求,从溯源数据库中查询请求对象所对应的溯源信息,包括该对象与进程之间的依赖性关系以及对象的属性信息;
[0016](4)查询溯源数据库,对拟重建的文件进行因子分析,判断拟重建的文件里否存在多余文件,若否,则进入步骤(5);若是,则根据多余文件的类型,对多余文件进行覆盖、删除或重命名处理;
[0017]其中,多余文件是指与拟重建文件相关的、除了丢失文件或者受损文件之外的文件;
[0018](5)根据溯源数据库里的祖先数据,回溯丢失或受损文件的生成过程,根据回溯获得的信息重建丢失或受损的文件。
[0019]优选地,上述基于溯源信息的数据重建方法,其步骤(5)之后,还包括恢复步骤,将重建过程生成的与丢失或受损的文件无关的文件删除;以及将重建生成的低版本文件恢复为高版本文件;其中,恢复是指删除低版本文件,将高版本文件重命名为该文件的操作。
[0020]优选地,上述基于溯源信息的数据重建方法,溯源数据库包括身份数据库和祖先数据库;
[0021]步骤(2)中,将进程对象和文件对象存储到身份数据库;将描述进程与文件之间依赖关系的信息存储到祖先数据库。
[0022]优选地,上述基于溯源信息的数据重建方法,步骤(4)中,对多余文件的处理方法,具体如下:
[0023]当多余文件是重建前后相同的文件,则采用多余文件覆盖现有文件;
[0024]当多余文件是重建之前不存在的文件,则将多余文件删除;
[0025]当多余文件是重建之前具有更高版本的文件,则对多余文件进行重命名处理。
[0026]优选地,上述基于溯源信息的数据重建方法,其步骤(5)的数据重建过程包括如下子步骤:
[0027](5.1)在磁盘上寻找溯源链里的祖先数据,判断磁盘上是否存储有该祖先数据,若是,则进入步骤(5.2);
[0028]若否,则根据溯源信息重新生成祖先数据,并进入步骤(5.2);
[0029](5.2)根据上述祖先数据,回溯丢失或受损文件的生成过程,根据回溯获得的重建序列重建丢失或受损的文件。
[0030]总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0031]本发明提供的基于溯源信息的数据重建方法,将溯源信息存储在数据库中,提高了溯源信息查询速度;与现有的日志技术相比较,日志技术在扫描删除或丢失的日志文件时,耗时较长;而本发明提供的方法,从数据库里查询溯源,效率更高,速度更快;与现有的快照技术相比,由于快照技术的使用时间点取决于使用快照技术的用户,因而采用快照技术将丢失的文件恢复至最新版本不可控;而本发明由于溯源信息存储在数据库中,溯源信息的查询效率更高,速度更快,因而具有更好的重建性能。
【附图说明】
[0032]图1是本发明实施例提供的基于溯源信息的数据重建方法的流程图;
[0033]图2为有关文件在重建中受影响的示例图;
[0034]图3为重建过程中进程相互作用的示例图。
【具体实施方式】
[0035]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0036]实施例提供的一种基于溯源信息的数据重建系统,包括溯源信息收集模块、数据发送模块、数据接收模块、溯源信息存储模块和数据重建模块;
[0037]其中,溯源信息收集模块用于拦截系统调用,并产生溯源信息,溯源信息包括文件对象、进程对象以及文件与进程之间的依赖关系;数据发送模块用于将上述溯源信息发送到数据接收模块;数据接收模块用于接收上述溯源信息并转发到溯源信息存储模块;溯源信息存储模块用于将溯源信息存入数据库;数据重建模块用于根据溯源信息对文件进行重建。
[0038]如图1所示,基于实施例提供的上述基于溯源信息的数据重建系统进行数据重建的方法,包括溯源收集、溯源查询、因子分析、重建执行、恢复过程,具体如下:
[0039](I)拦截系统调用,根据系统调用生成溯源信息;其中,溯源信息包括文件对象、进程对象以及文件与进程之间的依赖关系;进程对象包括进程的输入参数、环境变量、进程名称或标识符;文件对象包括文件名、节点号,偏移量与写入文件里的详细字节;
[0040](2)将溯源信息存储到溯源数据库;并为每个进程对象或文件对象分配唯一编号;该编号主要用来唯一的标识对象,包括进程对象和文件对象;
[0041]将进程对象和文件对象存储到identityDB;将描述进程与文件之间依赖关系的信息存储到ancestorDB ;
[0042](3)当接收到溯源请求,从数据库中查询请求对象所对应的溯源信息,包括该对象与进程之间的依赖性关系、对象的属性信息,比如对象名、对象标识符;
[0043](4)查询溯源数据库,对拟重建的文件进行因子分析,判断拟重建的文件里否存在多余文件,若否,则进入步骤(5);若是,则根据多余文件的类型,对多余文件进行覆盖、删除或重命名处理;
[0044]其中,多余文件是指与拟重建文件相关的、除了丢失文件或者受损文件之外的文件;
[0045](5)根据溯源数据库里的祖先数据,回溯丢失或受损文件的生成过程,根据回溯获得的信息重建丢失或受损的文件;
[0046](6)将重建过程生成的与丢失或受损的文件无关的文件删除;以及将重建生成的低版本文件恢复为高版本文件;恢复过程是删除低版本的文件,并将高版本的文件重命名为该文件的过程。
[0047]图2所示,是实施例的重建过程中受影响的文件的示例图;进程P生成文件A、B、C;文件B、C被修改并转换为使用进程Pl和P2的B1(S卩,文件B,版本I)和C1(S卩,文件C,版本I);
[0048]当文件A丢失,需要使用进程P重建时,在生成文件A的同时,也生成文件B和C;由于文件B和C与文件BI和Cl具有相同的名称,文件B和C自动覆盖现有的BI和Cl;若重建之前BI和Cl的版本号不是零,则需要记录其版本号,并对其重新命名。
[0049]图3为重建过程中进程相互作用的示意图;tmp文件作为P(GCC)的祖先;由于tmp文件在磁盘上并不存在,因此调用进程Pl (CCL)生成该祖先文件;
[0050]由于该文件是临时文件,在稳定的磁盘状态下并不存在,因此在磁盘上仍然找不到该再生tmp文件;而Pl依赖P(即GCC);在这种情况下,不单独使用Pl重建tmp文件,运行进程P(即GCC),将自动复制该进程,生成子进程Pl;子进程Pl读取输入文件hell0.c生成tmp文件;将该tmp文件用作进程P的输入文件,生成hel 1.ο文件。
[0051]本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于溯源信息的数据重建系统,其特征在于,包括溯源信息收集模块、数据发送模块、数据接收模块、溯源信息存储模块和数据重建模块; 所述溯源信息收集模块用于拦截系统调用,并产生溯源信息;所述数据发送模块用于将所述述溯源信息发送到数据接收模块;所述数据接收模块用于将所述溯源信息转发到溯源信息存储模块;所述溯源信息存储模块用于将溯源信息存入溯源数据库;所述数据重建模块用于根据溯源信息对文件进行重建;所述溯源信息包括文件对象、进程对象以及文件与进程之间的依赖关系。2.如权利要求1所述的数据重建系统,其特征在于,所述溯源数据库包括身份数据库、祖先数据库; 所述身份数据库用于保存对象名字,祖先数据库用于保存对象间的依赖关系。3.如权利要求1或2所述的数据重建系统,其特征在于,所述溯源信息收集模块包括拦截单元、溯源信息生成单元和检测单元; 所述拦截单元用于拦截系统调用信息,所述溯源信息生成单元用于将所述系统调用信息转换为溯源信息;所述检测单元用于判断溯源信息是否重复或者成环,若为重复则将其丢弃,若成环则消除环。4.一种基于权利要求1至3任一项所述的数据重建系统的数据重建方法,其特征在于,包括如下步骤: (1)拦截系统调用,根据系统调用生成溯源信息;所述溯源信息包括文件对象、进程对象以及文件与进程之间的依赖关系;所述进程对象包括进程的输入参数、环境变量、进程名称或标识符;所述文件对象包括文件名、节点号,偏移量与写入文件里的字节; (2)将所述溯源信息存储到溯源数据库,并为各进程对象和文件对象分配编号;所述编号用于唯一的标识进程对象或文件对象; (3)当接收到溯源请求,从所述溯源数据库中查询请求对象所对应的溯源信息,包括所述请求对象与进程之间的依赖性关系以及请求对象的属性信息; (4)根据溯源数据库对拟重建的文件进行因子分析,判断拟重建的文件里否存在多余文件,若否,则进入步骤(5);若是,则根据多余文件的类型对多余文件进行覆盖、删除或重命名处理; 所述多余文件是指与拟重建文件相关的、除了丢失文件或者受损文件之外的文件; (5)根据溯源数据库里的祖先数据,回溯丢失或受损文件的生成过程,根据回溯获得的信息重建丢失或受损的文件。5.如权利要求4所述的数据重建方法,其特征在于,所述步骤(5)之后,还包括删除重建过程生成的与丢失或受损文件无关的文件的处理;以及将重建生成的低版本文件恢复为高版本文件的处理;所述恢复是指删除低版本文件,将高版本文件重命名的处理。6.如权利要求4所述的数据重建方法,其特征在于,所述溯源数据库包括身份数据库和祖先数据库; 步骤(2)中,所述进程对象和文件对象存储到身份数据库,描述进程与文件之间依赖关系的信息存储到祖先数据库。7.如权利要求4所述的数据重建方法,其特征在于,所述步骤(5)的数据重建过程包括如下子步骤: (5.1)在磁盘上寻找溯源链里的祖先数据,判断磁盘上是否存储有该祖先数据,若是,则进入步骤(5.2); 若否,则根据溯源信息重新生成祖先数据,并进入步骤(5.2); (5.2)根据所述祖先数据,回溯丢失或受损文件的生成过程,根据回溯获得的重建序列重建丢失或受损的文件。
【文档编号】G06F17/30GK105930234SQ201610351831
【公开日】2016年9月7日
【申请日】2016年5月25日
【发明人】谢雨来, 荣震, 陈俭喜, 冯丹, 谭支鹏
【申请人】华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1