发明内容
本发明的目的是实现一种在线重复数据删除***的数据重建优化方法,处理的对象是经过重复数据删除之后的数据包,去重后的数据在去重包中的分布直接影响***响应客户端的应答时间,通过优化存储结构,***可以更实时地反馈用户的访问请求。
本发明的目的通过以下的技术方案实现:
一种在线重复数据删除***的数据重建优化方法,包括下述步骤:
(1)、在线重复数据删除***对初始文件进行数据去重之后,生成去重包,去重***响应用户对基于文件级别的数据的访问请求,通过文件恢复实现用户的存储访问,在线重复数据删除***会在一段预设定长度的时间内统计去重包中各个文件的访问次数,将访问频度高于一定值的文件归类为常用文件集,访问频度低于该临界值的文件归为非常用文件集,然后执行步骤(2)操作;
(2)、暂停重复数据删除***的数据访问请求,进行基于文件级别的数据块重排,常用文件过滤器根据步骤(1)得到的常用文件集对去重包中的文件实体进行分流处理;处理过程是:按照去重包中初始文件的排列顺序,逐个读取去重包中的文件实体,比较文件实体记录对应文件的元数据信息段的文件名和文件类型,如果该文件名存在于步骤(1)生成的常用文件集中,则执行步骤(3)操作;
(3)、读取文件实体的唯一数据块编号区,根据数据块映射规则,找到每个对应编号的唯一数据块在去重包中的存放位置,将对应的唯一数据块写入到将要恢复的文件中,并且把文件实体中的最后一个唯一数据块也写入到要恢复的文件中,如果步骤(2)全部完成之后,则执行步骤(4),否则继续返回执行步骤(2);
(4)、将常用集中的文件重新进行数据块切分和指纹计算,并生成新的逻辑数据块单元和文件描述元信息,将新生成的数据信息写入到新的去重包中,然后执行步骤(5)操作;
(5)、将旧的去重包中的非常用文件集对应的唯一数据块进行基于文件级别的数据恢复,将非常用文件集中文件追加到新的去重包中,放到新的去重包中数据片段的后端,完成后删除旧的去重包;
(6)、新生成的去重包中的数据分布是基于对常用文件所包含的数据块和文件元数据的预取和集中,重复数据删除***恢复响应用户对数据访问的请求。
优选的,步骤(2)中,进行基于文件重排数据块的前提步骤是找到将单个文件所包含的全部数据块,将对应的数据块作统一的调度,查找文件相应的数据块之前需要对去重包中的文件进行恢复,文件恢复是一个读取数据块和写入文件的过程,通过读取去重包中各个文件实体包含的文件元数据信息和数据块信息,恢复初始的文件数据;基于文件级别的数据块重排,不但将唯一数据块集中预取到去重包中的数据片段的前端,而且数据块指纹和逻辑数据块等相关的描述信息也一并预取到相应数据片段的前端。
优选的,步骤(2)中,所述常用文件过滤器用于实现文件数据块分布管理,通过改变文件进入重复数据删除***的顺序,实现基于常用文件集的数据块重排,文件过滤器首先将去重包中的文件按***文件的顺序进行扫描,当扫描到的文件在常用文件集时,就直接进行文件所对应的数据块、指纹、逻辑数据和文件实体的检索,检索过程包括数据块的寻址和恢复,以及新去重包中数据区的写入,所有文件都扫描完毕之后,剩下的不在常用文件集中的文件就按原有顺序排列在去重包中常用文件集的数据片段之后。
优选的,步骤(3)中,数据块在去重包中的存储格式是一个副本,多个索引,数据块的寻址单位是字节,去重包中唯一数据块的物理信息记录在对应的逻辑数据块中,每个逻辑数据块的大小相同,唯一数据块的编号从0开始,依次递增。
优选的,数据块寻址包括两个映射过程,首先,根据文件实体中数据块的编号找到对应的逻辑数据块,因为每个逻辑块的大小都相同,寻址的运算过程是:数据块的编号乘以逻辑块的大小,然后就得出对应逻辑数据块的物理地址;然后,第二次寻址是根据读出的逻辑数据块中记录的唯一数据块的物理位移和块大小,找到相应的数据块,数据块的寻址和物理映射实际上是“索引—唯一数据块”的转换。
优选的,文件过滤器对去重包中初始文件数据基于常用文件集筛选恢复之后,需要重新将文件包含的数据块和对应的元数据存储到去重包中,具体步骤是进行文件切分、指纹生成、建立维护数据,***切分文件后,对数据块的处理是先计算数据块的hash值,接着进行hash比较,最后就是对去重后的数据进行存储,***的存储管理模块对新的唯一数据块的处理过程是一个可并发执行的调度。
优选的,数据恢复是针对单个文件内包含的所有唯一数据块、逻辑数据块、数据块指纹和文件元数据的统一恢复。
优选的,将经过重复数据删除技术处理之后的文件所包含的数据块处理过程分为四个并行处理的线程:唯一数据块存储、逻辑数据块存储、数据块指纹存储和文件元数据存储,线程运用的编程机制是openMP。
优选的,常用文件过滤器扫描去重包中的文件是按初始文件进入重复数据删除***的时间顺序,逐个比较去重包中文件实体的文件名是否存在于常用文件集,对访问频度不同的文件分流处理。
优选的,改变重复数据删除***的去重包中的初始文件按文件进入***的时间顺序离散分布的特征,重新将去重包中的数据内容包括唯一数据块、逻辑数据块、数据块指纹和文件元数据按文件的访问频度,以单个文件为基本单位统一集中调度到去重包中相应数据片段的前端。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明基于常用文件的数据重排,以文件为处理单位,对单个文件内所包含的所有数据块和数据块相对应的数据信息进行统一调度和分配,这与用户层面的访问请求内容和方式一致。
(2)本发明对常用文件和非常用文件的数据进行分流,将常用的文件数据集中预取到去重包中的数据片段前端,节省***对文件实体寻找的时间开销。
(3)文件恢复终止机制,本发明基于常用文件重排后的去重包中对文件恢复的过程加入终止判断,即当文件集中所有文件都从数据包中恢复出来之后,***不再扫描去重包中的其他文件实体。这可以节省不必要的文件检索时间。
实施例
如图1所示,本发明一种在线重复数据删除***的数据重建优化方法,应用的场景模型是在线的重复数据删除***,包括服务器端和客户端两部分:
客户端主要实现的功能是对文件进行切块,计算数据块的hash值,存储hash值,并作为该数据块的指纹。通过比较各个数据块的指纹,判断该数据块是不是重复的块,***只存储唯一的数据块,并记录各个数据块的ID。每个文件会建立一个文件实体,文件实体用于保存原文件的元数据,包括文件名、数据块数量、数据块ID大小、最后一个数据块的大小和一组唯一数据块的编号,以及文件的最后一个数据块(由于这个数据块大小通常比正常数据块小,重复概率非常小,所以单独存储)。唯一数据块、数据块指纹、所有的文件实体会保存在一个去重包,去重包中数据以文件的形式发送到服务器端。
服务器解析去重包中的数据,并保存唯一数据块、数据块指纹表、逻辑数据和文件实体,基于文件重排数据块的工作区间就是服务器上的这四类数据的读和写。基于文件重排是通过重新组织去重包中数据的先后顺序,以获得***更优的文件检索和恢复时间效率。
为了更清晰地阐明本发明的具体实施模型,以下结合基于文件重排数据块的工作流示意图(图2)、去重包中数据块映射与寻址示意图(图3)和数据流存储结构示意图(图4)再作详细分析。
如图2所示,***对文件进行重排分为两个阶段。第一个阶段是文件恢复,处理的对象是去重包。基于文件的数据恢复,首先,读取去重包中的文件实体,文件实体包含了相应文件对应的唯一数据块的编号;然后,根据数据块编号找到对应的逻辑数据块,读取逻辑数据块的位移和大小信息,找到去重包中的唯一数据块;最后,基于文件实体的数据块排列顺序,将唯一数据块写入到对应的文件中。第二个阶段是文件重排,文件重排有三个顺序执行的模块。(1)文件过滤器,(2)数据块切分,(3)数据块处理,各部分的功能围绕的处理单位都是文件,数据处理的基本单位是数据块。
如图3所示,文件过滤器将常用文件集中的数据以文件为基本单位进行检索,文件在去重包中的检索是根据文件实体进行相应的数据块寻址和操作的。数据块在去重包中的存储格式是一个副本,多个索引。所以在重复数据删除***中,需要建立数据块的逻辑描述信息,以方便不同文件之间共享唯一数据块的索引建立。数据块的寻址单位是字节,去重包中唯一数据块的物理信息记录在对应的逻辑数据块中。每个逻辑数据块的大小相同,唯一数据块的编号从0开始,依次递增。数据块寻址包括两个映射过程,首先,根据文件实体中数据块的编号找到对应的逻辑数据块,因为每个逻辑块的大小都相同,寻址的运算过程是:数据块的编号乘以逻辑块的大小,然后就得出对应逻辑数据块的物理地址。然后,第二次寻址是根据读出的逻辑数据块中记录的唯一数据块的物理位移和块大小,找到相应的数据块。数据块的寻址和物理映射实际上是“索引—唯一数据块”的转换。
如图4所示,文件过滤器对去重包中初始文件数据基于常用文件集筛选恢复之后,需要重新将文件包含的数据块和对应的元数据存储到去重包中。具体步骤是进行文件切分、指纹生成、建立维护数据。***切分文件后,对数据块的处理是先计算数据块的hash值,接着进行hash比较,最后就是对去重后的数据进行存储。***的存储管理模块对新的唯一数据块的处理过程是一个可并发执行的调度。为了提高数据块的处理效率,本发明提出的模型用Open MP多线程技术将存储过程分为四个并发执行的线程:hash值***hash表、唯一数据块处理、逻辑数据块处理和元数据处理。因为每个线程在去重包中的不同位置写入数据,所以并发的存储管理不但能提高***的输出效率,而且一定程度上维护了数据的独立性。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。