CN104199815B - 在重复数据删除系统中减少摘要存储消耗的方法和系统 - Google Patents

在重复数据删除系统中减少摘要存储消耗的方法和系统 Download PDF

Info

Publication number
CN104199815B
CN104199815B CN201410096289.1A CN201410096289A CN104199815B CN 104199815 B CN104199815 B CN 104199815B CN 201410096289 A CN201410096289 A CN 201410096289A CN 104199815 B CN104199815 B CN 104199815B
Authority
CN
China
Prior art keywords
data
similitude
block
thesaurus
block collection
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.)
Active
Application number
CN201410096289.1A
Other languages
English (en)
Other versions
CN104199815A (zh
Inventor
L.阿罗诺维克
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104199815A publication Critical patent/CN104199815A/zh
Application granted granted Critical
Publication of CN104199815B publication Critical patent/CN104199815B/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/1737Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
    • 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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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

Landscapes

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

Abstract

本发明提供了通过使用计算环境中的处理器设备在重复数据删除系统中跟踪相似性搜索结构中的相似性元素的数目而减少摘要存储消耗的方法和系统。为了使用计算环境中的处理器设备降低重复数据删除系统中的摘要存储消耗,将输入数据分区为部块,并将部块分组为部块集。为输入数据计算摘要,并将摘要存储在对应于部块集的集合中。为输入数据计算相似性元素,并将相似性元素存储在相似性搜索结构中。为每个部块集保持当前包含在相似性搜索结构中的与部块集关联的相似性元素的数目,并且当特定部块集的此数目变得低于阈值时,从存储库中去除与该部块集关联的摘要集合。

Description

在重复数据删除系统中减少摘要存储消耗的方法和系统
技术领域
本发明一般涉及计算机,更具体地涉及在计算环境中通过跟踪相似性搜索结构中的相似性元素的数目以去除重复数据删除系统中的摘要而减少摘要存储消耗。
背景技术
在如今社会中,计算机系统很普遍。可以在工作地点、家中或学校中发现计算机系统。计算机系统可以包括数据存储系统或盘存储系统以处理和存储数据。每天必须处理大量数据,并且当前的趋势暗示着这些量在可见的将来将继续不断增加。缓解该问题的有效方法是使用重复删除。重复删除系统背后的想法是通过定位重复的数据并仅存储其第一个存在(occurrence)而利用可用数据的大部分被一次又一次地复制的事实。后续的复本被指向所存储的存在的指针所代替,如果数据确实是重复的,则这大大降低存储要求。
发明内容
在一个实施例中,提供了一种通过使用计算环境中的处理器设备在重复数据删除系统中跟踪当前在相似性搜索结构中的相似性元素的数目以将摘要从存储库中去除的方法。在一个实施例中,仅通过示例,重复删除处理包括为输入数据计算摘要并将所述摘要存储在对应于部块(chunk)集的集合中。为所述输入数据计算相似性元素并将所述相似性元素存储在相似性搜索结构中。为每一个部块集保持当前包含在所述相似性搜索结构中的与每个部块集关联的相似性元素的数目,并且当特定部块集的此数目变得低于阈值时,从存储库中去除与该部块集关联的摘要集合。
在另一实施例中,提供了一种通过使用计算环境中的处理器设备在重复数据删除系统中跟踪相似性搜索结构中的相似性元素的数目而减少摘要存储消耗的系统,包括:第一可执行部分,将输入数据分区(partition)为部块并将所述部块分组为部块集;第二可执行部分,为所述输入数据计算摘要并将所述摘要存储在对应于所述部块集的集合中;第三可执行部分,为所述输入数据计算相似性元素并将所述相似性元素存储在相似性搜索结构中;第四可执行部分,为每一个所述部块集保持当前包含在所述相似性搜索结构中的与所述部块集关联的相似性元素的数目;以及第五可执行部分,当部块集的相似性元素的数目变得低于阈值时,从存储库中去除与该部块集关联的摘要。
在前述示例方法实施例之外,还提供了其它示例系统,并提供相关优势。前述发明内容部分被提供用于以简化的形式引入一组概念,它们会在下面的具体实施方式部分被进一步描述。该发明内容部分不意在识别所主张权利的主题的关键特征或核心特征,也不意在被用作确定所主张权利的主题的范围。所主张权利的主题不限于解决背景技术部分中说明的任何或全部优点的实施方式。
附图说明
为了更容易理解本发明的优点,将参照在附图中示出的具体实施例呈现上面简要描述的本发明的更具体的描述。应理解,这些附图描绘了本发明的实施例,但不因此被认为是限制其范围,将通过使用附图描述和说明本发明的附加特征和细节,其中:
图1是示出可以实现本发明的方面的具有示例存储设备的计算系统环境的框图;
图2是示出可以实现本发明的方面的计算机系统中的数据存储系统的硬件结构的框图;
图3是示出可以实现本发明的方面的、基于重复数据删除系统中的重复删除处理中的相似性搜索进行摘要检索的示例方法的流程图;
图4是示出可以实现本发明的方面的、基于重复数据删除系统中的重复删除处理中的相似性搜索进行摘要检索的示例替代方法的流程图;
图5是示出可以实现本发明的方面的、在重复数据删除系统中使用滚动哈希值(rolling hash value)的单个线性计算而高效地计算摘要块的相似性搜寻值和边界两者的示例方法的流程图;
图6是示出可以实现本发明的方面的、包含用于每个部块集的记录的紧凑数据结构的框图;
图7是示出可以实现本发明的方面的、用于降低重复数据删除系统中的摘要存储消耗的示例方法的流程图;
图8是示出可以实现本发明的方面的、用于降低重复数据删除系统中的摘要存储消耗的替代示例方法的流程图;以及
图9是示出可以实现本发明的方面的、在重复数据删除系统中跟踪当前在相似性搜索结构中的相似性元素的数目以用于从存储库中去除与该部块集关联的摘要的示例方法300的流程图。
具体实施方式
在计算存储系统中,重复数据删除是非常重要且充满活力的领域。重复数据删除是指减少和/或消除冗余数据。在重复数据删除中,数据对象(其可以是文件、数据流或某一其它形式的数据)被分解为一个或多个称为部块或块的部分。在重复数据删除处理中,数据的重复复本被减少或消除,从而分别剩下最小量的冗余复本、或数据的单个复本。重复数据删除系统的目标是存储重复数据的单个复本,并且,实现此目标的挑战在于在通常较大的存储库中高效地找到重复数据模式(pattern)、以及以存储高效的重复删除形式存储数据模式。重复删除存储系统的重大挑战是进行扩展(scaling)以支持非常大的数据存储库。这种大存储库可以达到拍字节的尺寸(1拍字节=250字节)或更大。支持这种存储库尺寸的重复删除存储系统必须提供用于在存储库内找到重复数据模式的高效处理,其中以用于实现重复删除的资源消耗来度量效率(资源可以是CPU周期、RAM存储、永久存储、网络使用等)。在一个实施例中,重复删除存储系统可以基于保持值的搜索优化索引(已知为指纹或摘要),其中(小)指纹表示存储库中(较大的)数据块。指纹值可以是基于块的值计算的加密哈希值。在一个实施例中,可以使用安全哈希算法(SHA),例如SHA-1或SHA-256,它们是加密哈希函数族。使用索引查找识别指纹匹配使得能够存储对已经存在于存储库中的数据的引用。
为了在此方法中提供合理的重复删除,生成指纹所基于的数据块的平均尺寸必须限制为较小的尺寸而不能太大。原因在于数据块内的比特的变化将概率地改变数据块的对应指纹,因此,相比于具有小数据块,具有大数据块使得该方案对数据的更新更敏感。取决于应用的类型和作业量,典型的数据块尺寸的范围可以从4KB到64KB。因此,仅通过示例,小数据块的尺寸范围可以高至64KB,而大数据块是具有大于64KB的尺寸的那些数据块。
为了支持扩展到拍字节尺寸的非常大的存储库(例如,扩展到至少1拍字节(Petabyte)的存储库),要存储的指纹的数目与指纹的尺寸(范围在16字节与64字节之间)一起变得高得惊人。例如,对于1拍字节的重复数据,在4KB平均数据块尺寸以及32字节的指纹尺寸(例如SHA-256)的情况下,用于存储指纹所需要的存储量是8太字节(Terabyte)。为这种量的指纹保持搜索优化的数据结构是困难的,并且需要优化技术。然而,现有的优化技术不能扩展到这些尺寸并同时保持性能。为此原因,为了提供合理性能,所支持的存储库必须相对较小(在几十TB的量级上)。甚至对于这样的较小的尺寸,由于指纹索引的大规模,也产生很大的挑战和运行时代价,这在重复删除处理中产生瓶颈。
为了解决该问题,在一个实施例中,重复删除系统可以基于在重复删除期间搜索数据模式的两步方法。在第一步中,在存储库中搜索大部块(例如几个兆字节(megabyte))的到来(incoming)数据以寻找现有数据的相似(而不是相同)数据部块,并且将到来数据部块相应地分区为区间段(interval),并与对应(相似)的存储库区间段配对。在第二步中,对相似区间段对应用按字节(byte-wise)的匹配算法,以识别相同子区间段,其已存储在数据存储库中。第二步的匹配算法依赖于读取存储库中所有相关的相似数据,以便将其与输入数据按字节比较。
然而,在第二步的匹配算法背后的数据的按字节比较中产生的问题是:为了比较的目的,必须从存储库读取与到来数据具有大致相同的尺寸和速率的数据。例如,每秒处理1GB到来数据的系统必须每秒从存储库中读取1GB的数据以便按字节比较。这需要存储存储库数据的存储设备的每秒相当高的I/O容量,这继而增加它们的成本。
与上述问题符合的信息技术中的附加趋势如下:(1)通过增加CPU速度和CPU核的数目提高计算能力。(2)增加盘密度,同时盘吞吐量保持相对恒定或仅适当提高。这意味着相对于该数据容量而存在更少的主轴(spindle),因此实际上降低了总吞吐量。由于上述指出的问题,存在设计不需要高速/大量从存储库中读取的替代方案的需求,以便整合到上述两步重复删除系统实施例中。
因此,仅通过示例,附加实施例解决此问题,并且将资源消耗从盘转移到CPU,以得益于上述趋势。这里描述的实施例整合在上述两步可扩展重复删除实施例中,并在重复删除期间使用相似性搜索来进行摘要的聚焦(focus)查找。在一个实施例中,使用全局相似性搜索作为用于聚焦针对最可能匹配输入数据的存储库数据的摘要的搜索的基础。
这里描述的实施例大大降低了底层盘所需要的每秒I/O容量,得益于计算能力和盘密度的增大,并大大降低了处理成本以及维护成本和环境开销(例如,电力消耗)。
在一个实施例中,将输入数据分段为小区段(segment)(例如,4KB),并针对每个这样的区段计算摘要(加密哈希值,例如SHA1)。首先,如上所述,对数据的输入部块(例如16MB)应用相似性搜索算法,并且找到存储库中最相似参考数据的位置。然后使用这些位置来查找相似参考数据的摘要。存储库中包含的所有数据的摘要被以对应于它们在数据中的存在的形式存储和检索。给定存储库中包含的数据的部分(section)的位置,在存储库中高效地定位和检索该数据的关联摘要。接着,这些参考摘要被加载到存储器中,并且,将输入摘要和加载的参考摘要进行匹配,而非比较数据以寻找匹配。
因此,在一个实施例中,用于重复数据删除系统的新基本方法将相似性搜索跟随着相同匹配区段的搜索的可扩展两步方法(其首先基于按字节的数据比较)与高效得多且成本有效得多的基于摘要/指纹的匹配算法整合(其使得能够仅读取之前所需要的量的小部分(例如,1%))。利用这里描述的新的本发明,重复删除系统保留了其可扩展到非常大的数据存储库的独特可扩展性,同时获得了相当大的附加效率、提高了性能并降低了底层硬件的成本。
在一个实施例中,仅通过示例,术语“相似数据”可以指:对于任何给定的输入数据,与该输入数据相似的数据被定义为与该输入数据大部分相同(即,不是全部但至少50%相似)的数据。在二进制的观点(角度)看该数据,这意味着相似数据是大多数(即,不是全部但至少50%相似)字节与输入数据相同的数据。
在一个实施例中,仅通过示例,术语“相似性搜索”可以指在数据存储库中搜索与输入数据相似的数据的处理。在一个实施例中,可以使用相似性元素的搜索结构执行该处理,其中在搜索结构中保持和搜索相似性元素。
在一个实施例中,仅通过示例,术语“相似性元素”是指可以基于数据而计算出的计算元素,其帮助在数据存储库中进行对与输入数据相似的数据的全局搜索。一般的,一个或多个相似性元素被计算出,并且表示大部块(例如至少16MB)的数据。
因此,这里描述的各种实施例提供各种解决方案,用于基于使用计算环境中的处理器设备的在重复数据删除系统中的重复删除处理中的相似性搜索的摘要检索。在一个实施例中,仅通过示例,将输入数据分区为固定尺寸的数据部块。针对每个固定尺寸的数据部块计算相似性元素、摘要块边界和摘要值。在数据存储库中,为每个固定尺寸的数据部块,在包含相似性元素的搜索结构(即,索引)中搜索匹配的相似性元素。在存储库中定位相似数据的位置。相似数据的位置被用于在存储库中定位相似数据的存储的摘要值以及对应存储的摘要块边界并将它们加载到存储器中。应该注意,在一个实施例中,位置可以是物理的或逻辑(即虚拟)的。位置是数据在数据存储库中的位置。“位置”的重要特性是:给定存储库的数据的位置(物理的或逻辑的),该位置中的数据可以被高效地定位和访问。将输入数据的摘要值以及对应的摘要块边界与存储的摘要值以及对应存储的摘要块边界进行匹配,以便找到数据匹配。
因此,这里描述的各种实施例提供了各种解决方案,用于基于使用计算环境中的处理器设备的在重复数据删除系统中的重复删除处理中的相似性搜索的摘要检索。在一个实施例中,仅通过示例,将输入数据分区为固定尺寸的数据部块。针对每个固定尺寸的数据部块计算相似性元素、摘要块边界和摘要值。在数据存储库中,为每个固定尺寸的数据部块,在包含相似性元素的搜索结构(即,索引)中搜索匹配的相似性元素。在存储库中定位相似数据的位置。相似数据的位置被用于在存储库中定位相似数据的存储的摘要值以及对应存储的摘要块边界并将其它们加载到存储器中。将输入数据的摘要值以及对应的摘要块边界与存储的摘要值以及对应存储的摘要块边界进行匹配,以找到数据匹配。
在一个实施例中,本发明提供了一种利用相似性搜索将来自存储库的相关摘要加载到存储器中的解决方案,用于高效的重复删除处理。在重复数据删除系统中,通过将数据分区为大固定尺寸的部块并且针对每个部块计算相似性元素、摘要块和对应的摘要值而执行重复删除。重复数据删除系统在相似性元素的搜索结构中搜索匹配的相似性元素,并且在存储库中找到相似数据的位置。重复数据删除系统使用相似数据的这些位置来定位相似存储库数据的存储的摘要并将其加载到存储器中,并接着将输入和存储库摘要值进行匹配以找到数据匹配。
在一个实施例中,本发明使用滚动哈希值的单个线性计算提供对相似性搜索元素和摘要块的分段(即,边界)两者的高效计算。在重复数据删除系统中,将输入数据分区为部块,并针对每个部块计算滚动哈希值的集合。滚动哈希值的单个线性扫描产生该部块的相似性搜索元素和摘要块的边界两者。每个滚动哈希值对应于以字节偏移(offset)的连续字节窗口。相似性搜索元素被用于在存储库中搜索相似数据。摘要块分段被用于计算用于摘要匹配的部块的摘要值。每个滚动哈希值对相似性元素的计算和摘要块分段的计算做出贡献。每个滚动哈希值在对该计算做出贡献之后被丢弃。
因此,如上所述,本发明的重复删除方法在重复删除期间使用搜索数据模式的两步处理。在第一步中,在存储库中搜索大部块的到来数据(例如16兆字节“MB”)以寻找现有数据的相似(而不是相同)部块,并相应地将到来部块分区为区间段,并与对应的(相似)存储库区间段配对。在第一步中使用的相似搜索结构(或“索引”)是紧凑的并容易在其中保持和搜索,这是因为用于相似性搜索的元素相对于它们表示的数据而非常紧凑(例如,16个字节表示4兆字节)。除了相似性元素的计算,第一步中还包括针对输入的数据部块计算摘要区段和相应的摘要值。所有这些计算都基于滚动哈希值的单个计算。在第二步中,检索相似存储库区间段的参考摘要,并接着将输入摘要与参考摘要进行匹配,以识别数据匹配。
基于相似性的重复删除中出现的重要问题是存储库中存储的摘要消耗的存储空间的尺寸。在一个实施例中,对于基于相似性的重复删除,使用相对小的平均摘要区段尺寸(例如,1KB-2KB)。这么做的原因是两方面的。首先,小摘要区段尺寸提供重要的益处:其使得能够在重复删除期间获得更大的分辨率;其对数据的修改更不敏感;以及其使得能够在每个数据失配(mismatch)的边缘损失更少的重复删除潜力。因为这些原因,小摘要区段尺寸改善了重复删除结果。第二,在基于相似性的重复删除中,不存在被摘要值锁定(key)的大规模(massive)索引。而是,存在紧凑的相似性搜索结构。通常不能为大存储库支持小摘要区段尺寸的这种摘要索引的缺失使得基于相似性的重复删除方法也能够为相当大的存储库支持小摘要区段尺寸。
支持小摘要区段尺寸的能力使得基于相似性的重复删除方法能够相对于其它重复删除方法而获得相当大的优势。在基于相似性的重复删除方法中,摘要被以线性形式且以它们在数据中的存在的顺序存储,该线性形式独立于这些摘要描述的数据所存储的重复删除形式。该存储方法使得能够独立于表征重复删除的存储形式的碎片(fragmentation)而高效地检索摘要的线性部分,并因此实现较低的输入/输出(IO)和计算资源消耗。然而,虽然在此方法中,摘要的检索是高效的,但由所存储的摘要消耗的存储量相当大并可能大得惊人。
为了说明摘要所消耗的大存储量,考虑以下示例:假设1KB的平均摘要区段尺寸、32字节尺寸的摘要值(例如,SHA-256)以及8字节尺寸的位置字段,则摘要将消耗它们描述的数据的3.90625%。考虑1:8的选配比(factoring ratio)和1:2的压缩比(这两者在备份环境中都是常用的),则摘要将消耗它们描述的物理数据的8x2x3.90625%=62.5%的附加物理存储空间。因此,例如,对于1024TB的物理尺寸的存储数据,摘要消耗的附加物理存储量将是640TB。这很显然是惊人的。如此,对于基于相似性的重复删除方法,这是关系成败的问题。因此,在基于相似性的重复删除系统中,需要使得能够降低摘要消耗的存储量的解决方案。在一个实施例中,这里描述了一种解决方案,其提供小摘要区段尺寸的所有益处,并同时将摘要所消耗的存储量保持为相当低。
在一个实施例中,在这里描述的基于相似性的重复删除方法中,输入数据流被分区为部块(例如16MB),并且在两个主要步骤中处理每个部块。在第一步中,应用相似性搜索处理,并且找到存储库中最相似的参考数据的位置。在此步骤中,基于滚动哈希值的单个线性计算,为输入部块计算相似性搜索元素和摘要区段边界两者。基于产生的分段,为输入部块计算摘要值,并且以摘要值在输入数据中的存在的顺序将摘要值存储在存储器中。相似数据的位置接着被用于查找相似参考数据的摘要,并也以顺序的形式将这些摘要加载到存储器中。接着,将输入摘要与参考摘要进行匹配,以形成数据匹配。
当输入数据部块的重复删除完成时,与该输入数据部块关联的摘要被存储在存储库中,以用作后续输入数据的参考摘要。以独立于摘要所描述的数据存储的重复删除形式的线性形式、以及以摘要在数据中的存在的顺序,存储这些摘要。该存储方法使得能够独立于表征重复删除的存储形式的碎片而高效地检索摘要的部分,并因此实现较低的IO和计算资源消耗。然而,如前面所描述的,在没有合适的解决方案的情况下,摘要的存储消耗将变得大得惊人。
因此,如这里所描述的,本发明背后的关键想法是:如果存储库中存储的摘要将与存储库中的数据的选配尺寸(factored size)、而不是存储库中的总(也称为额定)数据尺寸相关,则摘要消耗的空间是可忍受的。在上述示例中,如果所存储的摘要将与数据的选配尺寸相关,则摘要将消耗物理存储空间的2x3.90625%=7.8125%,而不是62.5%。在此示例中,节约了物理存储空间的54.6875%。即,对于1024TB的物理存储库尺寸,总存储节约是560TB。物理存储库尺寸的存储节约百分比的公式是:((1/选配比)-1)x(1/压缩比)x摘要比率。
在这点上,需要解决如何变换存储的摘要以与存储库中的数据的选配尺寸相关(而不是与额定数据尺寸相关)的问题的解决方案。为了解决此问题,另一关键解决方案被引入。在一个实施例中,当输入数据部块的重复删除完成时,重复删除处理内形成的与存储库数据的匹配是已知的。在备份环境中,后续输入数据将形成与最后获取的(ingested)数据的大匹配的概率大大高于后续输入数据将形成与已经与以后获取的数据匹配的存储库数据的大匹配的概率。为此原因,可以从相似性搜索结构中去除已经与以后获取的数据匹配的存储库数据的相似性元素,从而在进一步的相似性搜索处理中将不产生对这种数据的引用。因此,本发明中的一个关键解决方案是:通过去除已经与以后获取的数据匹配的数据的摘要,存储在存储库中的摘要变得与在存储库中唯一的数据模式的尺寸相关,或者换言之,存储在存储库中的摘要变得与存储库中的选配数据的尺寸(而不是额定数据的尺寸)相关。
在一个实施例中,本发明提供附加有利特性。根据本发明,存储节约结果是可预测的,因为这些结果取决于确定性的摘要对数据的比率以及选配比和压缩比,其是可预测的。这有助于更简单的存储管理。另一有利特性是本发明的运行时代价非常低。这是因为跟踪已经匹配的存储库数据以及去除摘要序列在基于相似性的重复删除中是高效的操作。
因此,在一个实施例中,本发明降低了摘要消耗的与选配的存储库尺寸相关的存储空间,其是与额定存储库尺寸相关的原始存储消耗的一小部分。此解决方案解决了基于相似性的重复删除中的关键存储问题。在一个实施例中,本发明使得能够实现小摘要区段尺寸的重复删除益处,且同时保持重复删除系统的可扩展性和效率。
在一个实施例中,本发明去除冗余存储库数据的摘要,以使摘要存储消耗与存储库中的数据的选配尺寸相关,而不是与存储库中的总(额定)数据尺寸相关。在一个实施例中,仅通过示例,重复删除处理包括为输入数据计算摘要值。摘要值被用于定位与存储在存储库中的数据的匹配。摘要值被存储在存储库中。存储在存储库中的被确定为与输入数据冗余的数据的摘要值被去除。将输入摘要值以它们在数据中的存在的顺序线性地存储在存储库中。将输入摘要值以独立于这些摘要值所描述的数据存储的形式的形式存储在存储库中。用于产生与输入数据的匹配的存储库数据被确定为与输入数据冗余。
在一个实施例中,本发明将额定数据分区为部块(例如16MB尺寸),并且将部块分组为预定数目部块的集合,称为部块集。在一个实施例中,本发明跟踪当前在相似性搜索结构中的与存储库中的每个部块集关联的相似性元素的数目,并且,当特定部块集的此数目变得低于阈值时,从存储库中去除与该部块集关联的摘要。在一个实施例中,仅通过示例,重复删除处理包括为输入数据计算摘要,并将所述摘要存储在对应于部块集的集合中。针对输入数据计算相似性元素,并且将相似性元素存储在相似性搜索结构中。对于每个部块集,保持与该部块集关联的当前包含在相似性搜索结构中的相似性元素的数目。当特定部块集的此数目变得低于阈值时,从存储库中去除与该部块集关联的摘要集合。
在一个实施例中,部块集是非交迭的,并且覆盖所有部块。相似性元素被用于找到与输入数据相似的存储库数据,并且使用输入和存储库摘要来计算数据匹配。从相似性搜索结构中去除与以后获取的数据匹配的存储库数据的相似性元素。对于包含匹配的存储库数据的每个部块集,从相似性搜索结构中的与该部块集关联的相似性元素的保持数目中减去针对该部块集从相似性搜索结构中去除的相似性元素的数目。
现在转到图1,描述了计算系统环境的示例架构10。计算机系统10包括中央处理单元(CPU)12,其连接到通信端口18和存储器设备16。通信端口18与通信网络20通信。通信网络20和存储网络可被配置为与服务器(主机)24和存储系统通信,存储系统可以包括存储设备14。存储系统可以包括硬盘驱动器(HDD)设备、固态设备(SDD)等,其可配置在独立盘冗余阵列(RAID)中。下面所描述的操作可以在位于系统10中或其它地方的存储设备14上执行,并且可以具有独立工作和/或与其它CPU设备12协力地工作的多个存储器设备16。存储器设备16可以包括诸如电可擦除可编程只读存储器(EEPROM)的存储器、或相关设备的主机。存储器设备16和存储设备14经由信号承载介质连接到CPU12。此外,CPU12通过通信端口18连接到通信网络20,其具有附接的多个附加计算机主机系统24。此外,存储器设备16和CPU12可以嵌入和包含在计算系统10的每个组件中。每个存储系统还可以包括独立的和/或不同的存储器设备16和CPU12,其协力地工作、或作为独立的存储器设备16和/或CPU12工作。
图2是示出根据本发明的计算机系统中的数据存储系统的硬件结构的示例框图200。示出主机计算机210、220、225,其各自作为数据存储系统200的部分用作执行数据处理的中央处理单元。集群主机/节点(物理或虚拟设备)210、220和225可以是一个或多个新物理设备或逻辑设备,以达到数据存储系统200中的本发明的目的。在一个实施例中,仅通过示例,数据存储系统200可以被实施为 重复删除系统TS7650GTM。网络连接260可以是光纤信道构造(fabric)、光纤信道点到点链接、以太网构造或点到点链接上的光线信道、FICON或ESCON I/O接口、任何其它I/O接口类型、无线网络、有线网络、LAN、WAN、异质、同质、公共(即因特网)、专用、或其任意组合。主机210、220和225可以是本地的或分布在一个或多个位置之中,并且可以配备任何类型的构造(或构造信道)(图2中未示出)或网络适配器260到存储控制器240,诸如,光纤信道、FICON、ESCON、以太网、光纤、无线或同轴适配器。数据存储系统200相应地配备合适的构造(图2中未示出)或网络适配器260以进行通信。图2中描述了数据存储系统200,其包括存储控制器240和集群主机210、220和225。集群主机210、220和225可以包括集群节点。
为了帮助更清楚地理解这里描述的方法,图2中将存储控制器240示出为单个处理单元,包括微处理器242、系统存储器243和非易失性存储装置(“NVS”)216。需要注意,在某些实施例中,存储控制器240包括多个处理单元,每个具有它们自己的处理器联合体和系统存储器,并且由数据存储系统200内的专用网络互连。存储装置230(在图3中标识为230a、230b和230n)可以包括一个或多个存储设备,诸如存储阵列,其连接到存储控制器240(通过存储网络),其中一个或多个集群主机210、220和225连接到每个存储控制器240。
在一些实施例中,包含在存储装置230中的设备可以以环路架构连接。存储控制器240管理存储装置230,并帮助针对存储装置230的写和读请求的处理。存储控制器240的系统存储器243存储程序指令和数据,处理器243可以访问程序指令和数据以用于执行本发明的功能和方法步骤,以便执行和管理这里所述的存储装置230。在一个实施例中,系统存储器243包括操作软件250、与操作软件250关联或与操作软件250通信,用于执行这里所描述的方法和操作。如图2中所示,系统存储器243还可以包括用于存储装置230的高速缓存245(这里也称为“高速缓冲存储器”)、或与高速缓存245通信,用于缓冲“写数据”和“读数据”,其分别指写/读请求以及它们关联的数据。在一个实施例中,高速缓存245被分配在系统存储器243外部的设备中,但仍可被微处理器242访问,并且可以在执行这里所描述的操作之外,还用于针对数据损失提供附加的安全性。
在某些实施例中,利用易失性存储器和非易失性存储器实施高速缓存245,并且经由本地总线(图2中未示出)将高速缓存245耦接到微处理器242,用于增强数据存储系统200的性能。包含在数据存储控制器中的NVS216可由微处理器242访问,并用于提供对其它图中描述的本发明的操作和执行的附加支持。NVS216还可以称为“永久”高速缓存或“高速缓冲存储器”,并且利用非易失性存储器实施NVS216,非易失性存储器可以或可以不利用外部电力来保持其中存储的数据。NVS可以存储在高速缓存245中或与高速缓存245一起存储,用于适于达到本发明的目标的任何目的。在某些实施例中,在数据存储系统200掉电(powerloss)的情况下,诸如电池的备用电源(图2中未示出)向NVS216提供足够的电力来保持其中存储的数据。在某些实施例中,NVS216的容量小于或等于高速缓存245的总容量。
存储装置230可以在物理上包括一个或多个存储设备,诸如存储阵列。存储阵列是单独存储设备(诸如硬盘)的逻辑分组。在某些实施例中,存储装置230包括JBOD(简单盘捆绑)阵列或RAID(独立盘冗余阵列)。物理存储阵列的集合还可以被进一步组合以形成列(rank),其将物理存储装置与逻辑配置分离。列中的存储空间可以被分配为逻辑卷,其定义写/读请求中指定的存储位置。
在一个实施例中,仅通过示例,如图2中所示的存储系统可以包括逻辑卷或简单称为“卷”,可以具有不同种类的分配。存储装置230a、230b和230n被示出为数据存储系统200中的列,并在这里被称为列230a、230b和230n。列可以是在数据存储系统200本地的,或者可以位于物理上的远程位置。换言之,本地存储控制器可以与远程存储控制器连接,并管理远程位置处的存储。列230a被示出为配置有两个完整的卷234和236、以及一个部分卷232a。列230b被示出为具有另一部分卷232b。因此,跨列230a和230b而分配卷232。列230n被示出为被完全分配到卷238,即,列230n指用于卷238的整个物理存储装置。根据上述示例,可以理解,列可被配置为包括一个或多个部分和/或整个卷。卷和列可被进一步划分为所谓的“轨道”,其表示固定的存储块。轨道因此与给定卷关联,并可以被给予给定列。
存储控制器240可以包括重复数据模块255、相似性索引模块257(例如,相似性搜索结构)以及相似性搜索模块259。重复数据模块255、相似性索引模块257和相似性搜索模块259可以与存储控制器240、主机210、220和225以及存储设备230中的每个且每一个组件协力地工作。重复数据模块255、相似性索引模块257和相似性搜索模块259可以在结构上是一个完整模块、或者可以与其它单独模块关联和/或包含在其中。重复数据模块255、相似性索引模块257和相似性搜索模块259也可以位于高速缓存245或其它组件中。
存储控制器240包括:控制开关(switch)241,用于控制到主机计算机210、220、225的光纤信道协议;微处理器242,用于控制所有存储控制器240;非易失性控制存储器243,用于存储用于控制存储控制器240的操作的微程序(操作软件)250、用于控制的数据;高速缓存245,用于临时存储(缓冲)数据;以及缓冲器244,用于辅助高速缓存245读和写数据。控制开关241用于控制控制向或从存储设备230、重复数据模块255、相似性索引模块257以及相似性搜索模块259传输数据的协议,其中可以设置信息。多个缓冲器244可与本发明一起实施,以辅助这里描述的操作。在一个实施例中,集群主机/节点210、220、225以及存储控制器240通过作为接口的网络适配器(其可以是光纤信道)260(即,经由至少一个称为“构造”的开关)连接。
在一个实施例中,主机计算机或者一个或多个物理或虚拟设备210、220、225以及存储控制器240通过作为接口的网络适配器(其可以是光纤信道)260(即,经由至少一个称为“构造”的开关)连接。在一个实施例中,将描述图2中所示的系统的操作。微处理器242可以控制存储器243存储来自主机设备(物理的或虚拟的)210的命令信息以及用于识别主机设备(物理的或虚拟的)210的信息。控制开关241、缓冲器244、高速缓存245、操作软件250、微处理器242、存储器243、NVS216、数据重复模块255、相似性索引模块257以及相似性搜索模块259彼此通信,并且可以是独立的或者一个或多个单独的组件。而且,这些组件中的几个(如果不是全部)(诸如操作软件250)可以包含在存储器243中。所示设备内的每个组件可以链接在一起,并且可以彼此通信,用于适合于本发明的目的。如上所述,数据重复模块255、相似性索引模块257以及相似性搜索模块259还可以位于高速缓存245或其它组件中。这样,可基于存储架构和用户偏好,按需使用数据重复模块255、相似性索引模块257以及相似性搜索模块259。
如上所述,在一个实施例中,输入数据被分区为大的固定尺寸的部块(例如16MB),并且针对每个输入部块应用相似性搜索过程。相似性搜索过程基于输入的数据部块计算紧凑的相似性元素(其也可以称为相似性元素),并且在存储库中搜索紧凑搜索结构(即索引)中存储的匹配的相似性元素。根据每个数据部块存储的相似性元素的尺寸典型是32字节(其中部块尺寸是几个兆字节),因此使得存储相似性元素的搜索结构非常紧凑且易于在其中保持和搜索。
通过对部块的数据计算滚动哈希值(即为以字节偏移的每个连续字节窗口产生滚动哈希值)并接着选择特定哈希值和关联的位置(不一定是这些哈希值的精确位置)作为该部块的相似性元素,来计算相似性元素。
本发明提供的一个重要方面和新颖之处在于:滚动哈希值的单个线性计算(其是计算上昂贵的操作)用作计算部块的相似性元素(用于相似性搜索)以及部块的数据向摘要部块的分段(用于找到精确的匹配)两者的基础。每个滚动哈希值被加到相似性元素的计算以及摘要块分段的计算上。在被加到这两个计算上之后,滚动哈希值可以被丢弃,因为存储滚动哈希值的需求被最小化或消除。此算法要素提供显著效率和CPU消耗的降低、以及很大的性能提高。
在一个实施例中,本发明的相似性搜索过程产生两种类型的输出。第一类型的输出是存储库中最相似参考数据的位置的集合。第二类型的输出是输入部块的摘要,包括对摘要块的分段以及对应于摘要块的摘要值,其中基于摘要块的数据计算摘要值。
在一个实施例中,在存储库中以对应于数据中的摘要存在的形式存储摘要。给定存储库中的位置以及数据部分的尺寸,高效地确定对应于数据的该区间段的摘要在存储库中的位置。相似性搜索过程所产生的位置接着被用于查找相似参考数据的存储的摘要,并将这些参考摘要加载到存储器中。然后,不是比较数据,而是将输入摘要与加载的参考摘要进行匹配。通过将参考摘要加载到存储器中的摘要的紧凑搜索结构中、并接着针对每个输入摘要查询摘要的搜索结构以寻找该摘要值的存在,而执行匹配处理。基于摘要值执行摘要的搜索结构中的搜索。如果找到匹配,则确定在存储库中找到与该摘要关联的输入数据,并且基于参考摘要在存储库中的位置确定输入数据在存储库中的位置。在此情况中,记录在输入摘要所覆盖的输入数据与匹配的参考摘要所覆盖的存储库数据之间的一致性(identity)。如果未找到匹配,则确定在存储库中未找到与该摘要关联的输入数据,并将与该摘要关联的输入数据记录为新数据。在一个实施例中,相似性搜索结构是相似性元素的全局搜索结构,并且摘要的存储器搜索结构是摘要在存储器中的局部(local)搜索结构。
图3是示出可以实现本发明的方面的、基于重复数据删除系统中的重复删除处理中的相似性搜索进行摘要检索的示例方法300的流程图。方法300开始(步骤302)。方法300将输入数据分区为数据部块(步骤304)。输入数据可以被分区为固定尺寸的数据部块。方法300为每个数据部块计算相似性元素、摘要块边界以及对应的摘要值(步骤306)。方法300为每个数据部块(其可以是固定尺寸的数据部块)在搜索结构(即索引)中搜索匹配的相似元素(步骤308)。定位相似数据在存储库(例如数据存储库)中的位置(步骤310)。方法300使用相似数据的位置在存储库中定位相似数据的存储的摘要值和对应存储的摘要块边界,并将它们加载到存储器中(步骤312)。方法300将输入数据的摘要值和对应的摘要块边界与存储的摘要值和对应存储的摘要块边界进行匹配,以找到数据匹配(步骤314)。方法300结束(步骤316)。
图4是示出可以实现本发明的方面的、基于重复数据删除系统中的重复删除处理中的相似性搜索进行摘要检索的示例替代方法400的流程图。方法400开始(步骤402)。方法400将输入数据分区为部块(例如,将输入数据分区为大固定尺寸的部块)(步骤404),并且,针对输入数据部块,基于输入数据部块的数据计算滚动哈希值、相似性元素、摘要块边界以及摘要值(步骤406)。方法400在相似性搜索结构(即索引)中搜索输入数据部块的相似性元素(步骤408和410)。方法400确定是否存在足够或充足量的匹配的相似性元素(步骤412)。如果没有找到足够的匹配的相似性元素,则方法400确定在存储库中为输入数据部块未找到相似数据,并且将输入部块的数据存储在存储库中(步骤414),接着方法400结束(步骤438)。如果找到足够的相似性元素,则针对存储库中找到的每个相似数据区间段,方法400确定每个相似数据区间段在存储库中的位置和尺寸(步骤416)。方法400在存储库中定位表示相似数据区间段的摘要(步骤418)。方法400将这些摘要加载到存储中的摘要的搜索数据结构中(步骤420)。方法400确定是否存在任何附加的相似数据区间段(步骤422)。如果是,则方法400返回到步骤416。如果否,则方法400考虑输入数据部块的每个摘要(步骤424)。方法400确定摘要的存储器搜索结构中是否存在摘要值(步骤426)。如果是,则方法400记录摘要所覆盖的输入数据与具有匹配的摘要值的存储库数据之间的一致性(步骤428)。如果否,则方法400记录未在存储库中找到摘要所覆盖的输入数据(步骤430)。从步骤428和430两者,方法400确定是否存在输入数据部块的附加摘要(步骤432)。如果是,则方法400返回到步骤424。如果否,则方法400从相似性搜索结构中去除存储库中的匹配数据的相似性元素(步骤434和步骤410)。方法400将输入数据部块的相似性元素加到相似性搜索结构中(步骤436)。方法400结束(步骤438)。
图5是示出可以实现本发明的方面的、在重复数据删除系统中使用滚动哈希值的单个线性计算高效地计算相似性搜索值和摘要块的边界两者的示例方法500的流程图。方法500开始(步骤502)。方法500将输入数据分区为数据部块(步骤504)。数据部块可以是固定尺寸的数据部块。方法500考虑输入数据中的以字节偏移的每个连续字节窗口(步骤506)。方法500确定是否存在附加的连续字节窗口要处理(步骤508)。如果是,则方法500基于连续字节窗口的数据计算滚动哈希值(步骤510)。方法500将滚动哈希值贡献到相似性值的计算以及摘要块分段(即,摘要块边界)的计算(步骤512)。方法500丢弃滚动哈希值(步骤514),并返回到步骤506。如果否,则方法500结束相似性元素的计算以及摘要块分段的计算,从而产生输入数据的最终相似性元素和摘要块分段(步骤516)。方法500基于摘要块分段计算摘要值,其中每个摘要块被分配对应的摘要值(步骤518)。相似性元素被用于在存储库中搜索相似数据(步骤520)。摘要块和对应的摘要值被用于与存储在存储库中的摘要块和对应的摘要值进行匹配,以确定存储库中与输入数据相同的数据(步骤522)。方法500结束(步骤524)。
现在转到图6至图9,额定数据被分区为部块(例如16MB尺寸的),并且部块被分组为预定数目的部块的集合,称为部块集。部块集是非交迭的,且覆盖所有部块。集合中部块的数目至少是1,但通常被限定为更大,例如16个部块(因此,在此示例中,部块集表示256MB的数据)。部块集的重要性是两方面的。首先,对于每个部块集,保持相关信息以使得能够确定用于去除的摘要。第二,摘要被存储在存储库中对应于部块集的物理集合中。即,对于每个部块集,在存储库中存储了关联的摘要集合。当需要时,这些摘要集合可以被高效地定位、检索和去除,其架构显示在下面的图6中。
图6是示出可以实现本发明的方面的、包含用于每个部块集的记录的紧凑数据结构600的框图。紧凑数据结构600(标识为部块集数据结构606)包含用于每个部块集602的记录608,其中每个记录608(用于部块集A、B、C和D的记录)包括部块集610的标识(identification)、以及与部块集602关联的相似性元素612的数目,它们当前包含在相似性搜索结构中。例如,部块集602的记录示出了:用于部块集A的部块集标识(ID)具有数目Na个相似性元素,部块集B具有数目Nb个相似性元素,部块集C具有数目Nc个相似性元素,部块集D具有数目Nd个相似性元素。如上所述,摘要604(显示为604A和604B)存储在存储库中对应于部块集602的物理集合中。即,对于每个部块集602,在存储库中存储了关联的摘要集合604。在需要时,这些摘要集合604可以被高效地定位、检索和去除。考虑每个记录16字节(没有任何压缩),则在上述示例中,该数据结构针对每个16MB的数据而包含1个字节,这是非常紧凑的。例如,对于1PB物理存储量的存储库和1:16的重复删除率(即,16PB的额定数据),此数据结构的尺寸是1GB。
在一个实施例中,在输入部块集中的部块的重复删除处理期间,在存储器中保持针对部块集中的部块而被插入到相似性搜索结构中的相似性元素的数目的记录。当部块集的重复删除处理完成时,针对该部块集而被插入到相似性搜索结构中的相似性元素的总数目因此是已知的。此时,将包含该部块集的标识以及针对该部块集而被插入到相似性搜索结构中的相似性元素的数目的记录添加到部块集搜索结构中。
此外,在部块集的重复删除处理期间,将附加信息片保持在存储器中。此信息是包含当前部块集中的部块的重复删除处理产生数据匹配所基于的存储库区间段的存储库部块集的列表。对于与输入部块匹配的每个存储库区间段,其包含部块集的标识是已知的。对于所产生的每个数据匹配,重复删除处理计算出现在存储库数据的匹配部分中的相似性元素,并接着从相似性搜索结构中去除这些相似性元素。接着,对于包含匹配的存储库数据的每个存储库部块集,在为当前部块集保持的列表中更新被从相似性搜索结构中去除的相似性元素的总数目。即,列表中的每个条目包含包含与当前部块集匹配的存储库数据的部块集的标识、以及存储库部块集的被从相似性搜索结构中去除(通过当前部块集的重复删除处理)的相似性元素的数目。
当当前部块集的重复删除处理完成时,扫描存储库部块集的列表,并且接着对于每个条目,从部块集数据结构(图6中所示)中为特定存储库部块集记录的相似性元素的数目中减去针对该特定部块集(条目中指定的)而被从相似性搜索结构中去除的相似性元素的数目。此减法的结果是相似性搜索结构中的该特定部块集的相似性元素的当前数目。在部块集数据结构内的部块集的记录中更新此数目。通过应用此处理,部块集数据结构中的相关部块集的记录现在反映相似性搜索结构中的每个部块集的相似性元素的经更新的数目。在此处理中,评估正被处理的每个存储库部块集的相似性元素的结果数目。如果此数目低于预定阈值,则将相似性搜索结构中该存储库部块集的表示确定为足够低,因此处理继续进行以将与该部块集关联的摘要从存储库中去除。这使得存储在存储库中的摘要的尺寸能够被保持为与选配的数据尺寸相关。与每个存储库部块集的相似性元素的结果数目进行比较的阈值可以是对于每个存储库部块集特定的,而不是对于所有部块集固定的。可以通过在针对每个部块集所插入的相似性元素的初始数目中的百分比来指定该阈值。
在一个实施例中,如图7所示,本发明去除冗余存储库数据的摘要,以使得摘要存储消耗与存储库中的数据的选配尺寸相关,而不是与存储库中的总(额定)数据尺寸相关。在一个实施例中,仅通过示例,重复删除处理包括为输入数据计算摘要值。输入数据的摘要值和存储在存储库中的数据的存储的摘要值被用于定位与存储的数据的匹配。输入数据的摘要值存储在存储库中。存储在存储库中的被确定为与输入数据冗余的数据的摘要值被去除。输入数据的摘要值被以它们在数据中存在的顺序线性地存储在存储库中。输入数据的摘要值被以独立于存储这些摘要值所描述的数据的形式的形式存储在存储库中。用于产生与输入数据的匹配的存储库数据被确定为与该输入数据冗余。
图7是示出可以实现本发明的方面的、用于降低重复数据删除系统中的摘要存储消耗的示例方法700的流程图。换言之,方法700提供了去除冗余存储库数据的摘要,以使得摘要存储消耗与存储库中的数据的选配尺寸相关,而不是与重复数据删除系统中的存储库的总(额定)数据尺寸相关。方法700开始(步骤702)。方法700为输入数据计算摘要值(步骤704)。方法700使用输入数据的摘要值和存储在存储库中的数据的存储的摘要值来定位与存储的数据的匹配(步骤706)。方法700将输入数据的摘要值存储在存储库中(步骤708)。方法700去除存储在存储库中的被确定为与输入数据冗余的数据的摘要值(步骤710)。方法700结束(步骤712)。
图8是示出可以实现本发明的方面的、用于降低重复数据删除系统中的摘要存储消耗的替代示例方法800的流程图。方法800通过将输入数据分区为数据部块并将数据部块分组为数据部块集(步骤804)而开始(步骤802)。方法800执行输入数据部块集的重复删除处理,并且更新关于向相似性搜索结构(例如相似性索引)中插入相似性元素和从相似性搜索结构中删除相似性元素的信息(步骤806)。在步骤806中的处理期间,方法800保持针对输入部块集而被插入到相似性搜索结构中的相似性元素的数目的记录(步骤810),并且保持与其形成数据匹配的存储库部块集的列表,其中该列表中的每个条目包括关联部块集的被从相似性搜索结构中去除的相似性元素的数目(步骤812)。接着,方法800完成输入部块集的重复删除,并且在部块集数据结构(步骤814)中更新针对当前输入部块集而被插入到相似性搜索结构中的相似性元素的数目(步骤810)(步骤808)。方法800接着确定步骤812的列表中是否存在附加条目(步骤816)。如果否,则方法800结束(步骤826)。如果是,则方法800从部块集数据结构中为特定存储库部块集记录的相似性元素的数目中减去针对该特定部块集而被从相似性搜索结构中去除的相似性元素的数目,并更新步骤814的部块集数据结构内的部块集的条目中的结果(步骤818)。方法800接着确定相似性元素的结果数目是否低于预定阈值(步骤820)。如果否,则方法800返回到步骤816。如果是,则方法800从在步骤824中存储摘要的存储库中去除与该部块集关联的摘要(步骤822)。方法800接着返回到步骤816。如果步骤816的答案是否,则方法800结束(步骤826)。
图9是示出可以实现本发明的方面的、跟踪当前在相似性搜索结构中的部块集的相似性元素的数目以用于从重复数据删除系统中的存储库中去除与该部块集关联的摘要的示例方法900的流程图。换言之,方法900提供了跟踪当前在相似性搜素结构中的与每个存储库部块集关联的相似性元素的数目,并且,当特定部块集的此数目变得低于阈值(例如预定阈值)时,从重复数据删除系统中的存储库中去除与该部块集关联的摘要。方法900开始(步骤902)。方法900将输入数据分区为数据部块,并将数据部块分组为数据部块集(步骤904)。方法900为输入数据计算摘要,并将摘要存储在对应于部块集的集合中(步骤906)。方法900为输入数据计算相似性元素,并将相似性元素存储在相似性搜素结构中(步骤908)。方法900为每个部块集保持与该部块集关联的、当前包含在相似性搜素结构中的相似性元素的数目(步骤910)。接着,当特定部块集的此数目变得低于阈值时,从存储库中去除与该部块集关联的摘要集合(步骤912)。方法900接着结束(步骤914)。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上已经参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。也可以把这些计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得计算机、其它可编程数据处理装置、或其它设备执行一系列操作步骤以产生计算机实施的处理,使得在计算机或其它可编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (16)

1.一种通过使用计算环境中的处理器设备在重复数据删除系统中跟踪相似性搜索结构中的相似性元素的数目而减少摘要存储消耗的方法,包括:
将输入数据分区为部块并将所述部块分组为部块集;
为所述输入数据计算摘要并将所述摘要存储在对应于所述部块集的集合中;
为所述输入数据计算相似性元素并将所述相似性元素存储在相似性搜索结构中;
为每一个所述部块集保持当前包含在所述相似性搜索结构中的与所述部块集关联的相似性元素的数目;以及
当一部块集的相似性元素的数目变得低于阈值时,从存储库中去除与该部块集关联的摘要集合,
其中所述相似性搜索是指在所述存储库中搜索与所述输入数据相似的数据的处理,所述相似性元素是指可以基于数据而计算出的计算元素,所述相似性元素帮助在所述存储库中进行对与所述输入数据相似的数据的全局搜索。
2.如权利要求1所述的方法,还包括将所述部块集限定为不交迭且一起覆盖所有所述部块。
3.如权利要求1所述的方法,还包括使用所述相似性元素以找到与所述输入数据相似的存储库数据。
4.如权利要求3所述的方法,还包括使用输入摘要和存储库摘要来计算数据匹配。
5.如权利要求4所述的方法,还包括从所述相似性搜索结构中去除与以后获取的数据匹配的存储库数据的相似性元素。
6.如权利要求5所述的方法,还包括:针对包含匹配的存储库数据的每个部块集,从所述相似性搜索结构中与该部块集关联的相似性元素的保持数目中减去针对该部块集而被从所述相似性搜索结构中去除的相似性元素的数目。
7.如权利要求1所述的方法,还包括:将所述摘要值以所述摘要值在数据中的存在的顺序线性地存储在所述存储库中。
8.如权利要求1所述的方法,还包括:将所述摘要值以与存储所述摘要值所描述的数据的形式独立的形式存储在所述存储库中。
9.一种通过使用计算环境中的处理器设备在重复数据删除系统中跟踪相似性搜索结构中的相似性元素的数目而减少摘要存储消耗的系统,包括:
第一可执行部分,将输入数据分区为部块并将所述部块分组为部块集;
第二可执行部分,为所述输入数据计算摘要并将所述摘要存储在对应于所述部块集的集合中;
第三可执行部分,为所述输入数据计算相似性元素并将所述相似性元素存储在相似性搜索结构中;
第四可执行部分,为每一个所述部块集保持当前包含在所述相似性搜索结构中的与所述部块集关联的相似性元素的数目;以及
第五可执行部分,当一部块集的相似性元素的数目变得低于阈值时,从存储库中去除与该部块集关联的摘要集合,
其中所述相似性搜索是指在数据存储库中搜索与所述输入数据相似的数据的处理,所述相似性元素是指可以基于数据而计算出的计算元素,所述相似性元素帮助在数据存储库中进行对与所述输入数据相似的数据的全局搜索。
10.如权利要求9所述的系统,还包括第六可执行部分,将所述部块集限定为不交迭且一起覆盖所有所述部块。
11.如权利要求9所述的系统,还包括第六可执行部分,使用所述相似性元素以找到与所述输入数据相似的存储库数据。
12.如权利要求11所述的系统,还包括第七可执行部分,使用输入摘要和存储库摘要来计算数据匹配。
13.如权利要求12所述的系统,还包括第八可执行部分,从所述相似性搜索结构中去除与以后获取的数据匹配的存储库数据的相似性元素。
14.如权利要求13所述的系统,还包括第九可执行部分,针对包含匹配的存储库数据的每个部块集,从所述相似性搜索结构中与该部块集关联的相似性元素的保持数目中减去针对该部块集而被从所述相似性搜索结构中去除的相似性元素的数目。
15.如权利要求9所述的系统,还包括第六可执行部分,将所述摘要值以所述摘要值在数据中的存在的顺序线性地存储在所述存储库中。
16.如权利要求9所述的系统,还包括第六可执行部分,将所述摘要值以与存储所述摘要值所描述的数据的形式独立的形式存储在所述存储库中。
CN201410096289.1A 2013-03-15 2014-03-14 在重复数据删除系统中减少摘要存储消耗的方法和系统 Active CN104199815B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/840,438 US9116941B2 (en) 2013-03-15 2013-03-15 Reducing digest storage consumption by tracking similarity elements in a data deduplication system
US13/840,438 2013-03-15

Publications (2)

Publication Number Publication Date
CN104199815A CN104199815A (zh) 2014-12-10
CN104199815B true CN104199815B (zh) 2017-12-12

Family

ID=51533011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410096289.1A Active CN104199815B (zh) 2013-03-15 2014-03-14 在重复数据删除系统中减少摘要存储消耗的方法和系统

Country Status (2)

Country Link
US (2) US9116941B2 (zh)
CN (1) CN104199815B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9547662B2 (en) 2013-03-15 2017-01-17 International Business Machines Corporation Digest retrieval based on similarity search in data deduplication
US9678975B2 (en) 2013-03-15 2017-06-13 International Business Machines Corporation Reducing digest storage consumption in a data deduplication system
US9244937B2 (en) 2013-03-15 2016-01-26 International Business Machines Corporation Efficient calculation of similarity search values and digest block boundaries for data deduplication
US9575661B2 (en) * 2014-08-19 2017-02-21 Samsung Electronics Co., Ltd. Nonvolatile memory systems configured to use deduplication and methods of controlling the same
US9916320B2 (en) * 2015-04-26 2018-03-13 International Business Machines Corporation Compression-based filtering for deduplication
US9665287B2 (en) 2015-09-18 2017-05-30 Alibaba Group Holding Limited Data deduplication using a solid state drive controller
US9984123B2 (en) * 2015-11-25 2018-05-29 International Business Machines Corporation Reducing resource consumption of a similarity index in data deduplication
US9678977B1 (en) * 2015-11-25 2017-06-13 International Business Machines Corporation Similarity based deduplication of snapshots data
CN107181776B (zh) * 2016-03-10 2020-04-28 华为技术有限公司 一种数据处理方法及相关设备、系统
US10346390B2 (en) 2016-05-23 2019-07-09 International Business Machines Corporation Opportunistic mitigation for corrupted deduplicated data
US10235080B2 (en) 2017-06-06 2019-03-19 Saudi Arabian Oil Company Systems and methods for assessing upstream oil and gas electronic data duplication
US20190026304A1 (en) * 2017-07-21 2019-01-24 EMC IP Holding Company LLC Container metadata separation for cloud tier
US10719483B2 (en) 2017-11-20 2020-07-21 International Business Machines Corporation Remote copy with data deduplication functionality
US11010077B2 (en) 2019-02-25 2021-05-18 Liveramp, Inc. Reducing duplicate data
CN110333824B (zh) * 2019-06-05 2022-10-25 腾讯科技(深圳)有限公司 一种存储系统的扩容方法和装置
CN112783417A (zh) * 2019-11-01 2021-05-11 华为技术有限公司 数据缩减的方法、装置、计算设备和存储介质
US11119995B2 (en) * 2019-12-18 2021-09-14 Ndata, Inc. Systems and methods for sketch computation
CN111177137B (zh) * 2019-12-30 2023-10-13 广州酷狗计算机科技有限公司 数据去重的方法、装置、设备及存储介质
US11232074B2 (en) * 2020-05-19 2022-01-25 EMC IP Holding Company LLC Systems and methods for searching deduplicated data
CN111813294B (zh) * 2020-05-29 2022-03-11 维沃移动通信有限公司 内容处理方法及电子设备
US11995060B2 (en) * 2021-02-02 2024-05-28 Maxlinear, Inc. Hashing a data set with multiple hash engines
US20240037078A1 (en) * 2022-07-26 2024-02-01 Hewlett Packard Enterprise Development Lp Matching operation for a deduplication storage system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996233A (zh) * 2009-08-11 2011-03-30 国际商业机器公司 用于对经重复删除的数据进行复制的方法和系统
US8332612B1 (en) * 2009-12-18 2012-12-11 Emc Corporation Systems and methods for using thin provisioning to reclaim space identified by data reduction processes
CN102880671A (zh) * 2012-09-07 2013-01-16 浪潮电子信息产业股份有限公司 一种面向分布式文件系统的主动重复数据删除方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725705B2 (en) 2004-09-15 2014-05-13 International Business Machines Corporation Systems and methods for searching of storage data with reduced bandwidth requirements
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7870409B2 (en) 2007-09-26 2011-01-11 Hitachi, Ltd. Power efficient data storage with data de-duplication
US8527482B2 (en) 2008-06-06 2013-09-03 Chrysalis Storage, Llc Method for reducing redundancy between two or more datasets
US8452731B2 (en) * 2008-09-25 2013-05-28 Quest Software, Inc. Remote backup and restore
US8626723B2 (en) * 2008-10-14 2014-01-07 Vmware, Inc. Storage-network de-duplication
US8375182B2 (en) 2009-02-10 2013-02-12 Hewlett-Packard Development Company, L.P. System and method for segmenting a data stream
US8489612B2 (en) 2009-03-24 2013-07-16 Hewlett-Packard Development Company, L.P. Identifying similar files in an environment having multiple client computers
US20100318759A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Distributed rdc chunk store
US9280609B2 (en) 2009-09-08 2016-03-08 Brocade Communications Systems, Inc. Exact match lookup scheme
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
WO2011053274A1 (en) 2009-10-26 2011-05-05 Hewlett-Packard Development Company, L.P. Sparse index bidding and auction based storage
CN101706825B (zh) 2009-12-10 2011-04-20 华中科技大学 一种基于文件内容类型的重复数据删除方法
GB2471056B (en) 2010-03-09 2011-02-16 Quantum Corp Controlling configurable variable data reduction
US8250325B2 (en) * 2010-04-01 2012-08-21 Oracle International Corporation Data deduplication dictionary system
US8694703B2 (en) 2010-06-09 2014-04-08 Brocade Communications Systems, Inc. Hardware-accelerated lossless data compression
US8463797B2 (en) 2010-07-20 2013-06-11 Barracuda Networks Inc. Method for measuring similarity of diverse binary objects comprising bit patterns
CA2810991C (en) 2010-09-09 2016-06-21 Nec Corporation Storage system
US9110936B2 (en) 2010-12-28 2015-08-18 Microsoft Technology Licensing, Llc Using index partitioning and reconciliation for data deduplication
US9639543B2 (en) 2010-12-28 2017-05-02 Microsoft Technology Licensing, Llc Adaptive index for data deduplication
GB2477607B (en) 2011-01-17 2011-12-28 Quantum Corp Sampling based data de-duplication
US20120185612A1 (en) 2011-01-19 2012-07-19 Exar Corporation Apparatus and method of delta compression
US8612392B2 (en) 2011-05-09 2013-12-17 International Business Machines Corporation Identifying modified chunks in a data set for storage
US8805796B1 (en) * 2011-06-27 2014-08-12 Emc Corporation Deduplicating sets of data blocks
US8825626B1 (en) 2011-08-23 2014-09-02 Emc Corporation Method and system for detecting unwanted content of files
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US8484170B2 (en) 2011-09-19 2013-07-09 International Business Machines Corporation Scalable deduplication system with small blocks
CN103034659B (zh) 2011-09-29 2015-08-19 国际商业机器公司 一种重复数据删除的方法和系统
US9047304B2 (en) * 2011-11-28 2015-06-02 International Business Machines Corporation Optimization of fingerprint-based deduplication
US8914338B1 (en) 2011-12-22 2014-12-16 Emc Corporation Out-of-core similarity matching
US20140115182A1 (en) 2012-10-24 2014-04-24 Brocade Communications Systems, Inc. Fibre Channel Storage Area Network to Cloud Storage Gateway
US9069478B2 (en) 2013-01-02 2015-06-30 International Business Machines Corporation Controlling segment size distribution in hash-based deduplication
US9547662B2 (en) 2013-03-15 2017-01-17 International Business Machines Corporation Digest retrieval based on similarity search in data deduplication
US9244937B2 (en) 2013-03-15 2016-01-26 International Business Machines Corporation Efficient calculation of similarity search values and digest block boundaries for data deduplication
US9678975B2 (en) 2013-03-15 2017-06-13 International Business Machines Corporation Reducing digest storage consumption in a data deduplication system
US10366072B2 (en) * 2013-04-05 2019-07-30 Catalogic Software, Inc. De-duplication data bank

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996233A (zh) * 2009-08-11 2011-03-30 国际商业机器公司 用于对经重复删除的数据进行复制的方法和系统
US8332612B1 (en) * 2009-12-18 2012-12-11 Emc Corporation Systems and methods for using thin provisioning to reclaim space identified by data reduction processes
CN102880671A (zh) * 2012-09-07 2013-01-16 浪潮电子信息产业股份有限公司 一种面向分布式文件系统的主动重复数据删除方法

Also Published As

Publication number Publication date
US20150324419A1 (en) 2015-11-12
US20140279954A1 (en) 2014-09-18
US9665610B2 (en) 2017-05-30
US9116941B2 (en) 2015-08-25
CN104199815A (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
CN104199815B (zh) 在重复数据删除系统中减少摘要存储消耗的方法和系统
CN104050234B (zh) 在重复数据删除系统中减少摘要存储消耗的方法和系统
US10013202B2 (en) Utilizing global digests caching in similarity based data deduplication
CN104050233B (zh) 有效计算相似搜索值和摘要块边界的方法和系统
US10007672B2 (en) Global digests caching in a data deduplication system
CN103473250B (zh) 用于保存文件系统节点的过去状态的方法与系统
US8930648B1 (en) Distributed deduplication using global chunk data structure and epochs
CN103635900B (zh) 基于时间的数据分割
US10007610B2 (en) Tuning global digests caching in a data deduplication system
CN103530310B (zh) 为基于散列的消重进行子块分割的方法和系统
JP5878548B2 (ja) 重複排除ストレージ・システム、その内部の合成バックアップを容易にする方法、及び、プログラム
CN103562914B (zh) 节约资源型扩展文件系统
JP6320432B2 (ja) データ重複排除における、類似性探索に基づくダイジェスト検索
CN109416681A (zh) 使用幽灵指纹进行工作负载优化的重复数据删除
US20150019815A1 (en) Utilizing global digests caching in data deduplication of workloads
CN102292720A (zh) 用于管理数据存储系统的数据对象的方法和设备
US10229127B1 (en) Method and system for locality based cache flushing for file system namespace in a deduplicating storage system
US10296597B2 (en) Read ahead of digests in similarity based data deduplicaton
US10671569B2 (en) Reducing activation of similarity search in a data deduplication system
US10789213B2 (en) Calculation of digest segmentations for input data using similar data in a data deduplication system
US9063656B2 (en) System and methods for digest-based storage
US20240143213A1 (en) Fingerprint tracking structure for storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant