一种基于对象的溯源存储系统及方法与流程

文档序号:12550777阅读:182来源:国知局
一种基于对象的溯源存储系统及方法与流程

本发明属于计算机数据存储技术领域,更具体地,涉及一种基于对象的溯源存储系统及方法。



背景技术:

在计算机存储领域,如今的存储系统已经在可靠性、可用性和高效性方面取得了巨大的进步。然而随着数据量的增大和数据复杂度的提高,利用溯源来管理存储系统也变得越发重要。溯源是描述一个数据对象的历史操作的元数据。溯源提高了数据本身所描述的价值,它给出了“对象是如何创建的,对象依赖了哪些其他对象以及这两个对象的历史操作有何不同”等问题的答案。在系统领域,一个对象的溯源是所有影响该对象最终状态的过程和数据。

由于溯源表露了数据的起源和产生过程,让用户对数据的理解更加透彻,相关研究机构已经认识到了数据溯源的重要性并且在积极地探索如科学计算、档案系统和数据库等多个领域的相关问题。然而,上述研究限定在了特定的领域或者获取数据溯源时需要对应用程序进行修改,降低了溯源信息的收集效率。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于对象的溯源存储系统及方法,充分利用对象存储体系结构,在对象存储客户端收集系统内核信息、文件格式信息及普通应用程序信息等溯源信息,并将收集到的溯源信息封装成对象,存储到对象存储设备端的数据库或日志文件中,可以使溯源信息得以高效地收集及查询。由此解决现有技术中对溯源信息的收集效率较低的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种基于对象的溯源存储系统,包括:对象存储客户端以及对象存储设备端;

所述对象存储客户端,用于收集系统内核、文件格式以及应用程序的溯源信息,将收集得到的溯源信息存入缓冲区,并向所述对象存储设备端发送对象命令;

所述对象存储设备端,用于接收并解析所述对象命令,提取出所述对象存储客户端缓冲区中的溯源信息,将提取出的溯源信息写入对象文件以及数据库中;

所述对象存储设备端,还用于在接收到用户输入的查询关键字时,对数据库进行检索,将与查询关键字匹配的查询结果进行展示。

优选地,所述对象存储客户端包括系统状态溯源收集模块、文件格式溯源收集模块、应用程序溯源收集模块以及第一对象文件系统模块;

所述系统状态溯源收集模块,用于分析系统状态文件,将系统内核信息转换为系统状态溯源信息;

所述文件格式溯源收集模块,用于调用格式分析程序分析文件,将文件格式信息转换为文件格式溯源信息;

所述应用程序溯源收集模块,用于拦截系统调用,将系统调用序列号以及进程信息转换为应用程序溯源信息;

所述第一对象文件系统模块,用于将所述系统状态溯源信息、所述文件格式溯源信息以及所述应用程序溯源信息存入缓冲区,并向所述对象存储设备端发送对象命令。

优选地,所述对象存储设备端包括对象命令处理模块、第二对象文件系统模块以及溯源查询模块;

所述对象命令处理模块,用于接收并分析所述对象命令,从所述对象存储客户端的缓冲区中解析出所述系统状态溯源信息、所述文件格式溯源信息以及所述应用程序溯源信息,并转发给所述第二对象文件系统模块;

所述第二对象文件系统模块,用于将解析出的所述系统状态溯源信息、所述文件格式溯源信息以及所述应用程序溯源信息写入文件和数据库,并分别把文件和数据库记录封装成对象;

所述第二对象文件系统模块,还用于通过用户输入的关键字对数据库进行搜索得到溯源查询结果;

所述溯源查询模块,用于将所述溯源查询结果写入到本地磁盘和/或返回给所述对象存储客户端。

按照本发明的另一方面,提供了一种基于对象的溯源存储方法,包括以下步骤:

(1)对象存储客户端收集系统内核、文件格式以及应用程序的溯源信息,将收集得到的溯源信息存入缓冲区,并向对象存储设备端发送对象命令,其中,所述对象命令中携带有收集得到的溯源信息;

(2)对象存储设备端接收并解析所述对象命令,提取出溯源信息,将溯源信息写入对象文件和数据库中;

(3)对象存储设备端在接收到用户输入的查询关键字时,对数据库进行检索,将查询结果写入到本地磁盘和/或返回给对象存储客户端。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,主要有以下的技术优点:通过利用对象存储体系结构,在对象存储客户端收集系统内核信息、文件格式信息及普通应用程序信息等溯源信息,并将收集到的溯源信息封装成对象,存储到对象存储设备端的数据库或日志文件中,可以使溯源信息得以高效地收集及查询。

附图说明

图1为本发明实施例公开的一种基于对象的溯源存储系统的结构示意图;

图2为一种用于处理溯源信息的基于对象的主动存储机制的交互图;

图3为本发明实施例公开的一种基于对象的溯源存储方法的流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

图1为本发明实施例公开的一种基于对象的溯源存储系统的结构示意图,该系统由对象存储客户端以及对象存储设备端组成:上述对象存储客户端,用于收集系统内核、文件格式以及应用程序的溯源信息,将收集得到的溯源信息存入缓冲区,并向所述对象存储设备端发送对象命令,其中,所述对象命令中携带有收集得到的溯源信息;上述对象存储设备端,用于接收并解析对象命令,提取出溯源信息,将溯源信息写入新创建的对象文件和数据库中;上述对象存储设备端,还用于在接收到用户输入的查询关键字时,对数据库进行检索,将与查询关键字匹配的查询结果进行展示。

其中,在对象存储客户端中,包括系统状态溯源收集模块、文件格式溯源收集模块、应用程序溯源收集模块以及第一对象文件系统模块:

系统状态溯源收集模块,用于分析系统状态文件,将系统内核信息转换为系统状态溯源信息;

具体地,系统状态溯源收集模块利用系统状态文件收集内核信息,对系统状态文件中的内容进行逐条分析和筛选即可得到需要的内核信息,当前系统中的重要溯源信息包括操作系统的名称、网络节点名、内核发行级别、内核发行版本以及CPU架构等信息。然后将这些信息存储到数据输出缓冲区中。

文件格式溯源收集模块,用于调用格式分析程序分析文件,将文件格式信息转换为文件格式溯源信息;

具体地,文件格式溯源收集模块利用文件格式分析的应用程序JHOVE分析得到的文件格式信息,即此文件是利用何种格式建立的,以及能够得到其中的创建时间以及最近更新时间等溯源信息,并将这些溯源信息存储到数据输出缓冲区中。

应用程序溯源收集模块,用于拦截系统调用,将系统调用序列号以及进程信息转换为应用程序溯源信息;

具体地,应用程序溯源收集模块能够记录系统调用和文件访问并生成日志文件。此功能能够通过对任何目录下的注册文件进行编辑或者通过使用图像接口。一旦注册成功,事件的通知便会生成日志文件存储在指定目录下的日志文件中。

可选地,可以有以下三种应用程序的监测方式。

(1)对创建文件操作进行监测;

对文件进行创建和删除操作时,利用audit监听该文件目录便可得到添加和/或删除产生的溯源信息。例如,对简单的Vim操作文本的指令:

#vitest.txt

同时利用auditctl指令对该目录下的文件进行监测,便可在生成的日志文件中得到基本文件操作的溯源信息。利用aureport指令对日志文件的内容进行筛选,便可得到我们编辑文件时产生的溯源信息,得到多个系统用户与组的ID。同时我们还可得到节点号inode,系统调用退出值exit,系统调用的成功值success,系统调用的处理器体系结构arch等溯源信息。

(2)对postmark应用程序执行文件添加/删除进行监测;

利用postmark对大量文件的添加或删除操作,可以通过审计功能audit对postmark所操作的文件区进行监测操作,便可得到一系列文件添加或删除操作以及读或写操作。其中,postmark是一个I/O密集型的应用程序。

将audit监测postmark运行过程中的数据变更输出日志文件存储在/var/log/audit/result.log中。

(3)对内核编译过程进行监测;

与postmark对文件进行大量添加或删除不同,编译内核的过程可视为CPU密集型的应用程序。编译内核时会对系统下的多个部分均产生影响。因此我们在/usr/src目录对内核执行编译指令时,需要利用audit对根目录进行监控来查看内核编译所产生的溯源信息。然后在/usr/src目录中对内核编译做出操作,执行makebzImage指令生成内核映像进行编译。编译完成后,audit功能便在日志文件中生成内核编译过程的溯源信息。

第一对象文件系统模块,用于将系统状态溯源信息、文件格式溯源信息以及应用程序溯源信息存入缓冲区,并向对象存储设备端发送对象命令,其中,对象命令中携带有系统状态溯源信息、文件格式溯源信息以及应用程序溯源信息。

可选地,将溯源信息从对象存储客户端传输到对象存储设备端,并进行存储和访问的对象命令流程如下:

(1)首先在对象存储客户端收集溯源信息后,将其读到对象存储客户端缓冲区buffer中。

(2)然后调用osd_create_and_write()函数,将溯源信息传输到对象存储设备端,并由对象存储设备端写入到新创建的对象文件内。其中,对象文件的路径由无符号整数的进程身份标识符(Process Identifier,PID)和无符号整数的用户身份标识符(User Identification,UID)共同标识。例如对对象存储设备端目录路径为/0/64的文件进行操作,则需要令PID=0x0,UID=0x64。

(3)新产生的对象文件ID(即PID和UID)既可以由osd_create_and_write()函数中的随机算法确定,也能由对象存储设备端中创建对象时进行指定。

(4)在对象存储客户端可利用对象读写命令对对象存储设备端的溯源信息进行访问。

其中,在对象存储设备端中,包括对象命令处理模块、第二对象文件系统模块以及溯源查询模块;

对象命令处理模块,用于接收并分析对象命令,从对象存储客户端的缓冲区中解析出系统状态溯源信息、文件格式溯源信息以及应用程序溯源信息,并转发给第二对象文件系统模块;

第二对象文件系统模块,用于将解析出的系统状态溯源信息、文件格式溯源信息以及应用程序溯源信息写入文件和数据库,并分别把文件和数据库记录封装成对象;

第二对象文件系统模块,还用于通过用户输入的关键字对数据库进行搜索得到溯源查询结果;

溯源查询模块,用于将查询结果写入到本地磁盘和/或返回给对象存储客户端。

如图2所示为一种用于处理溯源信息的基于对象的主动存储机制的交互图,对象命令处理模块获取和分析对象存储设备端接收到的基于对象的存储设备(Object-based Storage Device,OSD)命令,从OSD命令的数据输出缓冲区buffer中解析出数据和溯源信息,并转发给第二对象文件系统模块,由第二对象文件系统模块将溯源信息分别写入文件和数据库,并分别把文件和数据库封装成OSD对象和功能对象,然后功能调度根据功能对象的ID,负责调度相关的功能对象去执行,功能对象被调度到用户空间,执行结果写入本地磁盘或返回给对象存储客户端,最后,对象存储客户端通过溯源查询即可以列表的方式得到相关的溯源信息。

在对象存储客户端收集内核信息后,调用对象创建命令在对象存储设备端创建一个文件对象,并将所获取的系统内核溯源信息传输到该文件对象中。然后分析此文件对象中的字符串,将首字符串系统名称作为数据库的key,将多项溯源信息作为data存储到BerkeleyDB所创建的数据库中。

从图2可以看出,将溯源处理的工作放到对象存储设备端,而只将处理后的数据传给对象存储客户端,避免了大量溯源数据在网络上传输,从而节约了网络带宽。同时将溯源查询结果返回给对象存储客户端,提高了溯源查询的效率和性能。

图3所示为本发明实施例公开的一种基于对象的溯源存储方法的流程示意图。在图3所示的方法中,包括以下步骤:

(1)对象存储客户端收集系统内核、文件格式以及应用程序的溯源信息,将收集得到的溯源信息存入缓冲区,并向对象存储设备端发送对象命令,其中,对象命令中携带有收集得到的溯源信息;

(2)对象存储设备端接收并解析该对象命令,提取出溯源信息,将溯源信息写入对象文件和数据库中;

(3)对象存储设备端在接收到用户输入的查询关键字时,对数据库进行检索,将查询结果写入到本地磁盘和/或返回给对象存储客户端。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1