CN105324765B - 选择用于去重复数据的存储区 - Google Patents

选择用于去重复数据的存储区 Download PDF

Info

Publication number
CN105324765B
CN105324765B CN201380076634.9A CN201380076634A CN105324765B CN 105324765 B CN105324765 B CN 105324765B CN 201380076634 A CN201380076634 A CN 201380076634A CN 105324765 B CN105324765 B CN 105324765B
Authority
CN
China
Prior art keywords
data
memory block
group membership
group
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201380076634.9A
Other languages
English (en)
Other versions
CN105324765A (zh
Inventor
K.钱德拉塞克哈兰
P.T.坎布尔
A.托德
S.佩利
D.M.巴瓦特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN105324765A publication Critical patent/CN105324765A/zh
Application granted granted Critical
Publication of CN105324765B publication Critical patent/CN105324765B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种技术包括向对象被分布在其上的多个存储区中的至少一些存储区传送与对象相关联的第一数据的样本的签名,以及响应于所述传送,接收指示存储在多个存储区中的相应至少一些存储区上的样本的数目的响应,以及至少部分地基于存储区上的数据存储的模式和所述数目来调节与第一数据相关联的去重复数据被存储在多个存储区中的哪个存储区上。

Description

选择用于去重复数据的存储区
背景技术
为了如果数据变为被损坏、被盖写、经历病毒攻击等则将网络上的数据(例如,包含在一个或多个文件中的数据)恢复成先前状态的目的,典型的计算机网络可以具有备份和恢复系统。备份和恢复系统典型地包括大容量存储设备,诸如磁带驱动器和/或硬驱动器;并且该系统可以包括物理和/或虚拟可移除存储设备。
例如,备份和恢复系统可以将备份数据存储在磁带上,并且在将备份数据转移到给定磁带之后,磁带可以从其带驱动器移除并且被存储在安全位置,诸如防火保险柜中。备份和恢复系统可以替代地是基于虚拟带库的系统,其模拟并且替代物理磁带驱动系统。以该方式,利用基于虚拟带库的系统,虚拟带盒(cartridge)代替磁带来存储备份数据。
附图说明
图1是根据示例性实现方式的计算机网络的示意图。
图2是根据示例性实现方式的数据存储系统的图示。
图3和图4是根据示例性实现方式的由图2的数据存储系统使用来选择组成员以接收去重复数据的竞价(bidding)过程的图示。
图5是根据示例性实现方式的跨多个组成员的成组(teamed)对象的存储分布的图示。
图6是描绘根据示例性实现方式的用于将成组对象存储在组成员的集群上的技术的流程图。
图7、图8A和图8B是描绘根据示例性实现方式的用于选择用于存储去重复数据的组成员的技术的流程图。
图9是描绘根据示例性实现方式的用于取回(retrieval)和报告部分成组对象数据的技术的流程图。
图10是用于图示根据示例性实现方式的从组成员取回成组对象数据的表。
图11是描绘根据示例性实现方式的用于在组成员之中分布主对象清单的技术的流程图。
图12是根据示例性实现方式的主对象清单的分布的图示。
图13是根据示例性实现方式的对重复数据的组成员控制的复制的图示。
图14是根据示例性实现方式的非水合复制过程的图示。
具体实施方式
参考图1,示例性计算机网络100可以包括备份和恢复系统,所述备份和恢复系统包括在相应服务器110(作为示例在图1中描绘为服务器110-1、110-2…110Q)上执行的备份应用132和附属客户端应用134。以该方式,备份应用132时常向附属客户端应用134标识数据以在网络100的备份存储设备上备份。该数据进而根据本文称为“对象”的数据容器而被划分。存储在备份存储区(store)上的给定对象逐个备份会话地被创建、删除和修改。如本文公开的,在本文讨论的其许多功能之中,客户端应用134被构造为标识对象数据中的改变;选择其上存储有更新的数据的存储区;并且将更新的数据传送到所选择的存储区。
作为示例,“存储区”可以是独立的计算机系统或相同计算机系统上的独立存储子系统。对于图1的具体示例,存储区在各个节点150上形成(作为示例在图1中描绘为P个节点150-1、150-2…150P),其经由网络连接140(取决于特定实现方式,局域网(LAN)连接、基于因特网的连接、广域网(WAN)连接、这样连接的组合等)耦合到服务器110。
如本文公开的,给定对象作为“成组对象”被存储在存储区的集群或群组上。由于成组的性质,“存储区”在本文中也被称为“组成员170”。以该方式,根据示例性实现方式,针对给定“成组对象”的每个组成员170存储针对该对象的“去重复数据”,其中,所述去重复数据是从初始数据集合形成的数据连同表示初始存储的数据中的改变的数据。这样,可以从针对给定的成组对象的组成员170取回去重复数据以“再水合(rehydrate)”或重构该对象。
通常,服务器110是由实际硬件120和实际机器可执行指令或“软件”130组成的物理机。在这方面,给定服务器110可以包括这样的硬件120,如一个或多个中央处理单元(CPU)122、存储器124、网络接口126等。通常,存储器124是非临时性存储器,诸如磁存储、光存储、从半导体器件形成的存储等。存储器124可以本地存储用于服务器110的数据,以及存储在由(一个或多个)CPU 122执行时使得(一个或多个)CPU提供机器可执行指令130的一个或多个组件的指令。
如图1所示,机器可执行指令130包括备份应用132和客户端应用134、以及创建、修改和删除对象的其他可能的其他应用。
给定组成员170可以在处理节点150上形成,处理节点150也是由实际硬件158和实际机器可执行指令159组成的实际物理机。硬件158作为示例可以包括一个或多个中央处理单元(CPU)160、网络接口和存储器162。存储器162是非临时性存储器,并且取决于特定实现方式可以是基于磁存储的存储器、基于光存储的存储器、基于半导体存储的存储器等。节点150可以包括机器可执行指令159,机器可执行指令159包括例如组成员客户端应用168。
因此,根据示例性实现方式,存在于可能多个节点150上的组成员170的集群或群组可以形成针对给定成组对象的存储。此外,虽然本文中描述为存在于不同的节点150上,但是根据另外的实现方式,给定的成组对象可以被存储在独立的组成员上,其中两个或更多个组成员位于相同节点150上。因此,预计到在所附权利要求的范围内的许多实现方式。
结合图1参考图2,根据示例性实现方式,成组对象208可以向给定客户端应用134呈现为单个逻辑对象,但是针对对象208的数据被分布在组成员170的群组或集群上。成组对象的该逻辑呈现向应用提供单个存储池,其横跨集群内的原本(otherwise)独立的存储池。
根据一些实现方式,客户端应用134不在本地存储关于给定成组对象的内容的任何信息。这允许多个客户端应用134,并且因此多个备份应用132同时访问相同成组对象,并且还避免产生特定客户端应用134和所存储的数据之间的相关性。
如本文进一步公开的,为了简化与现有备份应用的集成,每个组成员170可以知道给定成组对象的其他组成员170,并且可以向客户端应用134指示其位置。这允许备份应用132连接到组成员170中的任何一个,并且还允许客户端应用134静默地开放与所有组成员170的连接。这可以帮助避免暴露复杂配置,并且允许在备份应用132内的成组对象的管理,其可以例如被设计有单端点拓扑。
因为给定的成组对象涉及多个独立操作的组成员170,根据一些实现方式,客户端应用134将来自多个组成员170的信息合并成被传送到附属备份应用132的有意义的信息。以该方式,根据一些实现方式,给定的组成员170可以存储单独的列表、数据作业记录、拷贝作业记录等,给定的客户端应用134可以将其合并成针对备份应用132的有意义的信息。对于在列表中返回的许多字段,客户端应用134提供来自跨组成员存储区的所有返回值的汇总,例如所存储的用户数据量。对于其他字段,客户端应用134可以将单独的状态“包封”成总体状态,诸如例如(一个或多个)最严重的状态。
当客户端应用134执行跨组成员170中的每一个的列表操作时,不保证在列表中的条目的绝对次序。例如,可以实际上同时创建两个成组对象,并且对于给定的组成员170,可以首先存储对象一,而在另一给定其他组成员170上,可能已经首先创建了对象二。为了向备份应用132提供单个稳定列表的目的,使用通用标识,并且使用列表操作来在查找关联记录的合理时间窗内跨存储进行搜索。通过具有在其内运行搜索的基于时间的窗口,可以避免下述情况,其中,每当成员170查找条目时就搜索整个数据库,这在某些情况下可能甚至不存在。作为示例,时间窗可以是在近似5分钟范围内的时间窗,但是该窗口可以取决于特定配置和/或实现方式而变化。
如图2所示,虽然给定的分布式成组对象208可以被分布在多个组成员170之间,但是给定的客户端应用134具有单个对应对象的逻辑视图,其允许每个组成员170可能执行不同版本的应用软件。这允许用户对其软件执行滚动更新,而不必关心跨所有组成员170维护一致的软件版本。在其中软件的能力在组成员170之间不同的情况下,客户端应用134假定来自跨组成员170的最小能力。
根据示例性实现方式,为了实现跨多个独立组成员170的可接受的去重复性能的目的,使用竞价技术,其具有以下目标:将类似的数据发送到相同组成员并且跨其余组成员170对新的未匹配数据进行负载平衡。在该竞价技术中,对于给定的数据单元(例如数据段),客户端应用134向组成员170请求竞价,从组成员170接收对应竞价响应,基于响应来选择组成员170中的一个,并且向所选择的组成员170传送针对该数据单元的去重复数据。此外,如上进一步所述,客户端应用134可以调节何时使用和不使用竞价。
作为更具体的示例,结合图1参考图3,根据一些实现方式,根据图3的图示300,为了对数据的存储进行负载平衡的目的,客户端应用134对传入数据310进行处理以被备份。客户端应用134在缓冲器312中接收传入数据310。以该方式,缓冲器312取决于特定实现方式而存储给定的数据段314或多个数据段314。不论存储如何,都以下述方式处理每个数据段314。
客户端应用134的分块(或者组块)模块316将数据段314变换成对应组块318。例如,根据一些实现方式,分块模块316可以将两个阈值应用于除数(TTTD)可变分块算法,其产生近似4千字节(kB)的平均组块。根据其他实现方式,可以使用其他分块算法。通常,分块算法可以提高隔离在连续备份内的同样组块的可能性,其中,组块的绝对位置可能已经移动。
接下来,客户端应用134使用做散列(hashing)(或散列(hash))模块320来确定针对组块318的对应数字签名或散列324。作为示例,根据示例性实现方式,做散列模块320可以针对每个组块318生成SHA-1散列8,但是根据另外的实现方式,可以使用其他散列。通常,给定散列324用作针对关联组块318的合理的特定“指纹”;并且,平均来说,与组块318的大小相比,散列324的尺寸可以相对小(例如,组块318的大小的近似0.5%)。因此,散列324准许相对容易的低带宽的方式来标识关联组块318。根据示例性实现方式,散列模块320确定针对对应组块318的散列324,并且向客户端应用134的做竞价(或竞价)模块330发送该散列134的列表或使其可用。
根据示例性实现方式,做竞价模块330向针对成组对象的组成员170中的每一个传送334散列的稀疏索引。换言之,根据一些实现方式,做竞价模块330向组成员170传送散列324的样本的统计上代表性集合。图3图示了接收散列的稀疏索引的组成员170的一个这样的示例。
应当注意,根据一些实现方式,做竞价模块330可以向每个组成员170传送针对给定数据段314的所有散列324。然而,根据示例性实现方式,用于匹配的单个相对大的散列列表可能是不实际的。在这方面,用于每个4kB平均大小的组块的20字节的SHA-1散列意为针对每个一太字节(TB)的唯一(unique)数据的5吉字节(GB)的存储器。相反,稀疏散列索引334包含统计上选择的散列子集,使得这些散列充分表示组块318,同时共同具有显著更小的大小(例如,在所有散列的大小的1%到10%之间)。当散列的一部分被传送到用于匹配的给定的组成员170时,该组成员170确定匹配的对应散列的数目。
以该方式,根据一些实现方式,每个组成员170如下评估匹配并且对稀疏索引进行响应。组成员170包括竞价匹配(或匹配)模块370,其将稀疏索引与存储在组成员170中的数据的散列的列表进行比较。成功的稀疏索引匹配可以被称为“钩(hook)”,因为在例如组成员170的随机存取存储器(RAM)中保存稀疏索引,并且这样,稀疏索引查找在系统资源方面可能相对“便宜”。
如果该竞价匹配模块370标识稀疏索引中的一个或多个钩,则根据示例性实现方式模块370可以执行更详细的匹配,涉及读取由稀疏索引钩指向的盘上清单。因为该后一步骤涉及相当缓慢的盘搜寻(disk seek),所以这可能是相对昂贵的过程。为了减轻盘搜寻的使用,根据示例性实现方式,以基于将被找到的额外匹配的期望数目的某个优先次序来读取盘上清单,其中某个停止条件在存在许多钩时被应用以在去重复方面的相对小的减小为代价来使性能保持下去。
通过向客户端应用134提供查询稀疏散列索引的方法,该稀疏索引钩计数可以用于确定给定组成员170匹配组块318的概率。
除了稀疏索引钩计数之外,诸如存储容量和存储利用(作为两个示例)之类的关于组成员170的其他信息也可以被传送回客户端应用134作为竞价响应的一部分。然后,该信息可以由客户端应用134使用以作出关于为了路由针对段314的所有剩余的散列和后续去重复数据的目的而要选择哪个组成员170的决定。
因此,根据一些实现方式,竞价涉及客户端应用134的做竞价模块330向每个组成员170的竞价匹配模块370传送334散列的稀疏索引。然后,竞价匹配模块370向客户端应用134的路由器(或路由)模块340传送竞价响应374。作为示例,根据示例性实现方式,路由器模块340可以从竞价匹配模块370接收374一个或多个匹配。路由器模块340基于来自组成员170的类似响应来确定哪个组成员170要接收针对段314的数据的去重复组块318。
在路由器模块340已经选择了特定组成员170(对于该示例,假定是图3的组成员170)之后,路由器模块340向组成员170的做匹配(matching)(匹配)模块380传送或发送342针对数据段314的组块318的所有剩余散列。做匹配模块380将组块318的所有散列与存储在组成员170上的数据的对应散列进行比较。做匹配模块380向客户端应用134的压缩(或压缩)模块344传送384匹配。以该方式,匹配向压缩模块344告知关于唯一组块318,即未被存储在组成员170上的组块318。作为响应,压缩模块344执行去重复以向组成员170的存储模块390传送或发送350唯一组块(例如,改变的数据的组块),其向组成员170提交新的块。
常规竞价的目的是将类似的数据组块路由到相同组成员170。应当注意,每当作出决定以改变组成员170时,路由到新的组成员的段可能对总体去重复比具有负面影响。这是由于数据段边界不与去重复段边界对准的相对高的可能性导致的,并且因此,一些重复数据可能被再次存储。在以下进一步描述的过程中,因此,数据流的碎片可能是以使对去重复比的减少最小化的方式控制的某物。
图4描绘了当在竞价过程中没有选择给定组成员170时发生的通信的图示400。在这方面,响应于稀疏散列索引的传送334,组成员170的竞价匹配模块370传送竞价响应374,其对于该示例不是获胜竞价。因此,对于该示例,路由器模块340向组成员170的跳过模块420发送或传送410跳过消息,由此向组成员170告知针对该特定数据段314绕过成员170。
结合图1参考图5,当备份应用132创建给定的成组对象500时,客户端应用134使得对应对象520(对象520-1、520-2、520-3、520-4,在图5中作为示例示出)被存储在对应的组成员170上。成组对象500的数据项318被分布在组成员170之中以形成对应对象520。例如,在成组对象500中,成组对象500的数据项318-A对应于对象520-1的数据项318-A,而成组对象500的数据项318-F对应于对象520-4的数据项318-F。如从图5中可以看出,根据示例性实现方式,针对给定成组对象的数据可以以不同于数据出现在成组对象中的次序的次序而分布在给定组成员170上,由于本地排序被留给单独的组成员170去做。如图5中所示,每个对象520可以包含不是成组存储区的一部分的数据550。因此,组成员170可以跟踪包含针对给定成组存储区的数据的区域以及针对不是给定成组存储区的部分的数据的区域。
因此,参考图6,根据示例性实现方式,技术600包括向多个组成员或存储区传送(框602)组块散列(例如组块散列的列表),并且从存储接收(框604)指示存储区中的关联块的分布的响应。如上所述,在示例性实现方式中,该列表可以是散列的稀疏列表。至少部分地基于所述响应来选择(框606)存储区,并且根据框608,将去重复数据传送到所选择的存储区。
根据一些实现方式,为了组成员170被考虑用于获胜竞价,组成员170首先满足匹配某个数目的关键散列高于某个阈值的准则。以该方式,根据示例性实现方式,这样的技术默认为将数据路由到“粘性”组成员,即, 路由“粘(stick)”到“粘性组成员”,直至超过该阈值为止。通过在匹配没有高于某个阈值时针对若干数据段314保持或粘到组成员170,主要具有新数据(本文称为“播种数据”)的许多时间连续的段被路由到相同组成员170。向相同组成员170播种大的连续区域可以帮助改进未来备份中的总体去重复比。这是因为,对于未来备份,备份流内容可能在一定程度上变化,并且因此段可能被不同地对准。
因此,如果段被播种到针对每个数据段314不同的组成员170,则后续备份流中的段314可以具有横跨两个组成员170的组块。在相对长的连续粘性区域的情况下,去重复可能在区域的结束处,而不是在该区域内的每个段边界处丢失(由于该区域中的所有数据都被存储在相同组成员170中)。因此,如果所有数据在备份中被路由到单个组成员170,则可以预期高去重复比。然而,这样的技术可能对跨组成员170的容量平衡没有帮助。因此,粘性阈值可以被选择得足够小以能够“粘到”另一组成员170,通常足以跨所有组成员170播种,但是粘性阈值足够大以保持未来的去重复比相对较高。
因此,参考图7,根据示例性实现方式,通常可以采用技术700。根据技术700,向多个组成员170或存储区传送(框702)组块散列的列表。从存储区接收(框704)响应,其中,每个响应指示匹配的数目。该技术包括至少部分地基于匹配数目与阈值(诸如上述“粘性阈值”)的比较来选择(框706)存储区。然后,将去重复数据传送(框708)到所选择的存储区。
去重复可以在从相同系统的备份之间执行,而不是在系统之间执行,使得当系统首次被备份时,可以存储来自该系统的相当大量的组块数据。首次备份在本文中被称为“播种”,并且初始数据在本文中被称为“播种数据”。为了避免播种期间的过度区域碎片的目的,可以使用“粘性路由”技术。通常,粘性路由尝试在相对大的连续区域(例如,大约几十吉字节(GB)的区域)中跨组成员170使播种数据成条(stripe),但是如果组成员170可以使其去重复得足够好,则该技术仍然将数据段路由到其他组成员170。
对于给定的数据段竞价,如果没有组成员170具有高于给定阈值(本文称为“竞价阈值”)的钩匹配计数,则不存在“竞价获胜者”。该阈值可以是固定阈值或者可以是基于在备份期间获得的反馈而变化的阈值。如果没有竞价获胜者,则对应数据段包含播种数据,使得数据段被路由到当前播种组成员170。
根据一些实现方式,在备份开始时,客户端应用134可以使用随机或伪随机选择技术来选择初始播种组成员170。这可以避免其中创建成组存储区并且同时开始的全部第一晚的备份被播种到相同组成员170的情况。在写入固定量的数据之后,可以基于容量利用来选择新的播种组成员170(例如,具有最多空闲盘空间的组成员170)。当应用134存储播种数据时,该技术跨组成员170平衡盘使用。
参考图8A,根据示例性实现方式的技术800包括向至少一些存储区传送(框802)与对象相关联的数据的样本的签名;以及响应于所述传送,接收(框804)指示存储在相应存储区上的样本的数目的响应。该技术800还包括至少部分地基于存储区上的数据存储的模式和数目来调节(框806)与第一数据相关联的去重复数据被存储在哪个存储区上。
作为更具体的示例,图8B描绘了根据示例性实现方式的技术850。根据技术850,向多个组成员或存储区传送(框852)组块散列的列表;并且从存储区接收(框854)响应,其中每个响应指示匹配的数目。技术850包括确定(判定框860)是否已经超过竞价阈值。如果不是,则所述数据段是播种数据,并且向当前播种组成员170传送(框862)所述数据段。
否则,如果作出(判定框860)已经超过了竞价阈值的确定,则该技术850包括确定(判定框864)当前竞价获胜者是否是与紧接在前面的竞价获胜者相同的竞价获胜者。如果是这样,并且如果竞价获胜者是除了当前选择的组成员之外的组成员(如判定框868中确定的),则根据框870,重新路由发生并且数据段被路由到当前竞价获胜者。否则,如果在判定框864中作出了当前竞价与先前竞价获胜者不同的确定,或者如果根据判定框868作出重新路由不发生的确定,则根据框866,向当前所选择的组成员传送该数据而不重新路由。
根据另外的实现方式,客户端应用134可以至少部分地基于未来竞价活动的预测来选择性地暂停(suspend)竞价(和散列的传送)。例如,客户端应用134可以预测 “通量(flux)”区域何时存在,其中时间连续数据段314将结束在针对这些数据段314作出竞价的情况下被路由到不同组成员170。根据示例性实现方式,当应用134预测到通量区域时,客户端应用134可以暂时暂停竞价过程。
例如,根据示例性实现方式,可以基于针对当前备份会话的历史窗口中的统计和/或可测量因素的数目来预测通量区域。因素可以包括对这样的准则的测量,如竞价获胜者先前已经改变的次数、与竞价失败者一起看到的匹配的数目、与竞价获胜者一起看到的匹配的数目以及写入当前竞价获胜者的数据量。使用从这些测量得到的计算的概率,客户端应用134可以针对某个数目的时间连贯的数据段314选择不执行竞价操作,并且替代地继续将数据段314路由到当前获胜者,而不执行针对这些段314的竞价。
根据示例性实现方式,使用应用134的客户端侧代码库来在命令或数据会话的基础上执行对成组对象的所有访问。客户端库可以被给予成组存储区中的任何组成员170的地址,与之连接并且找到所有其他组成员170的地址。客户端库还可以连接到其他组成员170,由此建立命令或数据会话。然而,所有的组成员可能不可用于给定会话。可以向客户端应用库的用户报告回在该会话中连接成功连接到的组成员170,使得用户可以决定用户是否想要继续该会话。
客户端应用134用作存储在组成员170中/从组成员170取回的信息的聚合器。通过允许与组成员170的子集建立会话,向客户端应用134库的用户呈现视图(经由例如图形用户接口(GUI)136(参见图1)),所述视图详述跨组成员170可用的信息的子集。
例如,当列出给定成组对象时,可能已经跨组成员A、B和C创建(和划分)成组对象,因为那些组成员可能已经例如是在开放命令会话时可用的组成员。如果对组成员B、C和D开放的命令会话上的该成组对象的列表被创建,则可用于组成员B和C中的对象的信息被聚合并且被呈现给客户端库,其中不呈现针对组成员A的信息。
当列出成组对象时,客户端应用134报告组成员被创建在哪个组成员170上以及组成员最后在哪个组成员170上被修改。如果对其开放当前命令会话的组成员170的集合与对象在其上被创建的集合以及对象最后在其上被修改的集合不同,则客户端应用134向用户强调对象的不完整视图正被呈现。利用该信息,用户可以决定如何解释该列表。
因此,参考图9,根据示例性实现方式,技术900包括尝试(框902)开放与所有组成员170的通信,所有组成员响应于对访问对象的请求而共同地存储针对给定分布式成组对象的数据。如果作出(判定框904)所有组成员170在对象针对其被创建和修改的会话中不存在的决定,则该技术900包括注释(框906)(一个或多个)不存在的组成员。然后根据框908来取回针对成组对象的可用组块。如果作出(判定框910)降级(degraded)信息被报告的确定,则技术900包括报告(框912)关于取回的数据的降级状态的信息,包括标识对象如何是不完整的。利用该降级信息,如果有的话,根据框914,报告结果。
根据示例性实现方式,客户端应用134在聚合多个成组对象的列表时也使用该信息。挑战涉及如何通过将来自组成员170的结果的页面缝合(stitch)在一起(有效地为加窗的多路径合并)来向用户呈现列表结果的页面。为了以高效的方式执行这一点,客户端应用134使针对向用户呈现的每个结果页面从每个组成员取回的结果的页面的数目最小化。
特别地,根据示例性实现方式,客户端应用134使用其从每个组成员170接收的以下三项信息:1.)针对每个成组对象(或成组数据作业)的组范围的唯一标识(ID),使得从每个组成员170返回的记录与相同的成组实体相关(尽管标识符不一定具有任何暗示的时间排序);2.)每组成员唯一标识符,其是基于在该组成员上创建的成组实体的分区的创建时间来排序的(例如,本地组成员数据库行标识);以及3.)针对在该组成员上创建的成组实体的该分区的创建时间戳。应当注意,在足够紧密以允许使用时间戳的容限内,组成员170上的时钟被同步或者被时间对准。例如,根据一些实现方式,可以使用客户端的网络时间协议(NTP)同步。
非有序组范围唯一标识允许客户端应用134标识跨组成员170匹配的记录,即标识“缝合点”。有序的每组成员唯一标识符允许客户端应用134从每个组成员170取回结果的下一页面/前一页面,并且因此,实现针对每个组成员170的前进/后退滑动窗,这可以被用于多波合并操作。创建时间戳允许客户端应用134决定客户端应用需要向下搜索每个组成员的结果多远以找到缝合点。
作为更具体的示例,图10描绘了从组成员1(经由列1010中描绘的页面)、组成员2(经由列1012中描绘的页面)和组成员3(经由列1014中描绘的页面)取回的页面。来自组成员的结果在页面边界1030和1032处被分离。图10还描绘了结果的列1020。对于以下示例,客户端应用134从每个组成员170取回被定时的多达两个组成员对象的页面,并且在结果列1020中向用户返回被定时的两个成组对象的页面。
更具体地,为了返回结果(A,B)的第一页面,客户端应用134从组成员1读取一个结果页面,其包含前两个对象(按跨组创建时间的次序):A和B;从组成员2读取两个结果页面;并且从组成员3读取两个结果页面。对于该示例,成组对象B和C实际上是在相同时间从两个不同的客户端创建的;但是由于定时差异,在组成员1对组成员2上以不同的次序创建成组对象B和C。因为这样,为了确定针对成组对象B的记录是否可以被找到的目的,来从组成员2读取额外的结果页面。客户端应用134知道存在针对成组对象B的记录,由于记录组成员1在其中具有关于成组对象在哪些组成员上创建的信息。此外,客户端应用134知道,来自组成员2的返回结果的第一页面仍然在创建的成组对象周围,所以客户端应用确定加载额外页面以找到它是实际的。
对于结果的第一页面,组成员3的结果不包括针对成组对象B的记录。为了返回结果(C,D)的第二页面,客户端应用从组成员1读取结果的一个另外的页面,其包含接下来的两个对象:C和D。此外,对于结果的该第二页面,如果针对每个组成员170高速缓存两个或三个页面,则不从组成员2读取另外的页面,由于对象C和D的信息在已经高速缓存的两个页面中可得到。从这些高速缓存的结果,客户端应用134知道其将不能针对组成员3找到成组对象C或D的记录。
为了返回结果(E,F)的第三页面,客户端应用134从组成员1读取结果的一个另外的页面,其包含接下来两个对象:E和F。客户端应用还从组成员2另外读取结果的一个页面,其包含接下来的两个对象:E和F。不针对组成员3取回另外的结果页面,由于对象E(被高速缓存)在第一页面中。此外,客户端应用134知道其将不会从针对组成员1的记录中的创建信息找到针对组对象F的记录。
为了返回结果(X,Y)的第三页面,客户端应用134读取以下,不从组成员1取回另外的结果页面(即,已经达到末尾);不从组成员2取回另外的结果页面(即,已经达到末尾);并且从组成员3取回一个另外的结果页面,其包含接下来的两个对象:X和Y。
为了返回结果(Z)的第四页面的目的,客户端应用134读取以下。没有来自组成员1的另外的结果页面(即,已经到达末尾);没有来自组成员2的另外的结果页面(即,到达末尾);以及来自组成员3的一个另外的结果页面,其包含接下来的对象:Z。
根据示例性实现方式,针对每个成组对象创建和维护清单。通常,本文中称为“对象清单”的清单描述了在组成员之中存储的针对给定成组对象的数据的细节。以该方式,清单允许系统跟踪分布的单独的数据项并且将其合并成一个粘合的(cohesive)成组对象。根据本文公开的示例性实现方式,对象清单被分布在组成员170之中。
更具体地,参考图11,根据示例性实现方式,技术1100包括:在多个组成员170或存储区上存储(框1102)针对对象的去重复数据,以及分布(框1104)描述存储区之中的成组对象的存储的清单。以该方式,针对每个存储区,技术1100包括存储(框1106)用于清单的数据,该清单描述了在该存储区上组块的存储。
与单个主清单不同,在组成员170之间分布对象清单可以帮助避免单点故障。换言之,在单个清单的情况下,清单可能变为丢失或损坏,这可能使成组对象无用,不论底层数据对象的状态如何。然而,通过分布对象清单,每个组成员的对象清单(总体分布式对象清单的一部分)是完整地自我描述的。换言之,每个组成员170具有其数据组块在较大成组对象内适合哪里的知识。通过以该方式存储分布式数据,在可以增加鲁棒性、冗余性和灵活性的同时,可以减小开销。
参考图12,根据示例性实现方式,通过分布存储在单独的组成员170上的成员清单1240(图12中作为示例针对四个相应组成员170描绘成员清单1240-1、1240-2、1240-3和1240-4)来创建主清单1200。每个成员清单1240进而包括条目,其中每一个条目描述针对存储在组成员上的关联的成组对象的组块。例如,对于图12的示例的组成员1,成员清单1240-1包含多个条目1244(作为示例 ,图12中所示的条目1244-1和1244-2),其描述了对应组块的存储。继续该示例,组成员节点2、3和4分别存储对应条目1246、1248和1250。条目1244、1246、1248和1250共同地形成主清单1210的条目1220。
因此,如图12所示,主清单1210包括各种条目1220(在图12中作为具体示例描绘的条目1220-1、1220-2、1220-3和1220-4),其对应于跨组成员分布的条目。
通常,每个条目(其中“条目”指存储在组成员上或作为成员清单1240的一部分收集的条目)包含四个信息字段:1.)第一字段,指定关联的数据组块在成组对象中驻留在哪里; 2.)第二字段,指定数据块在成员对象中驻留在哪里; 3.)第三字段,指示组块的大小(例如,以字节为单位);和4.)第四字段,包含标识关联组块被存储在其上的特定组成员的数据。
因此,如图12所示,利用分布式主清单1200,每个组成员170包含仅描述了成员本地存储的组块的成员清单1240。
与主清单1210的给定条目1220相对,对应成员清单条目包含较少的信息。例如,与主清单条目1220相比,成员清单条目不标识节点,由于存储在组成员上的所有数据具有相同的节点标识符。替代地,字段被添加到组成员的对象存储区,所述字段描述了哪些组成员构成了成组对象的总体组。这具有以下的附加益处:允许组成员能够联系其他组成员中的任何一个以找出哪些组成员存储针对给定成组对象的数据。此外,不存在成员清单条目中的成员偏移。在这方面,组成员仅使用成组偏移,由于关于如何存储其数据取决于组成员。
在写入操作期间,每个组成员170在其成员清单1240中记录其拥有的数据区域以及对应组块驻留在哪里。当针对特定读取操作重构组触媒(catalyst)组块时,可以使用竞价概念的推论。另一消息可以被添加到该协议,使得客户端应用134可以从每个组成员中取回关于针对给定成组对象存储的数据组块(例如,偏移和大小)。
因此,本文公开的方法联合出组成员之中的给定成组对象的主清单连同用户数据,由此排除将主清单存储在其他位置的单个位置处。联合的方法可以帮助使用较少的协议消息来用于读取操作,并且根据示例性实现方式,没有附加消息用于写入,由于清单与每个组成员170上的数据紧密耦合。
此外,对象的主清单的丢失可能会导致整个对象的丢失,而单独的成员清单的丢失可能导致对象的仅部分丢失。此外,本文描述的方法避免了添加冗余,因为冗余可能是相对复杂的。例如,冗余主清单将跟踪每个冗余组块被存储在哪里。而且,如果主清单被存储在多于一个的位置,则每个清单将被与彼此同步。考虑到其中清单副本中的一个变为“毁坏”的情况,在确定性地确定哪个或哪些其他副本是“好的”副本中存在重大挑战。如果主清单完全丢失或毁坏,则可能无法对其重构。此外,从现有分布式对象添加或移除组成员可能是有挑战性的。
一种用于增加存储的数据的冗余的方式是将每个组块存储在多于一个的组成员170中。客户端应用134可以使用竞价过程来选择存储最高的两个竞价(作为示例)而不是最高的一个。这将意味着每个区域可以被多于一次地存储,并且总是在多于一个服务器110上,但是不利于总体去重复性。如果在一个组成员170上数据丢失,则仍然可以从剩余组成员对象重构成组对象。对象的先前冗余水平可以通过读回剩余组成员的清单、在充足冗余内标识区域并且然后向新的组成员对象写入量来复原。使用该方法,冗余可以以相对小的关联系统开销来实现。
为了迁移的目的,最终用户可能希望将组成员170对象迁移到不同节点,其中最终目标为将对象存储在不同的盘集合上以释放原始节点150上的空间。利用分布式成员清单方法,组成员170上的对象的额外副本可以从作为迁移目标的新的组成员170迁移和存储在其上。下一个步骤是更新参与该分布式对象的存储的组成员170的列表,以移除旧的组成员170和添加新的组成员170。
最终用户可能想要添加或移除特定组成员。这些操作可以使用类似于上述的迁移的机制以及通过运行从一个或多个组成员的一个或多个数据写入作业来执行;并且此外,在所有节点之中更新参与方的列表。
如果客户端应用134为了冗余而将用户数据区域存储在多个组成员组块中,这为客户端应用134提供了以下机会:即基于每个组成员170在其对“对于该块区,你拥有哪些区域”消息的响应中返回服务器负载信息来选择可以从其读取用户数据的组成员170。
根据示例性实现方式,备份应用132可以控制通过相对低带宽的连接将数据从一个组成员170复制到另一组成员170。以该方式,根据示例性实现方式,每个组成员170包括拷贝作业引擎1310和客户端应用1320,如图13所示。每个组成员170上的拷贝作业引擎1310被构造为经由客户端应用1320的其自己的实例来访问成组对象中的任何组块。这允许在目的地成组存储区不与原始组存储区具有相同数目的组成员170或相同组成员中的任何一个情况下,组成员170中的任何一个执行到另一组成员170的拷贝操作,从而提供跨产品文件(portfolio)的复制不可操作性。因此,如图13所示,给定组成员170上的给定拷贝作业引擎1310可以使用相对低带宽的连接1350来复制第一成组对象1370(存储在组成员170-1、170-2和170-3上),以形成对应的不同组对象1372,如图13所示,其可能已经被存储在组成员170的不同分组(即,对于该示例,两个组成员170-4和170-5)上。
为了避免在复制拷贝期间的数据的再水合的目的,根据一些实现方式,客户端应用134提供用于非水合读取和写入数据路径的应用编程接口(API)。以该方式,非水合读取包括读取散列和唯一组块数据,其中为了获悉从何处读取数据的目的客户端应用内部地处理从每个组成员获取区域信息。非水合写入操作包括匹配散列和存储唯一组块,其中客户端应用134内部地处理竞价和路由。
图14图示了涉及源客户端应用1410、关联拷贝作业引擎1420以及目标触媒应用1430的非水合拷贝1400。对于拷贝的每个部分(例如,10兆字节(MB)选择),拷贝引擎1420向源客户端应用1400请求1440散列的清单,并且将这些散列发送1450到目标1460以被匹配。目标1460用针对其而请求组块数据的未匹配散列的列表来进行响应1470。然后,拷贝引擎1420向源客户端应用1435请求1480这些唯一组块,接收1486未匹配组块,并且然后将其发送1488到目标1460以被存储。
虽然本文已经公开了有限数目的示例,但是可以从其领会到许多修改和变型。意图在于所附权利要求涵盖所有这样的修改和变型。

Claims (13)

1.一种方法,包括:
向对象被分布在其上的多个存储区中的至少一些存储区传送与对象相关联的第一数据的样本的签名;
响应于所述传送,接收指示存储在多个存储区中的相应至少一些存储区上的样本的数目的响应;以及
至少部分地基于存储区上的数据存储的模式和所述数目来调节与第一数据相关联的去重复数据被存储在多个存储区中的哪个存储区上;
其中所述调节包括确定所述数目之一是否超过重新路由阈值;
其中所述调节还包括:当所述数目中没有任何数目超过重新路由阈值之时,所述第一数据包括播种数据;
其中所述播种数据是指初始数据。
2.根据权利要求1所述的方法,其中,所述调节包括使去重复数据的存储偏重在与所述对象相关联的最近的去重复数据被存储在其上的存储区之一上。
3.根据权利要求1所述的方法,其中,所述调节还包括:至少部分地基于第一数据是否包括播种数据而确定所述数目之一是否指示作为当前竞价获胜者和紧接在前的竞价获胜者的存储区。
4.根据权利要求1所述的方法,其中,所述调节包括:基于去重复数据是否是针对系统的初始存储的备份数据而将去重复数据存储在大体上随机选择的存储区上。
5.根据权利要求1所述的方法,还包括:至少部分地基于未来竞价活动的预测而选择性地暂停所述签名的传送。
6.根据权利要求1所述的方法,还包括:
使所述确定基于下述中的至少一个:具有最大数目的存储区改变的次数、由不具有最高数目的存储区提供的数目、最高数目以及向具有最高数目的存储区传送的数据量。
7.一种系统,包括:
包括处理器的备份应用,其指定与要备份的对象相关联的第一数据,所述对象以分布式方式被存储在多个存储区上;以及
客户端应用,用于:
响应于第一数据,向对象被分布式存储在其上的多个存储区传送第一数据的样本的签名;
从多个存储区接收指示存储在多个存储区中的相应至少一些存储区上的样本的数目的响应;以及
至少部分地基于存储区上的数据存储的模式和所述数目来调节与第一数据相关联的去重复数据被存储在多个存储区中的哪个存储区上;
其中所述调节包括确定所述数目之一是否超过重新路由阈值;
其中所述调节还包括:当所述数目中没有任何数目超过重新路由阈值之时,所述第一数据包括播种数据;
其中所述播种数据是指初始数据。
8.根据权利要求7所述的系统,其中,所述客户端应用使去重复数据的存储偏重在与对象相关联的最近的去重复数据被存储在其上的存储区之一上。
9.根据权利要求7所述的系统,其中,所述客户端应用至少部分地基于第一数据是否包括播种数据而调节第一数据被存储在多个存储区中的哪个存储区。
10.根据权利要求9所述的系统,其中,所述客户端应用将所述数目与竞价阈值进行比较,以确定第一数据是否包括播种数据。
11.一种包括存储指令的计算机可读非临时性存储介质的物品,所述指令当由所述计算机执行时使得所述计算机:
向对象被分布在其上的多个存储区中的至少一些存储区传送与对象相关联的第一数据的样本的签名;
响应于所述传送,接收指示存储在多个存储区中的相应至少一些存储区上的样本的数目的响应;以及
至少部分地基于存储区上的数据存储的模式和所述数目来调节与第一数据相关联的去重复数据被存储在多个存储区中的哪个存储区上;
其中所述调节包括确定所述数目之一是否超过重新路由阈值;
其中所述调节还包括:当所述数目中没有任何数目超过重新路由阈值之时,所述第一数据包括播种数据;
其中所述播种数据是指初始数据。
12.根据权利要求11所述的物品,所述存储介质存储指令,所述指令当由所述计算机执行时,使得所述计算机至少部分地基于第一数据是否包括播种数据来调节第一数据被存储在多个存储区中的哪个存储区。
13.根据权利要求12所述的物品,所述存储介质存储指令,所述指令当由所述计算机执行时,使得所述计算机将所述数目与竞价阈值进行比较,以确定第一数据是否包括播种数据。
CN201380076634.9A 2013-05-16 2013-05-16 选择用于去重复数据的存储区 Expired - Fee Related CN105324765B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/041369 WO2014185916A1 (en) 2013-05-16 2013-05-16 Selecting a store for deduplicated data

Publications (2)

Publication Number Publication Date
CN105324765A CN105324765A (zh) 2016-02-10
CN105324765B true CN105324765B (zh) 2019-11-08

Family

ID=51898728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380076634.9A Expired - Fee Related CN105324765B (zh) 2013-05-16 2013-05-16 选择用于去重复数据的存储区

Country Status (4)

Country Link
US (1) US10496490B2 (zh)
EP (1) EP2997496B1 (zh)
CN (1) CN105324765B (zh)
WO (1) WO2014185916A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2997474B1 (en) 2013-05-16 2021-10-06 Hewlett Packard Enterprise Development LP Reporting degraded state of data retrieved for distributed object
WO2014185918A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
CN105324765B (zh) 2013-05-16 2019-11-08 慧与发展有限责任合伙企业 选择用于去重复数据的存储区
CN104793902A (zh) * 2015-04-17 2015-07-22 北京赛思信安技术有限公司 一种重复数据删除系统数据存取方法
US10574751B2 (en) * 2016-03-22 2020-02-25 International Business Machines Corporation Identifying data for deduplication in a network storage environment
US10198190B2 (en) 2016-10-31 2019-02-05 International Business Machines Corporation Performance oriented data deduplication and duplication
CN108228083A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于数据去重的方法和设备
US10754696B1 (en) * 2017-07-20 2020-08-25 EMC IP Holding Company LLC Scale out capacity load-balancing for backup appliances
US10812374B2 (en) 2018-09-21 2020-10-20 Cisco Technology, Inc. Segment routing with fast reroute for container networking
US10733158B1 (en) * 2019-05-03 2020-08-04 EMC IP Holding Company LLC System and method for hash-based entropy calculation
CN110445875B (zh) * 2019-08-16 2020-07-31 佳源科技有限公司 一种基于物联网架构的智能变电站辅助系统综合监控平台
US11803525B2 (en) 2020-09-29 2023-10-31 Hewlett Packard Enterprise Development Lp Selection and movement of data between nodes of a distributed storage system
WO2022184272A1 (en) * 2021-03-05 2022-09-09 Huawei Technologies Co., Ltd. Method for indexing a data item in a data storage system
US11663234B2 (en) * 2021-04-23 2023-05-30 Hewlett Packard Enterprise Development Lp Storage of a small object representation in a deduplication system

Family Cites Families (151)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0720085A3 (en) 1994-12-29 1997-08-27 Ibm Compression monitoring system for controlling physical memory area allocation in a logically mapped data memory
US5805919A (en) 1995-10-05 1998-09-08 Micropolis Corporation Method and system for interleaving the distribution of data segments from different logical volumes on a single physical drive
US6526418B1 (en) 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US8156074B1 (en) 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
AU2002223181A1 (en) 2000-10-18 2002-04-29 Tricord Systems, Inc. Controller fault recovery system for a distributed file system
US7827136B1 (en) 2001-09-20 2010-11-02 Emc Corporation Management for replication of data stored in a data storage environment including a system and method for failover protection of software agents operating in the environment
US7213158B2 (en) 2002-06-28 2007-05-01 Lenovo (Singapore) Pte. Ltd. Distributed autonomic backup
WO2004008348A1 (en) 2002-07-16 2004-01-22 Horn Bruce L Computer system for automatic organization, indexing and viewing of information from multiple sources
EP1537496B1 (en) 2002-09-10 2008-07-02 Exagrid Systems, Inc. Data protection system and method
US7206934B2 (en) 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network
US7007044B1 (en) 2002-12-26 2006-02-28 Storage Technology Corporation Storage backup system for backing up data written to a primary storage device to multiple virtual mirrors using a reconciliation process that reflects the changing state of the primary storage device over time
US7610348B2 (en) 2003-05-07 2009-10-27 International Business Machines Distributed file serving architecture system with metadata storage virtualization and data access at the data server connection speed
US7577806B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
US7200604B2 (en) 2004-02-17 2007-04-03 Hewlett-Packard Development Company, L.P. Data de-duplication
US20050240558A1 (en) 2004-04-13 2005-10-27 Reynaldo Gil Virtual server operating on one or more client devices
US7558012B2 (en) 2004-05-28 2009-07-07 Hitachi Global Storage Technologies Netherlands B.V. Read/write channel embedded on-chip optimization
US7269689B2 (en) 2004-06-17 2007-09-11 Hewlett-Packard Development Company, L.P. System and method for sharing storage resources between multiple files
US7299376B2 (en) 2004-08-25 2007-11-20 International Business Machines Corporation Apparatus, system, and method for verifying backup data
US7769709B2 (en) 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
EP1825372A2 (en) 2004-11-05 2007-08-29 Data Robotics Incorporated Dynamically expandable and contractible fault-tolerant storage system permitting variously sized storage devices and method
US7873782B2 (en) 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
GB2423218A (en) 2005-02-03 2006-08-16 Hewlett Packard Development Co Data storage system read/write channel optimiser which compares measured metrics of read channel with desired nominal and adjusts channel in response
US7987158B2 (en) 2005-02-09 2011-07-26 International Business Machines Corporation Method, system and article of manufacture for metadata replication and restoration
US7480238B2 (en) 2005-04-14 2009-01-20 International Business Machines Corporation Dynamic packet training
US7761875B2 (en) 2005-06-10 2010-07-20 Hewlett-Packard Development Company, L.P. Weighted proportional-share scheduler that maintains fairness in allocating shares of a resource to competing consumers when weights assigned to the consumers change
US7558859B2 (en) 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
US8862841B2 (en) 2006-04-25 2014-10-14 Hewlett-Packard Development Company, L.P. Method and system for scaleable, distributed, differential electronic-data backup and archiving
US8543782B2 (en) 2006-04-25 2013-09-24 Hewlett-Packard Development Company, L.P. Content-based, compression-enhancing routing in distributed, differential electronic-data storage systems
US8190742B2 (en) 2006-04-25 2012-05-29 Hewlett-Packard Development Company, L.P. Distributed differential store with non-distributed objects and compression-enhancing data-object routing
US7606845B2 (en) 2006-07-13 2009-10-20 International Business Machines Corporation Apparatus, systems, and method for concurrent storage to an active data file storage pool, copy pool, and next pool
JP4870495B2 (ja) 2006-08-04 2012-02-08 パナソニック株式会社 データ送信装置
US7747584B1 (en) 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
CN100403271C (zh) 2006-08-23 2008-07-16 华为技术有限公司 备份及恢复数据的方法
US20080052327A1 (en) 2006-08-28 2008-02-28 International Business Machines Corporation Secondary Backup Replication Technique for Clusters
US8510859B2 (en) 2006-09-26 2013-08-13 Intel Corporation Methods and arrangements to launch trusted, co-existing environments
US7844581B2 (en) 2006-12-01 2010-11-30 Nec Laboratories America, Inc. Methods and systems for data management using multiple selection criteria
GB2446169A (en) 2006-12-01 2008-08-06 David Irvine Granular accessibility to data in a distributed and/or corporate network
US7827192B2 (en) 2006-12-29 2010-11-02 Network Appliance, Inc. Method and system for caching metadata of a storage system
US7769971B2 (en) 2007-03-29 2010-08-03 Data Center Technologies Replication and restoration of single-instance storage pools
US7827137B2 (en) 2007-04-19 2010-11-02 Emc Corporation Seeding replication
US20080282047A1 (en) 2007-05-08 2008-11-13 Hitachi, Ltd. Methods and apparatus to backup and restore data for virtualized storage area
US8315984B2 (en) 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
US8099392B2 (en) 2007-06-08 2012-01-17 Apple Inc. Electronic backup of applications
US8060759B1 (en) 2007-06-29 2011-11-15 Emc Corporation System and method of managing and optimizing power consumption in a storage system
US20090019443A1 (en) 2007-07-12 2009-01-15 Jakob Holger Method and system for function-specific time-configurable replication of data manipulating functions
US20090063587A1 (en) 2007-07-12 2009-03-05 Jakob Holger Method and system for function-specific time-configurable replication of data manipulating functions
CN101809559B (zh) 2007-09-05 2013-10-16 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
US7873878B2 (en) 2007-09-24 2011-01-18 International Business Machines Corporation Data integrity validation in storage systems
US8099573B2 (en) 2007-10-25 2012-01-17 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
US8782368B2 (en) 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US20090164529A1 (en) 2007-12-21 2009-06-25 Mccain Greg Efficient Backup of a File System Volume to an Online Server
US7962452B2 (en) 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US7979670B2 (en) 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US8086565B2 (en) 2008-02-18 2011-12-27 Microsoft Corporation File system watcher in the presence of different file systems
US7539710B1 (en) 2008-04-11 2009-05-26 International Business Machines Corporation Method of and system for deduplicating backed up data in a client-server environment
CN102016789B (zh) 2008-04-25 2014-03-19 惠普开发有限公司 数据处理装置和处理数据的方法
US8515909B2 (en) 2008-04-29 2013-08-20 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US7934066B2 (en) 2008-04-30 2011-04-26 Netapp, Inc. Extensible application backup system and method
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US7992037B2 (en) 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US20100082700A1 (en) 2008-09-22 2010-04-01 Riverbed Technology, Inc. Storage system for data virtualization and deduplication
US20100088296A1 (en) 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
WO2010045262A1 (en) 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
US8291183B2 (en) 2009-01-15 2012-10-16 Emc Corporation Assisted mainframe data de-duplication
US8108638B2 (en) 2009-02-06 2012-01-31 International Business Machines Corporation Backup of deduplicated data
US8346736B2 (en) 2009-03-16 2013-01-01 International Business Machines Corporation Apparatus and method to deduplicate data
US7979491B2 (en) 2009-03-27 2011-07-12 Hewlett-Packard Development Company, L.P. Producing chunks from input data using a plurality of processing elements
WO2010113167A1 (en) 2009-03-30 2010-10-07 Hewlett-Packard Development Company L.P. Deduplication of data stored in a copy volume
US20100281077A1 (en) 2009-04-30 2010-11-04 Mark David Lillibridge Batching requests for accessing differential data stores
US8635184B2 (en) 2009-06-25 2014-01-21 Emc Corporation System and method for providing long-term storage for data
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
DE102009031923A1 (de) 2009-07-07 2011-01-13 Sones Gmbh Verfahren zum Verwalten von Datenobjekten
GB2471715A (en) 2009-07-10 2011-01-12 Hewlett Packard Development Co Determining the data chunks to be used as seed data to restore a database, from manifests of chunks stored in a de-duplicated data chunk store.
US9058298B2 (en) 2009-07-16 2015-06-16 International Business Machines Corporation Integrated approach for deduplicating data in a distributed environment that involves a source and a target
GB2472072B (en) 2009-07-24 2013-10-16 Hewlett Packard Development Co Deduplication of encoded data
WO2011014167A1 (en) 2009-07-29 2011-02-03 Hewlett-Packard Development Company, L.P. Making a physical copy of data at a remote storage device
US8037349B2 (en) 2009-08-28 2011-10-11 International Business Machines Corporation Data replication based on capacity optimization
US8572137B2 (en) 2009-09-08 2013-10-29 International Business Machines Corporation Data de-duplication in a distributed network
JP5508798B2 (ja) 2009-09-29 2014-06-04 株式会社日立製作所 クラスタを考慮してレプリケーションを管理する管理方法及びシステム
US8321648B2 (en) 2009-10-26 2012-11-27 Netapp, Inc Use of similarity hash to route data for improved deduplication in a storage server cluster
EP2494453A1 (en) 2009-10-26 2012-09-05 Hewlett-Packard Development Company, L.P. Sparse index bidding and auction based storage
US8311964B1 (en) * 2009-11-12 2012-11-13 Symantec Corporation Progressive sampling for deduplication indexing
KR100985169B1 (ko) 2009-11-23 2010-10-05 (주)피스페이스 분산 저장 시스템에서 파일의 중복을 제거하는 장치 및 방법
US8751448B1 (en) 2009-12-11 2014-06-10 Emc Corporation State-based directing of segments in a multinode deduplicated storage system
US9501365B2 (en) 2009-12-28 2016-11-22 Netapp, Inc. Cloud-based disaster recovery of backup data and metadata
US8281105B2 (en) 2010-01-20 2012-10-02 Hitachi, Ltd. I/O conversion method and apparatus for storage system
US8495028B2 (en) 2010-01-25 2013-07-23 Sepaton, Inc. System and method for data driven de-duplication
US8402250B1 (en) 2010-02-03 2013-03-19 Applied Micro Circuits Corporation Distributed file system with client-side deduplication capacity
US8732133B2 (en) 2010-03-16 2014-05-20 Commvault Systems, Inc. Extensible data deduplication system and method
US8442942B2 (en) 2010-03-25 2013-05-14 Andrew C. Leppard Combining hash-based duplication with sub-block differencing to deduplicate data
US8250325B2 (en) 2010-04-01 2012-08-21 Oracle International Corporation Data deduplication dictionary system
CN101820426B (zh) 2010-04-22 2012-05-23 华中科技大学 一种在线备份服务软件中的数据压缩方法
US8306948B2 (en) 2010-05-03 2012-11-06 Panzura, Inc. Global deduplication file system
US8340039B2 (en) * 2010-05-04 2012-12-25 International Business Machines Corporation Deduplicated data processing congestion control
US8935487B2 (en) 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US8694703B2 (en) 2010-06-09 2014-04-08 Brocade Communications Systems, Inc. Hardware-accelerated lossless data compression
US9401967B2 (en) 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8799238B2 (en) 2010-06-18 2014-08-05 Hewlett-Packard Development Company, L.P. Data deduplication
US9678688B2 (en) 2010-07-16 2017-06-13 EMC IP Holding Company LLC System and method for data deduplication for disk storage subsystems
GB2470497B (en) 2010-07-19 2011-06-15 Quantum Corp Collaborative, distributed, data de-duplication
US8397080B2 (en) 2010-07-29 2013-03-12 Industrial Technology Research Institute Scalable segment-based data de-duplication system and method for incremental backups
US9569134B2 (en) 2010-08-23 2017-02-14 Quantum Corporation Sequential access storage and data de-duplication
CN101908077B (zh) 2010-08-27 2012-11-21 华中科技大学 一种适用于云备份的重复数据删除方法
CN103080910B (zh) 2010-09-09 2016-06-01 日本电气株式会社 存储系统
US8335771B1 (en) 2010-09-29 2012-12-18 Emc Corporation Storage array snapshots for logged access replication in a continuous data protection system
US8578109B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
KR101429956B1 (ko) 2010-10-28 2014-08-14 에스케이텔레콤 주식회사 가상 nas를 이용한 클라우드 스토리지 서버, 시스템 및 방법
US8280860B2 (en) 2010-11-15 2012-10-02 Quantum Corporation Method for increasing deduplication speed on data streams fragmented by shuffling
US8788769B2 (en) 2010-11-16 2014-07-22 Actifio, Inc. System and method for performing backup or restore operations utilizing difference information and timeline state information
US8299944B2 (en) 2010-11-16 2012-10-30 Actifio, Inc. System and method for creating deduplicated copies of data storing non-lossy encodings of data directly in a content addressable store
US8402004B2 (en) 2010-11-16 2013-03-19 Actifio, Inc. System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8364641B2 (en) 2010-12-15 2013-01-29 International Business Machines Corporation Method and system for deduplicating data
US20120159098A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Garbage collection and hotspots relief for a data deduplication chunk store
KR20120072909A (ko) 2010-12-24 2012-07-04 주식회사 케이티 내용 기반 중복 방지 기능을 가지는 분산 저장 시스템 및 그 오브젝트 저장 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
US9639543B2 (en) 2010-12-28 2017-05-02 Microsoft Technology Licensing, Llc Adaptive index for data deduplication
US9122639B2 (en) 2011-01-25 2015-09-01 Sepaton, Inc. Detection and deduplication of backup sets exhibiting poor locality
US8589406B2 (en) 2011-03-03 2013-11-19 Hewlett-Packard Development Company, L.P. Deduplication while rebuilding indexes
US9823981B2 (en) 2011-03-11 2017-11-21 Microsoft Technology Licensing, Llc Backup and restore strategies for data deduplication
US8442952B1 (en) 2011-03-30 2013-05-14 Emc Corporation Recovering in deduplication systems
US10210169B2 (en) 2011-03-31 2019-02-19 EMC IP Holding Company LLC System and method for verifying consistent points in file systems
US9916258B2 (en) 2011-03-31 2018-03-13 EMC IP Holding Company LLC Resource efficient scale-out file systems
EP2721525A4 (en) 2011-06-14 2015-04-15 Hewlett Packard Development Co DEDUPLICATION IN DISTRIBUTED FILE SYSTEMS
US8930307B2 (en) 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
US8627026B2 (en) 2011-08-19 2014-01-07 Hitachi, Ltd. Storage apparatus and additional data writing method
US8799467B2 (en) 2011-09-09 2014-08-05 Microsoft Corporation Storage and communication de-duplication
US20130311434A1 (en) 2011-11-17 2013-11-21 Marc T. Jones Method, apparatus and system for data deduplication
US9703796B2 (en) 2011-12-06 2017-07-11 Brocade Communications Systems, Inc. Shared dictionary between devices
EP2810171B1 (en) 2012-02-02 2019-07-03 Hewlett-Packard Enterprise Development LP Systems and methods for data chunk deduplication
US20150046398A1 (en) 2012-03-15 2015-02-12 Peter Thomas Camble Accessing And Replicating Backup Data Objects
US9779103B2 (en) 2012-04-23 2017-10-03 International Business Machines Corporation Preserving redundancy in data deduplication systems
US20150066877A1 (en) 2012-05-01 2015-03-05 Mark D. Lillibridge Segment combining for deduplication
EP2845106A4 (en) 2012-05-01 2015-12-23 Hewlett Packard Development Co DETERMINATION OF SEGMENT FRONTIERS FOR DEDUPLICATION
JP2015525419A (ja) 2012-06-18 2015-09-03 アクテフィオ,インク. 高度データ管理仮想化システム
US9003162B2 (en) 2012-06-20 2015-04-07 Microsoft Technology Licensing, Llc Structuring storage based on latch-free B-trees
EP2898424B8 (en) 2012-09-19 2019-08-21 Hitachi Vantara Corporation System and method for managing deduplication using checkpoints in a file storage system
US9256622B2 (en) 2012-12-21 2016-02-09 Commvault Systems, Inc. Systems and methods to confirm replication data accuracy for data backup in data storage systems
US9134914B1 (en) * 2012-12-27 2015-09-15 Emc Corporation Deduplication
US9317218B1 (en) 2013-02-08 2016-04-19 Emc Corporation Memory efficient sanitization of a deduplicated storage system using a perfect hash function
US20140244604A1 (en) 2013-02-28 2014-08-28 Microsoft Corporation Predicting data compressibility using data entropy estimation
US20140281587A1 (en) 2013-03-14 2014-09-18 Ologn Technologies Ag Systems, methods and apparatuses for using a secure non-volatile storage with a computer processor
WO2014155653A1 (ja) 2013-03-29 2014-10-02 株式会社日立製作所 データ重複検出システムおよびデータ重複検出システムの制御方法
EP2997474B1 (en) 2013-05-16 2021-10-06 Hewlett Packard Enterprise Development LP Reporting degraded state of data retrieved for distributed object
WO2014185918A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
CN105324765B (zh) 2013-05-16 2019-11-08 慧与发展有限责任合伙企业 选择用于去重复数据的存储区
EP2997475A4 (en) 2013-05-16 2017-03-22 Hewlett-Packard Enterprise Development LP Deduplicated data storage system having distributed manifest
GB2514555A (en) 2013-05-28 2014-12-03 Ibm Deduplication for a storage system
US9268806B1 (en) 2013-07-26 2016-02-23 Google Inc. Efficient reference counting in content addressable storage
US10210170B2 (en) 2017-01-28 2019-02-19 Microsoft Technology Licensing, Llc Chunk storage deduplication using graph structures

Also Published As

Publication number Publication date
EP2997496A1 (en) 2016-03-23
WO2014185916A1 (en) 2014-11-20
US10496490B2 (en) 2019-12-03
EP2997496A4 (en) 2017-03-22
CN105324765A (zh) 2016-02-10
US20160110260A1 (en) 2016-04-21
EP2997496B1 (en) 2022-01-19

Similar Documents

Publication Publication Date Title
CN105324765B (zh) 选择用于去重复数据的存储区
CN105339929B (zh) 选择用于取消重复数据的存储
US11803567B1 (en) Restoration of a dataset from a cloud
US20160170657A1 (en) Deduplicated data storage system having distributed manifest
KR101626186B1 (ko) 피어 및 클라우드로부터 파일 및 시스템의 차분 복구
US8443000B2 (en) Storage of data with composite hashes in backup systems
CN105359107B (zh) 报告针对分布式对象取回的数据的降级状态
US11663196B2 (en) Fine-grained shared multi-tenant de-duplication system
US10872017B2 (en) Restoring a file system object
US10242021B2 (en) Storing data deduplication metadata in a grid of processors
US20170199894A1 (en) Rebalancing distributed metadata
CN107038092B (zh) 一种数据复制方法及装置
US20170199891A1 (en) Distributed data deduplication in a grid of processors
CN104899161A (zh) 一种基于云存储环境的连续数据保护的缓存方法
CN107798063A (zh) 快照处理方法和快照处理装置
TW201308115A (zh) 分散式的重複數據刪除系統及其處理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170122

Address after: Texas, USA

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT L.P.

Address before: Texas, USA

Applicant before: HEWLETT-PACKARD DEVELOPMENT Co.,L.P.

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20191108