Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
FILE CHUNKING METHOD, SYSTEM AND FILE PROCESSING SYSTEM
Document Type and Number:
WIPO Patent Application WO/2015/131492
Kind Code:
A1
Abstract:
Disclosed are a file chunking method, system and file processing system. The method comprises: according to a variable length chunking algorithm, dividing a file into one or more variable length chunks; respectively mapping each of the one or more variable length chunks to a preset chunk length or to a fixed length chunk being an integral multiple of the preset chunk length. The present invention solves the problem in the relevant art that a storage system of fixed length chunks does not support deletion of duplicate data of variable length chunks, and the resultant problem of changing a file storage system when a duplicate data deletion system of fixed length chunks is expanded to a duplicate data deletion system of variable length chunks, the problem of high costs of system expansion, thus reducing system expansion costs.

Inventors:
LIU HUANG (CN)
SHI XIAOBING (CN)
YUAN QING (CN)
Application Number:
PCT/CN2014/084166
Publication Date:
September 11, 2015
Filing Date:
August 12, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
International Classes:
G06F17/30
Foreign References:
CN102810108A2012-12-05
CN1455557A2003-11-12
CN102082575A2011-06-01
CN101908073A2010-12-08
Attorney, Agent or Firm:
KANGXIN PARTNERS, P.C. (CN)
北京康信知识产权代理有限责任公司 (CN)
Download PDF:
Claims:
权 利 要 求 书

1. 一种文件分块方法, 包括:

通过变长分块算法, 将文件分块为一个或多个变长分块; 将所述一个或多个变长分块中的每个变长分块分别映射为预定分块长度或 预定分块长度的整数倍的定长分块。

2. 根据权利要求 1所述的方法, 其中, 将所述一个或多个变长分块中的每个变长 分块分别映射为所述定长分块包括:

在待映射变长分块的长度小于所述预定分块长度的情况下, 填充所述待映 射变长分块为所述预定分块长度的所述定长分块;

在所述待映射变长分块的长度大于所述预定分块长度的情况下, 填充所述 待映射变长分块为所述预定分块长度的整数倍的所述定长分块。

3. 根据权利要求 1所述的方法, 其中, 在将所述一个或多个变长分块中的每个变 长分块分别映射为所述定长分块之后, 所述方法还包括:

保存所述文件的分块信息, 其中, 所述分块信息包括: 所述文件的所述定 长分块的位置信息, 和所述文件的所述定长分块对应的变长分块的长度。

4. 根据权利要求 3所述的方法, 其中, 在保存所述文件的所述分块信息之后, 所 述方法还包括: 将所述定长分块发送至文件存储系统。

5. 根据权利要求 4所述的方法, 其中, 在将所述定长分块存储至所述文件存储系 统之后, 所述方法还包括: 对所述文件存储系统中存储的定长分块进行重复数据删除操作。

6. 根据权利要求 1至 5中任一项所述的方法, 其中, 在将所述一个或多个变长分 块中的每个变长分块分别映射为所述定长分块之后, 所述方法还包括: 对所述定长分块和文件存储系统中存储的定长分块进行重复数据删除操 作。

7. 一种文件分块系统, 包括: 分块模块,设置为通过变长分块算法,将文件分块为一个或多个变长分块; 映射模块, 设置为将所述一个或多个变长分块中的每个变长分块分别映射 为预定分块长度或预定分块长度的整数倍的定长分块。

8. 根据权利要求 7所述的系统, 其中, 所述映射模块包括:

第一填充单元, 设置为在待映射变长分块的长度小于所述预定分块长度的 情况下, 填充所述待映射变长分块为所述预定分块长度的所述定长分块;

第二填充单元, 设置为在所述待映射变长分块的长度大于所述预定分块长 度的情况下, 填充所述待映射变长分块为所述预定分块长度的整数倍的所述定 长分块。

9. 根据权利要求 7所述的系统, 其中, 所述系统还包括: 保存模块, 设置为保存所述文件的分块信息, 其中, 所述分块信息包括: 所述文件的所述定长分块的位置信息, 和所述文件的所述定长分块对应的变长 分块的长度。

10. 根据权利要求 9所述的系统, 其中, 所述系统还包括: 发送模块, 设置为将所述定长分块发送至文件存储系统。

11. 一种文件处理系统, 包括: 文件应用系统、 文件分块系统和文件存储系统, 其 中,

所述文件应用系统, 设置为通过文件分块系统向所述文件存储系统写入或 读取文件;

所述文件分块系统, 与所述文件应用系统连接, 设置为通过变长分块算法 将所述文件分块为一个或多个变长分块, 并将所述一个或多个变长分块中的每 个变长分块分别映射为预定分块长度或预定分块长度的整数倍的定长分块; 所述文件存储系统,与所述文件分块系统连接,设置为存储所述定长分块。

12. 根据权利要求 11所述的系统, 其中, 所述系统还包括: 后处理重删系统, 与所述文件存储系统连接, 设置为对所述文件存储系统 中存储的定长分块进行重复数据删除操作; 和 /或 实时重删系统, 与所述文件存储系统和所述文件分块系统连接, 设置为对 所述定长分块和所述文件存储系统中存储的定长分块进行重复数据删除操作。

Description:
文件分块方法、 系统及文件处理系统 技术领域 本发明涉及通信领域, 具体而言, 涉及一种文件分块方法、 文件分块系统及文件 处理系统。 背景技术 随着计算机信息化程度的提高, 人类已经进入信息时代。 计算机以及互联网已经 深入各行各业, 这也使得信息数据量呈几个级数增长。 而在这海量的数据中, 存在大 量的冗余数据。 由于需要保证数据的安全, 因此会不断对数据进行备份, 而各个备份 中存在大量的冗余数据。 目前已经有不少针对冗余数据进行处理的被称 为重复数据删除的技术, 以及相关 的产品。 在重复数据删除技术中, 对于处理的目标(粒度), 目前最为普遍的是采用次 文件级的块作为数据重删的处理粒度。 而在对一个文件进行分块时存在固定长度分块 (定长分块) 和变长分块两大类。 固定长度分块处理方便, 分块计算消耗的性能开销非常的小, 并且对数据管理开 销小。 且大部分文件系统的与数据分块都是固定长度 的 (至少在同一个文件中, 分块 的长度是固定的), 因此使用固定长度分块的方法不需要对文件系 统有额外的要求。但 是固定长度的分块方式对于一个文件在插入数 据和删除数据方面非常敏感, 可能导致 所有分块的位置发生变化, 这时两个有大量重复数据的文件可能由于分块 问题, 而没 有重复的数据块, 从而无法进行重删处理。 因此固定长度分块的方法, 虽然实现简单, 计算效率高, 且对文件系统没有特别的要求, 但是其能达到的重删率不够理想; 特别 是在备份系统中, 存在大量文件是被经过增加或删操作一些数据 修改得来的情况下, 重删率更低。 变长的分块处理可以解决固定长度分块对于插 入删除敏感的问题, 可以带来更高 的重删率。 常用的变长分块算法有内容定义块 (Content-Defined Chunking, 简称为 CDC) 算法、 滑块算法等。 但这些算法都需要一定的计算资源, 并且由于每个块的实 际数据长度不同, 需要文件系统具有对于不同长度的块的处理能 力, 且其长度变化的 粒度为字节级。 市面上已经有不少成熟的定长分块的重复数据 删除产品, 也已有不少用户部署了 这些定长分块的产品。 但很多情况下, 这些用户对于变长分块的数据重删方式是有需 求的, 这时就必须要更换整个重删产品, 并且其存储系统可能还无法提供变长重复数 据删除技术所需要的支持。 重复数据删除在对数据的处理时机上, 有嵌入 (inline) 方 式的嵌入在整个输入 /输出 (I/O) 流程中的实时重复数据删除, 以及根据执行策略对 已经写入存储系统中的数据进行重删的后处理 式。 后处理式可以根据策略在空闲时间 对系统中的数据进行消重, 不影响正常存储业务, 因此应用广泛。 对于定长分块的后 处理重删, 在重删过程中, 由于数据块已经在磁盘中, 在执行重删时, 可以不用再次 读写实际数据块(例如仅仅只修改数据块的引 用指针)。但如果使用变长的分块方式使 用后处理重删, 由于需要对存储设备上的文件数据重新分块, 需要将实际数据读出来, 重新分块, 再写入存储设备。 针对相关技术中的定长分块的存储系统无法支 持变长分块的重复数据删除, 从而 导致定长分块重删系统扩展为变长分块的重删 系统需要更换文件存储系统、 扩展成本 高的问题, 目前尚未提出有效的解决方案。 发明内容 本发明实施例提供了一种文件分块方法、 系统及文件处理系统, 以至少解决相关 技术中的定长分块的存储系统无法支持变长分 块的重复数据删除, 从而导致定长分块 重删系统扩展为变长分块的重删系统需要更换 文件存储系统、 扩展成本高的问题。 根据本发明的一个实施例, 提供了一种文件分块方法, 包括: 通过变长分块算法, 将文件分块为一个或多个变长分块; 将所述一个或多个变长分块中的每个变长分块 分 别映射为预定分块长度或预定分块长度的整数 倍的定长分块。 将所述一个或多个变长分块中的每个变长分块 分别映射为所述定长分块包括: 在 待映射变长分块的长度小于所述预定分块长度 的情况下, 填充所述待映射变长分块为 所述预定分块长度的所述定长分块; 在所述待映射变长分块的长度大于所述预定分 块 长度的情况下, 填充所述待映射变长分块为所述预定分块长度 的整数倍的所述定长分 块。 在将所述一个或多个变长分块中的每个变长分 块分别映射为所述定长分块之后, 所述方法还包括: 保存所述文件的分块信息, 其中, 所述分块信息包括: 所述文件的 所述定长分块的位置信息, 和所述文件的所述定长分块对应的变长分块的 长度。 在保存所述文件的所述分块信息之后, 所述方法还包括: 将所述定长分块发送至 文件存储系统。 在将所述定长分块存储至所述文件存储系统之 后, 所述方法还包括: 对所述文件 存储系统中存储的定长分块进行重复数据删除 操作。 在将所述一个或多个变长分块中的每个变长分 块分别映射为所述定长分块之后, 所述方法还包括: 对所述定长分块和文件存储系统中存储的定长 分块进行重复数据删 除操作。 根据本发明的另一个实施例, 还提供了一种文件分块系统, 包括: 分块模块, 设 置为通过变长分块算法, 将文件分块为一个或多个变长分块; 映射模块, 设置为将所 述一个或多个变长分块中的每个变长分块分别 映射为预定分块长度或预定分块长度的 整数倍的定长分块。 所述映射模块包括: 第一填充单元, 设置为在待映射变长分块的长度小于所述预 定分块长度的情况下,填充所述待映射变长分 块为所述预定分块长度的所述定长分块; 第二填充单元,设置为在所述待映射变长分块 的长度大于所述预定分块长度的情况下, 填充所述待映射变长分块为所述预定分块长度 的整数倍的所述定长分块。 所述系统还包括: 保存模块, 设置为保存所述文件的分块信息, 其中, 所述分块 信息包括: 所述文件的所述定长分块的位置信息, 和所述文件的所述定长分块对应的 变长分块的长度。 所述系统还包括: 发送模块, 设置为将所述定长分块发送至文件存储系统。 根据本发明的另一个实施例, 还提供了一种文件处理系统, 包括: 文件应用系统、 文件分块系统和文件存储系统, 其中, 所述文件应用系统, 设置为通过文件分块系统 向所述文件存储系统写入或读取文件; 所述文件分块系统, 与所述文件应用系统连接, 设置为通过变长分块算法将所述文件分块为一 个或多个变长分块, 并将所述一个或多 个变长分块中的每个变长分块分别映射为预定 分块长度或预定分块长度的整数倍的定 长分块; 所述文件存储系统, 与所述文件分块系统连接, 设置为存储所述定长分块。 所述系统还包括: 后处理重删系统, 与所述文件存储系统连接, 设置为对所述文 件存储系统中存储的定长分块进行重复数据删 除操作; 和 /或实时重删系统, 与所述文 件存储系统和所述文件分块系统连接, 设置为对所述定长分块和所述文件存储系统中 存储的定长分块进行重复数据删除操作。 通过本发明实施例, 通过变长分块算法, 将文件分块为一个或多个变长分块; 将 该一个或多个变长分块中的每个变长分块分别 映射为预定分块长度或预定分块长度的 整数倍的定长分块的方式, 解决了相关技术中的定长分块的存储系统无法 支持变长分 块的重复数据删除, 从而导致定长分块重删系统扩展为变长分块的 重删系统需要更换 文件存储系统、 扩展成本高的问题, 减少了定长分块重删系统到变长分块重删系统 的 扩展成本。 附图说明 构成本申请的一部分的附图用来提供对本发明 的进一步理解, 本发明的示意性实 施例及其说明用于解释本发明, 并不构成对本发明的不当限定。 在附图中: 图 1是根据本发明实施例的文件分块方法的流程 意图; 图 2是根据本发明实施例的文件分块系统的结构 意图; 图 3是根据本发明实施例的文件分块系统的优选 构示意图一; 图 4是根据本发明实施例的文件分块系统的优选 构示意图二; 图 5是根据本发明实施例的文件分块系统的优选 构示意图三; 图 6是根据本发明实施例的文件处理系统的结构 意图; 图 7是根据本发明实施例的文件处理系统的优选 构示意图; 图 8是根据本发明优选实施例的包括变长重复数 删除系统的文件处理系统的结 构示意图; 图 9是根据本发明优选实施例的将变长分块填充 定长分块的示意图。 具体实施方式 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中的特征可以相 互组合。 下面将参考附图并结合实施例来详细说明本发 明。 并且, 在附图的流程图示出的步骤可以在诸如一组计 算机可执行指令的计算机系 统中执行, 虽然在流程图中示出了逻辑顺序, 但是在某些情况下, 可以以不同于此处 的顺序执行所示出或描述的步骤。 本实施例提供了一种文件分块方法, 图 1是根据本发明实施例的文件分块方法的 流程示意图, 如图 1所示, 该流程包括如下步骤: 步骤 S102, 通过变长分块算法, 将文件分块为一个或多个变长分块; 步骤 S104,将该一个或多个变长分块中的每个变长 块分别映射为预定分块长度 或预定分块长度的整数倍的定长分块。 通过上述步骤, 将文件采用变长分块算法分为变长分块后映射 为预定分块长度或 预定分块长度的整数倍的定长分块, 从而使得变长分块可以通过定长分块的文件存 储 系统存储。 采用该方式, 提供了可以一种将变长分块的文件存储在定长 分块的文件存 储系统中的扩展方案或系统架构, 解决了传统的定长分块的存储系统无法支持变 长分 块的重复数据删除, 从而导致定长分块重删系统扩展为变长分块的 重删系统需要更换 文件存储系统、 扩展成本高的问题, 减少了定长分块重删系统到变长分块重删系统 的 扩展成本。 优选地, 本实施例中的变长分块算法包括内容定义块算 法、 滑块算法等可以将文 件分为变长分块的分块算法。 优选地, 本实施例中的预定分块长度可以根据定长分块 的文件存储系统支持的分 块长度确定。 优选地, 将一个或多个变长分块中的每个变长分块分别 映射为定长分块可以通过 相应的映射算法来实现, 也可以通过比特填充的方式实现, 其中, 在采用比特填充的 方式时, 填充的比特为无效比特, 即用于填充但不作为真实数据的比特。 填充比特可 以根据预先的定义为全 " 0"或者全 " 1 ", 或者其他的预定形式。 并且, 比特填充的位 置可以在变长分块之前、 变长分块之后, 或者插入到变长分块的预定位置。 优选地, 在采用比特填充的方式时, 在待映射变长分块的长度小于预定分块长度 的情况下, 填充待映射变长分块为预定分块长度的定长分 块; 在待映射变长分块的长 度大于预定分块长度的情况下, 填充待映射变长分块为预定分块长度的整数倍 的定长 分块。 通过该方式将各种不同长度的变长分块填充为 预定分块长度或者预定分块长度 的整数倍, 从而使得存储在文件系统中时可以与定长分块 的边界对其, 而兼容了定长 分块的存储结构。 优选地, 在将一个或多个变长分块中的每个变长分块分 别映射为定长分块之后, 还可以保存文件的分块信息, 其中, 分块信息包括: 文件的定长分块的位置信息, 和 文件的定长分块对应的变长分块的长度。 在写入或者读取该文件的分块时, 根据分块 信息查找分块的偏移位置, 从而正确写入或者读出文件的各个分块。 其中, 对于多个 文件而言, 分别存储其分块信息。 优选地,在保存文件的分块信息之后,将定长 分块发送至文件存储系统进行存储。 优选地, 在将定长分块存储至文件存储系统之后, 对文件存储系统中存储的定长 分块进行重复数据删除操作。 其中, 在进行文件存储系统中存储的定长分块的重复 数 据删除操作时, 可以在系统空闲的情况下, 将相同的定长分块进行消重。 通过该方式 提供了后处理的重复数据删除操作。 优选地, 本实施例中还提供了一种在线式重复数据删除 操作方式, 例如, 在将一 个或多个变长分块中的每个变长分块分别映射 为定长分块之后, 对文件的变长分块映 射得到的定长分块和文件存储系统中存储的定 长分块进行重复数据删除操作。 本实施例还提供了一种文件分块系统, 设置为实现上述文件分块方法。 该装置中 涉及的模块和单元的功能可以结合上述文件分 块方法对应的功能实现进行结合描述和 说明, 在本实施例中将不再赘述。 图 2是根据本发明实施例的文件分块系统的结构 意图, 如图 2所示, 该文件分 块系统包括: 分块模块 22和映射模块 24, 其中, 分块模块 22耦合至映射模块 24, 设 置为通过变长分块算法, 将文件分块为一个或多个变长分块; 映射模块 24, 设置为将 一个或多个变长分块中的每个变长分块分别映 射为预定分块长度或预定分块长度的整 数倍的定长分块。 本实施例中所涉及到的模块、 单元可以通过软件的方式实现, 也可以通过硬件的 方式来实现。 本实施例中所描述的模块、 单元也可以设置在处理器中, 例如, 可以描 述为: 一种处理器包括分块模块 22和映射模块 24。 其中, 这些模块的名称在某些情 况下并不构成对该模块本身的限定, 例如, 分块模块 22还可以被描述为"设置为通过 变长分块算法将文件分块为一个或多个变长分 块的模块"。 图 3是根据本发明实施例的文件分块系统的优选 构示意图一, 如图 3所示, 优 选地, 映射模块 24包括: 第一填充单元 242, 设置为在待映射变长分块的长度小于预 定分块长度的情况下, 填充待映射变长分块为预定分块长度的定长分 块; 第二填充单 元 244, 设置为在待映射变长分块的长度大于预定分块 长度的情况下, 填充待映射变 长分块为预定分块长度的整数倍的定长分块。 图 4是根据本发明实施例的文件分块系统的优选 构示意图二, 如图 4所示, 优 选地, 该系统还包括: 保存模块 26耦合至映射模块 24, 设置为保存文件的分块信息, 其中, 分块信息包括: 文件的定长分块的位置信息, 和文件的定长分块对应的变长分 块的长度。 图 5是根据本发明实施例的文件分块系统的优选 构示意图三, 如图 5所示, 优 选地, 该系统还包括: 发送模块 28耦合至映射模块 24, 设置为将定长分块发送至文 件存储系统。 本实施例还提供了一种文件处理系统, 图 6是根据本发明实施例的文件系统的结 构示意图, 如图 6所示, 该文件系统包括: 文件应用系统 62、 文件分块系统 64和文 件存储系统 66, 其中, 文件应用系统 62, 设置为通过文件分块系统 64向文件存储系 统 66写入或读取文件; 文件分块系统 64, 与文件应用系统 62连接, 设置为通过变长 分块算法将文件分块为一个或多个变长分块, 并将一个或多个变长分块中的每个变长 分块分别映射为预定分块长度或预定分块长度 的整数倍的定长分块; 文件存储系统 66, 与文件分块系统 64连接, 设置为存储定长分块。 图 7是根据本发明实施例的文件处理系统的优选 构示意图, 如图 7所示, 优选 地, 该系统还包括: 后处理重删系统 68, 与文件存储系统 66连接, 设置为对文件存 储系统 66中存储的定长分块进行重复数据删除操作; 和 /或实时重删系统 69, 与文件 存储系统 66和文件分块系统 64连接, 设置为对映射得到的定长分块和文件存储系统 66中存储的定长分块进行重复数据删除操作。 下面结合优选实施例进行描述和说明。 本优选实施例提供了一种在定长分块数据重删 系统上支持变长分块的方法, 涉及 数据存储领域技术, 特别涉及存储系统中冗余数据处理、 重复数据删除技术, 以及变 长文件分块算法。 通过本优选实施例, 在 I/O处理流程中加入一层专门用作数据分块的模 块 (即上 述文件分块系统),将变长分块映射为定长的 分块,来使定长的重复数据删除系统直接 扩展为变长分块的重复数据删除系统。 图 8是根据本发明优选实施例的包括变长重复数 删除系统的文件处理系统的结 构示意图, 如图 8所示, 该变长重复数据删除系统包括: 文件系统 66 (设置为实现上 述的文件存储系统 66)、 实时重删系统 69和后处理重删系统 68。此外, 该文件处理系 统还包括: 变长文件分块系统 64 (相当于上述文件分块系统 64) 和应用系统 62 (设 置为实现上述的文件应用系统 62)。 如图 8所示的文件分块系统 64采用变长分块算法对文件进行分块,对得到 不定 长块按照下层系统(即文件存储系统 66) 的分块长度填充无效字节 (在本优选实施例 中统一在变长分块后填充 0), 使得其分块的边界与下层的固定长度的分块边 界重合。 图 9是根据本发明优选实施例的将变长分块填充 定长分块的示意图, 如图 9所 示, 采用 CDC算法将原始数据流分为变长分块: 块 1、 块 2和块 3后, 对于分块长度 为 5的块 1 "abcde"填充到存储定长分块长度为 8的文件存储系统 66中时, 块 1被填 充为 "abcdeOOO", 即在分块后填充无效比特 "0", 使得边界与文件存储系统 66的分 块边界重合。 对于分块长度为 13的块 2, 被填充为固定分块长度 8的两倍, 即填充为 长度 16, ;在块 2存储在文件存储系统 66中时占用两个固定长度的定长分块存储空间 对于分块长度为 8的块 3, 则填充了零个无效比特 (即不做填充处理), 可以直接存储 在文件存储系统 66中, 并占用一个定长分块的存储空间。 通过上述的方式使得变长分块能够存储在定长 分块的存储系统中, 而对于文件应 用系统 62而言, 文件的分块在逻辑上仍然是采用变长分块的方 式。 优选地, 上述的文件分块系统 64像其他文件系统一样, 也有自己的元数据。分块 文件系统维护的是记录了分块信息的分块元数 据。 这些数据被用来计算文件经过分块 文件系统处理后前后的文件偏移的映射关系。 下面结合图 8对上述的变长重复数据删除系统的工作流程 行描述和说明。 文件分块存储过程 步骤 11, 应用程序 62 (即文件应用系统 62) 写文件, 首先会经过 "变长文件分 块系统"将要写入的文件, 采用变长分块算法对文件进行分块, 得到一系列的块的集 合 {aoA^av^} , 以及每个块的长度为 {Ιο,Ι ,Ιν,Ιη} , 然后根据文件系统 66的块 或者定长的在线式重删所处理的固定的块大小 L, 在每个块开头标记其实际长度, 再 按 L长度对其, 空闲部分用 0填充。 以此完成变长分块到定长的映射。 并记录块实际 长度的映射表, 用于计算文件偏移。 在启用在线式重复数据删除时执行步骤 12, 否则执行步骤 14。 步骤 12, 启用在线式重复数据删除, 将经过分块处理过的文件, 重新作为流数据 交给在线式数据重删系统 69 (即实时重删系统 69) 处理。 在线式数据重删系统 69按 固定的 L大小分块, 进行重删处理。 步骤 13, 经在线式数据重删后, 数据写入文件系 66。 步骤 14,将分块处理好的数据直接存入文件系统 66,之后可以通过后处理的重复 数据删除, 来对存入的数据进行消重。 文件分块读取过程 步骤 21, 将重删过的数据从文件系统 66读出, 如果文件系统 66无法自己正确读 出被重删过的数据(例如重删的方法不是修改 文件系统 66的数据块引用指针而是使用 的是查表映射地址, 或者存根方式), 那么读取出来的数据需要经过重删系统处理, 读 出真正的数据块, 则需要经过此读取流程, 否则不需要此流程。 步骤 22, 在步骤 21 中读取的数据, 经过重删系统还原成重删前的数据后, 交由 变长文件分块系统 64 (即上述文件分块系统 64), 将其中填充的无效数据去掉, 重新 组织, 还原成应用系统 62需要的真实的数据。 步骤 23, 将未经重删的数据读出给文件分块系统 64。 如果文件系统 66本身能够 正确读出被重删过的数据, 那么所有的读取都经过此流程, 将读取的数据交由文件分 块系统 64还原为经分块处理前的、 应用系统 62所需要的、 真实的数据。 步骤 24, 将还原好的数据, 返回给应用程序 62。 文件分块的后处理重删 步骤 31, 对系统中得冗余数据进行后处理的重删操作。 后处理重删操作使用定长 分块方式, 可以不用再写一次实际数据, 而重删所处理固定长度的数据是逻辑上的变 长块数据。 在上述优选实施例中, 由于变长分块系统必须要知道它所处理过的文 件的分块信 息, 因为在读写文件时, 需要处理某个文件的偏移位置, 在经过分块填充后所表现出 来的偏移位置, 以及文件实际的长度。 那么就可以在变长分块系统中记录每个文件的 分块信息, 以便做位置映射。 同时还可以保存文件真实长度等其他的因块大 小变化导 致文件系统中保存的一些属性, 以及与真实数据不同的情况所需要的信息。 基于此, 既然有了文件的分块信息, 也就知道了某个块, 对于某一个文件来说, 它的实际有效数据的长度。 因此可以不需要再在每个块中去记录它自己的 有效长度信 息。 假设系统中原本就存在定长的分块数据, 甚至还经过重删处理过了, 而一个变长 的分块数据再经过填充后, 跟这个数据块完全一样, 那么对于下层的重删系统来说, 他并不知道分块是定长还是变长(也不需要知 道), 照样可以去进行重删。但是这种重 删对系统没有影响, 因为没有经过变长分块的文件, 在变长分块系统 (即上述的文件 分块系统) 中找不到对应的记录信息, 那么只需要将它读到的数据原原本本返回给上 层就行了, 而这确实就是他的实际数据; 而对于经过变长分块系统处理过的文件, 在 系统中会有其对应的分块信息记录, 这个时候只要根据这些记录来计算出这个块的 有 效数据长度就行了。 也就是说, 同一个块, 对于不同的文件, 其表现出来的实际意义 可能是不同的, 但对他们各自来说又都是正确的。 综上所述, 通过本发明的上述实施例或优选实施例, 对已有定长重删产品, 或者 其存储设备无法支持传统的变长的重复数据删 除产品的部署, 例如网络附属存储

(Network Attached Storage, 简称为 NAS) 设备的文件系统无法提供对于变长块的支 持, 的情况下, 能够在定长重复数据删除系统上直接扩展为支 持变长的重复数据删除, 同时也是一种变长重复数据删除系统的架构方 式。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可以用通用 的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布在多个计算装置所 组成的网络上, 可选地, 它们可以用计算装置可执行的程序代码来实现 , 从而, 可以 将它们存储在存储装置中由计算装置来执行, 或者将它们分别制作成各个集成电路模 块, 或者将它们中的多个模块或步骤制作成单个集 成电路模块来实现。 这样, 本发明 不限制于任何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的 任何修改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。 工业实用性 如上所述, 本发明实施例提供的一种文件分块方法、 系统及文件处理系统, 具有以下有益效果: 减少了定长分块重删系统到变长分块重删系统 的扩展成本。