CN104871155A - 优化用于去重的数据块大小 - Google Patents

优化用于去重的数据块大小 Download PDF

Info

Publication number
CN104871155A
CN104871155A CN201380062853.1A CN201380062853A CN104871155A CN 104871155 A CN104871155 A CN 104871155A CN 201380062853 A CN201380062853 A CN 201380062853A CN 104871155 A CN104871155 A CN 104871155A
Authority
CN
China
Prior art keywords
file
data
data block
duplicate removal
block
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
CN201380062853.1A
Other languages
English (en)
Other versions
CN104871155B (zh
Inventor
T·拉姆
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN104871155A publication Critical patent/CN104871155A/zh
Application granted granted Critical
Publication of CN104871155B publication Critical patent/CN104871155B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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]
    • 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

Abstract

本申请中提供的技术涉及数据去重,并且具体地但不唯一地涉及用于对数据块的高效最优大小进行确定以用于备份数据源的方法和系统。此外,在本申请中还提供用于在数据备份应用中识别重复数据的系统。

Description

优化用于去重的数据块大小
本申请要求于2013年3月13日提交的序列号为13/802,167的美国临时专利申请的优先权,该美国临时专利申请要求于2012年10月1日提交的序列号为61/708,255以及于2012年10月1日提交的序列号为61/708,295的美国临时专利申请的优先权,以引用方式将上述申请的公开内容全部并入本文。
背景技术
数据去重(data deduplication)是一种数据压缩技术,其通过识别和消除冗余数据来减小数据量。针对“单一实例存储”的最早的去重技术是基于文件粒度的去重。在文件粒度的去重中,基于内容来检测相同文件的重复拷贝并且仅在磁盘上存储该文件的一个拷贝,无论这些重复拷贝是否具有相同的名字。但是,文件粒度的技术效率很低,这与在这样的过程级别上对数据进行比较有关:例如,如果将单个词添加到一个文档,那么单一实例存储将不会识别出任何数据冗余并且会将整个文件存储为“新”文件。
一种用于减小数据去重所需要的网络带宽和计算机存储的量的方法是:将各个文件分成块,识别重复的数据块,并且仅对重复的数据块的单个实例进行传送和存储。一种用于将文件(或诸如完整的文件系统这样的其他数据源)分成块的方法包括使用固定大小的块。当产生数据块时,将文件分成较小的块提供的潜在好处是产生更多的重复块,从而在除去和解决重复时使得被复制的数据更小。另一方面,将文件分成较大的块所具有的好处是需要较少的索引和较少的块比较,这使得针对被复制的数据的块索引更小并且相关联的处理和存储器开销更小。
基于文件粒度的去重的早期技术大部分已经消失,取而代之的是块粒度的去重,在块粒度的去重中一个文件被当作多个数据块的一个集合。块粒度的去重在文件内进行操作并且仅存储唯一的或新创建的块。在操作中,将一个文件的每一块与已知的块进行比较。如果一个块在先前已经被存储,那么仅引用该块而不是再次对该块进行存储。使用其他的编码技术对仅存储一次的每一块进行压缩。因此,与单一实例存储相比,块粒度的去重提供了更大的压缩率。
最早的块粒度技术使用固定块去重,其中将块尺寸预置为常数值。尽管固定块去重相对于文件粒度的去重而言是一种改进,但是固定块去重并不能容忍在一个文件的开始处或在中间的数据插入。即,当数据被插入到文件中时,固定块去重会将所有随后的块检测为新块,从而导致了较低的去重压缩率。在这样的情况中,固定块去重效率很低,类似于与文件粒度的去重技术相关联的低效率。
可变块去重技术解决了在固定块技术中固有的数据插入问题,但以引发额外的处理为代价。可变块去重通过识别文件数据内的特定标记符(所谓的“幻数(magic number)”)来设置块边界。尽管可变块去重技术改进了压缩率,但是由于增加了与识别块边界相关联的开销而使性能变慢。
发明内容
因此,本文提供了通过确定针对特定文件类型的最优块大小来改进数据去重的技术。例如,本技术的实施例可以在用于确定针对文件类型的最优数据块大小的方法中使用,其中所述方法包括:构建将多个压缩率与多个测试数据块大小相关联的函数,其中所述多个压缩率中的压缩率是通过使用去重技术和所述多个测试数据块大小中的测试数据块大小对所述文件类型的文件进行转换来计算的;确定所述函数的最大压缩率;以及将与所述最大压缩率相关联的测试数据块大小选择为针对所述文件类型的最优数据块大小。在一些实施例中,进一步提供了方法,其中构建将多个压缩率与多个测试数据块大小相关联的函数进一步包括:提供所述文件类型的文件,其中所述文件具有文件大小;根据所述文件生成多个数据块,其中所述多个数据块中的每个数据块的大小为所述测试数据块大小;将所述去重技术应用于所述多个数据块以产生去重后的结果文件,其中所述去重后的结果文件具有去重后的结果文件大小;以及根据所述文件大小和所述去重后的结果文件大小来计算压缩率。
在一些实施例中,首先根据类型将多个文件进行分组,并且因此在一些实施例中,所述文件是从相同文件类型的文件集合中选择的,并且使用来自所述相同文件类型的文件集合中的一个或多个、大部分或所有文件来构建所述函数。可以使用各种技术来定义文件的文件类型。在一些实施例中,通过分析文件内容来确定文件的文件类型。例如,在一些实施例中,所述文件包括多个数据字节,并且通过检验来自所述多个数据字节中的数据字节来确定所述文件类型,并且在一些实施例中,所述文件具有扩展名,并且根据所述扩展名来确定所述文件类型。文件类型包括但不限于表1中的文件类型。
表1
在一些实例中,所述文件类型是这样的文件:应用、可执行文件、图像、文本文件、源代码、音频、视频、数据库、电子表格、字处理文档、系统文件、目录、磁盘映像、档案、可移植文档、二进制文件、矢量图像、字体、计算机辅助设计、压缩文件、物理可记录介质归档、电子设计自动化、桌面出版、文档、地理信息系统、图形信息管理器、调色板、光栅图形、3D图形、数学、目标代码、共享库、动态链接库、页面描述、个人信息管理器、演示文稿、项目管理、参考文献管理、科学数据、脚本、游戏、虚拟机、手册文件、网页、标记语言和/或财务记录。
此外,本技术的一些实施例提供了方法,在其中所述文件具有资源分支,并且根据所述资源分支来确定所述文件类型;以及提供了方法,在其中所述文件具有元数据,并且根据所述元数据来确定所述文件类型。
所述函数提供了多个压缩率与多个测试数据块大小之间的关系。在一些实施例中,所述函数是将多个压缩率与多个测试数据块大小相关联的模型,并且在一些实施例中,所述函数是基于多个压缩率和多个测试数据块大小的插值。
本文还提供与数据备份系统相关的技术。例如,在一些实施例中,本技术提供一种数据备份系统,包括:将多种文件类型与多个最优数据块大小相关联的表;去重技术;用于接收具有文件类型的数据源的功能单元;以及处理器,其被配置为根据所述数据源生成多个数据块,其中所述多个数据块中的每个数据块的大小为与所述文件类型相关联的最优数据块大小。可以预先构建所述表并提供给系统或,由系统自身构建所述表。因此,实施例提供了系统,所述系统进一步包括诸如通过使用如上文所讨论的方法的实施例来构建所述表的功能单元。所述系统在可以备份的数据源或数据类型方面不受限制。例如,实施例提供数据备份系统,其中所述数据源是文件、文件系统、或多个文件。
要备份的数据可以驻留在一个计算机、一个机器、一个网络节点、一个存储设备等上,或者可以驻留在多个计算机、多个机器、多个网络节点、多个存储设备等上。因此,一些实施例规定所述多个文件驻留在多个计算机、多个机器、多个网络节点、多个存储设备等上。此外,所述备份系统允许将本地数据源备份到远程备份站点。因此,在一些实施例中,数据备份系统是在数据源本地的。这样的安排通过向备份站点传送去重后的较小的数据而不是向备份站点传送包含冗余的全部数据集而获得效率。然而,在一些实施例中期望的是在远程备份位置执行去重,并因此,在一些实施例中所述数据备份系统远离所述数据源。另外,由于各个计算机经常具有相似的安装:操作系统、文件系统、软件套件以及其他通用软件(例如,Unix、Linux、OpenOffice、iWork、iLife、微软Windows、微软Office、Adobe Creative Suite、Mac OS X、GNOME等),因此通过利用来自要备份的数据源(例如,文件、计算机、存储介质)集合内找到的这样的通用文件的数据块来生成并预先填充所述备份,可以实现效率增益。因此,在一些实施例中,所述系统还包括根据标准文件(例如来自操作系统或文件系统)生成的预先填充的多个数据块。基于本文所包含的教示,另外的实施例对相关领域的技术人员来说将是显而易见的。
本文还提供了涉及管理电子数据的技术,并且具体地但不唯一地,涉及用于在数据去重应用中识别重复数据的方法和系统。类似于固定块去重,所提供的数据去重技术使用固定的块大小。然而,与传统的固定块方法不同,本技术通过在整个数据源上滑动窗口以测试每个数据块的每个可能的起始点,来改变该块的边界。在一些实施例中,块大小可以根据数据源而改变,以针对有待去重的特定数据源来提供最高效的去重。可以使用滚动校验和(例如,类似于在rsync中所使用的,参见例如,Tridgell,A.的“用于分类和同步的高效算法”,博士论文,澳大利亚国立大学,1999)——其使用最小的处理器资源——来在窗口内识别可能是重复数据的块。然后,一个更加处理器密集型的过程使用散列计算来从可能的候选者中确定重复的块。
例如,在一些实施例中,本技术提供用于对来自数据源的数据块的边界进行确定的方法,所述方法包括:根据数据源生成数据块,其中所述数据块具有起始字节A、结束字节B以及大小S;将所述数据块与已存储的数据块的集合进行比较;如果所述数据块与一已存储的数据块匹配,那么将所述数据块的边界设置为结束字节B;以及如果所述数据块不与任何已存储的数据块匹配,那么将起始字节A和结束字节B改变一增量(delta)Z。所述数据块的大小S由用户来设置,或者通过任何适当的方式由去重软件来设置。例如,在一些实施例中,通过文件类型,例如,通过查询在经验上或理论上被确定为针对特定文件类型(例如,文本文件、位图图像、数据库、音乐文件、可执行文件等)最优的数据块大小的表,来确定大小S。在一些实施例中,通过检验数据源(例如,通过检验数据源的内容(例如,通过检验所述数据源的一字节或通过检验数据源的多于一字节))来确定大小S。在一些实施例中,S由用户来选择以提供速度和存储效率之间期望的平衡。
本技术的实施例提供对数据的滑动块渐进式去重操作,其中,在一方面中,滑动块向数据源的末端滑动,而在一些实施例中,滑动块向数据源的起始端滑动。因此,在一些实施例中增量Z是正的,而在一些实施例中增量Z是负的。例如,在一些实施例中增量Z是+1,而在一些实施例中增量Z是–1。
在一些实施例中,一个数据块的边界与前一个数据块的边界相距(S+Z)个字节,例如,第n个数据块的边界B(n)与第(n–1)个数据块的边界B(n–1)相距(S+Z)个字节。在一些实施例中,当滑动块已经移动通过整个前一个数据块而在已知的数据块的集合中没有找到匹配时,那么当前数据块的边界与前一个数据块的边界相距S个字节,例如,如果S等于Z的绝对值,那么第n个数据块的边界B(n)与第(n–1)个数据块的边界B(n–1)相距S个字节。在一些实施例中,一个数据块的边界是数据源的最后一字节。在一些实施例中,第一个数据块的边界与数据源的起始端相距S个字节,例如,第一个数据块的边界B(1)在字节S处。在一些实施例中,使用该滑动块方法,例如,通过重复生成、比较、设置和递增步骤直到数据块的结束端处于或超出数据源的最后一字节,来设置第一个数据块之后的数据块的边界。
所述方法在作为数据源的数据方面不受限制,例如,关于数据的类型、大小、复杂性等。例如,在一些实施例中,数据源包括文件;在一些实施例中,所述数据源包括文件的集合(例如,那些类似的(例如,具有相同文件类型的),或者不同的(例如,具有不同的文件类型));而在一些实施例中,数据源包括文件系统。
在本文提供的方法的实施例中使用各种方法来比较数据块。在一些实施例中,使用根据数据块计算的消息摘要来进行比较。因此,在一些实施例中,比较步骤包括利用函数来计算数据块的第一消息摘要;利用函数来计算来自数据块的集合中的数据块的第二消息摘要;以及将第一消息摘要与第二消息摘要进行比较。实施例包括使用多种函数来生成消息摘要,例如,在一些实施例中所述函数包括计算滚动散列,在一些实施例中所述函数包括计算校验和,而在一些实施例中所述函数包括计算勒宾散列(Rabinhash)。
在一些实施例中,例如,在用于数据备份系统(其中经由网络来发送备份数据)中的实施例中,对数据执行数据去重,之后向备份存储设备(例如,目标卷)发送经去重的数据。因此,在一些实施例中,在数据源的本地执行所述方法。在一些实施例中,在数据被发送到备份存储设备之后对该数据执行数据去重。因此,在一些实施例中,远离数据源执行所述方法。在备份系统中使用的实施例包括方法,其中如果数据块与来自数据块集合中的任意数据块不匹配,那么所述数据块是新数据块,或者如果数据块与来自数据块集合中的任意数据块匹配,那么所述数据块是已知的数据块。在一些实施例中,新数据块被存储在备份中;在一些实施例中,已知的数据块的指针被存储在备份中。
本文还提供可以在用于对来自数据源的数据块的边界进行确定的系统中使用的技术的实施例,所述系统包括处理器,其被配置成:根据数据源生成数据块,其中所述数据块具有起始字节A、结束字节B和大小S;将所述数据块与已存储的数据块的集合进行比较;如果所述数据块与一已存储的数据块匹配,那么将所述数据块的边界设置为结束字节B;以及如果所述数据块不与任何已存储的数据块匹配,那么将起始字节A和结束字节B改变一增量Z。在一些实施例中,所述系统还包括目标卷、包括数据源的源卷、以及用于从源卷向目标卷发送数据的功能单元。系统的所述实施例可以在数据备份应用中使用,在所述应用中数据被进行去重。因此,在一些实施例中,从数据源向目标卷发送的数据是数据块、或指向数据块的指针。在一些实施例中,所述系统还包括数据压缩功能单元。
在一些实施例中,例如,在用于数据备份系统(其中经由网络来发送备份数据)中的实施例中,对数据执行数据去重,之后向备份存储设备(例如,目标卷)发送经去重的数据。因此,在一些实施例中,所述处理器在所述数据源本地。在一些备份系统中,数据重复发生在数据的发送之后,并且因此在一些实施例中,所述处理器远离所述数据源。所述实施例可以在网络备份系统中使用,例如,在一些实施例中,目标卷和源卷通过LAN来连接,而在一些实施例中,目标卷和源卷通过WAN来连接。在一些实施例中,所述系统被配置为使用针对被进行去重的数据的类型而优化的数据块大小。例如,在一些实施例中,所述系统还包括将多个文件类型关联到多个最优数据块大小的表。一般而言,本文提供的系统的实施例包括被配置为执行如上文所描述的用于确定数据块的边界的方法的处理器,其可以例如在备份系统或要对数据进行去重的其他应用中使用。基于本文所包含的教示,另外的实施例对相关领域的技术人员来说将是显而易见的。
附图说明
结合以下附图,本技术的这些和其他特征、方面和优点将变得更容易理解:
图1是示出了针对两种文件类型(MPEG类型的音频文件和PPT类型的幻灯片演示文稿文件)的压缩率与块大小之间的关系的图表。
图2是描述了如本文所提供的块边界确定技术的实施例的流程图。
图3是描述了根据本文提供的技术的前向滑动(slide-forward)方法的实施例的流程图。
具体实施方式
本文提供了涉及数据去重的技术,且具体地但不唯一地,涉及用于对数据块的高效最优大小进行确定以用于备份数据源的方法和系统。本文还提供了用于在数据备份应用中识别重复数据的系统。
定义
在整个说明书和权利要求书中,下面的术语采用明确与本文相关联的含义,除非上下文另外明确指示。如本文所使用的短语“在一个实施例中”未必是指相同的实施例,虽然其可能是指相同的实施例。此外,如本文所使用的短语“在另一实施例中”未必是指不同的实施例,虽然其可能是指不同的实施例。因此,如下文所描述的,可以容易地对本发明的各个实施例进行组合,而不会偏离本发明的范围或精神。
此外,如本文所使用的,术语“或”是包含性的“或”运算符,并且等同于术语“和/或”,除非上下文另外明确指示。术语“基于”不是排他性的并且允许基于未描述的另外的因素,除非上下文另外明确指示。另外,在整个说明书中,“一”、“一个”、和“所述”的含义包括复数的引用。“在…中”的含义包括“在…内”和“在…上”。
如本文所使用的,术语“计算机”应该是指包括处理器、存储器和操作系统的机器,其能够与用户或其他计算机进行交互,并且应该包括而不限于台式计算机、笔记本计算机、膝上型计算机、服务器、个人数字助理(PDA)、平板计算机、手持计算机、智能电话以及存储数据的类似设备。
如本文所使用的,术语“本地”描述两个或多个计算设备之间的关系,其中所述设备在物理上位于诸如家、办公室或建筑物等的小地理区域中,并且通过局域网或不使用网络(诸如通过有线或无线机制)来与彼此进行通信。术语“远程”描述非本地的关系,例如,通过广域网、全球网或其组合进行通信。
如本文所使用的,术语“压缩率”是指去重之前的数据与去重之后的数据量的比率。较高的去重比率与较高的数据减少量相对应。
如本文所使用的,术语“处理器”和“中央处理单元”或“CPU”互换地使用,并且指的是能够从计算机存储器(例如,ROM或其他计算机存储器)读取程序并根据该程序执行一组步骤的设备。
如本文所使用的,术语“客户端-服务器”指的是在分布式计算系统中一种交互模型,其中在一站点处的程序向在另一站点处的程序发送请求并等待响应。进行请求的程序被称为“客户端”而对所述请求进行响应的程序被称为“服务器”。例如,在万维网的情况下,客户端是在用户的计算机上运行的“网络浏览器”(或简称为“浏览器”);通过供应内容来响应浏览器请求的程序通常被称为“网络服务器”。
如本文所使用的,术语“去重”指的是消除数据源中的冗余数据。在去重过程中,重复的数据有时被删除,而有时被保留但不进行传送或存储,通常仅留下数据的一份拷贝以进行存储。然而,在一些实施例中,如果数据可能被需要,那么仍然保留所有数据的索引。在一些实施例中,去重改进了存储利用率并且减小了在网络中的链路上发送的字节数。在去重的一些实施例中,生成并存储了成块的数据,例如“数据块”或字节模式(bytepattern)。随着过程的继续,将其他数据块与所存储的拷贝进行比较。当匹配发生时,冗余的数据块由指向先前存储的数据块的小的引用所取代。具有相同字节模式的数据块可能出现数十、数百或甚至数千次(匹配频率是数据块大小的一个因素);因此,可以极大地减小所存储或传送的数据量。所存储的数据经常被称为术语“复制的”数据。
如本文所使用的,术语“文件”用于指数字数据的实体。一般而言,“文件”包括包含在该文件的头部中并且定义了该文件的内容的属性的数据(例如元标签或其他元数据)。“文件”还包括内容(例如,视频、诸如歌曲的一段音乐、软件、可执行代码、图像、字处理文档、电子表格等)。内容可以用是明文的或者可以对其加密或以其他方式编码。典型地,如本文所使用的,“文件”由文件名来标识。每个文件具有大小。每一文件也具有文件类型,其有时与文件扩展名相关联。例如,包含视频数据的文件可以被格式化为MPEG文件(有时由文件扩展名.mpg来指示)或者采用在允许播放视频图像的任何其他文件格式。纯文本文件可以被格式化为ASCII文本文件(有时由文件扩展名.txt来指示)。文件还可以被压缩(例如,使用诸如ZIP等的任何可用的压缩算法)或以其他方式编码。
在一些系统中,相同的文件名可以同时引用多个逻辑上并行的“分支(fork)”,例如,“数据分支”和“资源分支”。“数据分支”包含这样的内容:其被用户惯例地认为是文件的数据;而“资源分支”包含由操作系统所使用以处理“数据分支”的内容的系统相关信息。
如本文所使用的,术语“元数据”用于指至少部分地描述其他数据的数据,其可以是任何类型。
如本文所使用的,“模型”是符合数据集的数学等式。模型允许近似实验数据点之间的值并且使用所述值来便于进行数据的曲线拟合。可以基于实验证明的数据特征或基于对数据集所表示的变量之间关系的预测来确定该等式。
如本文所使用的,术语“千字节”(SI符号,kB)指的是数字信息的单位“字节”的倍数。虽然前缀“千”指的是1000,但术语千字节和符号kB可以指1024(210)个字节和/或1000(103)个字节,这取决于上下文。在一些上下文中,专门地使用“千位二进制字节”(符号:KiB)来表示210或1024个字节。
如本文所使用的,“散列函数”指的是取任意数据块并返回固定大小的位串以使得该数据块的变化将改变散列值的决定性过程。要编码的数据经常被称为“消息”而散列值有时被称为“消息摘要”或者简称为“摘要”。
如本文所使用的,术语“卷”可以指在诸如硬盘、固态硬盘、闪速存储器、虚拟驱动器等一个或多个数据存储设备上的任何定义的数量的存储。除了卷的大小以及在其上分配卷的设备或存储设备之外,在一些情况下,卷可以具有其他属性(例如,诸如镜像(mirroring)、条带化(striping)、RAID级别、跨越(spanning)、串接(concatenation)等保护和/或性能特征)。例如,术语“卷”包括如在Unix和诸如Linux、AIX、Solaris、Mac OSX等Unix类型操作系统中使用的逻辑卷。例如,术语“卷”也可以包括如卷管理器软件所定义的卷。术语“卷”可以进一步包括如微软Windows和/或DOS所使用的分区。分区可以是对单个物理盘驱动器或其中存储有数据的其他介质上的存储的分割,使所分割的存储与该盘驱动器上的其他存储隔离。分区可以是主分区或扩展分区。术语“卷”还可以指卷组。
如本文所使用的,“源”和“目标”均可以包括能够主控一个或多个存储设备(例如磁盘或卷)的计算机系统。例如,“源”或“目标”可以是服务器计算机系统,包括一个或多个处理器、一个或多个系统存储器以及一个或多个盘或其他存储设备,其中服务器系统被配置为执行诸如一个或多个操作系统等软件。在另一实施例中,“源”或“目标”可以是诸如单用户工作站等客户端计算机系统。
如本文所使用的,“勒宾算法”或“勒宾-卡普”算法或“勒宾散列”指的是由麦克O.勒宾和理查德M.卡普开发的串搜索方法,例如,如在下文中所描述的:Cormen,TH;Leiserson,CE;Rivest,RL;and Stein,C.“TheRabin–Karp algorithm”in Introduction to Algorithms(2nd ed.),Cambridge,MA(MIT Press 2001),pp.911–916,通过引用将其全部并入本文以用于所有用途。
技术的实施例
总体上,本技术涉及用于减少对计算机文件进行备份所需要的带宽和存储空间的量的方法,将其作为优化计算机备份系统效率的手段。本技术的一个应用可以用于针对不同类型的文件(例如,文本文件、Adobe可移植文档文件(PDF)、音频文件等,例如,参见表1)确定最优的块大小。一旦确定了最优的块大小,当相关联的类型的文件被进行去重并由备份系统进行备份时,使用预先确定的最优的块大小来进行随后的备份。
在该方法的一个实施例中,首先根据文件类型对来自备份源的文件进行分组。可以根据文件的文件名扩展(例如,.txt、.pdf、.mp3等)或通过检验文件的内容(例如,第一或其他字节)来确定文件类型。然后,伪随机或随机地选择来自文件类型组的一组文件,并且使用一系列不同的块大小将系统的特定块去重技术应用到该组文件。例如,该序列可能使用1kB、2kB、4kB等块大小,或诸如210、211、…220个字节等块大小。结果得到的经去重的(“复制的”)数据被针对大小进行检查,包括针对数据块所构建的索引的大小以及该方法所产生的任何其他元数据。接下来,基于原始数据的大小相对于(例如,除以)复制的数据的大小的比值来计算压缩率。最后,例如通过分析曲线形状来识别最大压缩率(例如,参见图1针对PPT类型的文件,其中最优值是大约1.2kB),将产生最大压缩率的块大小选为针对该文件类型的最优的块大小。如果压缩不随着块大小的增加而开始减小,换言之,在描绘压缩率对块大小的曲线图中不存在局部最大值,那么结论是该类型的该文件不应该被划分成块,而应该被当作整个文件(例如,参见图1针对MPEG类型的文件)。在发现压缩率处于所测试的最大块大小处并且分析间接表明在更大的块大小处将获得更高的压缩率的情况下,一些实施例则估计:实际上最大的可能的块大小(例如,230)将提供最大的压缩率。
一旦根据该方法测试了各种类型的文件,则将结果得到的信息应用到新的数据源以及去重软件的安装。对于在特定的计算机或网络上的任何给定安装,在任何可能的情况下确定文件类型,并且将所计算的最优的块大小用于该类型的文件。这可以应用到被当作单个文件对待的整个文件系统,以及应用在其中去重软件并不了解个体文件的安装中。否则,如果不能确定文件的类型,则使用针对该安装类型所选择的通用块大小。
除了对块大小进行优化之外,去重软件的新安装被预先填充有与用于该计算机和安装的通用文件相对应的数据块。这些包括操作系统文件或在特定的网络上作为计算机安装的标准部分而被包括的任何其他文件(例如,Unix(包括例如,BSD、GNU以及其他官方或非官方的变种)、Linux、Solaris、OpenOffice、iWork、iLife、微软Windows、微软Office、Adobe Creative Suite、Mac OS X、GNOME等,包括例如,设备驱动程序、内核文件、开发环境(例如,编译器)、文档编制(例如,操作说明、帮助系统)、命令解释程序(shell)、文本编辑器、应用程序等)。利用数据块的预先填充,去重软件的初始运行会快得多并且在整个安装中使用相同的数据块集合。根据该方法,要针对特定网络进行复制的机器首先运行完去重软件,然后被复制到其他机器,保持有完整的元数据。
该技术能够应用于任何类型的文件,例如但不限于具有在表1中列出的类型的文件。在一些实施例中,将该技术应用到:例如,整个文件系统、文件集合或其他数据实体。块大小优化技术,例如,如在本文所提供的方法中所实施的,能够应用于任何类型的数据而不管其类型、大小、结构等。
在一些实施例中,该技术可与去重技术相关联地使用。在一些实施例中,所使用的去重是源去重(例如,去重发生在创建数据的地方),而在一些实施例中,去重是目标去重(例如,数据去重发生在存储数据的地方)。可与本技术的实施例相关联地使用的去重技术包括本领域已知的任何适当的固定块去重技术,包括未来要在本领域开发的任何固定块去重技术。
例如,一种类型的数据去重包括比较数据块以检测重复数据。为了进行比较,向每一数据块分配标识符(例如,消息摘要),标识符由备份软件例如使用密码散列函数(例如,AES、SHA-0、SHA-1、SHA-2、SHA-3、MD2、MD4、MD5、Skein、BLAKE、JH、Keccak、RadioGatún、GOST、HAVAL、PANAMA、Tiger、WHIRLPOOL、RIPEMD等)来计算。在一些实施例中,使用滚动散列。一些实施例假定如果标识符相同则数据相同。其他实施例不假定具有相同的标识符的两个数据块相同,但实际上验证具有相同标识符的数据块相同。在任一类型的实现中,如果软件检测到给定的数据块已经存在,那么其使用指向先前存储的数据块的链接、指针、句柄或其他类型的引用来替换重复的数据块。一旦对数据进行了去重,那么在读回该文件时,无论在什么地方找到指向先前存储的数据块的链接、指针、句柄或其他类型的引用,系统简单地使用所引用的数据块来替换该引用。
客户端备份去重是这样一个过程,在该过程中,将去重散列计算初始创建在源(客户端)机器上。与已在目标设备中的文件具有相同散列的文件不被发送到该目标,并且目标设备创建针对该重复数据的适当的内部引用。其益处是避免通过网络传输冗余数据并因此减小了网络业务。
在一些实施例中,去重与辅助存储系统一起使用,所述辅助存储系统例如是这样的存储系统,其主要对通常不用于实际生产作业的数据的拷贝进行复制,并因此将性能降级换成了增加的效率。在一些实施例中,在备份系统不需要显著的开销或备份系统不影响性能时,去重可以与主存储设备一起使用。
可以通过识别数据内的重复并仅传送一次重复数据来更高效地实现从一个计算机系统到另一个系统复制数据。这使得在系统之间传送数据时节省了网络带宽以及使得节省了针对复制的数据的计算机存储。计算机文件或文件系统映像被分割成预先确定的大小的块并且对其进行比较以用于去重。在一些实施例中,所述方法用于确定如何以最大化压缩率和计算效率的方式将文件或文件系统分割成块以用于识别重复。
本文所提供的技术,涉及管理电子数据,并且具体地但不唯一地涉及用于在数据备份和数据去重应用中识别重复数据的方法和系统。
例如,本文所提供的方法的实施例,涉及渐进式去重,其是对传统的固定块去重和可变块去重的替代。像可变块去重一样,在一些实施例中,可以调整块大小以实现最优的去重率。因此,在一些实施例中,因为滑动窗口的大小是可调整的,所以可以使块大小适合于特定类型的文件和数据源(例如,基于文件类型或数据内容)。这些实施准许渐进式去重为“内容感知的”(也称为“应用感知的”)。在一些实施例中,通过针对不同类型的数据(例如,可执行文件、文本文件和数据库记录)使用不同的块大小来获得最大的压缩率,如上文所描述的。
在一些方面,渐进式去重技术的实施例提供了用于识别数据块的边界的方法。例如,在图2中所示的一个实施例中,每一文件或文件系统的第一块由所选择的固定块大小(S)来确定。每一块的末端被称为块边界,并因此第一块具有其边界B(1)=S。随后的块边界是通过以下方式来确定的,首先,将接下来的S个字节与用于去重的已知块的集合进行比较,以使得B(n)=B(n–1)+S。如果没有找到重复数据,则对一系列不同的块边界进行比较,以B(n)=B(n–1)+S–1开始并向后滑动。将结果产生的大小为S的块与用于去重的已知块的集合进行比较。如果找到重复数据,则现在确定了B(n)。如果没有找到重复数据,则检查下一个字节以使得B(n)被减1。如果在进入先前的块Z个字节(其中,Z<S)处找到重复数据,则B(n)=B(n–1)+S–Z。如果没有找到重复数据并且Z达到S,则B(n)=B(n–1)+S。接下来,以相同的方式来确定B(n+1)。如果在该过程中的任何时刻,B(n–1)+S大于文件的长度,那么作为代替B(n)开始于在文件的末端并且如上文那样对其检查和递减。一旦到达文件或文件系统的末端,则将该方法应用于需要复制的任意随后的文件或文件系统。
当对块或预期的块进行比较以确定重复时,例如根据勒宾算法来计算多项式散列。对照已知块的散列的集合来检查要比较的块的多项式散列。为了对一系列的块进行高效的比较,当如在先前的段落中所述的那样按字节步进时,递增地改变多项式散列。加上散列多项式的与字节B(n–1)–Z对应的部分,减去与字节B(n–1)+S–Z+1对应的部分。不重新计算另外的S-1个字节对散列多项式的贡献,但是将其移位到更高级。
一种替代的方法通过如前文一样检查下一个邻接块以确定重复来进行;但是,如果没有找到重复数据,则该方法在先前块的起始处开始并且一次一字节地向前滑动寻找重复的块,而不是从先前的块的末端向后滑动。如先前所描述的,计算多项式散列以对要去重的块或预期要去重的块进行比较。多项式散列被一次移动一个字节,而不用被全部重新计算,但在该替代方案中丢弃最低位的项、增加高位的项,并将其他项向下移位。例如,参见图3。
在一些实施例中,通过滑动不同于一字节的间隔来使用该方法,这取决于文件的类型或计算机安装的其他条件。可以通过移动单个位或多个字节或任何其他的间隔(半字节、一字等)来执行与上文所描述的相同的方法。
在一些实施例中,将该技术应用到诸如整个文件系统或其他的数据实体。例如,如本文所提供的方法中所实施的块去重技术能够应用于任何类型的数据(例如,不管其类型或大小)。
在一些实施例中,所使用的去重是源去重(例如,去重发生在接近于创建数据的地方),而在一些实施例中去重是目标去重(例如,去重发生在接近存储数据的地方)。源侧去重在通过网络传送数据之前发生在备份客户端。使用所缓存的备份服务器上的块的记录,备份代理确定备份服务器是否已经有在客户端上发现的特定数据块的拷贝。如果有,则该代理不通过网络传送重复的块。对于目标侧去重,在丢弃重复块之前,将所有的块传送至目标。通过显著减小在网络上传送的数据量,源侧去重使得能够实现更快的网络备份,而不需要任何额外的网络投资。源侧去重通过强有力地减少在网络上发送的数据量而使得分布式环境中的备份成为可行。通过将源侧去重与复制组合,企业有能力使数据在站点之间高效移动以用于灾难复原或冗余异地存储。此外,源侧去重允许企业实现扩展存储容量和网络带宽容量的解决方案,而无需付出存储或网络架构升级的费用。
在一些实施例中,数据去重包括比较数据块以检测重复数据。为了进行比较,向每一数据块分配由备份软件例如使用密码散列函数(例如,AES、SHA-0、SHA-1、SHA-2、SHA-3、MD2、MD4、MD5、Skein、BLAKE、JH、Keccak、RadioGatún、GOST、HAVAL、PANAMA、Tiger、WHIRLPOOL、RIPEMD等)而计算的标识符(例如,消息摘要)。在一些实施例中,使用勒宾算法。
一些实施例假定如果标识符相同则数据相同。其他实施例不假定具有相同的标识符的两个数据块相同,但实际上验证具有相同标识符的数据块相同。在任一类型的实现中,如果软件检测到给定的数据块已经存在,那么其使用指向先前存储的数据块的链接、指针、句柄或其他类型的引用来替换重复的数据块。一旦对数据进行了去重,那么在读回该文件时,无论在什么地方找到指向先前存储的数据块的链接、指针、句柄或其他类型的引用,系统简单地使用所引用的数据块来替换该引用。
客户端备份去重是这样一个过程,在该过程中,将去重散列计算初始创建在源(客户端)机器上。与已在目标设备中的文件具有相同散列的文件不被发送到该目标,并且目标设备创建针对该重复数据的适当的内部引用。其益处是避免通过网络传输冗余的数据并因此减小了网络业务。
在一些实施例中,去重与辅助存储系统一起使用,所述辅助存储系统例如是这样的存储系统,其主要对通常不用于实际生产作业的数据的拷贝进行复制,并因此将性能降级换成了增加的效率。在一些实施例中,在备份系统不需要显著的开销或备份系统不影响性能时,去重可以与主存储设备一起使用。
尽管本公开涉及所示出的特定实施例,但应该理解的是,这些实施例是通过示例的方式而非限制的方式给出的。在上文说明书中所提及的所有出版物和专利通过引用的方式将其全部并入本文以用于所有用途。对所描述的本技术的组成、方法和使用的各种修改和变型对于本领域技术人员而言将是显而易见的,而不会脱离如所描述的本技术的范围和精神。尽管结合具体的示例性实施例对本技术进行了描述,但是应该理解的是,不应该将所要求保护的本发明不当地限制于这样具体的实施例。实际上,对于计算机科学或相关领域的技术人员而言显而易见的、对所描述的用于实施本发明的模式进行的各种修改也是要落入所附权利要求书的范围之内。

Claims (20)

1.一种用于确定对文件类型进行去重的最优数据块大小的方法,所述方法包括:
a)构建将多个压缩率与多个测试数据块大小相关联的函数,其中所述多个压缩率中的压缩率是通过使用去重技术和所述多个测试数据块大小中的测试数据块大小对具有所述文件类型的文件进行转换来计算的;
b)确定所述函数的最大压缩率;以及
c)将与所述最大压缩率相关联的测试数据块大小选择为针对所述文件类型的所述最优数据块大小。
2.根据权利要求1所述的方法,其中,构建将多个压缩率与多个测试数据块大小相关联的函数还包括:
a)提供具有所述文件类型的文件,其中所述文件具有文件大小;
b)根据所述文件生成多个数据块,其中所述多个数据块中的每个数据块的大小为所述测试数据块大小;
c)将所述去重技术应用于所述多个数据块以产生去重后的结果文件,其中所述去重后的结果文件具有去重后的结果文件大小;以及
d)根据所述文件大小和所述去重后的结果文件大小来计算压缩率。
3.根据权利要求1所述的方法,其中,所述文件是从具有相同文件类型的文件的集合中选择的。
4.根据权利要求3所述的方法,其中,使用来自所述具有相同文件类型的文件的集合中的所有文件来构建所述函数。
5.根据权利要求1所述的方法,其中,所述文件包括多个数据字节,并且所述文件类型是通过检验来自所述多个数据字节的数据字节来确定的。
6.根据权利要求1所述的方法,其中,所述文件具有扩展名,并且所述文件类型是根据所述扩展名来确定的。
7.根据权利要求1所述的方法,其中,所述文件类型是从由以下构成的组中选择的:应用、图像、文本文件、源代码、音频、视频、数据库、电子表格、字处理文档、系统文件、目录、磁盘映像、档案、可移植文档、二进制文件、矢量图像、字体、计算机辅助设计、压缩文件、物理可记录介质归档、电子设计自动化、桌面出版、文档、地理信息系统、图形信息管理器、调色板、光栅图形、3D图形、数学、目标代码、共享库、动态链接库、页面描述、个人信息管理器、演示文稿、项目管理、参考文献管理、科学数据、脚本、游戏、虚拟机、手册文件、网页、标记语言以及财务记录。
8.根据权利要求1所述的方法,其中,所述文件具有资源分支,并且所述文件类型是根据所述资源分支来确定的。
9.根据权利要求1所述的方法,其中,所述文件具有元数据,并且所述文件类型是根据所述元数据来确定的。
10.根据权利要求1所述的方法,其中,所述函数是将所述多个压缩率与所述多个测试数据块大小相关联的模型。
11.根据权利要求1所述的方法,其中,所述函数是基于所述多个压缩率和所述多个测试数据块大小的插值。
12.一种数据备份系统,包括:
i)将多种文件类型与多个最优数据块大小相关联的表;
ii)去重技术;
iii)用于接收具有文件类型的数据源的功能单元;以及
iii)处理器,其被配置为根据所述数据源生成多个数据块,其中,所述多个数据块中的每个数据块的大小为与所述文件类型相关联的最优数据块大小。
13.根据权利要求12所述的数据备份系统,还包括用于使用根据权利要求1所述的方法来构建所述表的功能单元。
14.根据权利要求12所述的数据备份系统,其中,所述数据源是文件。
15.根据权利要求12所述的数据备份系统,其中,所述数据源是文件系统。
16.根据权利要求12所述的数据备份系统,其中,所述数据源包括多个文件。
17.根据权利要求16所述的数据备份系统,其中,所述多个文件驻留在多个机器、计算机、卷、存储介质、存储器、位置或网络节点上。
18.根据权利要求12所述的数据备份系统,其中,所述数据备份系统是在所述数据源本地的。
19.根据权利要求12所述的数据备份系统,其中,所述数据备份系统远离所述数据源。
20.根据权利要求12所述的数据备份系统,还包括根据操作系统或文件系统的标准文件生成的预先填充的多个数据块。
CN201380062853.1A 2012-10-01 2013-09-30 优化用于去重的数据块大小 Active CN104871155B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261708255P 2012-10-01 2012-10-01
US201261708295P 2012-10-01 2012-10-01
US61/708,295 2012-10-01
US61/708,255 2012-10-01
US13/802,167 2013-03-13
US13/802,167 US9626373B2 (en) 2012-10-01 2013-03-13 Optimizing data block size for deduplication
PCT/US2013/062736 WO2014055449A1 (en) 2012-10-01 2013-09-30 Optimizing data block size for deduplication

Publications (2)

Publication Number Publication Date
CN104871155A true CN104871155A (zh) 2015-08-26
CN104871155B CN104871155B (zh) 2019-12-06

Family

ID=50386176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380062853.1A Active CN104871155B (zh) 2012-10-01 2013-09-30 优化用于去重的数据块大小

Country Status (5)

Country Link
US (2) US9626373B2 (zh)
EP (1) EP2904525B1 (zh)
CN (1) CN104871155B (zh)
HK (1) HK1214378A1 (zh)
WO (1) WO2014055449A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357687A (zh) * 2017-07-21 2017-11-17 长沙曙通信息科技有限公司 一种容灾备份新型重复数据删除实现方法
CN108984103A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 用于去重的方法和设备
CN109937411A (zh) * 2017-08-25 2019-06-25 华为技术有限公司 将接收的数据块存储为去重数据块的装置和方法
CN113126879A (zh) * 2019-12-30 2021-07-16 中国移动通信集团四川有限公司 一种数据存储方法、装置和电子设备
US20220066991A1 (en) * 2020-09-02 2022-03-03 Micro Focus Llc Command line utility to generate user-controlled fragmentated test data on a hard disk drive

Families Citing this family (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1309901B1 (en) 1999-12-02 2008-05-21 Western Digital Technologies, Inc. System for remote recording of television programs
US7120692B2 (en) 1999-12-02 2006-10-10 Senvid, Inc. Access and control system for network-enabled devices
US7934251B2 (en) 1999-12-02 2011-04-26 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7274659B2 (en) 2001-07-27 2007-09-25 Western Digital Ventures, Inc. Providing streaming media data
US8526798B2 (en) 2009-12-23 2013-09-03 Western Digital Technologies, Inc. Portable content container displaying A/V files in response to a command received from a consumer device
US10019741B2 (en) 2010-08-09 2018-07-10 Western Digital Technologies, Inc. Methods and systems for a personal multimedia content archive
US9214184B2 (en) 2012-04-10 2015-12-15 Western Digital Technologies, Inc. Digital rights management system, devices, and methods for binding content to an intelligent storage device
US8914634B2 (en) 2012-04-10 2014-12-16 Western Digital Technologies, Inc. Digital rights management system transfer of content and distribution
US9009525B1 (en) 2012-06-07 2015-04-14 Western Digital Technologies, Inc. Methods and systems for NAS device pairing and mirroring
US9014540B1 (en) * 2012-07-17 2015-04-21 Time Warner Cable Enterprises Llc Techniques for provisioning local media players with content
US9559975B1 (en) 2012-09-29 2017-01-31 Western Digital Technologies, Inc. Real-time analysis of quality of service for multimedia traffic in a local area network
US9942161B1 (en) 2012-09-29 2018-04-10 Western Digital Technologies, Inc. Methods and systems for configuring and updating session-based quality of service for multimedia traffic in a local area network
US9280482B2 (en) 2012-12-13 2016-03-08 Western Digital Technologies, Inc. Methods and systems for provisioning a bootable image on to an external drive
US9001697B2 (en) 2012-12-14 2015-04-07 Western Digital Technologies, Inc. Methods and devices for replacing and configuring a router in a network
US9063664B1 (en) 2012-12-18 2015-06-23 Emc Corporation Method and system for processing checksum of a data stream to optimize deduplication
US9087086B1 (en) * 2012-12-18 2015-07-21 Emc Corporation Method and system for handling object boundaries of a data stream to optimize deduplication
US9058835B2 (en) 2013-03-13 2015-06-16 Western Digital Technologies, Inc. Methods and systems for optimized staggered disk drive spinup
US9110758B2 (en) 2013-03-15 2015-08-18 Western Digital Technologies, Inc. Cross-platform software framework for embedded systems on data storage device
US9171003B2 (en) 2013-03-15 2015-10-27 Western Digital Technologies, Inc. Shared media crawler database method and system
US9152490B2 (en) 2013-04-02 2015-10-06 Western Digital Technologies, Inc. Detection of user behavior using time series modeling
US10073987B2 (en) 2013-04-02 2018-09-11 Western Digital Technologies, Inc. Methods and systems for privileged execution support for file system commands on a storage device
US8984190B2 (en) 2013-05-23 2015-03-17 Western Digital Technologies, Inc. Methods and devices for booting a network attached storage with two logical units
US9213611B2 (en) 2013-07-24 2015-12-15 Western Digital Technologies, Inc. Automatic raid mirroring when adding a second boot drive
US9430031B2 (en) 2013-07-29 2016-08-30 Western Digital Technologies, Inc. Power conservation based on caching
RU2626334C2 (ru) * 2013-08-19 2017-07-26 Хуавей Текнолоджиз Ко., Лтд. Способ и устройство обработки объекта данных
US9405479B1 (en) 2013-08-26 2016-08-02 Western Digital Technologies, Inc. Faster file compression using sliding compression window and backward compound pointers
US9503532B2 (en) 2013-09-03 2016-11-22 Western Digital Technologies, Inc. Rediscovery of past data
US9417863B2 (en) 2013-09-27 2016-08-16 Western Digital Technologies, Inc. System and method for expedited loading of an image onto a storage device
US9275697B2 (en) 2013-10-03 2016-03-01 Western Digital Technologies, Inc. Utilizing destructive features as RAM code for a storage device
US9584873B2 (en) 2013-10-11 2017-02-28 Western Digital Technologies, Inc. Method and apparatus for configuring an electronic device
US9871882B1 (en) 2014-01-02 2018-01-16 Western Digital Technologies, Inc. Optimized N-stream sequential media playback caching method and system
KR101912727B1 (ko) * 2014-02-14 2018-10-29 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 흐름 분할 포인트를 검색하기 위한 서버 기반 방법, 및 서버
US9626376B1 (en) 2014-02-14 2017-04-18 Western Digital Technologies, Inc. Local area network distributed storage
JP6260359B2 (ja) * 2014-03-07 2018-01-17 富士通株式会社 データ分割処理プログラム,データ分割処理装置及びデータ分割処理方法
US10091694B1 (en) 2014-03-12 2018-10-02 Western Digital Technologies, Inc. Device pairing over different networks
US10027547B1 (en) * 2014-03-28 2018-07-17 EMC IP Holding Company LLC Autonomic self-optimization of protection storage
US9886216B2 (en) 2014-04-08 2018-02-06 Western Digital Technologies, Inc. Distributed remote data storage access
US9823842B2 (en) 2014-05-12 2017-11-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US9250893B2 (en) 2014-05-14 2016-02-02 Western Digital Technologies, Inc. Virtualized and automated software build system
US10652193B2 (en) 2014-06-18 2020-05-12 Western Digital Technologies, Inc. Managing and accessing data storage systems
US9569112B1 (en) 2014-09-25 2017-02-14 Western Digital Technologies, Inc. Drive compatibility information maintenance
US10162832B1 (en) * 2014-09-25 2018-12-25 Imanis Data, Inc. Data aware deduplication
US9866634B1 (en) 2014-09-26 2018-01-09 Western Digital Technologies, Inc. Managing and accessing data storage systems
US9864658B1 (en) * 2014-12-01 2018-01-09 Vce Company, Llc Automation of deduplication storage capacity sizing and trending analysis
US9552162B2 (en) * 2014-12-08 2017-01-24 Sap Se Splitting-based approach to control data and storage growth in a computer system
US9596183B2 (en) 2014-12-12 2017-03-14 Western Digital Technologies, Inc. NAS off-loading of network traffic for shared files
US9081792B1 (en) 2014-12-19 2015-07-14 Storagecraft Technology Corporation Optimizing backup of whitelisted files
US10715595B2 (en) 2014-12-23 2020-07-14 Western Digital Technologies, Inc. Remotes metadata extraction and transcoding of files to be stored on a network attached storage (NAS)
US10063925B2 (en) 2014-12-23 2018-08-28 Western Digital Technologies, Inc. Providing digital video assets with multiple age rating levels
US9619340B1 (en) 2014-12-24 2017-04-11 Western Digital Technologies, Inc. Disaster recovery on dissimilar hardware
US9734117B2 (en) 2015-01-26 2017-08-15 Western Digital Technologies, Inc. Data storage device and method for integrated bridge firmware to be retrieved from a storage system on chip (SOC)
US9948618B2 (en) 2015-02-05 2018-04-17 Western Digital Technologies, Inc. Secure stream buffer on network attached storage
US9710170B2 (en) 2015-03-05 2017-07-18 Western Digital Technologies, Inc. Processing data storage commands for enclosure services
US9684569B2 (en) 2015-03-30 2017-06-20 Western Digital Technologies, Inc. Data deduplication using chunk files
US9942294B1 (en) 2015-03-30 2018-04-10 Western Digital Technologies, Inc. Symmetric and continuous media stream from multiple sources
US10574745B2 (en) 2015-03-31 2020-02-25 Western Digital Technologies, Inc. Syncing with a local paired device to obtain data from a remote server using point-to-point communication
US10394760B1 (en) 2015-04-16 2019-08-27 Western Digital Technologies, Inc. Browsable data backup
US9836417B2 (en) 2015-04-20 2017-12-05 Western Digital Technologies, Inc. Bridge configuration in computing devices
WO2016173648A1 (en) * 2015-04-29 2016-11-03 Hewlett-Packard Development Company, L.P. Deduplication process
US9971659B1 (en) 2015-06-24 2018-05-15 Western Digital Technologies, Inc. Memory programming providing corruption protection
US9846621B1 (en) 2015-06-26 2017-12-19 Western Digital Technologies, Inc. Disaster recovery—multiple restore options and automatic management of restored computing devices
US10567518B2 (en) 2015-06-26 2020-02-18 Western Digital Technologies, Inc. Automatic discovery and onboarding of electronic devices
US10459891B2 (en) 2015-09-30 2019-10-29 Western Digital Technologies, Inc. Replicating data across data storage devices of a logical volume
US10102138B2 (en) 2015-10-22 2018-10-16 Western Digital Technologies, Inc. Division of data storage in single-storage device architecture
US9763082B2 (en) 2015-11-09 2017-09-12 Western Digital Technologies, Inc. Optimizing setup for wireless devices
EP3182278A1 (en) 2015-12-17 2017-06-21 Vsoft Spolka Akcyjna System for automatic preparation of integrated development environments
US9772650B2 (en) 2015-12-29 2017-09-26 Western Digital Technologies, Inc. Solving unstable universal asynchronous receive transmit (UART) communication between a power manager and a universal serial bus (USB)-bridge device
US10078451B1 (en) * 2016-01-22 2018-09-18 Red Hat, Inc. Deduplicating data based on boundary identification
US10574751B2 (en) 2016-03-22 2020-02-25 International Business Machines Corporation Identifying data for deduplication in a network storage environment
US10613761B1 (en) * 2016-08-26 2020-04-07 EMC IP Holding Company LLC Data tiering based on data service status
CN106484570B (zh) * 2016-10-28 2019-02-26 福建平实科技有限公司 一种针对防御勒索软件文件数据的备份保护方法和系统
CN108153771A (zh) * 2016-12-05 2018-06-12 天脉聚源(北京)科技有限公司 一种提高大数据队列处理效率的方法和系统
US10282175B2 (en) * 2017-01-24 2019-05-07 Salesforce.Com, Inc. Methods and systems for performing a partial build
US10621144B2 (en) 2017-03-23 2020-04-14 International Business Machines Corporation Parallel deduplication using automatic chunk sizing
US10360193B2 (en) * 2017-03-24 2019-07-23 Western Digital Technologies, Inc. Method and apparatus for smart archiving and analytics
US10972569B2 (en) * 2017-04-24 2021-04-06 International Business Machines Corporation Apparatus, method, and computer program product for heterogenous compression of data streams
US11402998B2 (en) 2017-04-27 2022-08-02 EMC IP Holding Company LLC Re-placing data within a mapped-RAID environment comprising slices, storage stripes, RAID extents, device extents and storage devices
US11194495B2 (en) 2017-04-27 2021-12-07 EMC IP Holding Company LLC Best-effort deduplication of data while the data resides in a front-end log along an I/O path that leads to back end storage
WO2018199796A1 (en) 2017-04-27 2018-11-01 EMC IP Holding Company LLC Consolidating temporally-related data within log-based storage
CN108984575B (zh) * 2017-06-05 2021-08-06 上海华岭集成电路技术股份有限公司 一种三维系统集成电路晶圆测试探针台数据结构保存方法
US11755224B2 (en) 2017-07-27 2023-09-12 EMC IP Holding Company LLC Storing data in slices of different sizes within different storage tiers
US10521400B1 (en) * 2017-07-31 2019-12-31 EMC IP Holding Company LLC Data reduction reporting in storage systems
US10789211B1 (en) * 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10282129B1 (en) * 2017-10-24 2019-05-07 Bottomline Technologies (De), Inc. Tenant aware, variable length, deduplication of stored data
US11461250B2 (en) 2017-10-26 2022-10-04 EMC IP Holding Company LLC Tuning data storage equipment based on comparing observed I/O statistics with expected I/O statistics which are defined by operating settings that control operation
WO2019083390A1 (en) 2017-10-26 2019-05-02 EMC IP Holding Company LLC USE OF RECURRENT WRITE QUOTAS TO OPTIMIZE THE USE OF STATIC SEMICONDUCTOR DISK
WO2019083389A1 (en) 2017-10-26 2019-05-02 EMC IP Holding Company LLC MANAGING A FILE SYSTEM IN MULTIPLE LOGIC UNIT NUMBERS (LUN)
CN107766564B (zh) * 2017-11-07 2020-02-21 上海携程商务有限公司 记录式数据压缩方法、装置、电子设备、存储介质
US10579593B2 (en) 2018-01-31 2020-03-03 EMC IP Holding Company, LLC Techniques for selectively deactivating storage deduplication
CN108428457B (zh) * 2018-02-12 2021-03-23 北京百度网讯科技有限公司 音频去重方法及装置
US11119681B2 (en) 2018-04-28 2021-09-14 Hewlett Packard Enterprise Development Lp Opportunistic compression
US20200034244A1 (en) * 2018-07-26 2020-01-30 EMC IP Holding Company LLC Detecting server pages within backups
CN110968575B (zh) * 2018-09-30 2023-06-06 南京工程学院 一种大数据处理系统的去重方法
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
US11838363B2 (en) 2018-11-05 2023-12-05 Netapp, Inc. Custom views of sensor data
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US20200356292A1 (en) * 2019-05-10 2020-11-12 Dell Products, Lp System and Method for Performance Based Dynamic Optimal Block Size Data Deduplication
US11262927B2 (en) 2019-07-30 2022-03-01 Sony Interactive Entertainment LLC Update optimization using feedback on probability of change for regions of data
US11307841B2 (en) 2019-07-30 2022-04-19 Sony Interactive Entertainment LLC Application patching using variable-sized units
US11449325B2 (en) 2019-07-30 2022-09-20 Sony Interactive Entertainment LLC Data change detection using variable-sized data chunks
CN112306372A (zh) 2019-07-31 2021-02-02 伊姆西Ip控股有限责任公司 用于处理数据的方法、设备和程序产品
US20210034579A1 (en) * 2019-08-01 2021-02-04 EMC IP Holding Company, LLC System and method for deduplication optimization
US20210034576A1 (en) * 2019-08-01 2021-02-04 EMC IP Holding Company, LLC System and method for increasing data reduction with background recompression
US11663275B2 (en) 2019-08-05 2023-05-30 International Business Machines Corporation Method for dynamic data blocking in a database system
US11409772B2 (en) 2019-08-05 2022-08-09 International Business Machines Corporation Active learning for data matching
US11449465B2 (en) * 2019-09-11 2022-09-20 International Business Machines Corporation Fixed chunk size deduplication with variable-size chunking
US20210117389A1 (en) * 2019-10-18 2021-04-22 Vmware, Inc. Network traffic optimization using deduplication information from a storage system
WO2021248863A1 (zh) * 2020-06-11 2021-12-16 华为技术有限公司 数据处理方法及存储设备
US11861169B2 (en) * 2020-06-26 2024-01-02 Netapp, Inc. Layout format for compressed data
CN114816222A (zh) * 2021-01-22 2022-07-29 伊姆西Ip控股有限责任公司 数据压缩方法、电子设备和计算机程序产品
US20220245097A1 (en) * 2021-02-02 2022-08-04 Maxlinear, Inc. Hashing with differing hash size and compression size
US20220245112A1 (en) * 2021-02-02 2022-08-04 Maxlinear, Inc. Hashing a data set with multiple hash engines
US11687416B2 (en) 2021-09-27 2023-06-27 Kyndryl, Inc. Data backup optimization
CN114356212A (zh) * 2021-11-23 2022-04-15 阿里巴巴(中国)有限公司 数据处理方法、系统及计算机可读存储介质
US11748308B2 (en) 2022-02-09 2023-09-05 Seagate Technology Llc Hybrid deduplication in storage systems
CN114579050B (zh) * 2022-02-14 2024-04-02 阿里巴巴(中国)有限公司 处理压缩数据的方法以及装置
US11921644B2 (en) 2022-05-20 2024-03-05 Western Digital Technologies, Inc. Optimizing huge page management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706825A (zh) * 2009-12-10 2010-05-12 华中科技大学 一种基于文件内容类型的重复数据删除方法
US20110125722A1 (en) * 2009-11-23 2011-05-26 Ocarina Networks Methods and apparatus for efficient compression and deduplication

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6091835A (en) 1994-08-31 2000-07-18 Penop Limited Method and system for transcribing electronic affirmations
US5544255A (en) 1994-08-31 1996-08-06 Peripheral Vision Limited Method and system for the capture, storage, transport and authentication of handwritten signatures
US6785786B1 (en) 1997-08-29 2004-08-31 Hewlett Packard Development Company, L.P. Data backup and recovery systems
US20040039912A1 (en) 1999-02-26 2004-02-26 Bitwise Designs, Inc. To Authentidate Holding Corp. Computer networked system and method of digital file management and authentication
US6757832B1 (en) 2000-02-15 2004-06-29 Silverbrook Research Pty Ltd Unauthorized modification of values in flash memory
US6460163B1 (en) 2000-04-05 2002-10-01 International Business Machines Corporation Software and method for digital content vending and transport
US7058978B2 (en) 2000-12-27 2006-06-06 Microsoft Corporation Security component for a computing device
JP4370170B2 (ja) 2002-01-18 2009-11-25 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 移動端末にデータをロードする方法
US7020798B2 (en) 2002-06-27 2006-03-28 Microsoft Corporation Detecting low-level data corruption
US20040158794A1 (en) 2002-07-19 2004-08-12 Niesen Joseph W. Reduced overhead CRC functionality for packets and link layer superframes
US20040153935A1 (en) 2002-07-19 2004-08-05 Niesen Joseph W. Reduced overhead CRC functionality for packets and link layer superframes
US6950517B2 (en) 2002-07-24 2005-09-27 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US7165076B2 (en) 2002-11-15 2007-01-16 Check Point Software Technologies, Inc. Security system with methodology for computing unique security signature for executable file employed across different machines
US7496959B2 (en) 2003-06-23 2009-02-24 Architecture Technology Corporation Remote collection of computer forensic evidence
US7788726B2 (en) 2003-07-02 2010-08-31 Check Point Software Technologies, Inc. System and methodology providing information lockbox
US7454443B2 (en) * 2003-08-26 2008-11-18 Tamir Ram Method, system, and program for personal data management using content-based replication
US7555531B2 (en) * 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US7937371B2 (en) 2008-03-14 2011-05-03 International Business Machines Corporation Ordering compression and deduplication of data
US7539710B1 (en) 2008-04-11 2009-05-26 International Business Machines Corporation Method of and system for deduplicating backed up data in a client-server environment
US7996371B1 (en) * 2008-06-10 2011-08-09 Netapp, Inc. Combining context-aware and context-independent data deduplication for optimal space savings
US8620845B2 (en) * 2008-09-24 2013-12-31 Timothy John Stoakes Identifying application metadata in a backup stream
US8589455B2 (en) * 2008-12-18 2013-11-19 Copiun, Inc. Methods and apparatus for content-aware data partitioning
US9176978B2 (en) 2009-02-05 2015-11-03 Roderick B. Wideman Classifying data for deduplication and storage
US8205065B2 (en) 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
US9201890B2 (en) 2010-10-04 2015-12-01 Dell Products L.P. Storage optimization manager
US8380681B2 (en) 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
JP5719037B2 (ja) * 2011-08-19 2015-05-13 株式会社日立製作所 ストレージ装置及び重複データ検出方法
CN102684827B (zh) * 2012-03-02 2015-07-29 华为技术有限公司 数据处理方法及数据处理设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110125722A1 (en) * 2009-11-23 2011-05-26 Ocarina Networks Methods and apparatus for efficient compression and deduplication
CN101706825A (zh) * 2009-12-10 2010-05-12 华中科技大学 一种基于文件内容类型的重复数据删除方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108984103A (zh) * 2017-06-02 2018-12-11 伊姆西Ip控股有限责任公司 用于去重的方法和设备
CN108984103B (zh) * 2017-06-02 2021-06-22 伊姆西Ip控股有限责任公司 用于去重的方法和设备
US11461276B2 (en) 2017-06-02 2022-10-04 EMC IP Holding Company LLC Method and device for deduplication
CN107357687A (zh) * 2017-07-21 2017-11-17 长沙曙通信息科技有限公司 一种容灾备份新型重复数据删除实现方法
CN109937411A (zh) * 2017-08-25 2019-06-25 华为技术有限公司 将接收的数据块存储为去重数据块的装置和方法
CN109937411B (zh) * 2017-08-25 2021-08-20 华为技术有限公司 将接收的数据块存储为去重数据块的装置和方法
US11507539B2 (en) 2017-08-25 2022-11-22 Huawei Technologies Co., Ltd. Apparatus and method for storing received data blocks as deduplicated data blocks
CN113126879A (zh) * 2019-12-30 2021-07-16 中国移动通信集团四川有限公司 一种数据存储方法、装置和电子设备
CN113126879B (zh) * 2019-12-30 2022-11-29 中国移动通信集团四川有限公司 一种数据存储方法、装置和电子设备
US20220066991A1 (en) * 2020-09-02 2022-03-03 Micro Focus Llc Command line utility to generate user-controlled fragmentated test data on a hard disk drive

Also Published As

Publication number Publication date
WO2014055449A1 (en) 2014-04-10
US20170286443A1 (en) 2017-10-05
EP2904525A1 (en) 2015-08-12
EP2904525A4 (en) 2016-06-08
US20140095439A1 (en) 2014-04-03
EP2904525B1 (en) 2018-02-28
HK1214378A1 (zh) 2016-07-22
US10552379B2 (en) 2020-02-04
CN104871155B (zh) 2019-12-06
US9626373B2 (en) 2017-04-18

Similar Documents

Publication Publication Date Title
CN104871155A (zh) 优化用于去重的数据块大小
US7478113B1 (en) Boundaries
US8683112B2 (en) Asynchronous distributed object uploading for replicated content addressable storage clusters
JP4961126B2 (ja) リモート差分圧縮のための候補オブジェクトを見つける効率のよいアルゴリズム
US11163734B2 (en) Data processing method and system and client
US8650162B1 (en) Method and apparatus for integrating data duplication with block level incremental data backup
US9244623B1 (en) Parallel de-duplication of data chunks of a shared data object using a log-structured file system
US20210360088A1 (en) Systems and methods for data deduplication by generating similarity metrics using sketch computation
US20140222770A1 (en) De-duplication data bank
US20140244794A1 (en) Information System, Method and Program for Managing the Same, Method and Program for Processing Data, and Data Structure
CN110019039B (zh) 元数据分离的容器格式
CN110019056B (zh) 用于云层的容器元数据分离
US10083121B2 (en) Storage system and storage method
US20210191911A1 (en) Systems and methods for sketch computation
US11175842B2 (en) Method and system for performing data deduplication in a data pipeline
CN114840502A (zh) 使用不同的散列大小和压缩大小进行散列
US20170048303A1 (en) On the fly statistical delta differencing engine
US11977521B2 (en) Source file copying
US20230109105A1 (en) Source file copying
Pawar et al. Data De-Duplication Engine for Efficient Storage Management
CN114840501A (zh) 使用多个散列引擎对数据集进行散列
Abirami et al. Large-Scale Data Management System Using Data De-duplication System
US20170048302A1 (en) Static statistical delta differencing engine

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1214378

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1214378

Country of ref document: HK