CN105324757A - 具有分布式清单的去复制的数据存储系统 - Google Patents

具有分布式清单的去复制的数据存储系统 Download PDF

Info

Publication number
CN105324757A
CN105324757A CN201380076637.2A CN201380076637A CN105324757A CN 105324757 A CN105324757 A CN 105324757A CN 201380076637 A CN201380076637 A CN 201380076637A CN 105324757 A CN105324757 A CN 105324757A
Authority
CN
China
Prior art keywords
data
group team
team member
group
chunk
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.)
Pending
Application number
CN201380076637.2A
Other languages
English (en)
Inventor
D.叙尔
P.T.坎布尔
A.托德
A.斯拉特
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 Development Co 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 Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN105324757A publication Critical patent/CN105324757A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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

Abstract

一种技术包括在包括多个存储装置的系统上存储针对对象的去复制的数据以及在存储装置之间分布清单,所述清单描述存储装置上的对象的存储。

Description

具有分布式清单的去复制的数据存储系统
背景技术
典型的计算机网络可以具有备份和恢复系统以用于如果数据变成被毁坏、盖写、遭受病毒攻击等则将网络上的数据(例如被包含在一个或多个文件中的数据)还原到在先状态的目的。备份和恢复系统典型地包括大容量存储设备,诸如磁带驱动器和/或硬驱动器;并且系统可以包括物理和/或虚拟的可移除存储设备。
例如,备份和恢复系统可以在磁带上存储备份数据,并且在将备份数据转移到给定磁带之后,磁带可以从其磁带驱动器被移除并且存储在安全的位置中,诸如在防火保险箱中。备份和恢复系统可以可替换地为模仿和取代物理磁带驱动系统的基于虚拟磁带库的系统。以此方式,在基于虚拟磁带库的系统的情况下,虚拟磁带盒,而不是磁带,存储备份数据。
附图说明
图1是根据示例实现的计算机网络的示意图。
图2是根据示例实现的数据存储系统的图示。
图3和4是根据示例实现的由图2的数据存储系统用于选择群队(team)成员以接收去复制(deduplicated)的数据的争控过程的图示。
图5是根据示例实现的跨多个群队成员的群队化对象的存储分布的图示。
图6是描绘了根据示例实现的在群队成员的集群上存储群队化对象的技术的流程图。
图7,8A和8B是描绘了根据示例实现的选择群队成员以用于存储去复制的数据的技术的流程图。
图9是描绘了根据示例实现的检索和报告部分群队化的对象数据的技术的流程图。
图10是图示了根据示例实现的从群队成员检索群队化对象数据的表。
图11是描绘了根据示例实现的在群队成员之间分布主对象清单的技术的流程图。
图12是根据示例实现的主对象清单的分布的图示。
图13是根据示例实现的经复制的数据的群队成员控制的重现(replication)的图示。
图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中被描绘)上,所述节点经由网络连接140(局域网(LAN)连接、基于因特网的连接、广域网(WAN)连接、这样的连接的组合等等,这取决于特定实现)耦合到服务器110。
如本文所公开的,给定对象在存储装置的集群、或群组上存储为“群队化对象”。由于群队化的性质,“存储装置”在本文中还称为“群队成员170”。以此方式,依照示例实现,针对给定“群队化对象”的每一个群队成员170存储针对对象的“去复制的数据”,其中去复制的数据是由初始数据集连同表示初始存储的数据中的改变的数据一起形成的数据。因而,可以从针对给定的群队化对象的群队成员170检索去复制的数据以“再水化”或重构对象。
一般而言,服务器110是由实际硬件120和实际机器可执行指令或“软件”130构成的物理机。在这方面,给定服务器110可以包括这样的硬件120,如一个或多个中央处理单元(CPU)122、存储器124、网络接口126等等。一般而言,存储器124是非暂时性存储器,诸如磁性存储装置、光学存储装置、由半导体器件形成的存储装置等等。存储器124可以为服务器110本地存储数据,以及存储指令,所述指令当由(多个)CPU122执行时使(多个)CPU提供机器可执行指令130的一个或多个组件。
如图1中所图示的,机器可执行指令130包括备份应用132和客户端应用134,以及创建、修改和删除对象的其它可能的其它应用。
给定的群队成员170可以形成在同样为由实际硬件158和实际机器可执行指令159构成的实际物理机的处理节点150上。硬件158可以包括(作为示例)一个或多个中央处理单元(CPU)160、网络接口和存储器162。存储器162是非暂时性存储器并且可以取决于特定实现而是基于磁性存储的存储器、基于光学存储的存储器、基于半导体存储的存储器等等。节点150可以包括机器可执行指令159,所述机器可执行指令159包括例如群队成员客户端应用168。
因此,依照示例实现,存在于潜在地多个节点150上的群队成员170的集群或群组可以形成用于给定的群队化对象的存储。而且,尽管在本文中描述为存在于分离节点150上,但是依照另外的实现,给定的群队化对象可以存储在独立的群队成员上,其中两个或更多群队成员位于相同的节点150上。因此,设想了许多实现,其在随附权利要求的范围内。
结合图1参照图2,依照示例实现,群队化对象208可以呈现为对给定客户端应用134的单个逻辑对象,尽管针对对象208的数据分布在群队成员170的群组或集群之上。群队化对象的这种逻辑呈现为应用提供了单个存储池,其横跨集群内否则独立的存储池。
依照一些实现,客户端应用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寻找条目时搜索整个数据库的情形,所述条目在某些情况下可能甚至不存在。作为示例,时间窗口可以是大约五分钟范围中的时间窗口,但是该窗口可以取决于特定配置和/或实现而变化。
如图2中所描绘的,尽管给定的分布式群队化对象208可以分布在多个群队成员170之间,但是给定的客户端应用134具有单个对应对象的逻辑视图,其允许每一个群队成员170潜在地执行应用软件的不同发行版本。这允许用户对其软件执行滚动更新而不必担心跨所有群队成员170维持一致的软件版本。在其中软件的能力在群队成员170之间不同的情况中,客户端应用134假定来自跨群队成员170的最小能力。
依照示例实现,出于跨多个独立群队成员170实现可接受的去复制性能的目的,使用争控(bid)技术,其目标在于向同一群队成员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)可变组块化算法,其产生大约四千字节(kB)的平均组块。依照其它实现,可以使用其它组块化算法。一般而言,组块化算法可以增强隔离接连备份内的相同组块的可能性,其中组块的绝对位置可能已经移动。
接下来,客户端应用134使用散列化(或散列)模块320以确定针对组块318的对应数字签名或散列324。作为示例,依照示例实现,散列化模块320可以生成针对每一个组块318的SHA-1散列,尽管依照另外的实现可以使用其它散列。一般而言,给定散列324充当针对相关联的组块318的合理确定的“指纹”;并且,平均来看,相比于组块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平均大小的组块的二十字节SHA-1散列意味着对于每一个太字节(TB)的唯一数据的5吉字节(GB)的存储器。相反,稀疏散列索引334包含统计上选择的散列子集,使得这些散列适当地表示组块318而集体上具有显著较小的大小(例如所有散列的大小的百分之一至百分之十之间)。当向给定群队成员170传送散列的一部分以用于匹配时,群队成员170确定匹配的对应散列的数目。
以此方式,依照一些实现,每一个群队成员170评定匹配并且如下响应于稀疏索引。群队成员170包括争控相匹配(或匹配)模块370,其对照存储在群队成员170中的数据的散列列表而比较稀疏索引。成功的稀疏索引匹配可以称为“钩住”,因为稀疏索引被保持在例如群队成员170的随机存取存储器(RAM)中,并且因而,稀疏索引查找在系统资源方面可以相对“便宜”。
如果争控相匹配模块370标识了稀疏索引中的一个或多个钩住,则依照示例实现,模块370然后可以执行更加详细的匹配,涉及读取由稀疏索引钩住所指向的盘上清单。由于该后一步骤涉及相对缓慢的盘寻道,因此这可能是相对昂贵的过程。为了减轻盘寻道的使用,依照示例实现,盘上清单基于将找到的额外匹配的预期数目而以某个优先级次序被读取,其中当存在许多钩住时应用某个停止条件,以便以去复制中的相对小的减少为代价而保持性能不变。
通过为客户端应用134提供查询稀疏散列索引的方法,稀疏索引钩住计数可以用于确定给定群队成员170匹配组块318的概率。
除了稀疏索引钩住计数之外,作为争控响应的部分,可以向客户端应用134传送回关于群队成员170的其它信息,诸如存储容量和存储利用(作为两个示例)。该信息然后可以由客户端应用134用于做出关于出于路由针对段314的所有其余散列和随后去复制的数据的目的而选择哪个群队成员170的决定。
因此,依照一些实现,争控涉及向每一个群队成员170的争控匹配模块370传送334散列的稀疏索引的客户端应用134的进行争控的模块330。争控匹配模块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独特的组块(例如已改变的数据的组块),其向群队成员170交托新的组块。
规律的争控的目的是将类似的数据组块路由至同一群队成员170。指出的是,每次做出改变群队成员170的决定时,路由至新的群队成员的段可能具有对总体去复制率的负面影响。这是由于数据段边界不与去复制段边界对准的相对高的可能性,并且因此,可能再次存储一些复制的数据。在以下进一步描述的过程中,数据流的分片(fragmentation)因此可以是以最小化去复制率的降低的方式被控制的某事物。
图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条状(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可以至少部分地基于将来争控活动的预测而选择性地挂起争控(和散列的传送)。例如,客户端应用134可以预测如果针对这些数据段314做出争控的话,何时存在其中时间连续数据段314将以路由至不同的群队成员170而告终的“涌流(flux)”区。依照示例实现,客户端应用134可以在应用134预测到涌流区时临时挂起争控过程。
例如,依照示例实现,可以基于可测量因素的数目和/或用于当前备份会话的历史窗口中的统计量来预测涌流区。因素可以包括如争控获胜者之前已经改变的次数、以争控失败者所看到的匹配的数目、以争控获胜者所看到的匹配的数目以及写入到当前争控获胜者的数据量这样的准则的测量。通过使用从这些测量得出的所计算的概率,客户端应用134可以选择针对某个数目的时间相继数据段314不执行争控操作而代替地继续将数据段314路由至当前获胜者而不针对这些段314执行争控。
依照示例实现,通过使用应用134的客户端侧代码库、在命令或数据会话的基础上执行对群队化对象的所有访问。客户端库可以被给予群队化存储装置中的任何群队成员170的地址,连接到它并且找到所有其它群队成员170的地址。客户端库也可以连接到其它群队成员170,从而建立命令或数据会话。然而,所有群队成员可能不对给定会话可用。可以向客户端应用库的用户报告回在该会话中连接所成功连接到的群队成员170,使得用户可以决定用户是否想要继续会话。
客户端应用134充当被存储在群队成员170中/从群队成员170检索的信息的聚合器。通过允许与群队成员170的子集建立会话,向客户端应用134库的用户呈现详述跨群队成员170可得到的信息子集的视图(例如经由图形用户接口(GUI)136(参见图1))。
例如,当列出给定的群队化对象时,群队化对象可能已经跨群队成员A,B和C而被创建(和划分),因为那些群队成员可能已经是例如在打开命令会话时可用的群队成员。如果创建了向群队成员B,C和D打开的命令会话上的该群队化对象的列表,则可用于群队成员B和C中的对象的信息被聚合和呈现给客户端库,其中用于群队成员A的信息未被呈现。
当列出群队化对象时,客户端应用134报告在哪些群队成员170上创建了群队成员和最后修改了群队成员。如果针对其打开当前命令会话的群队成员170的集合与其上创建对象的集合和其上最后修改对象的集合不相同,则客户端应用134向用户强调正在呈现对象的不完整视图。利用该信息,用户可以决定如何解释列表。
因此,参照图9,依照示例实现,技术900包括尝试(块902)响应于访问对象的请求而打开与集体存储针对给定分布式群队化对象的数据的所有群队成员170的通信。如果做出(判定块904)所有群队成员170不存在于针对其创建和修改对象的会话中的判定,则技术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(经由列1010中所描绘的页面)、群队成员2(经由列1012中所描绘的页面)以及群队成员3(经由列1014中所描绘的页面)检索的页面。来自群队成员的结果在页面边界1030和1032处分离。图10还描绘了结果的列1020。对于以下示例,客户端应用134检索来自每一个群队成员170的被定时的多达两个群队成员对象的页面并且在结果列1020中向用户返回被定时的两个群队化对象的页面。
更具体地,为了返回第一结果页面(A,B),客户端应用134从群队成员1读取一个结果页面,其包含前两个对象(按跨群队的创建时间的次序):A和B;来自群队成员2的两个结果页面;以及来自群队成员3的两个结果页面。对于该示例,群队化对象B和C实际上同时从两个不同的客户端创建;但是由于定时差异,群队化对象B和C以不同的次序在群队成员1与群队成员2上创建。因为如此,出于确定是否可以找到针对群队化对象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。
依照示例实现,针对每一个群队化对象创建和维护清单。一般而言,在本文中称为“对象清单”的清单描述针对存储在群队成员之间的给定群队化对象的数据的细节。以此方式,清单允许系统追踪分布式的各个数据项并且将其合并成一个凝聚的群队化对象。依照本文所公开的示例实现,在群队成员170之间分布对象清单。
更具体地,参照图11,依照示例实现,技术1100包括存储(块1102)针对多个群队成员170或存储装置上的对象的去复制的数据,以及分布(块1104)清单,其描述存储装置之间的群队化对象的存储。以此方式,对于每一个存储装置,技术1100包括存储(块1106)针对清单的数据,其描述该存储装置上的组块的存储。
不同于单个主清单,在群队成员170之间分布对象清单可以帮助避免单个故障点。换言之,单个清单的情况下,清单可能变成丢失或毁坏,这可能致使群队化对象无用,而不管底层数据对象的状态如何。然而,通过分布对象清单,每一个群队成员的对象清单(总体分布式对象清单的部分)完全是自描述的。换言之,每一个群队成员170了解其数据组块在较大群队化对象内配合在哪里。通过以此方式存储分布式数据,可以减少开销,而同时可以增加鲁棒性、冗余和灵活性。
参照图12,依照示例实现,主清单1200通过分布成员清单1240(成员清单1240-1,1240-2,1240-3和1240-4,其作为针对四个相应群队成员170的示例在图12中被描绘)来被创建,所述成员清单存储在各个群队成员170上。每一个成员清单1240进而包括条目,其中每一个描述针对存储在该群队成员上的相关联的群队化对象的组块。例如,对于图12的示例的群队成员1,成员清单1240-1包含多个条目1244(条目1244-1和1244-2,其作为示例描绘在图12中),所述条目描述对应组块的存储。继续该示例,群队成员节点2,3和4分别存储对应条目1246,1248和1250。共同地,条目1244,1246,1248和1250形成主清单1210的条目1220。
因此,如图12中所描绘的,主清单1210包括各种条目1220(条目1220-1,1220-2,1220-3和1220-4,其作为具体示例在图12中被描绘),所述条目对应于跨群队成员分布的条目。
一般而言,每一个条目(其中“条目”是指存储在群队成员上或者作为成员清单1240的部分所收集的条目)包含四个信息字段:1.)指定相关联的数据组块驻留在群队化对象中的哪里的第一字段;2.)指定数据块驻留在成员对象中的哪里的第二字段;3.)指示组块的大小(例如以字节为单位)的第三字段;以及4.)包含对其上存储相关联的组块的具体群队成员进行标识的数据的第四字段。
因此,如图12中所描绘的,在分布式主清单1200的情况下,每一个群队成员170包含成员清单1240,其仅描述成员本地存储的组块。
与主清单1210的给定条目1220形成对照,对应的成员清单条目包含较少信息。例如,相比于主清单条目1220,成员清单条目不标识节点,因为存储在群队成员上的所有数据具有相同的节点标识符。替代地,向群队成员的对象存储装置添加字段,所述字段描述哪些群队成员构成用于群队化对象的总体群队。这具有以下附加益处:允许群队成员能够联系任何其它群队成员以找出哪些群队成员存储针对给定群队化对象的数据。此外,不存在成员清单条目中的成员偏移。在这方面,群队成员仅使用群队化的偏移,因为关于如何存储其数据是由群队成员来决定的。
在写入操作期间,每一个群队成员170在其成员清单1240中记录其所拥有的数据区和对应组块驻留在哪里。当针对特定读取操作而重构群队触媒组块时,可以使用对争控概念的推论。可以向协议添加另一消息使得客户端应用134可以从每一个群队成员检索关于针对给定群队化对象所存储的数据组块(例如偏移和大小)。
因此,本文所公开的方法联合针对群队成员之间的给定群队化对象的主清单连同用户数据,从而回避在别的某处的单个位置处存储主清单。联合的方法可以帮助使用较少的协议消息以用于读取操作,并且依照示例实现,没有用于写入的附加消息,因为清单与每一个群队成员170上的数据紧密耦合。
而且,对象的主清单的丢失可能导致整个对象的丢失,而单独成员清单的丢失可能导致仅仅对象的部分丢失。而且,本文所描述的方法避免增添冗余,因为冗余可能相对复杂。例如,冗余的主清单将追踪每一个冗余组块存储在哪里。而且,如果主清单存储在多于一个地方,则每一个清单将与彼此同步。考虑其中清单拷贝之一变成“受损”的情况,在以确定性而确定其它(多个)拷贝中的哪个是“良好”的一个拷贝中可能存在显著挑战。如果主清单完全丢失或受损,则可能没有重构它的方式。此外,添加群队成员或从现有分布式对象移除群队成员可能具有挑战性。
增加所存储的数据的冗余性的一种方式是在多于一个群队成员170中存储每一个组块。通过使用争控过程,客户端应用134可以选择存储前两个争控(作为示例)而不是前一个。这将意味着每一个区可以被存储多于一次并且总是在多于一个服务器110上,虽然有总体去受骗性(dedupability)的损害。如果数据在一个群队成员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图示了非水化拷贝1400,其涉及源客户端应用1410、相关联的拷贝作业引擎1420和目标触媒应用1430。对于拷贝的每一个区段(例如十兆字节(MB)选择),拷贝引擎1420向源客户端应用1400请求1440散列清单并且向目标1460发送1450这些散列以供匹配。目标1460利用针对其请求组块数据的非匹配散列的列表而进行响应1470。拷贝引擎1420然后向源客户端应用1435请求1480这些独特的组块,接收1486非匹配组块并且然后向目标1460发送1488它们以被存储。
虽然本文已经公开了有限数目的示例,但是可以领会到从中的众多修改和变型。意图在于随附权利要求覆盖所有这样的修改和变型。

Claims (15)

1.一种方法,包括:
在包括多个存储装置的系统上存储针对对象的去复制的数据;以及
在存储装置之间分布清单,所述清单描述存储装置上的对象的存储。
2.权利要求1的方法,其中分布清单包括分布对给定数据组块驻留在对象中哪里进行指示的数据、对数据驻留在对应的群队存储装置中哪里进行指示的数据以及对组块驻留在相关联的群队成员中哪里进行指示的数据。
3.权利要求1的方法,其中分布清单包括分布对于对象组块的大小进行指示的数据。
4.权利要求1的方法,其中分布清单包括分布对哪个群队成员存储对象的相关联的组块进行标识的数据。
5.权利要求1的方法,其中分布对象包括对于给定的群队成员,在群队成员上存储数据,所述数据指示存储群队化对象的群队成员的标识。
6.权利要求1的方法,还包括:
通过检索被存储在群队成员之间的分布式数据来重构清单。
7.一种包括计算机可读非暂时性存储介质以存储指令的物品,所述指令在由计算机执行时使计算机:
在包括多个存储装置的存储系统上存储去复制的对象;以及
在存储装置之间分布清单,所述清单描述存储装置上的对象的存储。
8.权利要求7的物品,所述存储介质存储指令,所述指令在由计算机执行时使计算机分布对给定数据组块驻留在对象中哪里进行指示的数据、对数据驻留在对应群队存储装置中哪里进行指示的数据以及对组块驻留在相关联的群队成员中哪里进行指示的数据。
9.权利要求7的物品,所述存储介质存储指令,所述指令在由计算机执行时使计算机分布清单,包括分布对于对象组块的大小进行指示的数据。
10.权利要求7的物品,所述存储介质存储指令,所述指令在由计算机执行时使计算机分布清单,包括分布对哪个群队成员存储对象的相关联的组块进行标识的数据。
11.权利要求7的物品,其中给定的群队成员在群队成员上存储指示群队化对象的数据,并且指示群队化对象的数据在给定群队成员上分布在指示与群队化对象不同的对象的数据之中。
12.一种系统,包括:
备份应用,其包括处理器以更新存储在包括多个存储装置的系统上的分布式去复制的对象的清单;以及
客户端应用,其响应于所述更新而通过访问存储装置中的至少一个来访问存储在所述多个存储装置上的分布式清单。
13.权利要求12的系统,其中客户端应用分布对给定数据组块驻留在对象中哪里进行指示的数据、对数据驻留在对应群队存储装置中哪里进行指示的数据以及对组块驻留在相关联的群队成员中哪里进行指示的数据。
14.权利要求12的系统,其中客户端应用分布对于对象组块的大小进行指示的数据。
15.权利要求12的系统,其中客户端应用分布对哪个群队成员存储对象的相关联组块进行标识的数据。
CN201380076637.2A 2013-05-16 2013-05-16 具有分布式清单的去复制的数据存储系统 Pending CN105324757A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/041350 WO2014185914A1 (en) 2013-05-16 2013-05-16 Deduplicated data storage system having distributed manifest

Publications (1)

Publication Number Publication Date
CN105324757A true CN105324757A (zh) 2016-02-10

Family

ID=51898726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380076637.2A Pending CN105324757A (zh) 2013-05-16 2013-05-16 具有分布式清单的去复制的数据存储系统

Country Status (4)

Country Link
US (1) US20160170657A1 (zh)
EP (1) EP2997475A4 (zh)
CN (1) CN105324757A (zh)
WO (1) WO2014185914A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US8572340B2 (en) 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US8954446B2 (en) 2010-12-14 2015-02-10 Comm Vault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US9218374B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Collaborative restore in a networked storage system
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US10592347B2 (en) 2013-05-16 2020-03-17 Hewlett Packard Enterprise Development Lp Selecting a store for deduplicated data
US10296490B2 (en) 2013-05-16 2019-05-21 Hewlett-Packard Development Company, L.P. Reporting degraded state of data retrieved for distributed object
US10496490B2 (en) 2013-05-16 2019-12-03 Hewlett Packard Enterprise Development Lp Selecting a store for deduplicated data
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9430490B1 (en) * 2014-03-28 2016-08-30 Formation Data Systems, Inc. Multi-tenant secure data deduplication using data association tables
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US20170192868A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. User interface for identifying a location of a failed secondary storage device
US10574751B2 (en) 2016-03-22 2020-02-25 International Business Machines Corporation Identifying data for deduplication in a network storage environment
US10042717B2 (en) * 2016-06-05 2018-08-07 Vmware, Inc. Distributed local backup and restore system using peer-to-peer backups
US10348807B2 (en) 2016-07-28 2019-07-09 Caringo Inc. Multi-part upload
US10365974B2 (en) 2016-09-16 2019-07-30 Hewlett Packard Enterprise Development Lp Acquisition of object names for portion index objects
US10198190B2 (en) 2016-10-31 2019-02-05 International Business Machines Corporation Performance oriented data deduplication and duplication
US10749668B2 (en) * 2017-05-03 2020-08-18 International Business Machines Corporation Reduction in storage usage in blockchain
US11182256B2 (en) 2017-10-20 2021-11-23 Hewlett Packard Enterprise Development Lp Backup item metadata including range information
US10700711B1 (en) 2017-11-03 2020-06-30 Caringo Inc. Multi-part upload and editing of erasure-coded objects
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US10732881B1 (en) 2019-01-30 2020-08-04 Hewlett Packard Enterprise Development Lp Region cloning for deduplication
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US10733158B1 (en) * 2019-05-03 2020-08-04 EMC IP Holding Company LLC System and method for hash-based entropy calculation
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US10921987B1 (en) * 2019-07-31 2021-02-16 EMC IP Holding Company LLC Deduplication of large block aggregates using representative block digests
US10877931B1 (en) 2019-09-12 2020-12-29 Hewlett Packard Enterprise Development Lp Backups of file system instances having subtrees
US20210173811A1 (en) 2019-12-04 2021-06-10 Commvault Systems, Inc. Optimizing the restoration of deduplicated data stored in multi-node replicated file systems
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113167A1 (en) * 2007-10-25 2009-04-30 Peter Thomas Camble Data processing apparatus and method of processing data
US20090171888A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Data deduplication by separating data from meta data
TW201103025A (en) * 2009-07-09 2011-01-16 Phison Electronics Corp Logical block management method for a flash memory and control circuit and storage system using the same
US20110022718A1 (en) * 2009-07-24 2011-01-27 Evans Nigel Ronald Data Deduplication Apparatus and Method for Storing Data Received in a Data Stream From a Data Store
US20120143715A1 (en) * 2009-10-26 2012-06-07 Kave Eshghi Sparse index bidding and auction based storage
CN102736961A (zh) * 2011-03-11 2012-10-17 微软公司 数据去重复的备份和还原策略
WO2012158654A2 (en) * 2011-05-14 2012-11-22 Bitcasa, Inc. Cloud file system with server-side deduplication of user-agnostic encrypted files
US20120303736A1 (en) * 2011-05-25 2012-11-29 Alcatel-Lucent Usa Inc. Method And Apparatus For Achieving Data Security In A Distributed Cloud Computing Environment
CN102917012A (zh) * 2011-09-09 2013-02-06 微软公司 存储与通信去重复

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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.

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113167A1 (en) * 2007-10-25 2009-04-30 Peter Thomas Camble Data processing apparatus and method of processing data
US20090171888A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Data deduplication by separating data from meta data
TW201103025A (en) * 2009-07-09 2011-01-16 Phison Electronics Corp Logical block management method for a flash memory and control circuit and storage system using the same
US20110022718A1 (en) * 2009-07-24 2011-01-27 Evans Nigel Ronald Data Deduplication Apparatus and Method for Storing Data Received in a Data Stream From a Data Store
US20120143715A1 (en) * 2009-10-26 2012-06-07 Kave Eshghi Sparse index bidding and auction based storage
CN102736961A (zh) * 2011-03-11 2012-10-17 微软公司 数据去重复的备份和还原策略
WO2012158654A2 (en) * 2011-05-14 2012-11-22 Bitcasa, Inc. Cloud file system with server-side deduplication of user-agnostic encrypted files
US20120303736A1 (en) * 2011-05-25 2012-11-29 Alcatel-Lucent Usa Inc. Method And Apparatus For Achieving Data Security In A Distributed Cloud Computing Environment
CN102917012A (zh) * 2011-09-09 2013-02-06 微软公司 存储与通信去重复

Also Published As

Publication number Publication date
WO2014185914A1 (en) 2014-11-20
EP2997475A4 (en) 2017-03-22
EP2997475A1 (en) 2016-03-23
US20160170657A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
CN105324757A (zh) 具有分布式清单的去复制的数据存储系统
CN105339929B (zh) 选择用于取消重复数据的存储
CN105324765B (zh) 选择用于去重复数据的存储区
EP2422274B1 (en) Intelligent tiers of backup data
KR101626186B1 (ko) 피어 및 클라우드로부터 파일 및 시스템의 차분 복구
JP5878548B2 (ja) 重複排除ストレージ・システム、その内部の合成バックアップを容易にする方法、及び、プログラム
CN103294675B (zh) 一种分布式存储系统中的数据更新方法及装置
CN101233517B (zh) 把包括工作文件的集合保持在存储池中的方法和系统
US10872017B2 (en) Restoring a file system object
US8818954B1 (en) Change tracking
US20150066857A1 (en) Replication of snapshots and clones
JP5516575B2 (ja) データ挿入システム
CN103186554A (zh) 分布式数据镜像方法及存储数据节点
CN103473252A (zh) 用于文件系统复制中复制标识与冲突避免的方法与系统
CN102652423A (zh) 用于集群选择和协作复制的集群族
US20150046398A1 (en) Accessing And Replicating Backup Data Objects
CN112114753B (zh) 一种数据写入方法、装置及设备
CN104246720B (zh) 确定用于去重复的段边界
CN105359107A (zh) 报告针对分布式对象取回的数据的降级状态
US9513996B2 (en) Information processing apparatus, computer-readable recording medium having stored program for controlling information processing apparatus, and method for controlling information processing apparatus
CN113010496A (zh) 一种数据迁移方法、装置、设备和存储介质
CN104636088A (zh) 一种将数据写入数据服务器的方法及存储系统
CN105468733B (zh) 一种基于源端数据重删的卷复制方法
CN108241557A (zh) Hdfs中数据备份的方法
KR101620219B1 (ko) P2p 기반 중복제거를 이용한 가상머신 이미지 배포, 다운로드하는 방법 및 그 장치

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

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

Applicant before: Hewlett-Packard Development Company, L.P.

AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20191101