渐进式备份的基于片段的高延展的去复本系统与方法.pdf

上传人:1*** 文档编号:974828 上传时间:2018-03-22 格式:PDF 页数:25 大小:1.01MB
返回 下载 相关 举报
摘要
申请专利号:

CN201010564667.6

申请日:

2010.11.30

公开号:

CN102346695A

公开日:

2012.02.08

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/14申请日:20101130|||公开

IPC分类号:

G06F11/14; G06F3/06; G06F12/08

主分类号:

G06F11/14

申请人:

财团法人工业技术研究院

发明人:

卢茂华; 阙志克

地址:

中国台湾新竹县

优先权:

2010.07.29 US 12/846,817

专利代理机构:

北京市柳沈律师事务所 11105

代理人:

陈小雯

PDF下载: PDF下载
内容摘要

本发明涉及一种渐进式备份的基于片段的高延展的去复本系统与方法。在此系统中,一主装置位于一次级存储节点端,可接收至少一渐进式更新、多个指纹、多个映射的个体备份,将去复本功能分散到至少一从属装置,并通过丛集多个在一个数据局部单元的指纹、多个片段的可变取样率、以及一种避免不必要的输入与输出的每一片段汇总结构,在多个片段上执行数据去复本,其中,稳定片段具有一固定的取样率,而不稳定的片段则指定随时间变化的取样率。

权利要求书

1: 一种渐进式备份的基于片段的高延展的去复本系统, 该系统包含 : 一主装置, 位于一次级存储节点端, 该主装置可接收至少一渐进式更新、 去复本的多个 片段的多个指纹、 多个逻辑区块地址至物理区块的映射个体 ; 其中该主装置还包括至少一分散器, 将去复本功能分散到位于一数据节点端的至少一 从属装置, 并通过丛集多个数据节点本地的数据单元的指纹、 多个片段的可变取样率、 以及 一种避免不必要的输入与输出的每一片段汇总结构, 在该多个片段上执行数据去复本, 其 中该数据本地单元称为子数据筒。
2: 如权利要求 1 所述的去复本系统, 其中该可变取样率是以一种最近最少使用顺序为 基础。
3: 如权利要求 1 所述的去复本系统, 其中该至少一分散器还包括 : 一指纹分散器, 映射每一指纹至一哈希值, 来决定一目的地数据节点, 并等待该数据节 点的一回应 ; 以及 一数据筒分散器, 使用相同的一致性哈希法以分割一概念的数据筒, 并当作数个子数 据筒, 如此, 一子数据筒、 一指纹缓存存储器、 以及一数据筒缓存存储器常皆驻于同一个数 据节点。
4: 如权利要求 1 所述的去复本系统, 其中该系统还包括该至少一从属装置, 并执行并 行式去复本, 以利用位于该数据节点端的至少一从属装置的计算能力。
5: 如权利要求 4 所述的去复本系统, 其中其至少一从属装置的每一从属装置还包括 : 一指纹管理器, 以维持该指纹缓存存储器, 除了指纹的替换之外 ; 以及 一数据筒管理器, 以维持该数据筒缓存存储器, 除了数据筒的替换之外。
6: 如权利要求 1 所述的去复本系统, 其中多个指纹数据筒以一种分散方式来存储至与 取得于该次级存储节点, 并且一指纹缓存存储器与一数据筒缓存存储器也在不同的数据节 点上被分散与分割。
7: 如权利要求 2 所述的去复本系统, 其中该数据筒是以多个伪物理区块地址为基础, 来保存每一卷宗逻辑区块地址里的局部性, 并且区别于其他卷宗的区块地址。
8: 如权利要求 7 所述的去复本系统, 其中该每一片段汇总结构由下列来达成 : 该多个片段中, 大于一阈值的每一片段具有一汇总片段指纹 ; 以及 该汇总片段指纹被匹配时, 表示已完成在该片段中的去复本, 并且不需要个别的检查 片段内的指纹。
9: 如权利要求 1 所述的去复本系统, 其中该渐进式更新的数据筒是基于伪物理区块范 围与指纹内容且保留指纹局部性的数据筒。
10: 如权利要求 4 所述的去复本系统, 其中该并行式去复本为片段式去复本, 并且是依 据一种一致性哈希法, 将输入片段的每一指纹映射至该数据节点端上的一数据节点。
11: 如权利要求 3 所述的去复本系统, 其中该概念数据筒分割为 N 个文件, N 为该数据 节点端的数据节点的数目, N 个数据节点的每一节点负责存储该概念数据筒的一条纹, 并且 将该概念数据筒的一条纹当作一子数据筒。
12: 如权利要求 3 所述的去复本系统, 其中该主装置还包括一替换引擎, 来存储一指纹 缓存存储器与一数据筒缓存存储器的最近最少使用目录, 以替换位于数据节点上子数据筒 与指纹。 2
13: 如权利要求 3 所述的去复本系统, 其中该主装置还包括一映射更新器, 依据该去复 本的输出, 将每一逻辑区块地址映射到一个区块的物理位置。
14: 如权利要求 3 所述的去复本系统, 其中该主装置还包括一单元检测器, 检测运作中 的输入指纹所对应的概念数据筒或是根据过往历史确定去复本单元的边界。
15: 如权利要求 5 所述的去复本系统, 其中该至少一从属装置的每一从属装置还包括 一数据筒更新器, 用于在一本地数据节点的写入多个子数据筒。
16: 一种渐进式备份的片段式高延展的去复本方法, 通过在一次级存储节点端的一主 装置来执行, 该方法包含 : 接收至少一渐进式更新、 欲被去复本的多个输入片段的多个指纹、 及多个从逻辑区块 地址至物理区块的映射的个体 ; 丛集该多个在一本地数据单元的指纹, 该本地数据单元称为子数据筒 ; 指定片段的可变取样率 ; 以及 重建一每一片段汇总结构, 以避免在片段上执行数据去复本时不必要的输入与输出。
17: 如权利要求 16 所述的去复本方法, 该方法还包括 : 分割该多个渐进式更新的多个区块, 以作为多个输入片段 ; 查询一内存中的取样的指纹索引, 以找出该多个输入片段的每一指纹, 并回传一对相 对应的数据筒识别码与片段识别码 ; 当一存储片段与一输入片段是相同时, 则以该对相对应的数据筒识别码与该片段识别 码来查询一内存中的片段式汇总, 以决定是否查询该对相对应的数据筒与片段, 否则, 查询 一内存数据筒存储缓存存储器, 来决定是否载入缓存相对应的数据筒至缓存 ; 以及 当没有缓存该数据筒时, 自一盘片数据筒存储元件, 载入该相对应的数据筒, 并查询一 每一数据筒片段索引, 以找出路由至该相对应的数据筒的一特定指纹的一偏移量, 以取得 该特定指纹的片段信息。
18: 如权利要求 16 所述的去复本方法, 该方法还包括 : 该主装置的至少一分散器执行并行式去复本, 以利用位于一数据节点端的至少一参与 节点的计算能力。
19: 如权利要求 18 所述的去复本方法, 其中该并行式去复本还包括 : 利用一加密哈希算法来计算出多个渐进更新区块的指纹 ; 依相同的一致哈希算法, 来分散该多个渐进更新区块的多个指纹, 以存储取样指纹索 引缓存存储器与多个子数据筒至多个数据节点 ; 依该一致哈希算法, 将每一数据筒片段索引分散到至少一参与数据节点 ; 以及 依该一致哈希算法, 将该每一片段汇总结构分散到至少一参与数据节点。
20: 如权利要求 16 所述的去复本方法, 其中一基本分享单元 (BSU) 片段被定义为产 生之后就不会变更的一存储片段, 并且该多个输入片段的该变化取样率是以下列方式来实 现: 对于每一 BSU 片段, 只取样一个指纹 ; 以及 对其它非 BSU 片段, 指定不同的取样率。
21: 如权利要求 19 所述的去复本方法, 使用相同的一致哈希算法, 每一片段汇总结构 被分散与分割至位于至少一参与数据节点, 并且在该至少一参与节点上存储该一个子数据 3 筒的汇总结构。

说明书


渐进式备份的基于片段的高延展的去复本系统与方法

    【技术领域】
     本 公 开 涉 及 一 种 渐 进 式 备 份 (incremental backkups) 的 基 于 片 段 的 (segment-based) 高延展的 (scalable) 去复本 (de-duplicated) 系统与方法。背景技术
     大部分的数据去复本技术着重于完整备份 (full backups), 即使所有逻辑区块中 仅一小部分已经被变更, 一逻辑卷宗的所有逻辑区块会以现存的区块去复本。
     在一种已知的稀疏索引 (sparse indexing) 方法中, 以取样指纹索引 (sampling fingerprint index) 来取代完整指纹索引 (whole fingerprint index), 将此指纹索引 适当地配置于磁盘对磁盘 (Disk to Disk, D2D) 数据备份系统的内存 (Random Access Memory, RAM) 中。取样指纹索引的洞察是, 被复制的数据区块 (duplicated data blocks) 会趋向于以明显的长度 (non-trivial length) 存储在一个连续的范围里。 在此范围内的取 样指纹值 (sampling fingerprint value) 的匹配 (matching) 意味着高机率的完整范围的 匹配。在所有候选的取样指纹中, 选择冠军者作为去复本的对象。稀疏指纹索引方法是依 据一固定取样率来选取样本指纹。 在另一种已知的方法中, 指纹是依据数据片段 (segment) 的时域区域性 (temporal locality) 来取样。如果条件符合的话 ( 一时间周期 ; 一固定计 数 ), 在稀疏区块索引 (sparse chuck index) 中的数据片段的元素 (entries) 会被删除或 裁剪 (pruned)。被取样的指纹的每一元素最多指向 R 个数据筒 (container)。换句话说, 此方法利用一最近最少使用的 (Least Recently Used, LRU) 目录, 来降低数据筒的取样率。
     在另一种已知的方法中, 使用布隆过滤器 (bloom filter) 来决定一指纹是否在指 纹索引里。 此布隆过滤器不论这些区块的历史为何, 盲目地记录所有区块的全部指纹。 另一 种已知的方法是每一文件有一整个文件哈希值映射 (whole-file-hash), 意味着此整份文 件哈希映射的一个匹配意指此整份文件是一个副本, 此文件中的个别指纹不用被检查。此 方法是基于文件来进行去复本。每一文件具有一代表性的 (representative) 指纹。指纹 索引中的元素依据模运算 (modular operation) 或其他分散式的哈希映射表功能, 一个接 一个被分散至 K 个节点 (node)。 对应于一指纹索引元素的整个数据筒会被分散至与此指纹 索元素相同的节点。 如果两个指纹索引元素有相同的数据筒, 但是被分散在两个不同节点, 此相同的数据筒就会被复制在两个节点上。当一个文件被备份, 只有代表性的指纹被用来 路由 (route) 此文件至一节点, 此文件的其他所有指纹不被用来做路由的目的。
     一些已知的美国专利提供去复本的技术。例如, 在一已知技术中, 数据区块的数 个指纹记录依据此指纹值 (fingerprint value) 的一部分来分散至子节点。指纹记录具 有执行数据去复本的完整信息。此技术没有揭示指纹数据筒的概念。在另一已知技术 中, 采用一种固定前置网络 (Fixed Prefix Network, FPN) 的修正版本, 依一预定的数据 冗余层次 (data redundancy level) 来分散数据区块。因为此存储器是一种内容可定址 (content-addressable) 的存储器, 此技术没有揭示指纹索引与数据筒。另一已知技术是 依据指纹来分散区块。第一步骤是依据指纹值的 k 个最低位 (Least-Significant-Bit)将区块分割而成数个部分。第二步骤是利用一分散式哈希表 (Distributed Hash Table, DHT), 将此数个部分映射到一物理节点 (physical node)。每一数据节点备有一个加密 钥 (encrypted key) 的队列 (queue), 以及一个用来搜寻此队列以发现复本的一个请求 (request)。 发明内容
     本公开的实施范例可提供一种渐进式备份的基于片段的高延展的去复本系统与 方法。
     在一实施范例中, 所公开者涉及一种渐进式备份的片段式高延展的去复本系统。 此系统包含一主装置 (maste device) 位于一次级存储节点端 (secondary-storage node side)。此主装置可接收至少一渐进式更新、 去复本多个片段的多个指纹、 多个逻辑区块地 址至物理位置的映射的个体, 并将去复本功能分散到位于一数据节点端的至少一从属装 置, 并通过丛集多个本地数据单元 ( 称为数据筒 ) 的指纹、 多个片段的可变取样率、 以及一 种避免不必要的输入与输出的每一片段汇总结构 (per-segment summary structure), 在 多个片段上执行数据去复本。 在另一实施范例中, 所公开者涉及一种渐进式备份的基于片段的高延展的去复本 方法。此方法包含 : 对于多个欲被去复本的区块的多个渐进式更新, 丛集多个在一数据局 部单元 ( 称为数据筒 ) 的指纹 ; 分割此多个渐进式更新的多个区块, 以作为多个输入片段 ; 查询一内存中 (in-memory) 取样的指纹索引, 以找出此多个输入片段的每一指纹, 并回传 一对相对应的数据筒与片段 ; 当存在一已存储的片段与此输入片段是相同时, 则以此对相 对应的数据筒与片段来查询一内存中的片段式汇总 (segment-based summary), 以决定是 否撷取此对相对应的数据筒与片段, 否则, 查询一内存中数据筒存储缓存存储器 (cache), 来决定是否载入相对应的数据筒 ; 当没有缓存此数据筒时, 自一盘片 (on-disk) 数据筒存 储元件, 载入此相对应的数据筒, 并查询每一数据筒片段索引 (per-container segment index), 以找出路由至此相对应的数据筒的一特定指纹的一偏移量 (offset), 以取得 (retrieve) 此特定指纹的片段信息。
     现在配合下列附图、 实施范例的详细说明及权利要求书, 将上述及本公开的其他 特征与优点详述于后。
     附图说明 图 1 是在一渐进式备份的基于片段的高延展的系统里的一个高阶数据流的范例 示意图, 并与本公开的某些实施范例一致。
     图 2 是一范例示意图, 说明当 K = 2 时, 如何进行片段存储, 并与本公开的某些实 施范例一致。
     图 3 是一范例示意图, 说明一数据筒的内容, 并与本公开的某些实施范例一致。
     图 4 是一渐进式备份的基于片段的高延展的去复本系统的一个架构范例示意图, 并与本公开的某些实施范例一致。
     图 5 是片段的高延展的去复本系统的分散式去复本架构的一个范例示意图, 并与 本公开的某些实施范例一致。
     图 6 是一范例示意图, 说明如何从两个参与节点去重建一片段, 并与本公开的某 些实施范例一致。
     图 7 是一范例示意图, 说明片段的高延展的去复本系统的运作流程, 并与本公开 的某些实施范例一致。
     图 8 是图 7 的详细运作的一个工作范例, 并与本公开的某些实施范例一致。
     图 9 是一范例示意图, 说明并行式去复本的运作流程, 并与本公开的某些实施范 例一致。
     图 10 是图 9 的详细运作的一个工作范例, 并与本公开的某些实施范例一致。
     【主要元件符号说明】
     110 内存中的取样指纹索引缓存存储 120 内存中的片段式汇总
     器
     130 内存中的数据筒存储缓存存储器 141 磁盘数据筒存储设备
     143 磁盘中的指纹索引
     300 数据筒 310 每一数据筒指纹索引
     320 最近最少使用目录 330 存储片段
     410 主装置
     414 去复本的多个片段的
     指纹
     416 多个逻辑区块地址至物理位置的映
     射的个体
     501 指纹分散器 502 数据筒分散器
     503 替换引擎 504 单元检测器
     505 映射更新器 511 指纹管理器
     512 数据筒管理器 513 数据筒更新器
     601 节点 602 节点
     710 对于多个欲被去复本的区块的多个渐进式更新, 丛集多个在一本地数据单元 ( 称为数据筒 ) 的指纹
     720 分割此多个渐进式更新的多个区块, 以作为多个输入片段
     730 查询一内存中的取样的指纹索引, 以找出此多个输入片段的每一指纹, 并回传 一对相对应的数据筒与片段
     740 当存在一已存储的片段与此输入片段是相同时, 则以此对相对应的数据筒与 片段来查询一内存中的片段式汇总, 以决定是否撷取此对相对应的数据筒与片段, 否则, 查 询一内存中的数据筒缓存, 来决定是否缓存此数据筒
     750 当没有缓存此数据筒时, 自一盘片数据筒存储元件, 载入此相对应的数据筒, 并查询一每一数据筒片段索引, 以找出路由至此相对应的数据筒的一特定指纹的一偏移 量, 以取得此特定指纹的片段信息
     910 利用一加密的哈希值来计算出多个渐进更新区块的指纹7340 汇总结构 342 汇总指纹 400 片段式高延展的去复本系统 412 多个区块的渐进更新341 片段索引102346695 A CN 102346715
     说明书4/11 页920 依一致的哈希值将此多个指纹分散, 并存储于一取样指纹索引缓存存储器与 子数据筒
     930 依一致的哈希值将每一数据筒片段索引分散到至少一参与节点
     940 依一致的哈希值将每一片段汇总结构分散到至少一参与节点 具体实施方式
     当一主要的存储系统渐进地追踪更新的区块, 并且只有备份这些渐进更新的区块 (incremental changed blocks) 时, 本公开的实施范例可提供一种渐进式备份的片段式高 延展的去复本系统与方法。具体地说, 假设此主要的存储系统从最新的快照 ( 渐进式更新 追踪 ) 的一快照图像来追踪更新的区块, 并且只有更新的区块被当作是此备份存储系统的 输入。
     本公开的实施范例将焦点放在以片段为基础的四个方面, 以影响数据去复本比 例 (data de-duplication ratio, DDR) 尽量为最小的方式, 来改善去复本的数据传输量 (throughput) : (1) 丛集多个在一个数据局部单元 ( 称为数据筒 ) 的指纹 ; (2) 多个片段 的可变取样率, 稳定且泛用的 (popular) 片段具有一固定的取样率, 而去复本的 “非泛用的 (unpopular)” 目标片段则指定较低的取样率 ; (3) 在去复本时, 避免不必要的输入与输出 的每一片段汇总结构 ; (4) 分散式的去复本, 来利用多个参与存储节点的运算能力。 就第一个方面来说, 数据筒是依去复本的历史记录来建构, 而非依纯逻辑地址接 近度 (pure logical address proximity) 来建构。对于输入的渐进式更新, 数据局部性的 语义是更难以捉摸的, 因为很难预测在此渐进式更新流 (incremental changes stream) 中 会出现什么情况。在本实施范例中, 互相分享内容的所有渐进式的更新都会被放入同一个 数据筒, 以捕捉被同组应用而更新的数据的局部性。
     就第二个方面来说, 将指纹设置在一内存中 (RAM), 片段的取样率是用下列方式来 区分的, 亦即稳定片段具有一固定的取样率, 而去复本的不稳定的片段则指定随时间变化 的取样率。一个稳定片段的定义是去复本历史记录中没有改变的一片段。此稳定片段直觉 上是副本之间倾向分享大于一区块的一物件。通过观察数据去复本的历史记录, 可指出此 稳定片段, 并且可使用在此稳定片段中的一个指纹来代表在指纹索引中的片段。而对于非 泛用片段, 可采用一种最近最少使用的策略来变化在被取样的指纹索引中所有非泛用的片 段的取样率。
     就第三个方面来说, 每一片段汇总结构可以避免去复本的不必要输入与输出。对 于较大容量且几乎很少改变的片段, 不需要一个接一个的比较一片段中的个别指纹, 因此 可减少从磁盘中撷取个别指纹的磁盘输入 / 输出 (disk I/O)。 每一片段汇总结构可依下列 原则来形成 : (1) 大于一阈值 (threshold) 的片段具有一整体片段指纹, 以及 (2) 整体片段 指纹匹配时, 表示在此片段中, 不需个别得检查区块指纹。 相关片段的整体片段指纹可以构 成一 Merkle 树 (tree)。
     就第四个方面来说, 本公开的实施范例在分散式存储系统中, 可将此去复本功能 分散至多个参与存储节点。依据此指纹的一致性哈希 (consistent hashing) 方法, 将指纹 索引与数据筒分散及分开至多个参与存储节点 (participating storage node)。并且, 依 据汇总 (root summary) 的一致性哈希方法, 所有汇总结构也被分散及分开至多个参与存储
     节点。 现在, 本公开的实施范例的渐进式备份的基于片段的高延展系统可用 Hadoop 分 散式文件系统 (Hadoop Distributed File System, HDFS) 来实现, 作为基本的存储器 (underlying storage)。然而, 本公开的实施范例是可与任何备有多个数据节点的分散式 存储系统来共同运作的。在下列讨论中, 假设 Hadoop 分散式文件系统为基础的存储器阶层 (underlying storage layer)。本公开的实施范例可与一次级存储系统共同运作。此渐进 式备份的基于片段的高延展系统可包含一元件并位于次级服务器端, 来分散此去复本的工 作量 (workload) ; 还可包括一第二元件并位于数据节点端, 来对传送至特定数据节点的数 据区块去执行去复本。
     在探讨去复本的细节之前, 图 1 是在一渐进式备份的基于片段的高延展的系统里 的一个高阶数据流 (high-level data flow) 的范例示意图, 并与本公开的某些实施范例一 致。图 1 省略渐进式备份的基于片段的高延展系统中的并行部分, 此部分将在后面陈述。
     参考图 1, 首先, 将数个渐进更新分割成数个片段。每一片段通过发出 (issue) 片 段内的每一个别指纹的指纹查询 (fingerprint query), 来查询一内存中的取样指纹索引 (Sampled Fingerprint Index, SFI) 缓存存储器 110。每一个别指纹的查询则传回一对的 < 数据筒识别码, 片段识别码 >。在同一片段内指纹的查询会被聚成一群, 以找出是否一已 存储的片段相同于一输入片段。是的话, 此输入片段以此对 < 数据筒识别码, 片段识别码 > 来查询一内存中的片段式汇总 120, 以决定是否需要载入此数据筒。否则, 以此数据筒辨识 码来查询一内建存储器数据筒存储缓存存储器 130, 以查看此数据筒是否被缓存, 如果没有 被缓存的话, 则自一磁盘数据筒存储设备 141 载入此数据筒。
     载 入 此 数 据 筒 后, 每一输入片段在此数据筒中查询一每一数据筒片段索引 (per-container segment index), 以找出路由至此数据筒的一指纹的偏移量 (offset)。 此 偏移量可以用来取得此区块的物理位置, 因为指纹以一阵列 (array) 方式存储在此数据筒 内。通过此偏移量查询此片段索引可以取得特定指纹的片段信息。磁盘指纹索引 143 包括 从取样指纹索引释出的指纹。磁盘指纹索引 143 没有包括所有数据筒的全部指纹。
     如果有去复本的话, 数据流的输出是此输入片段里逻辑区块地址 (logical block address) 的物理位置 (physical location)。具体来说, 产生的逻辑至物理的一更新目录 (L2P-CL) 是当做输出。
     在基于片段的高延展的去复本系统中, 片段是一基本单元, 并且可由目前输入 (current input) 与输入的历史记录 (input history) 来决定。具体来说, 如果数个区块 在输入中是相邻的话, 则这些区块属于相同的输入片段。 然后, 此输入片段与已存储的片段 (stored segment) 做比较, 以形成存储片段 (store segment)。当输入片段与存储片段互 相冲突时, 每一指纹最多可属于 K 个片段。如果一指纹超过 K 个片段时, K ≥ 2, 则从此指纹 中移除最旧的片段。
     图 2 是一范例示意图, 说明当 K = 2 时, 如何进行片段存储, 并与本公开的某些实 施范例一致。参考图 2, 在输入片段中的号码代表逻辑区块号码, 而在存储片段中的号码代 表在一数据筒的指纹偏移量。如输入 -1, 有片段 a 与片段 b 共两个输入片段。去复本之后, 发现片段 a 是存储片段 1 的一个复本, 但是发现输入片段 b 横跨两个存储片段 ( 存储片段 2 与存储片段 3)。存储片段 1 与输入片段 a 是相同的, 所以存储片段 1 是没有更新。反之,
     具有偏移量从 52 至 55 的指纹映射至存储片段 2 与输入片段, 共对应至两个片段。输入片 段 c 匹配于指纹 51 至 55。因为 K = 2, 亦即每一指纹指允许属于两个片段, 对于指纹 52 至 55, 则移除存储片段 2( 即最旧的片段 )。替代的是, 将指纹 52 至 55 映射至两个片段, 亦即 输入片段 b 与输入片段 c。
     事实上, 本公开的实施范例允许每一区块, 最多参与到 K 个片段中, 即保持追踪曾 经与一区块相关的最后 K 个片段。 本公开的实施范例中, 使用一区间树 (interval tree) 来 保持追踪逻辑区块地址范围映射至此片段。下列叙述中, 此区间树称为片段索引 (segment index, SI)。
     一基本分享单元 (Basic sharing unit, BSU) 被定义为产生之后就不会被变更的 一存储片段。在基本分享单元礼的所有指纹一次全部都出现, 所以一个指纹就足以代表此 相对应的基本分享单元。
     因为一指纹索引无法配置在 (fit into) 内存中, 本公开的实施范例提出取样指纹 (sampling fingerprint) 的概念, 将指纹索引配置在一指纹索引缓存存储器中。此取样是 依个别片段 (individual segment) 为基础。此指纹索引缓存存储器可被实现为, 例如一哈 希表 (hash table)。 指纹索引缓存存储器的每一元素 (entry) 是以一指纹值 (fingerprint value) 为键值, 并且此元素包括一数据筒辨识码。 甚且, 如果多个数据筒分享相同一指纹的 话, 此数据筒辨识码最多可指向至 K( 如 K = 2) 个片段辨识码。注意的是, 此 K 是与前述的 K 相同的。 在本公开的实施范例中, 有两种改变此片段取样的方式 : (1) 片段为基本分享单 元的话, 取出来自于一基本分享单元所有指纹的第一指纹, 来代表此基本分享单元。 注意的 是, 此取样不会损害去复本率, 因为在一基本分享单元里的指纹总是一次全部都出现。然 而, 因为节省存储器的空间, 所以可以改善此去复本的数据传输流量。(2) 当存储器的空 间不足时, 不需减少所有片段的取样率, 而是对这些长时间未被参照的片段, 当取样率达到 一个最小值时, 在被他们被释出前, 先减少它们的取样率。一种最近最少使用的目录 (LRU list) 可用在这个用途。 特别是, 基本分享单元片段具有以最近最少使用顺序为基础的一个 虚拟取样率 (virtual sampling)。当基本分享单元到达此最近最少使用目录的尾端时, 会 减少此虚拟取样率。
     数据筒的含意是以群聚有数据局部性的指纹, 来摊提载入一数据筒的输入 / 输出 的成本。渐进式备份的数据局部性是不同于整体备份。本公开的实施范例的渐进式备份 的片段式高延展系统是依据去复本历史记录来关连多个片段。一开始, 通过结合逻辑卷宗 辨识码与逻辑区块地址, 来自不同的逻辑卷宗的逻辑区块地址包含一个统一的伪 (unified pseudo) 逻辑区块地址。例如, 对于在逻辑卷宗 1 的逻辑区块地址 500, 此伪逻辑区块地址 是 (1, 500)。每一数据筒起始时可以是半满的 (half full), 以容纳此数据筒未来的更新。 由在此去复本历史记录随着时间累积, 与一存储片段分享至少一单依指纹的那些片段会被 放入与此存储片段相同的数据筒。
     图 3 是一范例示意图, 说明一数据筒的内容, 并与本公开的某些实施范例一致。在 图 3 的范例中, 数据筒 300 的内容可包括一每一数据筒指纹索引 310、 逻辑区块地址的 K 对 物理位置和存储片段 330 的信息、 以及一汇总结构 340。每一数据筒指纹索引 310 将同一 数据筒的指纹安排于一哈希表中, 来加速寻找此数据筒里的指纹值。每一指纹指向最后的
     K( 例如 K = 2) 片段。直觉的理解是 (1) 如果有任何基本分享的话, 此最后的 K 片段在日后 最有可能成为此基本分享单元, 以及 (2) 两个片段是极不可能意外地分享一些相互连结的 指纹, 而非分享一整体片段。注意的是, 此 K 是与前述的 K 相同的。
     当一数据筒需要被分割时, 保留一个最近最少使用的目录给数据筒 300, 如此数据 筒 300 会依据存取历史 (access history) 而被分割。每一最近最少使用目录是以时间戳 记 (timestamp) 为键值, 并且包含做为内容的指纹值。
     如前所述, 在一数据筒内片段之间的关系可以分成两种类型。第一类型是在相同 伪逻辑区块地址范围内的两片段 ; 第二类型是分享指纹的两个片段。如果没有提供汇总信 息的话, 此两片段的指纹则依一最近最少使用目录的顺序被置放在此数据筒中。因为会将 每一片段汇总结构包括在内, 所以, 需要区别此两种类型。
     对于第一种类型的片段, 每一片段不会再进一步处理, 而是直接留在此数据筒中。 对于第二种类型的片段, 因为每一指纹最多可以指向 K( 如 K = 2) 个片段, 片段根据历史可 能需要被分割。如果一指纹指向超过 K 个片段, 结果导致片段之间分享指纹, 则在加入一新 片段之前, 会移除最旧的片段。
     所 有 的 每 一 片 段 结 构 会 被 输 入 至 汇 总 结 构 340。 在 汇 总 结 构 340 里 的 每 一 元 素 是 以 一 片 段 索 引 341 为 键 值, 并 且 其 内 容 是 由 相 对 应 片 段 的 汇 总 指 纹 (Summary Fingerprint, SF)342 所组成的。注意的是, 并非所有片段都备有一汇总指纹 342, 只有较大 容量 ( 例如大于 1000) 的那些片段备有一汇总指纹, 如此所有汇总结构得以配置在内存中。 一数据筒可以依据一伪物理区块地址, 但, 既不是逻辑区块地址, 也不是真正的物 理区块范围。伪物理区块地址保存了在每一卷宗逻辑区块地址里的局部性, 并且也可区别 于其他卷宗的区块地址。 例如, 卷宗 A 与卷宗 B 分别具有逻辑区块范围 (0, 32M) 与 (0, 16M)。 此伪物理区块范围对卷宗 A 而言可以是 (0, 32M), 而伪物理区块范围对卷宗 B 而言可以是 (32M, 48M)。 一数据筒可以依据两个片段的内容为基础。 分享至少一指纹的两个片段可被置 放于一数据筒内。并且, 一数据筒保存指纹索引元素里的局部性。也就是说, 此数据筒是一 个基于伪物理区块范围与内容的且保留指纹局部性的数据筒 (range and content-based locality-preserved fingerprint)。
     如上述, 一个大于一阈值 N 的片段有一汇总指纹 (summary index)。此汇总指纹 可通过以 N 个指纹为数据内容以及算出此内容的一个指纹来算出。也就是说, 汇总指纹是 基于片段的。并且, 一汇总指纹的特性也是, N 个指纹中的一个指纹的改变可以极大地改 变此汇总指纹。结果, 如果两个片段的汇总指纹相互匹配的话, 此两个片段是不同的机率 会小到只存在于理论中。换句话说, 如果汇总指纹匹配的话, 则此两个片段是完全相同的 (identical)。
     片段式汇总索引可通过合适的选择 N, 而配置在一存储器中, 例如随机存取存储 器。每一索引元素以一对 < 数据筒辨识码, 片段辨识码 > 做为键值。内容可包括汇总指纹、 片段长度、 以及包括此片段的物理区块。此物理区块也同样是被存储的, 因为如果汇总指 纹匹配的话, 则不需要缓存此数据筒, 并且这些物理区块作为数据去复本时的目标物理区 块。如上述, 向指纹索引缓存存储器查询一数据筒之后, 取得一数据筒辨识码以及最多 K 个 片段辨识码。查询结果产生的 < 数据筒辨识码, 片段辨识码 > 对被用来查询片段式汇总索 引, 以找出相对应的片段, 此产生的片段的汇总指纹与一存储片段的汇总指纹做比较。 为了
     减少因片段式汇总索引的存储器消耗量, 并非所有在此片段里的物理区块都是个别地被存 储。而是存储此物理区块范围来减少此存储器的消耗量。
     通过组合片段识别、 可变的取样率、 以及使用片段式汇总结构, 图 4 是一渐进式备 份的片段式高延展的去复本系统的一个架构范例示意图, 并与本公开的某些实施范例一 致。参考图 4, 片段式高延展的去复本系统 400 可包含一主装置 410, 位于一次级存储节 点端。主装置 410 可接收多个输入, 例如多个区块的渐进更新 412、 去复本的多个片段的 指纹 414、 多个逻辑区块地址至物理位置的映射的个体 416 等, 并且还包括至少一分散器 (distributor), 来将至少一去复本功能分散给至少一从属装置 (slave device), 如从属装 置 1 至从属装置 n, 并通过丛集多个在一个本地数据单元 ( 称为数据筒 ) 的指纹、 多个片段 的可变取样率、 以及一种避免不必要的输入与输出的每一片段汇总结构, 在多个片段上执 行数据去复本, 其中, 稳定片段具有一固定的取样率, 而去复本的不稳定的片段则指定随时 间变化的取样率。系统 400 还可包括至少一从属装置 420, 位于数据节点端, 并执行并行式 去复本, 以利用位在此数据节点端的从属装置的运算能力。
     图 5 是片段式高延展的去复本系统的分散式去复本架构的一个范例示意图, 并与 本公开的某些实施范例一致。参考图 5, 在次级存储节点端, 主装置 410 可包括一指纹分散 器 (fingerprint distributor)501 与一数据筒分散器 (container distributor)502。指 纹分散器 501 可哈希每一个别指纹, 来决定一目的地数据节点 (destination data node), 并可等待此数据节点的回应。此回应可以是被一逻辑区块地址所指到的一目标物理区块 (target physical block)。此回应有三个考虑的情况。 第一个情况是, 在一指纹索引缓存存储器中找到此指纹, 并且此数据筒在一数据 筒缓存存储器中已被缓存或是在此片段式汇总索引找到。在此情况下, 此回应可包括一目 标区块 ( 去复本区块 ) 的信息。对应此目标区块的原始区块可被做回收 (disposed)。
     第二个情况是, 在一指纹索引缓存存储器中找到此指纹, 但是此数据筒在一数 据筒缓存存储器中没有被缓存, 并且此片段式汇总索引没有匹配。此数据筒被载入至一 次级存储节点端的内存中。使用与数据统分散器 502 分散指纹时相同的哈希函数 (hash function), 将此数据筒中的元素分散至相关的数据节点。 位于一特定数据节点的相同数据 筒的元素被组成一子数据筒 (sub-container)。
     注意的是, 数据筒分散器 502 没有直接写入数据筒。而是数据筒分散器 502 给位 在此数据节点的每一子数据筒一个公用的文件名称 (public file name), 如此, 可同时取 得属于相同数据筒的子数据筒。例如说, 如果一数据筒有一识别码 (identifier)0x01234, 四个子数据筒分别被命名为 0x01234.ip1、 0x01234.ip2、 0x01234.ip3、 以及 0x01234.ip4。 当数据筒分散器 502 取得数据筒 0x01234 时, 也向每一个别数据节点要求相对应的子数据 筒。每一数据节点轮流读取子数据筒 0x01234.ipI, ipI 是特定数据节点的 IP 地址。在数 据节点写入子数据筒的优点是在存取时, 每一子数据筒备有一本地复本 (local copy), 且 此数据节点可通过它的本地磁盘, 而不是通过网络取自其它数据节点, 取得子数据筒。 通过 查询每一数据筒指纹索引, 可以撷取对应此被查询指纹的元素, 以取得此目标物理区块。
     第三个情况是, 在一指纹索引缓存存储器中没有找到指纹。此指纹已被更新至一 对应的数据筒。此原始物理区块则作为此目标物理区块。
     数据筒分散器 502 可使用已知的一致性哈希法加条纹 (stripe) 于一概念的数据
     筒, 并分割为数个子文件, 即数据筒条纹、 指纹缓存存储器、 以及数据筒缓存存储器可常驻 于同一个数据节点。依据汇总指纹的相同且一致的哈希法, 数据筒分散器 502 也负责去分 散此片段汇总。
     主装置 410 还可包括一替代引擎 (replacement engine)503 来存储指纹缓存存储 器与数据筒缓存存储器的最近最少使用目录, 以确定子数据筒与指纹的替换。 注意的是, 指 纹缓存存储器的此最近最少使用目录是依据数据筒, 而不是个别的指纹。
     主装置 410 还可包括一单元检测器 (unit detector)504 来检测运作中 (on the fly) 的输入指纹所属的数据筒或是通过去副本历史辨别的一去复本单元的边界。检测此 输入指纹的数据筒可如下进行。 对于每一输入片段, 起初没有此输入片段相对应的数据筒。 如果此去复本的回应指出此输入片段属于一数据筒, 则此数据筒是对应此输入片段的数据 筒。否则, 产生一个新数据筒来容纳此输入片段。一数据筒具有其大小 (size) 的上限。
     通过去副本历史辨别的一去复本单元的边界的进行如下说明。 起初将每一输入片 段视为一去复本单元 (de-duplication unit)。 此输入片段存储在一数据筒。 具体来说, 每 一子数据筒存储物理区块, 也存储与这些物理区块相关的此输入片段。 下一次, 此片段被查 询时, 以存储片段来检查此输入片段。 如果是同一片段, 则此片段可能在将来还是一样的片 段。 如果一片段经过一预定数目的去复本查询后, 仍是维持同一个片段, 则此片段被视为稳 定, 并且在此单元里的第一指纹可被挑出并做为被取样的指纹, 如同上述。
     主装置 410 还可包括一映射更新器 (mapping updater)505, 依据此去复本的输出 来更新映射到此卷宗的元数据 (metadata)。
     在 数 据 节 点 端, 至少一从属装置的每一从属装置还可包括一指纹管理器 (fingerprint manager)511, 来维持此指纹缓存存储器, 除了替换指纹之外。指纹的替换 是由位于主装置 410 的替换引擎 (replacement engine)503 来协调。多个指纹被安排成 一哈希表。每一指纹元素备有一数据筒辨别码目录 (container identifier list)。此目 录最多有 K 个元素、 此数据筒内的指纹的偏移量、 以及指向此相同数据筒的指纹的一指标 (pointer)。以此指标, 在相同数据筒中的所有指纹被组织成为一单一连结目录 (linked list)。此连结目录的前端是此数据筒的第一个被取样的指纹。
     在替换引擎 503 中, 指纹索引的最近最少使用目录的每一元素包括相对应的数据 筒的第一个被取样的指纹的指纹值, 以及此数据筒的辨别码。而此数据筒缓存存储器的最 近最少使用目录的每一元素备有此数据筒辨别码。当一数据筒的指纹从指纹索引被释出 时, 这些元素被写至一磁盘, 作为此指纹索引的一永久复本 (persistent copy)。
     每一从属装置也可包括一数据筒管理器 (container manager)512 来维持此数据 筒缓存存储器, 除了数据筒的替换之外。数据筒管理器 512 可具备三个部分, 亦即数据筒缓 存存储器、 数据筒格式、 以及数据筒读取。对于此数据筒缓存存储器, 其数据筒是以唯一的 数据筒识别码作为健值, 而组织成一哈希表, 此与前述的数据筒缓存存储器相同。 此数据筒 格式是与前述的数据筒及图 3 相同的。关于读取数据筒, 它以数据筒辨识码加上 IP 当做文 件名称来读取基本文件系统的子数据筒。 每一从属装置也可包括一数据筒更新器 513, 以供 在此本地数据节点上写入子数据筒。 为了加速写入速度, 其更新是序列式地被写入至磁盘。
     因为数据筒被分散在所有参与节点上, 存储片段的信息不是存储在单一的节点。 而是将一片段内的偏移量存储在参与节点上。 从参与节点上收集一片段的偏移量与片段辨识码后, 则可重建此存储片段的信息。图 6 是一范例示意图, 说明如何从两个参与节点去重 建一片段, 并与本公开的某些实施范例一致。此去复本是与图 2 相同的。片段 1、 2、 3 都是 属于同的数据筒。加括号的 (parenthesized) 对 (n, k) 代表在第 n 个片段的第 k 个物理区 块。例如, 对 (2, 3) 代表在第 2 个片段中的第 3 个物理区块。在本范例中, 片段 1、 2、 3 平均 地被分散至两个存储节点, 如节点 601 与节点 602。在查询此每一数据筒指纹索引之后, 相 对应的从属装置回复偏移量与片段辨识码。在主装置中重建片段 1、 2、 3 的被匹配的部分。 例如, 来自节点 601 的对 (1, 0) 与对 (1, 2) 属于片段 1, 来自节点 602 的对 (1, 1) 与对 (1, 3) 也是属于片段 1。并且整个片段 1 也被重建, 其中第 0 个与第 2 个区块来自节点 601, 而 第 1 个与第 3 个区块来自节点 602, 则可重建整个片段 1。然后, 图 2 所述的片段辨识码方 案可继续进行。
     请参考图 7, 图 7 是一范例示意图, 说明片段式高延展的去复本系统运作流程, 并 与本公开的某些实施范例一致。在图 7 中, 范例运作流程 700 可包含 : 对于多个欲被去复本 的区块的多个渐进式更新, 丛集多个在一数据局部单元 ( 称为数据筒 ) 的指纹, 如步骤 710 所示。分割此多个渐进式更新的多个区块, 以作为多个输入片段, 如步骤 720 所示。查询一 内存中的取样的指纹索引, 例如内存中的的指纹索引 110, 以找出此多个输入片段的每一指 纹, 并回传一对相对应的数据筒与片段, 例如 < 数据筒辨识码, 片段辨识码 >, 如步骤 730 所 示。当存在一存储片段与此输入片段是相同时, 则以此对相对应的数据筒与片段来查询一 内存中的片段式汇总, 例如内存中的片段式汇总 120, 以决定是否查询此对相对应的数据筒 与片段, 否则, 查询一内存中的数据筒存储缓存存储器, 例如内存中的数据筒存储缓存存储 器 130, 来决定是否载入此相对应的数据筒, 如步骤 740 所示。 当没有缓存此数据筒时, 自一 盘片数据筒存储元件, 载入此相对应的数据筒, 并查询一每一数据筒片段索引, 以找出路由 至此相对应的数据筒的一特定指纹的一偏移量, 以取得此特定指纹的片段信息, 如步骤 750 所示。如果有去复本的话, 数据流的输出是此输入片段里逻辑区块地址的物理位置。
     步骤 710 还可包括, 例如, 输入一更新目录、 输入此更新目录中多个区块的多个逻 辑至物理对应元素、 计算出在此更新目录中多个区块的指纹、 通过去复本的历史记录为基 础来重建数据筒, 以撷取起因于同组应用上的改变的数据局部性等。当此输入片段大于一 阈值 T 时, 步骤 730 还可包括, 例如, 计算出此输入片段的汇总指纹索引、 搜寻一指纹索引、 找出物理区块的一缓存存储器、 取得物理区块附加至此更新目录等。当一被匹配的存储片 段是大于此阈值时, 步骤 740 还可包括, 例如, 计算出此存储片段的汇总指纹、 并更新汇总 索引、 检查此存储片段的一偏移量对 (offset pair)、 移除此片段索引中最旧的片段 ( 每一 指纹元素可包括一数据筒辨识码目录, 最多指向 K 个元素 )、 对此数据筒更新新指纹、 附加 逻辑至物理目录至更新目录中, 等等。此数据筒被缓存后, 片段缓存存储器会被更新。步骤 750 还可包括, 例如, 当找到一满的 (full) 数据筒时, 产生一个新数据筒, 附加此输入片段 至新产生的数据筒, 以一序列方是来将数据筒记录至磁盘等。这些详细运作的子步骤在图 8 的工作范例中可以找到。 图 8 是图 7 的详细运作的一个工作范例, 并与本公开的某些实施 范例一致。此处省略已经提述的其它子步骤的细节。
     如前述, 渐进式备份的片段式高延展的系统 400 可与一次级存储系统一起运作, 片段式高延展的去复本系统 400 有两种装置。一种是在次级存储装置端上, 来分散去复本 的工作量 ; 另一种装置是在数据节点端上, 以将传送至特定数据节点的数据区块去复本。 指纹数据可用一种分散的方式, 来存储及取得于次级存储节点端的一次级存储服务器, 并且 此指纹缓存存储器与数据筒缓存存储器也可分散及分割至不同的数据节点上。 通过一致的 哈希法来分割数据筒、 指纹、 缓存存储器、 以及数据筒缓存存储器。
     图 9 是一范例示意图, 说明并行式去复本的运作流程, 并与本公开的某些实施 范例一致。参考图 9, 范例运作流程 900 可包含 : 利用一加密的哈希值 (cryptographic hashing) 来计算出多个渐进更新区块的指纹 ( 步骤 910) ; 依一一致的哈希值将此多个指纹 分散, 并存储于一取样指纹索引缓存存储器与数个子数据筒 ( 步骤 920) ; 依该一致的哈希 值, 将每一数据筒片段索引分散到至少一参与节点 ( 步骤 930), 如此, 在每一数据节点 ( 从 属装置 ) 上的片段索引可具有较小偏移量对 ; 并且依该一致的哈希值, 将每一片段汇总结 构分散到至少一参与节点 ( 步骤 940)。 此至少一参与节点在一数据节点端上可以是不同数 据节点。此一致的哈希值为熟知的一致的哈希值。
     步骤 910 还可包括, 例如, 集合多个在更新目录中的渐进更新区块作为一输入片 段目录, 此至少一参与节点可在此取样指纹索引缓存存储器中查询此指纹等。在并行式去 复本的期间, 数据筒缓存存储器的载入与释出也需要此至少一参与节点的协助。图 10 是图 9 的详细运作的一个工作范例, 并与本公开的某些实施范例一致。 此处省略已经提述的其它 子步骤的细节。 综合上述, 本公开的实施范例可提供一种渐进式备份的基于片段的高延展的去复 本系统与方法, 可经由数据筒的渐进更新的每一片段汇总指纹、 多变的片段取样率、 每一片 段汇总结构、 以及分散去复本至多各参与节点, 并以影响数据去复本比例为尽量最小的方 式, 来改善去复本的数据传输量。
     然而, 以上所述仅为本公开的实施范例而已, 当不能依此限定本公开实施的范围。 即大凡一本公开申请专利范围所作的均等变化与修饰, 皆应仍属本公开权利要求书涵盖的 范围内。
    

渐进式备份的基于片段的高延展的去复本系统与方法.pdf_第1页
第1页 / 共25页
渐进式备份的基于片段的高延展的去复本系统与方法.pdf_第2页
第2页 / 共25页
渐进式备份的基于片段的高延展的去复本系统与方法.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《渐进式备份的基于片段的高延展的去复本系统与方法.pdf》由会员分享,可在线阅读,更多相关《渐进式备份的基于片段的高延展的去复本系统与方法.pdf(25页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102346695A43申请公布日20120208CN102346695ACN102346695A21申请号201010564667622申请日2010113012/846,81720100729USG06F11/14200601G06F3/06200601G06F12/0820060171申请人财团法人工业技术研究院地址中国台湾新竹县72发明人卢茂华阙志克74专利代理机构北京市柳沈律师事务所11105代理人陈小雯54发明名称渐进式备份的基于片段的高延展的去复本系统与方法57摘要本发明涉及一种渐进式备份的基于片段的高延展的去复本系统与方法。在此系统中,一主装置位于一次级存储节。

2、点端,可接收至少一渐进式更新、多个指纹、多个映射的个体备份,将去复本功能分散到至少一从属装置,并通过丛集多个在一个数据局部单元的指纹、多个片段的可变取样率、以及一种避免不必要的输入与输出的每一片段汇总结构,在多个片段上执行数据去复本,其中,稳定片段具有一固定的取样率,而不稳定的片段则指定随时间变化的取样率。30优先权数据51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书11页附图10页CN102346715A1/3页21一种渐进式备份的基于片段的高延展的去复本系统,该系统包含一主装置,位于一次级存储节点端,该主装置可接收至少一渐进式更新、去复本的多个片段的多个指。

3、纹、多个逻辑区块地址至物理区块的映射个体;其中该主装置还包括至少一分散器,将去复本功能分散到位于一数据节点端的至少一从属装置,并通过丛集多个数据节点本地的数据单元的指纹、多个片段的可变取样率、以及一种避免不必要的输入与输出的每一片段汇总结构,在该多个片段上执行数据去复本,其中该数据本地单元称为子数据筒。2如权利要求1所述的去复本系统,其中该可变取样率是以一种最近最少使用顺序为基础。3如权利要求1所述的去复本系统,其中该至少一分散器还包括一指纹分散器,映射每一指纹至一哈希值,来决定一目的地数据节点,并等待该数据节点的一回应;以及一数据筒分散器,使用相同的一致性哈希法以分割一概念的数据筒,并当作数。

4、个子数据筒,如此,一子数据筒、一指纹缓存存储器、以及一数据筒缓存存储器常皆驻于同一个数据节点。4如权利要求1所述的去复本系统,其中该系统还包括该至少一从属装置,并执行并行式去复本,以利用位于该数据节点端的至少一从属装置的计算能力。5如权利要求4所述的去复本系统,其中其至少一从属装置的每一从属装置还包括一指纹管理器,以维持该指纹缓存存储器,除了指纹的替换之外;以及一数据筒管理器,以维持该数据筒缓存存储器,除了数据筒的替换之外。6如权利要求1所述的去复本系统,其中多个指纹数据筒以一种分散方式来存储至与取得于该次级存储节点,并且一指纹缓存存储器与一数据筒缓存存储器也在不同的数据节点上被分散与分割。7。

5、如权利要求2所述的去复本系统,其中该数据筒是以多个伪物理区块地址为基础,来保存每一卷宗逻辑区块地址里的局部性,并且区别于其他卷宗的区块地址。8如权利要求7所述的去复本系统,其中该每一片段汇总结构由下列来达成该多个片段中,大于一阈值的每一片段具有一汇总片段指纹;以及该汇总片段指纹被匹配时,表示已完成在该片段中的去复本,并且不需要个别的检查片段内的指纹。9如权利要求1所述的去复本系统,其中该渐进式更新的数据筒是基于伪物理区块范围与指纹内容且保留指纹局部性的数据筒。10如权利要求4所述的去复本系统,其中该并行式去复本为片段式去复本,并且是依据一种一致性哈希法,将输入片段的每一指纹映射至该数据节点端上。

6、的一数据节点。11如权利要求3所述的去复本系统,其中该概念数据筒分割为N个文件,N为该数据节点端的数据节点的数目,N个数据节点的每一节点负责存储该概念数据筒的一条纹,并且将该概念数据筒的一条纹当作一子数据筒。12如权利要求3所述的去复本系统,其中该主装置还包括一替换引擎,来存储一指纹缓存存储器与一数据筒缓存存储器的最近最少使用目录,以替换位于数据节点上子数据筒与指纹。权利要求书CN102346695ACN102346715A2/3页313如权利要求3所述的去复本系统,其中该主装置还包括一映射更新器,依据该去复本的输出,将每一逻辑区块地址映射到一个区块的物理位置。14如权利要求3所述的去复本系统。

7、,其中该主装置还包括一单元检测器,检测运作中的输入指纹所对应的概念数据筒或是根据过往历史确定去复本单元的边界。15如权利要求5所述的去复本系统,其中该至少一从属装置的每一从属装置还包括一数据筒更新器,用于在一本地数据节点的写入多个子数据筒。16一种渐进式备份的片段式高延展的去复本方法,通过在一次级存储节点端的一主装置来执行,该方法包含接收至少一渐进式更新、欲被去复本的多个输入片段的多个指纹、及多个从逻辑区块地址至物理区块的映射的个体;丛集该多个在一本地数据单元的指纹,该本地数据单元称为子数据筒;指定片段的可变取样率;以及重建一每一片段汇总结构,以避免在片段上执行数据去复本时不必要的输入与输出。。

8、17如权利要求16所述的去复本方法,该方法还包括分割该多个渐进式更新的多个区块,以作为多个输入片段;查询一内存中的取样的指纹索引,以找出该多个输入片段的每一指纹,并回传一对相对应的数据筒识别码与片段识别码;当一存储片段与一输入片段是相同时,则以该对相对应的数据筒识别码与该片段识别码来查询一内存中的片段式汇总,以决定是否查询该对相对应的数据筒与片段,否则,查询一内存数据筒存储缓存存储器,来决定是否载入缓存相对应的数据筒至缓存;以及当没有缓存该数据筒时,自一盘片数据筒存储元件,载入该相对应的数据筒,并查询一每一数据筒片段索引,以找出路由至该相对应的数据筒的一特定指纹的一偏移量,以取得该特定指纹的片。

9、段信息。18如权利要求16所述的去复本方法,该方法还包括该主装置的至少一分散器执行并行式去复本,以利用位于一数据节点端的至少一参与节点的计算能力。19如权利要求18所述的去复本方法,其中该并行式去复本还包括利用一加密哈希算法来计算出多个渐进更新区块的指纹;依相同的一致哈希算法,来分散该多个渐进更新区块的多个指纹,以存储取样指纹索引缓存存储器与多个子数据筒至多个数据节点;依该一致哈希算法,将每一数据筒片段索引分散到至少一参与数据节点;以及依该一致哈希算法,将该每一片段汇总结构分散到至少一参与数据节点。20如权利要求16所述的去复本方法,其中一基本分享单元BSU片段被定义为产生之后就不会变更的一存。

10、储片段,并且该多个输入片段的该变化取样率是以下列方式来实现对于每一BSU片段,只取样一个指纹;以及对其它非BSU片段,指定不同的取样率。21如权利要求19所述的去复本方法,使用相同的一致哈希算法,每一片段汇总结构被分散与分割至位于至少一参与数据节点,并且在该至少一参与节点上存储该一个子数据权利要求书CN102346695ACN102346715A3/3页4筒的汇总结构。权利要求书CN102346695ACN102346715A1/11页5渐进式备份的基于片段的高延展的去复本系统与方法技术领域0001本公开涉及一种渐进式备份INCREMENTALBACKKUPS的基于片段的SEGMENTBASE。

11、D高延展的SCALABLE去复本DEDUPLICATED系统与方法。背景技术0002大部分的数据去复本技术着重于完整备份FULLBACKUPS,即使所有逻辑区块中仅一小部分已经被变更,一逻辑卷宗的所有逻辑区块会以现存的区块去复本。0003在一种已知的稀疏索引SPARSEINDEXING方法中,以取样指纹索引SAMPLINGFINGERPRINTINDEX来取代完整指纹索引WHOLEFINGERPRINTINDEX,将此指纹索引适当地配置于磁盘对磁盘DISKTODISK,D2D数据备份系统的内存RANDOMACCESSMEMORY,RAM中。取样指纹索引的洞察是,被复制的数据区块DUPLICAT。

12、EDDATABLOCKS会趋向于以明显的长度NONTRIVIALLENGTH存储在一个连续的范围里。在此范围内的取样指纹值SAMPLINGFINGERPRINTVALUE的匹配MATCHING意味着高机率的完整范围的匹配。在所有候选的取样指纹中,选择冠军者作为去复本的对象。稀疏指纹索引方法是依据一固定取样率来选取样本指纹。在另一种已知的方法中,指纹是依据数据片段SEGMENT的时域区域性TEMPORALLOCALITY来取样。如果条件符合的话一时间周期;一固定计数,在稀疏区块索引SPARSECHUCKINDEX中的数据片段的元素ENTRIES会被删除或裁剪PRUNED。被取样的指纹的每一元素最。

13、多指向R个数据筒CONTAINER。换句话说,此方法利用一最近最少使用的LEASTRECENTLYUSED,LRU目录,来降低数据筒的取样率。0004在另一种已知的方法中,使用布隆过滤器BLOOMFILTER来决定一指纹是否在指纹索引里。此布隆过滤器不论这些区块的历史为何,盲目地记录所有区块的全部指纹。另一种已知的方法是每一文件有一整个文件哈希值映射WHOLEFILEHASH,意味着此整份文件哈希映射的一个匹配意指此整份文件是一个副本,此文件中的个别指纹不用被检查。此方法是基于文件来进行去复本。每一文件具有一代表性的REPRESENTATIVE指纹。指纹索引中的元素依据模运算MODULAROP。

14、ERATION或其他分散式的哈希映射表功能,一个接一个被分散至K个节点NODE。对应于一指纹索引元素的整个数据筒会被分散至与此指纹索元素相同的节点。如果两个指纹索引元素有相同的数据筒,但是被分散在两个不同节点,此相同的数据筒就会被复制在两个节点上。当一个文件被备份,只有代表性的指纹被用来路由ROUTE此文件至一节点,此文件的其他所有指纹不被用来做路由的目的。0005一些已知的美国专利提供去复本的技术。例如,在一已知技术中,数据区块的数个指纹记录依据此指纹值FINGERPRINTVALUE的一部分来分散至子节点。指纹记录具有执行数据去复本的完整信息。此技术没有揭示指纹数据筒的概念。在另一已知技术。

15、中,采用一种固定前置网络FIXEDPREFIXNETWORK,FPN的修正版本,依一预定的数据冗余层次DATAREDUNDANCYLEVEL来分散数据区块。因为此存储器是一种内容可定址CONTENTADDRESSABLE的存储器,此技术没有揭示指纹索引与数据筒。另一已知技术是依据指纹来分散区块。第一步骤是依据指纹值的K个最低位LEASTSIGNIFICANTBIT说明书CN102346695ACN102346715A2/11页6将区块分割而成数个部分。第二步骤是利用一分散式哈希表DISTRIBUTEDHASHTABLE,DHT,将此数个部分映射到一物理节点PHYSICALNODE。每一数据节点。

16、备有一个加密钥ENCRYPTEDKEY的队列QUEUE,以及一个用来搜寻此队列以发现复本的一个请求REQUEST。发明内容0006本公开的实施范例可提供一种渐进式备份的基于片段的高延展的去复本系统与方法。0007在一实施范例中,所公开者涉及一种渐进式备份的片段式高延展的去复本系统。此系统包含一主装置MASTEDEVICE位于一次级存储节点端SECONDARYSTORAGENODESIDE。此主装置可接收至少一渐进式更新、去复本多个片段的多个指纹、多个逻辑区块地址至物理位置的映射的个体,并将去复本功能分散到位于一数据节点端的至少一从属装置,并通过丛集多个本地数据单元称为数据筒的指纹、多个片段的可。

17、变取样率、以及一种避免不必要的输入与输出的每一片段汇总结构PERSEGMENTSUMMARYSTRUCTURE,在多个片段上执行数据去复本。0008在另一实施范例中,所公开者涉及一种渐进式备份的基于片段的高延展的去复本方法。此方法包含对于多个欲被去复本的区块的多个渐进式更新,丛集多个在一数据局部单元称为数据筒的指纹;分割此多个渐进式更新的多个区块,以作为多个输入片段;查询一内存中INMEMORY取样的指纹索引,以找出此多个输入片段的每一指纹,并回传一对相对应的数据筒与片段;当存在一已存储的片段与此输入片段是相同时,则以此对相对应的数据筒与片段来查询一内存中的片段式汇总SEGMENTBASEDS。

18、UMMARY,以决定是否撷取此对相对应的数据筒与片段,否则,查询一内存中数据筒存储缓存存储器CACHE,来决定是否载入相对应的数据筒;当没有缓存此数据筒时,自一盘片ONDISK数据筒存储元件,载入此相对应的数据筒,并查询每一数据筒片段索引PERCONTAINERSEGMENTINDEX,以找出路由至此相对应的数据筒的一特定指纹的一偏移量OFFSET,以取得RETRIEVE此特定指纹的片段信息。0009现在配合下列附图、实施范例的详细说明及权利要求书,将上述及本公开的其他特征与优点详述于后。附图说明0010图1是在一渐进式备份的基于片段的高延展的系统里的一个高阶数据流的范例示意图,并与本公开的某。

19、些实施范例一致。0011图2是一范例示意图,说明当K2时,如何进行片段存储,并与本公开的某些实施范例一致。0012图3是一范例示意图,说明一数据筒的内容,并与本公开的某些实施范例一致。0013图4是一渐进式备份的基于片段的高延展的去复本系统的一个架构范例示意图,并与本公开的某些实施范例一致。0014图5是片段的高延展的去复本系统的分散式去复本架构的一个范例示意图,并与本公开的某些实施范例一致。说明书CN102346695ACN102346715A3/11页70015图6是一范例示意图,说明如何从两个参与节点去重建一片段,并与本公开的某些实施范例一致。0016图7是一范例示意图,说明片段的高延展。

20、的去复本系统的运作流程,并与本公开的某些实施范例一致。0017图8是图7的详细运作的一个工作范例,并与本公开的某些实施范例一致。0018图9是一范例示意图,说明并行式去复本的运作流程,并与本公开的某些实施范例一致。0019图10是图9的详细运作的一个工作范例,并与本公开的某些实施范例一致。0020【主要元件符号说明】0021110内存中的取样指纹索引缓存存储120内存中的片段式汇总0022器0023130内存中的数据筒存储缓存存储器141磁盘数据筒存储设备0024143磁盘中的指纹索引0025300数据筒310每一数据筒指纹索引0026320最近最少使用目录330存储片段0027340汇总结构。

21、341片段索引0028342汇总指纹0029400片段式高延展的去复本系统410主装置0030412多个区块的渐进更新414去复本的多个片段的0031指纹0032416多个逻辑区块地址至物理位置的映0033射的个体0034501指纹分散器502数据筒分散器0035503替换引擎504单元检测器0036505映射更新器511指纹管理器0037512数据筒管理器513数据筒更新器0038601节点602节点0039710对于多个欲被去复本的区块的多个渐进式更新,丛集多个在一本地数据单元称为数据筒的指纹0040720分割此多个渐进式更新的多个区块,以作为多个输入片段0041730查询一内存中的取样的。

22、指纹索引,以找出此多个输入片段的每一指纹,并回传一对相对应的数据筒与片段0042740当存在一已存储的片段与此输入片段是相同时,则以此对相对应的数据筒与片段来查询一内存中的片段式汇总,以决定是否撷取此对相对应的数据筒与片段,否则,查询一内存中的数据筒缓存,来决定是否缓存此数据筒0043750当没有缓存此数据筒时,自一盘片数据筒存储元件,载入此相对应的数据筒,并查询一每一数据筒片段索引,以找出路由至此相对应的数据筒的一特定指纹的一偏移量,以取得此特定指纹的片段信息0044910利用一加密的哈希值来计算出多个渐进更新区块的指纹说明书CN102346695ACN102346715A4/11页8004。

23、5920依一致的哈希值将此多个指纹分散,并存储于一取样指纹索引缓存存储器与子数据筒0046930依一致的哈希值将每一数据筒片段索引分散到至少一参与节点0047940依一致的哈希值将每一片段汇总结构分散到至少一参与节点具体实施方式0048当一主要的存储系统渐进地追踪更新的区块,并且只有备份这些渐进更新的区块INCREMENTALCHANGEDBLOCKS时,本公开的实施范例可提供一种渐进式备份的片段式高延展的去复本系统与方法。具体地说,假设此主要的存储系统从最新的快照渐进式更新追踪的一快照图像来追踪更新的区块,并且只有更新的区块被当作是此备份存储系统的输入。0049本公开的实施范例将焦点放在以片。

24、段为基础的四个方面,以影响数据去复本比例DATADEDUPLICATIONRATIO,DDR尽量为最小的方式,来改善去复本的数据传输量THROUGHPUT1丛集多个在一个数据局部单元称为数据筒的指纹;2多个片段的可变取样率,稳定且泛用的POPULAR片段具有一固定的取样率,而去复本的“非泛用的UNPOPULAR”目标片段则指定较低的取样率;3在去复本时,避免不必要的输入与输出的每一片段汇总结构;4分散式的去复本,来利用多个参与存储节点的运算能力。0050就第一个方面来说,数据筒是依去复本的历史记录来建构,而非依纯逻辑地址接近度PURELOGICALADDRESSPROXIMITY来建构。对于输。

25、入的渐进式更新,数据局部性的语义是更难以捉摸的,因为很难预测在此渐进式更新流INCREMENTALCHANGESSTREAM中会出现什么情况。在本实施范例中,互相分享内容的所有渐进式的更新都会被放入同一个数据筒,以捕捉被同组应用而更新的数据的局部性。0051就第二个方面来说,将指纹设置在一内存中RAM,片段的取样率是用下列方式来区分的,亦即稳定片段具有一固定的取样率,而去复本的不稳定的片段则指定随时间变化的取样率。一个稳定片段的定义是去复本历史记录中没有改变的一片段。此稳定片段直觉上是副本之间倾向分享大于一区块的一物件。通过观察数据去复本的历史记录,可指出此稳定片段,并且可使用在此稳定片段中的。

26、一个指纹来代表在指纹索引中的片段。而对于非泛用片段,可采用一种最近最少使用的策略来变化在被取样的指纹索引中所有非泛用的片段的取样率。0052就第三个方面来说,每一片段汇总结构可以避免去复本的不必要输入与输出。对于较大容量且几乎很少改变的片段,不需要一个接一个的比较一片段中的个别指纹,因此可减少从磁盘中撷取个别指纹的磁盘输入/输出DISKI/O。每一片段汇总结构可依下列原则来形成1大于一阈值THRESHOLD的片段具有一整体片段指纹,以及2整体片段指纹匹配时,表示在此片段中,不需个别得检查区块指纹。相关片段的整体片段指纹可以构成一MERKLE树TREE。0053就第四个方面来说,本公开的实施范例。

27、在分散式存储系统中,可将此去复本功能分散至多个参与存储节点。依据此指纹的一致性哈希CONSISTENTHASHING方法,将指纹索引与数据筒分散及分开至多个参与存储节点PARTICIPATINGSTORAGENODE。并且,依据汇总ROOTSUMMARY的一致性哈希方法,所有汇总结构也被分散及分开至多个参与存储说明书CN102346695ACN102346715A5/11页9节点。0054现在,本公开的实施范例的渐进式备份的基于片段的高延展系统可用HADOOP分散式文件系统HADOOPDISTRIBUTEDFILESYSTEM,HDFS来实现,作为基本的存储器UNDERLYINGSTORAGE。

28、。然而,本公开的实施范例是可与任何备有多个数据节点的分散式存储系统来共同运作的。在下列讨论中,假设HADOOP分散式文件系统为基础的存储器阶层UNDERLYINGSTORAGELAYER。本公开的实施范例可与一次级存储系统共同运作。此渐进式备份的基于片段的高延展系统可包含一元件并位于次级服务器端,来分散此去复本的工作量WORKLOAD;还可包括一第二元件并位于数据节点端,来对传送至特定数据节点的数据区块去执行去复本。0055在探讨去复本的细节之前,图1是在一渐进式备份的基于片段的高延展的系统里的一个高阶数据流HIGHLEVELDATAFLOW的范例示意图,并与本公开的某些实施范例一致。图1省略。

29、渐进式备份的基于片段的高延展系统中的并行部分,此部分将在后面陈述。0056参考图1,首先,将数个渐进更新分割成数个片段。每一片段通过发出ISSUE片段内的每一个别指纹的指纹查询FINGERPRINTQUERY,来查询一内存中的取样指纹索引SAMPLEDFINGERPRINTINDEX,SFI缓存存储器110。每一个别指纹的查询则传回一对的。在同一片段内指纹的查询会被聚成一群,以找出是否一已存储的片段相同于一输入片段。是的话,此输入片段以此对来查询一内存中的片段式汇总120,以决定是否需要载入此数据筒。否则,以此数据筒辨识码来查询一内建存储器数据筒存储缓存存储器130,以查看此数据筒是否被缓存,。

30、如果没有被缓存的话,则自一磁盘数据筒存储设备141载入此数据筒。0057载入此数据筒后,每一输入片段在此数据筒中查询一每一数据筒片段索引PERCONTAINERSEGMENTINDEX,以找出路由至此数据筒的一指纹的偏移量OFFSET。此偏移量可以用来取得此区块的物理位置,因为指纹以一阵列ARRAY方式存储在此数据筒内。通过此偏移量查询此片段索引可以取得特定指纹的片段信息。磁盘指纹索引143包括从取样指纹索引释出的指纹。磁盘指纹索引143没有包括所有数据筒的全部指纹。0058如果有去复本的话,数据流的输出是此输入片段里逻辑区块地址LOGICALBLOCKADDRESS的物理位置PHYSICAL。

31、LOCATION。具体来说,产生的逻辑至物理的一更新目录L2PCL是当做输出。0059在基于片段的高延展的去复本系统中,片段是一基本单元,并且可由目前输入CURRENTINPUT与输入的历史记录INPUTHISTORY来决定。具体来说,如果数个区块在输入中是相邻的话,则这些区块属于相同的输入片段。然后,此输入片段与已存储的片段STOREDSEGMENT做比较,以形成存储片段STORESEGMENT。当输入片段与存储片段互相冲突时,每一指纹最多可属于K个片段。如果一指纹超过K个片段时,K2,则从此指纹中移除最旧的片段。0060图2是一范例示意图,说明当K2时,如何进行片段存储,并与本公开的某些实。

32、施范例一致。参考图2,在输入片段中的号码代表逻辑区块号码,而在存储片段中的号码代表在一数据筒的指纹偏移量。如输入1,有片段A与片段B共两个输入片段。去复本之后,发现片段A是存储片段1的一个复本,但是发现输入片段B横跨两个存储片段存储片段2与存储片段3。存储片段1与输入片段A是相同的,所以存储片段1是没有更新。反之,说明书CN102346695ACN102346715A6/11页10具有偏移量从52至55的指纹映射至存储片段2与输入片段,共对应至两个片段。输入片段C匹配于指纹51至55。因为K2,亦即每一指纹指允许属于两个片段,对于指纹52至55,则移除存储片段2即最旧的片段。替代的是,将指纹5。

33、2至55映射至两个片段,亦即输入片段B与输入片段C。0061事实上,本公开的实施范例允许每一区块,最多参与到K个片段中,即保持追踪曾经与一区块相关的最后K个片段。本公开的实施范例中,使用一区间树INTERVALTREE来保持追踪逻辑区块地址范围映射至此片段。下列叙述中,此区间树称为片段索引SEGMENTINDEX,SI。0062一基本分享单元BASICSHARINGUNIT,BSU被定义为产生之后就不会被变更的一存储片段。在基本分享单元礼的所有指纹一次全部都出现,所以一个指纹就足以代表此相对应的基本分享单元。0063因为一指纹索引无法配置在FITINTO内存中,本公开的实施范例提出取样指纹SA。

34、MPLINGFINGERPRINT的概念,将指纹索引配置在一指纹索引缓存存储器中。此取样是依个别片段INDIVIDUALSEGMENT为基础。此指纹索引缓存存储器可被实现为,例如一哈希表HASHTABLE。指纹索引缓存存储器的每一元素ENTRY是以一指纹值FINGERPRINTVALUE为键值,并且此元素包括一数据筒辨识码。甚且,如果多个数据筒分享相同一指纹的话,此数据筒辨识码最多可指向至K如K2个片段辨识码。注意的是,此K是与前述的K相同的。0064在本公开的实施范例中,有两种改变此片段取样的方式1片段为基本分享单元的话,取出来自于一基本分享单元所有指纹的第一指纹,来代表此基本分享单元。注意。

35、的是,此取样不会损害去复本率,因为在一基本分享单元里的指纹总是一次全部都出现。然而,因为节省存储器的空间,所以可以改善此去复本的数据传输流量。2当存储器的空间不足时,不需减少所有片段的取样率,而是对这些长时间未被参照的片段,当取样率达到一个最小值时,在被他们被释出前,先减少它们的取样率。一种最近最少使用的目录LRULIST可用在这个用途。特别是,基本分享单元片段具有以最近最少使用顺序为基础的一个虚拟取样率VIRTUALSAMPLING。当基本分享单元到达此最近最少使用目录的尾端时,会减少此虚拟取样率。0065数据筒的含意是以群聚有数据局部性的指纹,来摊提载入一数据筒的输入/输出的成本。渐进式备。

36、份的数据局部性是不同于整体备份。本公开的实施范例的渐进式备份的片段式高延展系统是依据去复本历史记录来关连多个片段。一开始,通过结合逻辑卷宗辨识码与逻辑区块地址,来自不同的逻辑卷宗的逻辑区块地址包含一个统一的伪UNIFIEDPSEUDO逻辑区块地址。例如,对于在逻辑卷宗1的逻辑区块地址500,此伪逻辑区块地址是1,500。每一数据筒起始时可以是半满的HALFFULL,以容纳此数据筒未来的更新。由在此去复本历史记录随着时间累积,与一存储片段分享至少一单依指纹的那些片段会被放入与此存储片段相同的数据筒。0066图3是一范例示意图,说明一数据筒的内容,并与本公开的某些实施范例一致。在图3的范例中,数据。

37、筒300的内容可包括一每一数据筒指纹索引310、逻辑区块地址的K对物理位置和存储片段330的信息、以及一汇总结构340。每一数据筒指纹索引310将同一数据筒的指纹安排于一哈希表中,来加速寻找此数据筒里的指纹值。每一指纹指向最后的说明书CN102346695ACN102346715A7/11页11K例如K2片段。直觉的理解是1如果有任何基本分享的话,此最后的K片段在日后最有可能成为此基本分享单元,以及2两个片段是极不可能意外地分享一些相互连结的指纹,而非分享一整体片段。注意的是,此K是与前述的K相同的。0067当一数据筒需要被分割时,保留一个最近最少使用的目录给数据筒300,如此数据筒300会依。

38、据存取历史ACCESSHISTORY而被分割。每一最近最少使用目录是以时间戳记TIMESTAMP为键值,并且包含做为内容的指纹值。0068如前所述,在一数据筒内片段之间的关系可以分成两种类型。第一类型是在相同伪逻辑区块地址范围内的两片段;第二类型是分享指纹的两个片段。如果没有提供汇总信息的话,此两片段的指纹则依一最近最少使用目录的顺序被置放在此数据筒中。因为会将每一片段汇总结构包括在内,所以,需要区别此两种类型。0069对于第一种类型的片段,每一片段不会再进一步处理,而是直接留在此数据筒中。对于第二种类型的片段,因为每一指纹最多可以指向K如K2个片段,片段根据历史可能需要被分割。如果一指纹指向。

39、超过K个片段,结果导致片段之间分享指纹,则在加入一新片段之前,会移除最旧的片段。0070所有的每一片段结构会被输入至汇总结构340。在汇总结构340里的每一元素是以一片段索引341为键值,并且其内容是由相对应片段的汇总指纹SUMMARYFINGERPRINT,SF342所组成的。注意的是,并非所有片段都备有一汇总指纹342,只有较大容量例如大于1000的那些片段备有一汇总指纹,如此所有汇总结构得以配置在内存中。0071一数据筒可以依据一伪物理区块地址,但,既不是逻辑区块地址,也不是真正的物理区块范围。伪物理区块地址保存了在每一卷宗逻辑区块地址里的局部性,并且也可区别于其他卷宗的区块地址。例如,。

40、卷宗A与卷宗B分别具有逻辑区块范围0,32M与0,16M。此伪物理区块范围对卷宗A而言可以是0,32M,而伪物理区块范围对卷宗B而言可以是32M,48M。一数据筒可以依据两个片段的内容为基础。分享至少一指纹的两个片段可被置放于一数据筒内。并且,一数据筒保存指纹索引元素里的局部性。也就是说,此数据筒是一个基于伪物理区块范围与内容的且保留指纹局部性的数据筒RANGEANDCONTENTBASEDLOCALITYPRESERVEDFINGERPRINT。0072如上述,一个大于一阈值N的片段有一汇总指纹SUMMARYINDEX。此汇总指纹可通过以N个指纹为数据内容以及算出此内容的一个指纹来算出。也就。

41、是说,汇总指纹是基于片段的。并且,一汇总指纹的特性也是,N个指纹中的一个指纹的改变可以极大地改变此汇总指纹。结果,如果两个片段的汇总指纹相互匹配的话,此两个片段是不同的机率会小到只存在于理论中。换句话说,如果汇总指纹匹配的话,则此两个片段是完全相同的IDENTICAL。0073片段式汇总索引可通过合适的选择N,而配置在一存储器中,例如随机存取存储器。每一索引元素以一对做为键值。内容可包括汇总指纹、片段长度、以及包括此片段的物理区块。此物理区块也同样是被存储的,因为如果汇总指纹匹配的话,则不需要缓存此数据筒,并且这些物理区块作为数据去复本时的目标物理区块。如上述,向指纹索引缓存存储器查询一数据筒。

42、之后,取得一数据筒辨识码以及最多K个片段辨识码。查询结果产生的对被用来查询片段式汇总索引,以找出相对应的片段,此产生的片段的汇总指纹与一存储片段的汇总指纹做比较。为了说明书CN102346695ACN102346715A8/11页12减少因片段式汇总索引的存储器消耗量,并非所有在此片段里的物理区块都是个别地被存储。而是存储此物理区块范围来减少此存储器的消耗量。0074通过组合片段识别、可变的取样率、以及使用片段式汇总结构,图4是一渐进式备份的片段式高延展的去复本系统的一个架构范例示意图,并与本公开的某些实施范例一致。参考图4,片段式高延展的去复本系统400可包含一主装置410,位于一次级存储节。

43、点端。主装置410可接收多个输入,例如多个区块的渐进更新412、去复本的多个片段的指纹414、多个逻辑区块地址至物理位置的映射的个体416等,并且还包括至少一分散器DISTRIBUTOR,来将至少一去复本功能分散给至少一从属装置SLAVEDEVICE,如从属装置1至从属装置N,并通过丛集多个在一个本地数据单元称为数据筒的指纹、多个片段的可变取样率、以及一种避免不必要的输入与输出的每一片段汇总结构,在多个片段上执行数据去复本,其中,稳定片段具有一固定的取样率,而去复本的不稳定的片段则指定随时间变化的取样率。系统400还可包括至少一从属装置420,位于数据节点端,并执行并行式去复本,以利用位在此数。

44、据节点端的从属装置的运算能力。0075图5是片段式高延展的去复本系统的分散式去复本架构的一个范例示意图,并与本公开的某些实施范例一致。参考图5,在次级存储节点端,主装置410可包括一指纹分散器FINGERPRINTDISTRIBUTOR501与一数据筒分散器CONTAINERDISTRIBUTOR502。指纹分散器501可哈希每一个别指纹,来决定一目的地数据节点DESTINATIONDATANODE,并可等待此数据节点的回应。此回应可以是被一逻辑区块地址所指到的一目标物理区块TARGETPHYSICALBLOCK。此回应有三个考虑的情况。0076第一个情况是,在一指纹索引缓存存储器中找到此指纹。

45、,并且此数据筒在一数据筒缓存存储器中已被缓存或是在此片段式汇总索引找到。在此情况下,此回应可包括一目标区块去复本区块的信息。对应此目标区块的原始区块可被做回收DISPOSED。0077第二个情况是,在一指纹索引缓存存储器中找到此指纹,但是此数据筒在一数据筒缓存存储器中没有被缓存,并且此片段式汇总索引没有匹配。此数据筒被载入至一次级存储节点端的内存中。使用与数据统分散器502分散指纹时相同的哈希函数HASHFUNCTION,将此数据筒中的元素分散至相关的数据节点。位于一特定数据节点的相同数据筒的元素被组成一子数据筒SUBCONTAINER。0078注意的是,数据筒分散器502没有直接写入数据筒。。

46、而是数据筒分散器502给位在此数据节点的每一子数据筒一个公用的文件名称PUBLICFILENAME,如此,可同时取得属于相同数据筒的子数据筒。例如说,如果一数据筒有一识别码IDENTIFIER0X01234,四个子数据筒分别被命名为0X01234IP1、0X01234IP2、0X01234IP3、以及0X01234IP4。当数据筒分散器502取得数据筒0X01234时,也向每一个别数据节点要求相对应的子数据筒。每一数据节点轮流读取子数据筒0X01234IPI,IPI是特定数据节点的IP地址。在数据节点写入子数据筒的优点是在存取时,每一子数据筒备有一本地复本LOCALCOPY,且此数据节点可通过。

47、它的本地磁盘,而不是通过网络取自其它数据节点,取得子数据筒。通过查询每一数据筒指纹索引,可以撷取对应此被查询指纹的元素,以取得此目标物理区块。0079第三个情况是,在一指纹索引缓存存储器中没有找到指纹。此指纹已被更新至一对应的数据筒。此原始物理区块则作为此目标物理区块。0080数据筒分散器502可使用已知的一致性哈希法加条纹STRIPE于一概念的数据说明书CN102346695ACN102346715A9/11页13筒,并分割为数个子文件,即数据筒条纹、指纹缓存存储器、以及数据筒缓存存储器可常驻于同一个数据节点。依据汇总指纹的相同且一致的哈希法,数据筒分散器502也负责去分散此片段汇总。008。

48、1主装置410还可包括一替代引擎REPLACEMENTENGINE503来存储指纹缓存存储器与数据筒缓存存储器的最近最少使用目录,以确定子数据筒与指纹的替换。注意的是,指纹缓存存储器的此最近最少使用目录是依据数据筒,而不是个别的指纹。0082主装置410还可包括一单元检测器UNITDETECTOR504来检测运作中ONTHEFLY的输入指纹所属的数据筒或是通过去副本历史辨别的一去复本单元的边界。检测此输入指纹的数据筒可如下进行。对于每一输入片段,起初没有此输入片段相对应的数据筒。如果此去复本的回应指出此输入片段属于一数据筒,则此数据筒是对应此输入片段的数据筒。否则,产生一个新数据筒来容纳此输入。

49、片段。一数据筒具有其大小SIZE的上限。0083通过去副本历史辨别的一去复本单元的边界的进行如下说明。起初将每一输入片段视为一去复本单元DEDUPLICATIONUNIT。此输入片段存储在一数据筒。具体来说,每一子数据筒存储物理区块,也存储与这些物理区块相关的此输入片段。下一次,此片段被查询时,以存储片段来检查此输入片段。如果是同一片段,则此片段可能在将来还是一样的片段。如果一片段经过一预定数目的去复本查询后,仍是维持同一个片段,则此片段被视为稳定,并且在此单元里的第一指纹可被挑出并做为被取样的指纹,如同上述。0084主装置410还可包括一映射更新器MAPPINGUPDATER505,依据此去复本的输出来更新映射到此卷宗的元数据METADATA。0085在数据节点端,至少一从属装置的每一从属装置还可包括一指纹管理器FINGERPRINTMANAGER511,来维持此指纹缓存存储器,除了替换指纹之外。指纹的替换是由位于主装置410的替换引擎REPLACEMENTENGINE503来协调。多个指纹被安排成一哈希表。每一指纹元素备有一数据筒辨别码目录CONTAINERIDENTIFIERLIST。此目录最多有K个元素、此数据筒内的指纹的偏移量、以及指向此相同数据筒的指纹的一指标POINTER。以此指标,在相同数据筒中的所有指纹被组织成为一单一连结目录LINKEDLIST。此。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1