CN104067239A - 用于数据组块去复制的系统和方法 - Google Patents

用于数据组块去复制的系统和方法 Download PDF

Info

Publication number
CN104067239A
CN104067239A CN201280068663.6A CN201280068663A CN104067239A CN 104067239 A CN104067239 A CN 104067239A CN 201280068663 A CN201280068663 A CN 201280068663A CN 104067239 A CN104067239 A CN 104067239A
Authority
CN
China
Prior art keywords
node
backend nodes
viscosity
data
data chunks
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.)
Granted
Application number
CN201280068663.6A
Other languages
English (en)
Other versions
CN104067239B (zh
Inventor
M.D.利利布里奇
K.埃什希
M.R.沃特金斯
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 CN104067239A publication Critical patent/CN104067239A/zh
Application granted granted Critical
Publication of CN104067239B publication Critical patent/CN104067239B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • 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/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]

Landscapes

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

Abstract

一种方法包括:接收关于多个数据组块的信息,并且确定多个后端节点中的一个或多个是否已经存储多于阈值量的多个数据组块,其中所述多个后端节点中的一个被指定为粘性节点。所述方法进一步包括:响应于确定所述多个后端节点中的任何一个没有已经存储多于阈值量的多个数据组块,对照被指定为粘性节点的后端节点对所述多个数据组块去复制。最后,所述方法包括:响应于正在被处理的数据量,把不同的后端节点指定为粘性节点。

Description

用于数据组块去复制的系统和方法
背景技术
数据去复制是用于消除冗余数据的数据压缩技术,并且对于改进存储利用率(例如,当定期备份大量数据时)特别有用。当把基于组块的内联去复制用于备份时,将备份的数据流被使用分块算法分解成称为“组块”的较小块(典型地大约几千字节)并且例如,使用MD5哈希函数或SHA哈希函数为每个组块计算哈希。用于将备份组块的哈希在一个或多个索引和/或由系统维护的其它数据结构中被查找。如果系统确定作为结果其已经具有采用那个哈希的组块,则那个组块是已被存储在系统中的数据的复制并且无需再次被存储。因此,用于每个进入的组块的哈希在一个或多个索引和/或由系统维护的其它数据结构中被查找。
为了在保持性能的同时限制所需的昂贵存储器的量,复杂的索引方法可以在实践中被使用。在一个示例(“稀疏索引方法”)中,系统维护“稀疏索引”,其把被称为“钩子(hook)”的哈希的小的子集(例如,每32或64个唯一哈希中一个)映射到具有关于具有那个钩子的组块以及在过去靠近那个组块出现的组块的信息的索引。
在另一个示例(“布隆(Bloom)过滤器方法”)中,布隆过滤器跟踪由系统存储的组块的哈希,并且全组块索引把由系统存储的每个组块的哈希映射到具有信息的索引,所述信息关于具有那个哈希的组块以及在过去靠近那个组块出现的组块。仅当布隆过滤器确定输入组块已经被存储时,全组块索引才被考虑,以减少对全组块索引的访问的数量。
使用以上所描述的方法中的一个的单个节点为应用(其中备份的数据量是低的,或者其中不需要高的吞吐量)提供可接受的性能。然而,对于其中数据备份需求高得多的企业类型的应用,使用多节点存储系统可能是有益的。做到这样的一种方式是在多个大部分自治的后端节点之间适当地路由进入的数据,后端节点的每一个可能正在使用上面示例性方法中的一个。在这个架构下,每批量进入的数据仅对照一个后端节点被去复制,因此,重要的是:把相似批量的数据路由到相同的后端节点以确保高效的去复制,从而最小化备份数据的存储空间影响。
附图说明
为了详细描述示例性实现方式,对附图的参考现在将被做出,其中:
图1a示出了依据各种示例的多节点数据去复制系统的框图;
图1b示出了依据各种示例的前端节点的示例架构;
图2示出了依据各种示例的交错数据流的示例图;以及
图3示出了依据各种示例的方法流程图。
符号和术语
某些术语贯穿接下来的说明书和权利要求被使用以指代特定系统部件。作为本领域的技术人员将认识到的是:计算机公司可以采用不同的名称指代部件。本文档不旨在区分名称上不同而不是功能上不同的部件。在接下来的讨论中以及在权利要求中,术语“包括”和“包含”以开放的形式被使用,并且因此应被解释为表示“包括,但不限于……”。此外,术语“耦合”旨在表示间接、直接、光学或无线电气连接。因此,如果第一设备耦合到第二设备,则那个连接可以通过直接电气连接、通过经由其它设备和连接的间接电气连接、通过光学电气连接、或通过无线电气连接。
如在此所使用的,术语“组块”是指使用分块算法生成的数据流的子集。
如在此所使用的,术语“段”是指使用分段算法生成的一组组块。
如在此所使用的,术语“哈希”是指使用哈希函数创建的组块的标识。
如在此所使用的,术语“钩子”是指已被采样的组块的哈希。
如在此所使用的,术语“块”是指与其它文件或数据流交错的文件或数据流的划分。例如,交错的数据可以包括1a, 2a, 3a, 1b, 2b, 1c, 3b, 2c,其中,1a是底层流一的第一块,1b是底层流一的第二块,2a是底层流二的第一块等。在一些情形下,所述块在长度上可以不同。
如在此所使用的,术语“去复制”是指以在系统或节点处物理上仅具有每个唯一组块的一个(或者,在非理想罕见的照管下为:几个)副本的方式,在存储系统中或在存储节点处逻辑上存储数据的组块、段或其它划分的动作。例如,依次对照初始为空的存储节点对ABC, DBC和EBF(其中每个字母表示唯一组块)去复制导致仅有一个B的物理副本,但三个逻辑副本。
例如,如果组块被对照存储位置去复制并且所述组块之前未被存储在所述存储位置,则所述组块被物理上存储在所述存储位置。然而,如果组块被对照存储位置去复制并且所述组块已经被存储在所述存储位置,则所述组块不再次被物理上存储在所述存储位置。作为又一个示例,如果多个组块被对照存储位置去复制并且仅所述组块中的一些已经被存储在所述存储位置,则仅之前未被存储在所述存储位置的组块作为去复制的一部分被物理上存储在所述存储位置。
如在此所使用的,术语“粘性路由”是指新数据存储路由算法,新数据存储路由算法趋向于把大的连续片的新数据均存储在单个后端节点,但均对照其看起来最相似的任何一个后端节点对小片中的旧数据去复制。在一些情形下,新的段被对照当前指定的“粘性”存储节点去复制,当足够的新数据被积聚在当前指定的“粘性”存储节点时,该“粘性”存储节点被改变。
具体实施方式
图1a示出了包括存储系统101的示例多节点去复制架构100。尽管被描述为使用稀疏索引方法,但布隆过滤器方法以及索引的其它方法可以被替代地使用。多节点架构100包括耦合到前端节点104a的客户端102a。附加的客户端102b, 102c, 102d以及附加的前端节点104b被作为示例示出,不过其它的示例不需要多个客户端或前端节点。在其中具有多个客户端和/或前端节点的情形下,客户端拥有相似于示例性客户端102a的功能性,并且前端节点拥有相似于示例性前端节点104a的功能性;换言之,在此描述的功能性可以由并行操作的多个客户端和前端节点执行。在一些情形下,客户端102a-d和前端节点104a, 104b之间的关联性可以随着时间而改变。
客户端102a可以包括典型客户端-服务器网络中的服务请求程序,并且前端节点104a可以包括服务器的处理单元以及其它功能元件,所述服务器把资源或服务提供到客户端102a。附加地,前端节点104a可以耦合到或包括机器可读存储设备112(如在图1b中所示的),诸如,压缩盘、软盘、基于闪存的存储器、或其它非临时性存储设备。前端节点104a可以执行在机器可读存储设备112上所包含的指令,并且因此执行以下所描述的各种功能。
前端节点104a被示出为包括分段模块105a。所述分段模块105a执行分块和分段算法以对从客户端102a和102b接收的进入的数据流分块和分段。在一些情形下,分块算法可以按物理层约束(例如,任意位置写入文件布局(WAFL)中的4千字节组块大小)定义组块,而在其它情形下,组块可以被使用“滑动组块”算法定义,其中窗口被沿着数据流传递以识别更多自然出现的内部文件边界。分段算法把组块分组成段,并且可以采用相似于分块算法可以如何选择组块边界的方式选择段边界。例如,段边界可以基于大小(例如,10兆字节的段)或基于更多自然出现的或逻辑的组块边界。在可替代的示例中,分段模块105a可以在本地驻留在客户端102a-b或在本地部分地驻留在客户端102a-b。在这些示例中,客户端102把组块、哈希和/或段(而不是面向字节的数据流)发送到前端节点104a。
前端节点104a被通过一个或多个网络106耦合到多个后端节点108。网络106可以包括本领域已知的高速总线,并且后端节点108可以包括或被耦合到非易失性存储设备,诸如,硬盘驱动器、固态驱动器等。网络106允许把请求、数据流、组块、段等从前端节点104a路由到一个或多个后端节点108例如来备份数据流。本领域的技术人员认识到数据流可以包括文件、图像、虚拟磁带图像、数据库备份、文档等。
在一些示例中,客户端102a期望对由备份代理生成的数据流去复制。客户端102a把数据流发送到前端节点104a的分段模块105a,分段模块105a后续对数据流进行分块和分段。前端节点104a为每个段的每个组块计算哈希,并且因为这个示例使用稀疏索引方法,所以通过采样每个段的组块的哈希计算针对每个段的钩子。组成所述钩子的所采样的哈希被称为“钩子哈希”。可替代地,与上面相似,客户端102a(例如,使用本地分段模块)对数据进行分块和分段、以及计算每个段的每个组块的哈希,以及计算用于每个段的钩子。可替代地,客户端102a把每个组块的哈希分块并发送到前端节点104a,并且前端节点104a执行分段和钩子选择。这些任务的其它划分可以被等同地使用。
如以上所解释的,存储系统101使用其中进入的数据的每个段被仅对照一个相对自治的后端节点去复制的架构。在这个架构下,重要的是:具有相当大量旧组块的每个段被对照包含其旧组块中的大多数的后端节点去复制。针对包含旧数据的段做到这样的一种方式是进行竞拍,其中每个后端节点基于所述后端节点认为其有多大可能来很好地把所述段去复制而“投标”。
每个后端节点108维护相关联的稀疏索引109,稀疏索引109把在那个特定后端节点处存储的段的钩子映射到包含关于那些钩子(未示出)的信息的索引。为了确保进入的段被对照最适合的后端节点108去复制,前端节点104a把为数据流的每个段所计算的钩子哈希广播到后端节点108。
尽管参考去复制一个段来描述,但在实践中,段可以被相继地或采用某个并行性程度(例如,管道可以与每个阶段中的一个或多个段一起被使用)去复制。针对给定段,每个后端节点108把投标返回到前端节点104a。投标可以由那个后端节点的稀疏索引中发现的给定段的钩子的数量构成。投标越大,给定段将对照那个后端节点很好地去复制(例如,需要最少的物理拷贝)的可能性越大。
然后,基于从后端节点108接收的投标,前端节点104a把给定段的剩余哈希发送到生成最高投标的后端节点108(为了在接下来的讨论中简单化,假设108a已生成高投标)。投标可以是在那个后端节点108的稀疏索引109中出现的钩子哈希的数量,或可以是给定段是否可能被对照那个后端节点很好地去复制的另一个指标。
如果布隆过滤器方法在这个示例架构中正在被使用,则稀疏索引109会被布隆过滤器以及全组块索引取代。可替代地,所述钩子可以是所有给定段的哈希,以及所述投标可以由在相关布隆过滤器中发现的钩子的数量构成。
高投标后端节点(108a)然后确定其尚未使对应的组块被针对剩余哈希和钩子哈希中的哪些存储,并且通知前端节点104a针对未被存储的组块的哈希。例如,这个确定可以通过把哈希与通过在其稀疏索引109中查找钩子而发现的一个或多个索引相比较而发生。布隆过滤器方法会是相似的,除了钩子可以在全组块索引中被查找之外(如果它们未被在任何可用的所缓存的索引中发现)。
如果前端节点104a已执行所述分块和分段,则前端节点104a把被指示为未被存储的组块发送到后端节点108a,该后端节点108a然后存储那些组块。如果客户端102a已执行所述分块和分段,则前端节点104a把针对未在后端节点108a存储的组块的哈希中继到客户端102a,并且所述客户端102a把被指示为未存储的组块发送到前端节点104a,所述前端节点104a把那些组块转发到后端节点108a以便存储。可替代地,后端节点108a可以与客户端102a直接通信,旁路所述前端节点104a。
如果没有非零投标被接收,则所述段最可能是新数据,并且因此可以对照例如最少被加载的后端节点108(即,具有最多可用存储空间的后端节点)去复制。可替代地,在后端节点108之间投标相等的情形下,所述段可以被存储在具有相等投标的节点中的最少被加载的后端节点108处。此外,如果所述投标相等并且后端节点108被相等地加载,则所述段可以被存储在具有最高投标的后端节点中的随机选择或者轮换的后端节点108处。
上面的去复制方案是来自客户端102a的数据流可以如何被对照后端节点108去复制的示例。数据流中的每个段可以被路由到不同的后端节点108(即,对照其来去复制)。然而,其它的数据去复制方案可以被相似地使用,并且可适用于本公开中所给定的示例。附加地,如以上所解释的,为了简单化起见,参考客户端102a和前端节点104a;然而,客户端102b, 102c, 102d以及前端节点104b拥有与客户端102a以及前端节点104a相同或相似的功能性。
图1b示出了前端节点104a的一部分硬件架构的示例。前端节点104a包括耦合到机器可读存储设备112的一个或多个硬件处理器110。机器可读存储设备112可以包括硬盘驱动器、压缩盘、软盘、基于闪存的存储器、或其它非临时性存储设备。机器可读存储设备112包括机器可读指令114,当其由硬件处理器110执行时,促使硬件处理器110执行在此描述的各种功能性和/或方法(例如,图3的方法300)中的一些或全部。相似的硬件架构可以在前端节点104b、客户端102a-102d以及后端节点108处被实现。
在一些情形下,每个客户端102可以生成将在图1a中所示的存储系统101处备份的交错或复用的数据(例如,由转储SQL服务器?数据库产生的数据流)。当只使用以上所解释的基于投标的方法时,交错数据的有效数据去复制可能是有问题的。
图2示出了在不同天备份的两个交错数据流的示例。阴影部分A-F例如表示来自由备份过程交错的不同底层数据流的块,备份过程例如可以在客户端102a上运行。在天1,前端节点104a接收第一数据流(被标记为天1),并且把块A、B和一部分C分块和分段成段1,以及把块C的剩余部分以及块D、E和F分块和分段成段2。在一些情形下,存储系统101可能不知道块的边界,块的边界可能仅对备份过程是已知的。
为了例示基于纯投标的方法的潜在的低效率,假设前端节点104a把段1存储在后端节点108a上,并且把段2存储在后端节点108b上。随后,在天2,将备份的底层数据保持相同或接近相同(例如,被交错的底层数据流未改变或仅最小地改变)。然而,来自各种底层数据流的块由备份过程以不同于天1的次序交错,这在数据交错或复用过程中是普遍发生的事情。因此,前端节点104a接收块,并且把块E、A、和一部分F分块和分段成段3,以及把块F的剩余部分和块D、C和B分块和分段成段4。因此,段3和段4均包含之前已被横跨两个后端节点108存储的数据。当把段3存储在后端节点108a或108b上时,这导致不良的数据去复制(尽管在天1存储的块与在天2存储的块之间有相似性),因为仅那个段的一小部分在任一后端节点108上被发现。相似的问题相对于段4存在。
依据各种示例,前端节点104a使用“粘性路由”方法,“粘性路由”方法通过在不同后端节点108中的每一个上分组大量新的邻近交错数据改进后续的去复制性能。仍参考图2,当段1和段2在天1被存储时,确保它们被存储在相同的后端节点(例如,后端节点108a)上是有益的。如果段1和2初始存储在后端节点108a上,则在天2,当段3将被存储时,以上基于投标的方法将促使前端节点104a对照后端节点108a去复制段3。这导致没有附加的组块被物理上存储在后端节点108a处,因为块E、A和一部分F已经被存储在后端节点108a上。因此,当后端节点108a对照后端节点108a去复制段3时,在天2最少的新数据被存储在后端节点108a处。
为了促进进入的数据流的粘性路由,前端节点104a、104b具有包括“投标阈值”和“粘性阈值”的值。投标阈值是用于确定是否段很可能对照每个后端节点108不良地去复制(即,段很可能大部分是新数据)的机制的示例。粘性阈值是在当前被指定为粘性节点的后端节点108被改变之前被处理的数据量上的上限。前端节点104a, 104b还可以保持存储“粘性节点”和“处理量”值的数据结构107a, 107b。粘性节点指定当前的后端节点108,新数据应被对照所述后端节点108去复制。
在一个示例中的处理量可以是自从当前粘性节点最近变为当前粘性节点以来对照当前粘性节点去复制的数据量。可替代地,在另一个示例中,处理量可以是自从当前粘性节点最近变为当前粘性节点以来由于数据被对照其而去复制而被物理上添加到当前粘性节点的数据量。可替代地,在另一个示例中,处理量可以简单地是自从当前粘性节点最近变为当前粘性节点以来对照任何后端节点去复制的数据量。许多其它变体是可能的;例如,处理量可以仅包括新的大部分为新的段。
当多个输入数据流正在一次被处理时,对于当前被前端节点104a处理的每个输入数据流可以具有一个数据结构107a,并且与给定流相关联的处理量值可以仅指代作为那个流的一部分的数据。因此,不同的流可以具有不同的粘性节点,其在不同的时间被切换。尽管总体上被描述为仅在一个流上进行操作,但所述系统正常情况下可以被操作,许多流一次被处理。
本领域的技术人员认识到:通常,所处理的数据量提供了多少新数据最近已被存储在当前被指定为粘性节点的后端节点108处的指标,并且因此提供了估量新的后端节点108何时应被指定为当前粘性节点的方式。确定何时把新的后端节点108指定为粘性节点的其它方法在本公开的范围内。
投标阈值可以用实验的方法确定,但通常应为低的数字,其会指示是否特定段很可能会对照后端节点108中的一个不良地去复制。例如,如果投标阈值是2,则来自后端节点108针对段的1或0的投标应指示所述段不是很可能对照那个后端节点108良好地去复制,并且3或以上的投标应指示所述段很可能对照所述后端节点108至少在某种程度上去复制。
可替代地,投标阈值可以是百分比值(即,被去复制的组块的数量的百分比阈值),而不是整数值。为了简单化的目的,其中投标等于阈值的情形未被讨论,因为实际的投标阈值可以简单地被调整来提供正确的结果。
粘性阈值应比来自不同底层流的两个初始相邻的块将在未来的天中分离移动的最大可能距离大。例如,在实践中,这个值可以小于大约10吉字节,因此限制了交错数据的初始段在后面的天中在大小上可以“涂抹出”的程度。因此,未来段的数据来自原始数据的相似限制的部分。如果粘性阈值被设置为比这个大小大(例如,50吉字节),则未来段的数据中的全部或大部分最初将被存储在一个后端节点处是很可能的。以上所解释的投标过程确保了那个后端节点在多数情形下被成功地发现。然而,甚至在所述段横跨两个后端节点分布的情形下,投标有助于确保去复制对照具有较大量的段的后端节点发生。在一些情形下,粘性阈值可以基于一个或多个后端节点108的负载(即,可用存储空间)而变化。
所指定的粘性节点可以随着时间而改变,例如当所处理的数据到达所述粘性阈值时。在那个点处,所指定的粘性节点可以被改变并且处理量复位到零。初始地,在数据已经被存储在后端节点108之前,所述粘性节点可以被任意地设置。
图3示出了用于数据流的粘性路由的说明性方法300。在一些情形下,方法300可以由一个或多个硬件处理器执行在图1b中所示的机器可读指令而执行。另外,方法的各种步骤可以由图1a的客户端、前端节点、以及后端节点执行,并且可以采用与所示出的那个不同的次序来执行。方法300开始于接收关于多个组块的信息(块302)。所述信息可以例如从在客户端102或前端节点104上运行的分段模块接收,并且可以包括:哈希、钩子、或包括其它组块标识信息的它们的组合。
方法300继续确定多个后端节点108中的一个或多个是否已经存储多于阈值量的多个数据组块(块304)。如上面所解释的,这可以通过把与多个数据组块相关联的钩子广播到全部后端节点、从每个后端节点接收投标、并且把所述投标与投标阈值相比较来确定。如果任何投标都超过了投标阈值,则所述确定可以采用肯定的方式来做出。特别地,如果其投标超过投标阈值,则后端节点108可以被确定为已经存储超过阈值量的多个数据组块。投标阈值可以是绝对的(例如,所述投标超过2?)或相对的(例如,所述钩子的至少5%被发现?)。
每个后端节点108可以通过访问一个或多个索引或过滤器来生成其投标。例如,其投标可以由它在其稀疏索引或布隆过滤器中发现的广播钩子的数量构成。所述投标例如可以通过那个后端节点剩下了多少空间被加权。
在另一个示例中,确定可以通过在不进行广播的情形下访问与多个后端节点108相关联的一个或多个索引或过滤器来做出。例如,后端节点的布隆过滤器的副本在每个前端节点106上可以是可用的。在一些情形下,确定可以经由试探法完成,并且因此可能不总是正确的。例如,存储系统101可能不正确地推断出段是新的,因为其旧组块的哈希未被选择为钩子。
如果确定至少阈值量的多个数据组块已经被存储在后端节点108处(块306),则所述多个数据组块对照已被确定为已经存储多于阈值量的多个数据组块的后端节点108中的一个被去复制(块308),并且方法300结束。有许多方式来选择那些超过阈值的后端节点108,从而对照其来去复制给定的段。例如,确定为已经存储多个数据组块中的大部分的多个后端节点108中的一个可以被选择。这可以通过选择返回最高投标值的后端节点108中的一个来完成。
然而,如果确定多个后端节点108中的任何一个都没有已经存储多于阈值量的多个数据组块(块306),则所述多个数据组块大部分是之前未被存储的新组块。因此,方法300继续对照被指定为粘性节点的后端节点108去复制多个数据组块(块310)。
不是所有新的数据被发送到相同的后端节点108对于有效负载平衡而言是令人期望的。因此,方法300继续把所处理的数据量值与粘性阈值相比较(块312)。如果所处理的数据量小于或等于粘性阈值,则当前粘性节点应存储更多新的数据,并且因此方法结束。
然而,如果所处理的数据量大于粘性阈值,则不同的后端节点108被指定为粘性节点(块314),并且方法结束。与使用简单的粘性阈值以用于确定何时来改变所指定的粘性节点相比,响应于正在被处理的数据量的其它方法可以被相似地使用。
存储系统101可以在数据被处理时维护当前所处理的数据量值,而不是每当当前所处理的数据量值被需要时重新计算当前所处理的数据量值。即,当数据被处理时,所处理数据的量值可以被适当地更新。
在当前所指定的粘性节点被改变时,当前所处理的数据量值可以被复位到零;这导致所处理的数据量仅包括自从当前所指定粘性节点最后变为所指定的粘性节点以来所处理的数据。在一个示例中,当数据被对照当前所指定的粘性节点去复制时,那个数据的大小被添加到当前所处理的量值。在这种情形下,所处理的数据量仅包括已被对照当前所指定的粘性节点去复制的数据。它事实上可以是:自从当前所指定粘性节点最后变为所指定的粘性节点以来已被对照当前所指定的粘性节点去复制的数据量。
在另一个示例中,当数据被对照当前所指定的粘性节点去复制时,仅已被物理上添加到当前所指定粘性节点的那个数据的部分的大小被添加到所处理的数据量值。在这种情形下,所处理的数据量仅包括已被已被物理上添加到当前所指定粘性节点的数据。它事实上可以是:自从当前所指定粘性节点最后变为所指定的粘性节点以来已被物理上添加到当前所指定的粘性节点的数据量。在另一个示例中,当数据被对照任何后端节点108去复制时,那个数据的大小被添加到所处理的数据量值。它事实上可以是:自从当前所指定粘性节点最后变为所指定的粘性节点以来已被去复制的数据量。
在图1a中所示出的两个后端节点之外,可以有多个后端节点。在这种情形下,当选择新的后端节点作为当前所指定的粘性节点时,选择必须被做出。最少被加载的后端节点(例如,具有最多可用存储空间的后端节点)可以被选择,或者,如果具有多个最少被加载的后端节点,则所更新的粘性节点可以被从最少被加载的后端节点中随机地选择。可替代地,后端节点108可以采用循环(round robin)的方式选择,其中最近最少被指定为粘性节点的后端节点接下来被选择。许多其它的方法存在;通常来说,较轻被加载以及最近最少被使用的后端节点应是优选的。
当一次处理多个数据流时(即,方法300的多个实例并行地发生),某些附加的考虑开始起作用。特别地,横跨后端节点108加载平衡使得不是所有的流一次把新数据都发送到相同的后端节点108是有用的。做到这样的一种方式为:“惩罚”当前作为用于某个其它数据流的所指定粘性节点的节点;惩罚可以取决于那个节点是用于多少个这种流的当前所指定粘性节点。
例如,针对每个后端节点108,有效可用存储空间可以通过从其总的可用存储空间减去其已经被使用的存储空间以及由现有数据流在其上“保留”的存储空间量二者来计算,其中,数据流在其当前指定的粘性节点上“保留”与粘性阈值减去其处理量值相等的空间量。存储系统101可以通过在具有最高有效可用存储空间的后端节点108之间选择并且通过最近最少被使用决胜来选择用作粘性节点的下一个后端节点108。在一些示例中,如果该后端节点108尤其是具有最多可用空间的节点,与旧的指定粘性节点相同的后端节点108可以被选择为新指定的粘性节点。
以上的方法300使大邻近片的新数据能够均被存储在单个的后端节点。在其中存储的数据被交错情形下,在后续数据交错期间(例如,在后续的天)块的有限重新定序对数据去复制的效率具有减少的影响,因为在段中所包含的块部分很可能在单个后端节点108处被发现。更有可能的是,存储系统101很可能确定所述后端节点是去复制那个段对照的最佳后端节点,从而导致增加的去复制性能。
如以上所解释的,数据去复制系统可以被扩展来包括多个后端节点,同时有效分布交错数据以改进去复制性能,从而最小化在数据备份过程期间所消耗的存储空间的量。此外,用于分布不是新的段的基于投标的方案可以采用与单个后端节点数据去复制和备份系统一致的方式被使用。
以上的讨论意图说明本发明的原则和各种示例。一旦以上的公开被完全认识,众多的变化和修改对于本领域的技术人员将变得显然。例如,确定数据是否被存储在后端节点处可以包括:确定数据是否实际在后端节点处存在,或者例如在使用可以返回假阳性的布隆过滤器的过程中,确定数据在后端节点处存在是否是很可能的。确定数据是被存储还是很可能被存储在后端节点处的其它方法对于本领域的技术人员是显然的。旨在接下来的权利要求被解释为包括所有这种变化和修改。

Claims (15)

1.一种方法,包括:
接收关于多个数据组块的信息;
确定多个后端节点中的一个或多个是否已经存储多于阈值量的多个数据组块,所述多个后端节点中的一个被指定为粘性节点;
响应于确定所述多个后端节点中的任何一个没有已经存储多于阈值量的多个数据组块,对照被指定为粘性节点的后端节点对所述多个数据组块去复制;以及
响应于正在被处理的数据量,把不同的后端节点指定为粘性节点。
2.如权利要求1所述的方法,进一步包括:访问与所述多个后端节点相关联的一个或多个索引或过滤器,从而确定所述多个后端节点中的一个或多个是否已经存储多于阈值量的多个数据组块。
3.如权利要求1所述的方法,进一步包括:响应于由粘性节点处理的数据量大于粘性阈值,把不同的后端节点指定为粘性节点。
4.如权利要求1所述的方法,其中把不同的后端节点指定为粘性节点进一步包括:把具有最大可用存储空间的后端节点指定为粘性节点,或者把最近最少被指定为粘性节点的后端节点指定为粘性节点。
5.如权利要求1所述的方法,进一步包括:响应于所处理的数据量大于粘性阈值并且一个以上的后端节点具有最大可用存储空间,把具有最大可用存储空间的后端节点中的一个指定为粘性节点。
6.如权利要求1所述的方法,进一步包括:响应于确定所述多个后端节点中的一个或多个已经存储多于阈值量的多个数据组块,对照已被确定为已经存储多于阈值量的多个数据组块的所述多个后端节点中的一个对所述多个数据组块去复制。
7.如权利要求6所述的方法,进一步包括:响应于确定所述多个后端节点中的一个或多个已经存储多于阈值量的多个数据组块,对照已被确定为存储所述多个后端节点的多个数据组块中的大部分的所述多个后端节点中的一个对所述多个数据组块去复制。
8.如权利要求1所述的方法,其中所处理的数据量仅包括自从当前所指定的粘性节点最后变为所指定的粘性节点以来所处理的数据。
9.如权利要求1所述的方法,其中所处理的数据量仅包括已被对照当前所指定的粘性节点去复制的数据。
10.如权利要求1所述的方法,其中所处理的数据量仅包括已被物理上添加到当前所指定的粘性节点的数据。
11.一种系统,包括:
前端节点;以及
多个后端节点,其被经由总线耦合到所述前端节点;
所述前端节点用于:
  接收关于多个数据组块的信息;
  确定多个后端节点中的一个或多个是否已经存储多于阈值量的多个数据组块,所述多个后端节点中的一个被指定为粘性节点;
  响应于确定所述多个后端节点中的任何一个没有已经存储多于阈值量的多个数据组块,对照被指定为粘性节点的后端节点对所述多个数据组块去复制;以及
  响应于正在被处理的数据量,把不同的后端节点指定为粘性节点。
12.如权利要求11所述的系统,其中当所述前端节点把不同的后端节点指定为粘性节点时,所述前端节点把具有最大可用存储空间的后端节点指定为粘性节点,或者把最近最少被指定为粘性节点的后端节点指定为粘性节点。
13.如权利要求11所述的系统,其中所述前端节点被配置成:响应于所处理的数据量大于粘性阈值并且一个以上的后端节点具有最大可用存储空间,把具有最大可用存储空间的后端节点中的一个指定为粘性节点。
14.如权利要求11所述的系统,其中所述前端节点被配置成:响应于确定所述多个后端节点中的一个或多个已经存储多于阈值量的多个数据组块,对照已被确定为已经存储多于阈值量的多个数据组块的所述多个后端节点中的一个对所述多个数据组块去复制。
15.一种包含机器可读指令的机器可读存储设备,当所述机器可读指令由一个或多个硬件处理器执行时,促使所述一个或多个硬件处理器来:
接收关于多个数据组块的信息;
确定多个后端节点中的一个或多个是否已经存储多于阈值量的多个数据组块,所述多个后端节点中的一个被指定为粘性节点;
响应于确定所述多个后端节点中的任何一个没有已经存储多于阈值量的多个数据组块,对照被指定为粘性节点的后端节点对所述多个数据组块去复制;以及
响应于正在被处理的数据量,把不同的后端节点指定为粘性节点。
CN201280068663.6A 2012-02-02 2012-02-02 用于数据组块去复制的系统和方法 Active CN104067239B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/023649 WO2013115822A1 (en) 2012-02-02 2012-02-02 Systems and methods for data chunk deduplication

Publications (2)

Publication Number Publication Date
CN104067239A true CN104067239A (zh) 2014-09-24
CN104067239B CN104067239B (zh) 2017-05-10

Family

ID=48905673

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280068663.6A Active CN104067239B (zh) 2012-02-02 2012-02-02 用于数据组块去复制的系统和方法

Country Status (4)

Country Link
US (1) US9672218B2 (zh)
EP (1) EP2810171B1 (zh)
CN (1) CN104067239B (zh)
WO (1) WO2013115822A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8688652B2 (en) * 2012-04-05 2014-04-01 International Business Machines Corporation Increased in-line deduplication efficiency
WO2014185916A1 (en) 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
EP2997497B1 (en) * 2013-05-16 2021-10-27 Hewlett Packard Enterprise Development LP Selecting a store for deduplicated data
US9678973B2 (en) * 2013-10-15 2017-06-13 Hitachi Data Systems Corporation Multi-node hybrid deduplication
EP3066553B1 (en) * 2013-11-08 2020-02-12 Fujitsu Limited Storage appliance and method thereof for inline deduplication with segmentation
CN105740266A (zh) * 2014-12-10 2016-07-06 国际商业机器公司 用于数据去重的方法和设备
US10002050B1 (en) * 2015-06-22 2018-06-19 Veritas Technologies Llc Systems and methods for improving rehydration performance in data deduplication systems
US9977599B2 (en) * 2016-01-12 2018-05-22 Vmware, Inc. Data deduplication with support for both thick and thin provisioning of storage objects
US9690801B1 (en) 2016-06-02 2017-06-27 International Business Machines Corporation Techniques for improving deduplication efficiency in a storage system with multiple storage nodes
US11016940B2 (en) 2016-06-02 2021-05-25 International Business Machines Corporation Techniques for improving deduplication efficiency in a storage system with multiple storage nodes
WO2018013541A1 (en) * 2016-07-12 2018-01-18 Neverfail Limited Improved data deduplication for eventual consistency system and method
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
CN110603517B (zh) * 2017-06-08 2023-07-25 日立数据管理有限公司 对分布的经过擦除编码的对象去复制
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
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
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
US10936543B1 (en) 2017-07-21 2021-03-02 EMC IP Holding Company LLC Metadata protected sparse block set for SSD cache space management
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
US10713217B2 (en) 2018-10-30 2020-07-14 EMC IP Holding Company LLC Method and system to managing persistent storage using perfect hashing
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
US11003629B2 (en) * 2018-10-31 2021-05-11 EMC IP Holding Company LLC Dual layer deduplication for application specific file types in an information processing system
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
US10938923B2 (en) 2019-04-17 2021-03-02 Home Depot Product Authority, Llc Customizable router for managing traffic between application programming interfaces

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223441A1 (en) * 2007-10-25 2010-09-02 Mark David Lillibridge Storing chunks in containers
WO2011053274A1 (en) * 2009-10-26 2011-05-05 Hewlett-Packard Development Company, L.P. Sparse index bidding and auction based storage

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7206934B2 (en) 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network
US7200604B2 (en) 2004-02-17 2007-04-03 Hewlett-Packard Development Company, L.P. Data de-duplication
US7269689B2 (en) 2004-06-17 2007-09-11 Hewlett-Packard Development Company, L.P. System and method for sharing storage resources between multiple files
CN104699420A (zh) 2004-11-05 2015-06-10 德洛博公司 允许各种规模存储装置的动态可扩展和可收缩的容错存储系统和方法
US7558859B2 (en) 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
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
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
US7747584B1 (en) 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
US7844581B2 (en) 2006-12-01 2010-11-30 Nec Laboratories America, Inc. Methods and systems for data management using multiple selection criteria
US8315984B2 (en) * 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
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
US7979670B2 (en) * 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
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
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
US20100088296A1 (en) 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
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 惠普开发有限公司 拷贝卷中存储的数据的去重复
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
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
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
US8751448B1 (en) * 2009-12-11 2014-06-10 Emc Corporation State-based directing of segments in a multinode deduplicated storage system
US8281105B2 (en) 2010-01-20 2012-10-02 Hitachi, Ltd. I/O conversion method and apparatus for storage system
US8620939B2 (en) 2010-01-25 2013-12-31 Sepaton, Inc. System and method for summarizing data
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
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
EP2583183A1 (en) 2010-06-18 2013-04-24 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
US9569134B2 (en) 2010-08-23 2017-02-14 Quantum Corporation Sequential access storage and data de-duplication
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US8930307B2 (en) * 2011-09-30 2015-01-06 Pure Storage, Inc. Method for removing duplicate data from a storage array

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100223441A1 (en) * 2007-10-25 2010-09-02 Mark David Lillibridge Storing chunks in containers
WO2011053274A1 (en) * 2009-10-26 2011-05-05 Hewlett-Packard Development Company, L.P. Sparse index bidding and auction based storage

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEI DONG, FRED DOUGLIS: "Tradeoffs in Scalable Data Routing for Deduplication Clusters", 《WEI DONG FRED DOUGLIS EMC PRINCETON UNIVERSITY SAZZALA REDDY EMC》 *

Also Published As

Publication number Publication date
US20140344229A1 (en) 2014-11-20
EP2810171A4 (en) 2015-09-02
EP2810171B1 (en) 2019-07-03
EP2810171A1 (en) 2014-12-10
WO2013115822A1 (en) 2013-08-08
US9672218B2 (en) 2017-06-06
CN104067239B (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
CN104067239A (zh) 用于数据组块去复制的系统和方法
US10936560B2 (en) Methods and devices for data de-duplication
US11249834B2 (en) Storage system with coordinated recovery across multiple input-output journals of different types
US8230185B2 (en) Method for optimizing cleaning of maps in FlashCopy cascades containing incremental maps
US9298707B1 (en) Efficient data storage and retrieval for backup systems
CN107621973B (zh) 一种跨集群的任务调度方法及装置
CN106663022A (zh) 对使用外部化存储页面的虚拟机的实时迁移
US20140281215A1 (en) Storage method and storage apparatus
EP3163446B1 (en) Data storage method and data storage management server
US8214428B1 (en) Optimized prepopulation of a client side cache in a deduplication environment
US11093143B2 (en) Methods and systems for managing key-value solid state drives (KV SSDS)
CN107506145B (zh) 一种物理存储调度方法及云主机创建方法
US20150066877A1 (en) Segment combining for deduplication
WO2018121025A1 (zh) 比较数据表的数据的方法和系统
CN111796937B (zh) 基于内存的资源分配方法、计算机设备及存储介质
US20180196834A1 (en) Storing data in a deduplication store
US20140156607A1 (en) Index for deduplication
CN111198961A (zh) 商品搜索方法、装置及服务器
US20160034527A1 (en) Accurate partition sizing for memory efficient reduction operations
CN106951443A (zh) 基于分布式系统的副本同步的方法、设备和系统
CN115756955A (zh) 一种数据备份、数据恢复的方法、装置及计算机设备
US20140380089A1 (en) Method and apparatus for recovering failed disk in virtual machine
CN113835613B (zh) 一种文件读取方法、装置、电子设备和存储介质
CN111858151A (zh) 用于在备份操作期间优先处理关键数据对象存储的方法和系统
KR101341995B1 (ko) 공유 데이터 저장소 관리 장치 및 방법

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

Address after: American Texas

Applicant after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP

Address before: American Texas

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

GR01 Patent grant
GR01 Patent grant