CN105339929B - 选择用于取消重复数据的存储 - Google Patents

选择用于取消重复数据的存储 Download PDF

Info

Publication number
CN105339929B
CN105339929B CN201380076635.3A CN201380076635A CN105339929B CN 105339929 B CN105339929 B CN 105339929B CN 201380076635 A CN201380076635 A CN 201380076635A CN 105339929 B CN105339929 B CN 105339929B
Authority
CN
China
Prior art keywords
storage
hash
group membership
data
matched
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
CN201380076635.3A
Other languages
English (en)
Other versions
CN105339929A (zh
Inventor
A.托德
P.T.坎布尔
W.K.永
K.钱德拉塞哈兰
D.苏埃尔
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 CN105339929A publication Critical patent/CN105339929A/zh
Application granted granted Critical
Publication of CN105339929B publication Critical patent/CN105339929B/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/1448Management of the data involved in backup or backup restore
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

一种技术包括将与对象的块相关联的多个散列传送到对象在其上被分布的多个存储中的至少一些存储;以及响应于该传送,接收指示关联块的分布的响应。该技术包括至少部分地基于该响应来选择存储中的一个,并且向所选择的存储传送与对象相关联的取消重复的数据。

Description

选择用于取消重复数据的存储
背景技术
如果数据被损坏、被覆写、经受病毒攻击等,则为了将网络上的数据(例如,包含在一个或多个文件中的数据)恢复成先前状态的目的,典型的计算机网络可以具有备份和恢复系统。备份和恢复系统典型地包括大容量存储设备,诸如磁带驱动器和/或硬盘驱动器;并且该系统可以包括物理和/或虚拟可移除存储设备。
例如,备份和恢复系统可以将备份数据存储在磁带上,并且在将备份数据转移到给定磁带之后,磁带可以从其带驱动器移除并且被存储在安全位置,诸如防火保险柜中。备份和恢复系统可以替代地是基于虚拟带库的系统,其模拟并且替代物理磁带驱动器系统。以该方式,通过基于虚拟带库的系统,虚拟磁带盒代替磁带来存储备份数据。
附图说明
图1是根据示例性实现的计算机网络的示意图。
图2是根据示例性实现的数据存储系统的图示。
图3和图4是根据示例性实现的由图2的数据存储系统使用以选择用于接收取消重复数据的组成员的竞价过程的图示。
图5是根据示例性实现的在多个组成员上的合作对象的存储分布的图示。
图6是描绘根据示例性实现的用于存储组成员的集群上的合作对象的技术的流程图。
图7、图8A和图8B是描绘根据示例性实现的用于选择用于取消重复数据的存储的组成员的技术的流程图。
图9是描绘根据示例性实现的用于检索和报告部分合作对象数据的技术的流程图。
图10是用于图示根据示例性实现的从组成员中检索合作对象数据的表。
图11是描绘根据示例性实现的用于在组成员当中分布主对象清单的技术的流程图。
图12是根据示例性实现的主对象清单的分布的图示。
图13是根据示例性实现的取消重复数据的组成员控制的复制的图示。
图14是根据示例性实现的非混合复制过程的图示。
具体实施方式
参考图1,示例性计算机网络100可以包括备份和恢复系统,该备份和恢复系统包括在各个服务器110(服务器110-1、110-2…110Q,在图1中示作示例)上执行的备份应用132和附属客户端应用134。以该方式,备份应用132时常识别要在网络100的备份存储设备上备份的针对附属客户端应用134的数据。该数据进而根据本文称为“对象”的数据容器被划分。存储在备份存储上的给定对象逐个备份会话地被创建、删除和修改。如本文公开的,在其本文讨论的许多功能当中,客户端应用134被构建为识别对象数据中的改变;选择存储有更新的数据的存储;并且将更新的数据传送到所选择的存储。
例如,“存储”可以是独立的计算机系统或同一计算机系统上的独立存储子系统。对于图1的具体示例,在各个节点150(P个节点150-1、150-2…150P,在图1中示作示例)上形成存储,节点150经由网络连接140(根据具体实现,局域网(LAN)连接、基于因特网的连接、广域网(WAN)连接、这样连接的组合等)耦合到服务器110。
如本文公开的,给定对象作为“合作对象”被存储在存储的集群或群组上。由于合作的性质而导致“存储”在本文中也被称为“组成员170”。以该方式,根据示例性实现,给定“合作对象”的每个组成员170存储用于该对象的“取消重复数据”,其中,该取消重复数据是从初始数据集合以及表示初始存储的数据中的改变的数据形成的。这样,可以针对给定的合作对象从组成员170中检索取消重复数据以“重新混合”或重建该对象。
通常,服务器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呈现为单个逻辑对象,但是在组成员170的群组或集群上分布用于对象208的数据。该合作对象的逻辑呈现向应用提供单个存储池,其横跨集群内的其他独立存储池。
根据一些实现,客户端应用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将进入数据310接收在缓冲器312中。以该方式,缓冲器312根据具体实现来存储给定的数据段314或多个数据段314。不论存储装置如何,都以下述方式处理每个数据段314。
客户端应用134的分块(或者块)模块316将数据段314转换成相应的块318。例如,根据一些实现,分块模块316可以将两个阈值应用于除数(TTTD)可变分块算法,这产生平均约4千字节(kB)的块。根据其他实现,可以使用其他分块算法。通常,分块算法可以提高隔离在连续备份内的相同块的可能性,其中,该块的绝对位置可能已经移动。
接下来,客户端应用134使用哈希(或散列)模块320来确定块318的相应的数字签名或散列324。例如,根据示例性实现,哈希模块320可以针对每个块318生成SHA-1散列,但是根据其他实现,可以使用其他散列。通常,给定散列324用作关联块318的合理的特定“指纹(fingerprint)”;并且平均来说,与块318的大小相比,散列324的大小可以相对小(例如,块318的大小的约0.5%)。因此,散列324允许相对容易的低带宽的方式来识别关联块318。根据示例性实现,散列模块320确定用于相应块318的散列324,并且向客户端应用134的竞价(或竞价)模块330发送该散列324的此列表或使其可用。
根据示例性实现,竞价模块330针对合作对象向组成员170中的每一个传送334散列的稀疏索引。换言之,根据一些实现,竞价模块330向组成员170传送散列324的样本的统计上代表集合。图3图示了接收散列的稀疏索引的组成员170的一个这样的示例。
应当注意,根据一些实现,竞价模块330可以向每个组成员170传送给定数据段314的所有散列324。然而,根据示例性实现,用于匹配的单个相对大的散列列表可能是不实际的。在这方面,用于每个4kB平均大小的块的20字节的SHA-1散列是指用于每个一太字节(TB)的独特数据的5吉字节(GB)的存储器。相反,稀疏散列索引334包含统计上选择的散列的子集,使得这些散列充分表示块318,同时共同具有明显更小的大小(例如,所有散列的大小的1%到10%之间)。当散列的一部分被传送到用于匹配的给定的组成员170时,该组成员170确定匹配的相应散列的数目。
以该方式,根据一些实现,每个组成员170如下评估匹配并且对稀疏索引进行响应。组成员170包括竞价匹配(或匹配)模块370,其将稀疏索引与存储在组成员170中的数据的哈希的列表作比较。成功的稀疏索引匹配可以被称为“钩(hook)”,因为在例如组成员170的随机存取存储器(RAM)中保持稀疏索引,并且这样,稀疏索引查找在系统资源方面可能相对“便宜”。
如果该竞价匹配模块370识别了稀疏索引中的一个或多个钩,则模块370可以然后根据示例性实现来执行更具体的匹配,涉及读取由稀疏索引钩所指向的磁盘上清单。因为该后一步骤涉及相当缓慢的磁盘寻道,所以这可能是相对昂贵的过程。为了减轻磁盘寻道的使用,根据示例性实现,在存在很多钩时应用某种停止条件的情况下,基于将被找到的期望数目的额外匹配以某个优先顺序来读取磁盘上清单,以相对小的取消重复减小为代价来保持性能。
通过向客户端应用134提供查询稀疏散列索引的方法,该稀疏索引钩计数可以用于确定匹配块318的给定组成员170的概率。
除了稀疏索引钩计数,诸如存储容量和存储利用率(作为两个示例)的关于组成员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的匹配(匹配)模块380传送或发送342数据段314的块318的所有剩余散列。匹配模块380将块318的所有散列与存储在组成员170上的数据的相应散列作比较。匹配模块380向客户端应用134的压缩(或压缩)模块344传送384该匹配。以该方式,匹配向压缩模块344通知独特块318,即没有存储在组成员170上的块318。作为响应,压缩模块344执行取消重复以向组成员170的存储模块390传送或发送350独特块(例如,改变的数据块),该存储模块390向组成员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首先满足匹配高于特定阈值的特定数目的关键散列的标准。以该方式,根据示例性实现,这样的技术默认为将数据路由到“粘性”组成员,即,路由“粘”到“粘性组成员”,直至超过该阈值。当匹配没有高于特定阈值时,通过针对若干数据段314与组成员170一起保持或相粘,主要具有新数据(本文称为“播种数据”)的很多时间连续的段被路由到同一组成员170。向同一组成员170播种大的连续区域可以有助于提高未来备份中的总体取消重复比率。这是因为,对于未来备份,备份流内容可能会发生一定程度的变化,并且因此段可能被不同地对准。
因此,如果针对每个数据段314,段被播种到不同的组成员170,则后续备份流中的段314可以具有跨两个组成员170的块。在相对长的连续粘性区域的情况下,取消重复可能在区域的结束处而不是在该区域内的每个段边界处丢失(因为该区域中的所有数据都被存储在同一组成员170中)。因此,如果在备份中将所有数据路由到单个组成员170,则可以期望高的取消重复比率。然而,这样的技术可能对在组成员170中的容量平衡没有帮助。因此,粘性阈值可以被选择为小得足以能够“粘到”另一组成员170,通常足以在所有组成员170中播种,但是粘性阈值大得足以保持未来的取消重复数据比率相对高。
因此,参考图7,根据示例性实现,通常可以采用技术700。根据技术700,向多个组成员170或存储传送(框702)块散列的列表。从存储接收(框704)响应,其中,每个响应指示多个匹配。该技术包括至少部分地基于数目的匹配与阈值的比较来选择(框706)存储,阈值诸如是上述“粘性阈值”。然后,将取消重复数据传送(框708)到所选择的存储。
取消重复可以在从同一系统的备份之间执行,而不是在系统之间执行,使得当首先备份系统时,可以存储来自该系统的大量块数据。第一备份在本文中被称为“播种”,并且在本文中初始数据被称为“播种数据”。为了避免播种期间的过多区域碎片的目的,可以使用“粘性路由”技术。通常,粘性路由尝试在相对大的连续区域(例如,大约几十吉字节(GB)的区域)中对在组成员170中播种数据加条纹,但是如果组成员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可以至少部分地基于未来竞价活动的预测来选择性地暂停竞价(和散列的传送)。例如,如果针对这些数据段314作出竞价,则客户端应用134可以预测被路由到不同组成员170的“通量”的区域何时存在,其中时间连续数据段314将结束。根据示例性实现,当应用134预测通量的区域时,客户端应用134可以临时暂停竞价过程。
例如,根据示例性实现,可以基于当前备份会话的历史窗口中的可测量因子的数目和/或统计来预测通量的区域。因素可以包括对这样的标准的测量,如竞价获胜者先前已经改变的次数、竞价失败者看到的匹配的数目、竞价获胜者看到的匹配的数目以及写入当前竞价获胜者的数据量。使用从这些测量得到的计算的概率,客户端应用134可以选择不执行对特定数目的时间连续数据段314的竞价操作,并且替代地继续将数据段314路由到当前获胜者,而不执行对这些段314的竞价。
根据示例性实现,使用应用134的客户端侧代码库来在命令或数据会话的基础上执行对合作对象的所有访问。可以对客户端库给予合作存储中的任何组成员170的地址,与之连接并且找到所有其他组成员170的地址。客户端库还可以连接到其他组成员170,由此建立命令或数据会话。然而,所有的组成员可能不可用于给定会话。可以向回向客户端应用库的用户报告在该会话中连接成功连接到的组成员170,使得用户可以判定用户是否想要继续该会话。
客户端应用134用作存储在组成170中/从组成员170检索的信息的聚合器。通过允许建立与组成员170的子集的会话,通过视图(经由例如图形用户界面(GUI)136(参见图1))呈现客户端应用134库的用户,该视图具体示出了组成员170中可用的信息的子集。
例如,当列出给定合作对象时,可能已经在组成员A、B和C中创建(并且分开)了合作对象,因为该组成员已经例如是在开放命令会话时可用的组成员。如果对组成员B、C和D开放的命令会话上的该合作对象的列表被创建,则可用于组成员B和C中的对象的信息被聚合并且被呈现给客户端库,其中不呈现用于组成员A的信息。
当列出合作对象时,客户端应用134报告组成员被创建在并且最后被修改在的哪些组成员170上。如果对其开放当前命令会话的组成员170的集合与对象被创建的集合和最后对象被修改的集合不同,则客户端应用134向用户突出显示被呈现对象的不完整视图。通过该信息,用户可以判定如何解释该列表。
因此,参考图9,根据示例性实现,技术900包括尝试(框902)开放与所有下述组成员170的传送,该组成员170响应于对访问对象的请求来统一地存储用于给定分布式合作对象的数据。如果作出在对象被创建和修改的会话中不存在所有组成员170的判定(判定框904),则该技术900包括提示(框906)不存在的组成员(多个)。然后,根据框908来检索对合作对象可用的块。如果作出劣化的信息被报告的确定(判定框910),则技术900包括报告(框912)关于检索的数据的劣化状态的信息,包括识别对象如何是不完整的。通过该劣化信息(如果有的话),根据框914来报告结果。
根据示例性实现,客户端应用134在聚合多个合作对象的列表时还使用该信息。挑战涉及如何通过将来自组成员170的结果的页面缝合在一起来向用户呈现列出结果的页面,有效地作为加窗的多路径合并。为了以有效的方式执行这一点,客户端应用134最小化针对向用户呈现的每个结果页面从每个组成员检索到的结果页面的数目。
具体地,客户端应用134根据示例性实现来使用其从每个组成员170接收到的以下三项信息:1.)针对每个合作对象(或合作数据工具)的组范围的独特标识(ID),使得从每个组成员170返回的记录与相同的合作实体相关(但是标识符不一定具有任何暗示的时间顺序);2.)每组成员的独特标识符,这是基于在组成员上创建的合作实体的划分的创建时间来排序的(例如,本地组成员数据库行标识);以及3.)在该组成员上创建的合作实体的划分的创建时间戳。应当注意,在严格足以允许使用时间戳的容限内,组成员170上的时钟被同步或者被时间对准。例如,根据一些实现,可以使用客户端的网络时间协议(NTP)同步。
无序组范围独特标识允许客户端应用134识别在组成员170中匹配的记录,即识别“缝合点”。每组成员排序的独特标识符允许客户端应用134从每个组成员170中检索结果的下一页/前一页,并且因此,实现每个组成员170的向前/向后滑动窗口,这可以在多波合并操作中使用。创建时间戳允许客户端应用134判定客户端应用需要在多大程度上向下搜索每个组成员的结果以找到缝合点。
作为更具体的示例,图10描绘了从组成员1(经由列1011中描绘的页面)、组成员2(经由列1012中描绘的页面)和组成员3(经由列1014中描绘的页面)中检索的页面。来自组成员的结果在页面边界1030和1032处被分离。图10还描绘了结果的列1020。对于下面的示例,客户端应用134从每个组成员170中检索被计时的多达两个组成员对象的页面,并且在结果列1020中向用户返回被计时的两个合作对象的页面。
更具体地,为了返回结果(A,B)的第一页面,客户端应用134从组成员1读取一个结果页面,其包含前两个对象(按交叉组创建时间的顺序):A和B;从组成员2读取两个结果页面;并且从组成员3读取两个结果页面。对于该示例,合作对象B和C实际上是在相同时间从两个不同的客户端创建的;但是由于定时差异,相对于组成员2,在组成员1上以不同的顺序创建合作对象B和C。为此,为了确定用于合作对象B的记录是否可以被找到的目的,从组成员2读取额外的结果页面。当记录组成员1在其中具有关于合作对象在哪些组成员上被创建的信息时,客户端应用134知道存在用于合作对象B的记录。此外,客户端应用134知道,来自组成员2的返回结果的第一页面仍然在创建的合作对象周围,所以客户端应用确定加载额外页面以找到其是实际的。
对于结果的第一页面,组成员3的结果不包括合作对象B的记录。为了返回结果(C,D)的第二页面,客户端应用从组成员1读取结果的一个其他页面,其包含接下来的两个对象:C和D。此外,对于该结果的第二页面,如果针对每个组成员170缓存两到三个页面,当针对对象C和D的信息在已经缓存的两个页面中可用时,不从组成员2读取其他页面。从这些缓存的结果,客户端应用134知道其无法找到用于组成员3的合作对象C或D的记录。
为了返回结果(E,F)的第三页面,客户端应用134从组成员1读取结果的另一页面,其包含接下来两个对象:E和F。客户端应用还从组成员2读取一个结果页面,其包含接下来的两个对象:E和F。当对象E在第一页面(缓存)中时,不针对组成员3检索其他结果页面。此外,客户端应用134知道其无法从用于组成员1的记录中的创建信息中找到用于组对象F的记录。
为了返回结果(X,Y)的第三页面,客户端应用134读取后面的内容,不从组成员1检索其他结果页面(即,已经达到末尾);不针对组成员2检索其他结果页面(即,已经达到末尾);并且从组成员3检索结果的另一页面,其包含接下来的两个对象:X和Y。
为了返回结果(Z)的第四页面的目的,客户端应用134读取后面的内容。没有来自组成员1的另一结果页面(即,已经到达末尾);没有来自组成员2的另一结果页面(即,已经到达末尾);以及来自组成员3的另一结果页面,其包含接下来的对象:Z。
根据示例性实现,针对每个合作对象创建和维护清单。通常,本文中称为“对象清单”的清单描述了在组成员当中存储的用于给定合作对象的数据的细节。以该方式,清单允许系统跟踪并且将分布的各个数据项整合成一个粘着合作对象。根据本文公开的示例性实现,该对象清单在组成员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中记录其所拥有的数区域以及相应块驻留的位置。当重构用于具体读取操作的组触媒块时,可以使用竞价原理的推论。另一消息可以被添加到该协议,使得客户端应用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的复制操作。因此,如图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请求散列的清单,并且将这些散列发送1450到要匹配的目标1460。目标1460用请求其块数据的未匹配散列的列表来进行响应1470。然后,复制引擎1420从源客户端应用1435请求1480这些独特的块,接收1486未匹配的块,并且然后将其发送1488到目标1460以被存储。
虽然本文已经公开了有限数目的示例,但是可以从其中认识到许多修改和变化。期望所附权利要求涵盖所有这样的修改和变化。

Claims (14)

1.一种方法,包括:
由处理器将与对象的块相关联的多个哈希的子集传送到多个存储中的每个存储,其中所述每个存储要把哈希的子集与在所述存储中所存储的数据的哈希的列表相匹配并生成所匹配的哈希的计数值;
响应于所述传送,由所述处理器从所述存储中的每个存储接收所匹配的哈希的计数值;
由所述处理器基于从所述存储所接收的所匹配的哈希的计数值与阈值的比较来选择所述存储中的一个存储以存储与所述对象相关联的去重复数据;
由所述处理器通过使用所述多个哈希的剩余哈希利用所选择的存储执行去重复过程,以识别与所述对象相关联的去重复数据;以及
由所述处理器向所选择的存储传送与所述对象相关联的去重复数据以进行存储。
2.如权利要求1所述的方法,其中,利用所选择的存储执行去重复过程包括:
将所述多个哈希的剩余哈希发送到所选择的存储,其中所选择的存储将剩余哈希与存储在所选择的存储中的数据的哈希的列表相匹配并生成与在所选择的存储中所存储的哈希相匹配的哈希;
从所选择的存储接收匹配的哈希;
基于所匹配的哈希,把未存储在所选择的存储中的对象的块标识为去重复数据。
3.如权利要求1所述的方法,其中选择所述存储中的一个存储包括:
响应于确定所匹配的哈希的多个计数值超过阈值,确定其匹配的哈希的计数值超过阈值的所述存储中的一个存储是否与紧接的前一个选择的存储相同; 和
响应于确定其中一个存储与紧接的前一个所选择的存储相同,选择紧接的前一个所选择的存储作为当前所选择的存储以存储去重复数据。
4.如权利要求1所述的方法,其中选择所述存储中的一个存储包括:响应于确定从所述存储所接收的所匹配的哈希的计数值中的任何一个都不高于所述阈值,选择所述多个存储中的当前播种存储。
5.如权利要求1所述的方法,进一步包括:
向未被选择的存储中的每一个传送所述未被选择的存储将不接收去重复数据的指示。
6.一种系统,包括:
多个组成员,用于存储分布式的分组的对象;以及
客户端服务器,用于:
将与对象的块相关联的哈希的子集传送到多个组成员中的每个组成员,其中所述多个组成员中的每个组成员要把哈希的子集与在所述组成员中所存储的数据的哈希的列表相匹配并生成所匹配的哈希的计数值;
响应于所述传送,从所述多个组成员中的每个组成员接收所匹配的哈希的计数值;
基于所匹配的哈希的计数值与阈值的比较来选择所述多个组成员中的一个组成员以存储与所述对象相关联的去重复数据;
通过使用所述多个哈希的剩余哈希利用所选择的组成员执行去重复过程,以识别与所述对象相关联的去重复数据;以及
向所选择的组成员传送与所述对象相关联的去重复的数据以进行存储。
7.如权利要求6所述的系统,其中,所述哈希的子集指示所述对象的块。
8.如权利要求6所述的系统,其中,为了利用所选择的存储执行去重复过程,所述客户端服务器用于:
将所述多个哈希的剩余哈希发送到所选择的存储,其中所选择的存储将剩余哈希与存储在所选择的存储中的数据的哈希的列表相匹配并生成与在所选择的存储中所存储的哈希相匹配的哈希;
从所选择的存储接收匹配的哈希;
基于所匹配的哈希,把未存储在所选择的存储中的对象的块标识为去重复数据。
9.如权利要求6所述的系统,其中,至少一个组成员用于响应于未被选择而接收到组成员将不接收去重复数据的指示。
10.一种存储指令的非瞬时计算机可读存储介质,当计算机执行所述指令时,所述指令使得所述计算机:
将与对象的块相关联的哈希的子集传送到多个存储中的每个存储,其中所述多个存储中的每个存储要把哈希的子集与在所述存储中所存储的数据的哈希的列表相匹配并生成所匹配的哈希的计数值;
响应于所述传送,从所述多个存储中的每个存储接收所匹配的哈希的计数值;
至少基于所匹配的哈希的计数值与阈值的比较来选择所述存储中的一个存储以存储与所述对象相关联的去重复数据;
通过使用所述多个哈希的剩余哈希利用所选择的存储执行去重复过程,以识别与所述对象相关联的去重复数据;以及
向所选择的存储传送与所述对象相关联的去重复的数据以进行存储。
11.如权利要求10所述的非瞬时计算机可读存储 介质,其中,为了选择所述存储中的一个存储,所述指令可被执行以使得所述计算机:
响应于确定所匹配的哈希的多个计数值超过阈值,确定其匹配的哈希的计数值超过阈值的所述存储中的一个存储是否与紧接的前一个选择的存储相同; 和
响应于确定其中一个存储与紧接的前一个所选择的存储相同,选择紧接的前一个所选择的存储作为当前所选择的存储以存储去重复数据。
12.如权利要求11所述的非瞬时计算机可读存储 介质,其中,为了利用所选择的存储执行去重复过程,所述指令可被执行以使得所述计算机:
将所述多个哈希的剩余哈希发送到所选择的存储,其中所选择的存储将剩余哈希与存储在所选择的存储中的数据的哈希的列表相匹配并生成与在所选择的存储中所存储的哈希相匹配的哈希;
从所选择的存储接收匹配的哈希;
基于所匹配的哈希,把未存储在所选择的存储中的对象的块标识为去重复数据。
13.如权利要求10所述的非瞬时计算机可读存储 介质,其中所述指令可被执行以使得所述计算机:响应于确定从所述存储所接收的所匹配的哈希的计数值中的任何一个都不高于所述阈值,选择所述多个存储中的当前播种存储。
14.如权利要求10所述的非瞬时计算机可读存储 介质,其中所述指令可被执行以使得所述计算机:向未被选择的存储中的每一个传送所述未被选择的存储将不接收去重复数据的指示。
CN201380076635.3A 2013-05-16 2013-05-16 选择用于取消重复数据的存储 Expired - Fee Related CN105339929B (zh)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN105339929A CN105339929A (zh) 2016-02-17
CN105339929B true CN105339929B (zh) 2019-12-03

Family

ID=51898730

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380076635.3A Expired - Fee Related CN105339929B (zh) 2013-05-16 2013-05-16 选择用于取消重复数据的存储

Country Status (4)

Country Link
US (1) US10592347B2 (zh)
EP (1) EP2997497B1 (zh)
CN (1) CN105339929B (zh)
WO (1) WO2014185918A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185915A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. 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
EP2997496B1 (en) 2013-05-16 2022-01-19 Hewlett Packard Enterprise Development LP Selecting a store for deduplicated data
US10083299B2 (en) * 2015-12-16 2018-09-25 Carbonite, Inc. Systems and methods for automatic snapshotting of backups based on malicious modification detection
US10574751B2 (en) * 2016-03-22 2020-02-25 International Business Machines Corporation Identifying data for deduplication in a network storage environment
US10795859B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC Micro-service based deduplication
US10795860B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC WAN optimized micro-service based deduplication
US10860212B1 (en) 2017-07-21 2020-12-08 EMC IP Holding Company LLC Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier
US10936543B1 (en) 2017-07-21 2021-03-02 EMC IP Holding Company LLC Metadata protected sparse block set for SSD cache space management
US10949088B1 (en) 2017-07-21 2021-03-16 EMC IP Holding Company LLC Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system
US10459633B1 (en) 2017-07-21 2019-10-29 EMC IP Holding Company LLC Method for efficient load balancing in virtual storage systems
US11461269B2 (en) 2017-07-21 2022-10-04 EMC IP Holding Company Metadata separated container format
US11113153B2 (en) 2017-07-27 2021-09-07 EMC IP Holding Company LLC Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network
US10481813B1 (en) 2017-07-28 2019-11-19 EMC IP Holding Company LLC Device and method for extending cache operational lifetime
US10929382B1 (en) 2017-07-31 2021-02-23 EMC IP Holding Company LLC Method and system to verify integrity of a portion of replicated data
US11093453B1 (en) 2017-08-31 2021-08-17 EMC IP Holding Company LLC System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication
US10592149B1 (en) * 2017-10-06 2020-03-17 EMC IP Holding Company LLC Dynamic de-duplication methodologies for efficient resource utilization on de-duplication system
US11308038B2 (en) * 2018-06-22 2022-04-19 Red Hat, Inc. Copying container images
US10592158B1 (en) 2018-10-30 2020-03-17 EMC IP Holding Company LLC Method and system for transferring data to a target storage system using perfect hash functions
US10713217B2 (en) 2018-10-30 2020-07-14 EMC IP Holding Company LLC Method and system to managing persistent storage using perfect hashing
US10977217B2 (en) 2018-10-31 2021-04-13 EMC IP Holding Company LLC Method and system to efficiently recovering a consistent view of a file system image from an asynchronously remote system
US10733158B1 (en) * 2019-05-03 2020-08-04 EMC IP Holding Company LLC System and method for hash-based entropy calculation
US10877931B1 (en) 2019-09-12 2020-12-29 Hewlett Packard Enterprise Development Lp Backups of file system instances having subtrees
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

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
WO2002033551A1 (en) 2000-10-18 2002-04-25 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
AU2003278779A1 (en) 2002-09-10 2004-04-30 Exagrid Systems, Inc. Primary and remote data backup with nodal failover
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
US7873782B2 (en) * 2004-11-05 2011-01-18 Data Robotics, Inc. Filesystem-aware block storage system, apparatus, and method
US9043639B2 (en) 2004-11-05 2015-05-26 Drobo, Inc. Dynamically expandable and contractible fault-tolerant storage system with virtual hot spare
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
GB2446169A (en) 2006-12-01 2008-08-06 David Irvine Granular accessibility to data in a distributed and/or corporate network
US7844581B2 (en) 2006-12-01 2010-11-30 Nec Laboratories America, Inc. Methods and systems for data management using multiple selection criteria
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
US20090063587A1 (en) 2007-07-12 2009-03-05 Jakob Holger Method and system for function-specific time-configurable replication of data manipulating functions
US20090019443A1 (en) 2007-07-12 2009-01-15 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
US8782368B2 (en) 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
US8099573B2 (en) 2007-10-25 2012-01-17 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
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
WO2009131585A1 (en) 2008-04-25 2009-10-29 Hewlett-Packard Development Company, L.P. Data processing apparatus and method of processing data
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
CN102378969B (zh) 2009-03-30 2015-08-05 惠普开发有限公司 拷贝卷中存储的数据的去重复
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
US8612439B2 (en) * 2009-06-30 2013-12-17 Commvault Systems, Inc. Performing data storage operations in a cloud storage environment, including searching, encryption and indexing
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
US8694469B2 (en) 2009-12-28 2014-04-08 Riverbed Technology, Inc. Cloud synthetic backups
US8281105B2 (en) 2010-01-20 2012-10-02 Hitachi, Ltd. I/O conversion method and apparatus for storage system
US8447741B2 (en) 2010-01-25 2013-05-21 Sepaton, Inc. System and method for providing data driven de-duplication services
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
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8694703B2 (en) 2010-06-09 2014-04-08 Brocade Communications Systems, Inc. Hardware-accelerated lossless data compression
WO2011159322A1 (en) 2010-06-18 2011-12-22 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 华中科技大学 一种适用于云备份的重复数据删除方法
WO2012032727A1 (en) * 2010-09-09 2012-03-15 Nec Corporation Storage system
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
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
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
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
CN108664555A (zh) 2011-06-14 2018-10-16 慧与发展有限责任合伙企业 分布式文件系统中的去重复
US8930307B2 (en) 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array
WO2013027231A1 (en) 2011-08-19 2013-02-28 Hitachi, Ltd. Backup deduplication 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
CN104081370A (zh) 2012-03-15 2014-10-01 惠普发展公司,有限责任合伙企业 访问和复制备份数据对象
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
WO2013165389A1 (en) 2012-05-01 2013-11-07 Hewlett-Packard Development Company, L.P. Determining segment boundaries for deduplication
KR20150021117A (ko) * 2012-06-18 2015-02-27 액티피오 인크. 강화형 데이터 관리 가상화 시스템
US9003162B2 (en) * 2012-06-20 2015-04-07 Microsoft Technology Licensing, Llc Structuring storage based on latch-free B-trees
JP5925968B2 (ja) * 2012-09-19 2016-05-25 ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited ファイルストレージシステムにおけるチェックポイントを用いて重複排除を管理するシステムおよび方法
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 株式会社日立製作所 データ重複検出システムおよびデータ重複検出システムの制御方法
EP2997496B1 (en) 2013-05-16 2022-01-19 Hewlett Packard Enterprise Development LP Selecting a store for deduplicated data
WO2014185918A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
CN105324757A (zh) 2013-05-16 2016-02-10 惠普发展公司,有限责任合伙企业 具有分布式清单的去复制的数据存储系统
WO2014185915A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Reporting degraded state of data retrieved for distributed object
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
EP2997497B1 (en) 2021-10-27
WO2014185918A1 (en) 2014-11-20
CN105339929A (zh) 2016-02-17
US20160077924A1 (en) 2016-03-17
EP2997497A4 (en) 2017-03-22
EP2997497A1 (en) 2016-03-23
US10592347B2 (en) 2020-03-17

Similar Documents

Publication Publication Date Title
CN105339929B (zh) 选择用于取消重复数据的存储
CN105324765B (zh) 选择用于去重复数据的存储区
US11847336B1 (en) Efficient replication using metadata
US20230359644A1 (en) Cloud-based replication to cloud-external systems
US20160170657A1 (en) Deduplicated data storage system having distributed manifest
JP5878548B2 (ja) 重複排除ストレージ・システム、その内部の合成バックアップを容易にする方法、及び、プログラム
EP2784675B1 (en) Method, device and system for data reconstruction
US8712963B1 (en) Method and apparatus for content-aware resizing of data chunks for replication
US8214334B2 (en) Systems and methods for distributed system scanning
US10872017B2 (en) Restoring a file system object
CN110431542A (zh) 管理存储网络中的i/o操作
US8135918B1 (en) Data de-duplication for iSCSI
US10210188B2 (en) Multi-tiered data storage in a deduplication system
CN109313538A (zh) 内联去重
US20150032696A1 (en) Regulating a replication operation
US20170199893A1 (en) Storing data deduplication metadata in a grid of processors
CN105359107B (zh) 报告针对分布式对象取回的数据的降级状态
CN110413444A (zh) 实现存储卷的一致性组的快照集
CN104899161A (zh) 一种基于云存储环境的连续数据保护的缓存方法
JP6119327B2 (ja) 重複データ管理装置、データ転送制御装置、データ転送制御システム、重複データ管理方法、データ転送制御方法、および、コンピュータ・プログラム
CN109213746A (zh) Pb级历史数据和在线数据的实时计算的可视化建模方法

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: 20161230

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

Granted publication date: 20191203

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