CN103034659B - 一种重复数据删除的方法和*** - Google Patents

一种重复数据删除的方法和*** Download PDF

Info

Publication number
CN103034659B
CN103034659B CN201110304388.0A CN201110304388A CN103034659B CN 103034659 B CN103034659 B CN 103034659B CN 201110304388 A CN201110304388 A CN 201110304388A CN 103034659 B CN103034659 B CN 103034659B
Authority
CN
China
Prior art keywords
data
new
data block
metadata
objects
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
CN201110304388.0A
Other languages
English (en)
Other versions
CN103034659A (zh
Inventor
李玉猛
王丽娜
熊殷翔
李彦欣
闻晶
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
Priority to CN201110304388.0A priority Critical patent/CN103034659B/zh
Priority to US13/622,838 priority patent/US8812461B2/en
Publication of CN103034659A publication Critical patent/CN103034659A/zh
Application granted granted Critical
Publication of CN103034659B publication Critical patent/CN103034659B/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

Landscapes

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

Abstract

本发明公开了一种重复数据删除的方法和***,该方法包括:a)获得已经使用重复数据删除方法得到的至少一个原始数据对象对应的元数据和多个数据块;b)将获得的多个数据块组合成新数据对象;c)对新数据对象进行重复数据删除,得到新数据对象对应的新元数据和新数据块;以及d)存储所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块。该方法和***能够进一步提高重复数据的删除率,从而进一步降低数据存储量,减少存储成本。

Description

一种重复数据删除的方法和***
技术领域
本发明一般涉及数据备份,更具体地,涉及一种重复数据删除的方法和***。
背景技术
数据备份是将数据以某种方式加以保留,以便在***遭受破坏或其他特定情况下,重新加以利用的一个过程。数据备份是存储领域的一个重要组成部分,其在存储***中的地位和作用都是不容忽视的。并且对一个IT***而言,备份工作也是其中必不可少的组成部分。因为它不仅可以防范意外事件的破坏,而且还能使历史数据以最佳方式保存归档,即它为历史数据进行历史数据查询、统计和分析,以及重要信息归档保存提供了可能。
重复数据删除(De-duplication)技术通过删除数据集中的重复数据,对于重复数据,只保留其中一份,从而消除冗余数据,是一种目前主流且非常热门的存储技术。图1示出了重复数据删除技术的示意性描述,根据图1,原始数据中存在大量的重复数据,通过使用重复数据删除技术,可以得到用于存储的优化的数据,显然,存储的优化的数据需要的存储空间大大减少。重复数据删除技术目前大量应用于数据备份与归档***,可以帮助应用程序降低数据存储量,节省网络带宽,提高存储效率,从而节省成本。
重复数据删除技术的优劣衡量标准主要有两个,即重复数据删除率(deduplocation ratios)和删除方法执行的性能。删除方法执行的性能取决于具体实现技术,而重复数据删除率则由数据自身的特征和应用模式所决定。现有的厂商已经提供很多种重复数据删除的方法,例如定长分块方法,不定长分块方法等等。但是,现有数据块级重复数据删除技术去除了重复存储的数据块后,数据的重复数据删除率就是固定的,重复数据删除率高可以更进一步节省存储和传输成本,是各个厂家不断追求的目标,因此,有必要进一步研究出重复数据删除率更高的重复数据删除方法和***。
发明内容
因此,需要提供一种重复数据删除的方法和***,能够进一步提高重复数据的删除率,从而进一步降低数据存储量,减少存储成本。
根据本发明的一个方面,提供了一种重复数据删除的方法,包括:
a)获得已经使用重复数据删除方法得到的至少一个原始数据对象对应的元数据和多个数据块;
b)将获得的多个数据块组合成新数据对象;
c)对新数据对象进行重复数据删除,得到新数据对象对应的新元数据和新数据块;以及
d)存储所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块。
根据本发明的另一个方面,提供了一种重复数据删除的***,包括:
获得装置,被配置为获得已经使用重复数据删除方法得到的至少一个原始数据对象对应的元数据和多个数据块;
合成装置,被配置为将获得的多个数据块组合成新数据对象;
删除装置,被配置为对新数据对象进行重复数据删除,得到新数据对象对应的新元数据和新数据块;以及
存储装置,被配置为存储所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块。
附图说明
通过对附图中本发明示例实施例方式的更详细描述,本发明的上述、以及其它目的、特征和优势将变得更加明显,其中,相同的参考标号通常代表本发明示例实施例方式中的相同部件。
图1示出了重复数据删除技术的示意性描述;
图2示出了适于用来实现本发明实施方式的示例性计算***100的框图;
图3示出了数据块级重复数据删除过程的步骤;
图4示出了根据本发明的一种实施方式的一种重复数据删除的方法的步骤;以及
图5示出了根据本发明的一种实施方式的一种重复数据删除的***的结构图。
具体实施方式
将参照附图更加详细地描述本发明的优选实施方式,在附图中显示了本发明的优选实施例。然而,本发明可以以各种形式实现而不应该理解为被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且,完全将本发明的范围传达给本领域的技术人员。
图2示出了适于用来实现本发明实施方式的示例性计算***100的框图。如所示,计算机***100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、***总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与***总线104耦合的有CPU101、RAM102、ROM103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图2所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
重复数据删除技术按照消除重复数据的粒度可以分为文件级和数据块级。文件级的重复数据删除技术也称为单一实例存储(SIS,Single Instance Store),数据块级的重复数据删除技术消除后重复数据更小,因此目前主流的重复数据删除产品都是数据块级的。
存储***的数据块级重复数据删除过程可以参考图1和图3,图3示出了数据块级重复数据删除过程的步骤,根据图3,在步骤S301,将数据文件分割成一组数据块;在步骤S302,判断数据块是否为重复数据块;在步骤S303,存储步骤,其中在存储的逻辑文件中,对于非重复数据块,说明该数据块是一个新的唯一块,存储各数据块的元数据,一般存储在数据库中;并将真正的数据块的内容存储在存储介质中,比如存储在磁盘或者磁带等大型存储设备中;对于数据块为重复数据块,其数据块内容不再在存储介质中重复存储;在步骤S304,恢复步骤:先读出各数据块的元数据,然后根据元数据中包含的信息,取出存储的相应数据块,还原物理文件副本。
其中,数据块的划分中,数据块可以划分为大小相同和不同的数据块,无论何种数据块,判断数据块是否为重复数据块要依据该数据块的指纹,数据指纹是数据块的本质特征,理想状态是每个唯一数据块具有唯一的数据指纹,不同的数据块具有不同的数据指纹,指纹相同的数据块是相同的数据块。当已经得到多个数据块时,可以利用哈希查找加速判别该数据块是否为重复数据块。数据块的元数据至少包含:数据块标识号,用于唯一标识该数据块;偏移位置,表示数据块在数据对象中的偏移位置;数据块大小,表示数据块的大小;链接的数据块标识号,对于一个新的数据块,标识该数据块在存储介质中的存储位置,对于重复的数据块,标识被删除的数据块指向的保留数据块的标识号。原数据的存储如果采用数据库可以有多种方式,表1给出了一种利用关系数据库记录数据对象的元数据的格式示例,其中,数据块标识号除了上述含义,还表明该数据块在数据库中的唯一号;数据对象标识号表示标识数据对象在数据库中的唯一号,因为一个数据库表中可能存储多个数据对象,用该列标明。
表1  一种利用关系数据库记录数据对象的元数据的格式示例
本领域技术应该知道,该关系数据库表格只是一种示例性的格式,本领域技术人员可以采用其它的数据库格式,例如XML数据库,或者可以不采用数据库记录元数据,而采用例如文本文件、XML文件等格式表达元数据。
由上述描述可知,数据块级重复数据删除技术包括数据块切分、数据块指纹计算,下面逐一介绍。
(1)数据块划分
现有的数据分块算法主要有三种,即定长切分(fixed-sizepartition)、CDC切分(content-defined chunking)和滑动块(slidingblock)切分。
定长分块算法采用预先定义好的块大小对文件进行切分,并进行弱校验值和md5强校验值校验。弱校验值主要是为了提升差异编码的性能,先计算弱校验值并进行哈希查找,如果发现则计算md5强校验值并作进一步哈希查找。由于弱校验值计算量要比md5小很多,因此可以有效提高编码性能。定长分块算法的优点是简单、性能高,但它对数据***和删除非常敏感,处理十分低效,不能根据内容变化作调整和优化。
CDC(content-defined chunking)算法是一种变长分块算法,它应用数据指纹(如Rabin指纹)将文件分割成长度大小不等的分块策略。与定长分块算法不同,它是基于文件内容进行数据块切分的,因此数据块大小是可变化的。算法执行过程中,CDC使用一个固定大小(如48字节)的滑动窗口对文件数据计算数据指纹。如果指纹满足某个条件,如当它的值对特定的整数求模后等于预先设定的数时,则把窗口位置作为块的边界。CDC算法可能会出现病态现象,即指纹条件不能满足,块边界不能确定,导致数据块过大。实现中可以对数据块的大小进行限定,设定上下限,解决这种问题。CDC算法对文件内容变化不敏感,***或删除数据只会影响到较少的数据块,其余数据块不受影响。CDC算法也是有缺陷的,数据块大小的确定比较困难,粒度太细则开销太大,粒度过粗则删除效果不佳。如何在两者之间权衡折衷,是一个难点。
滑动块(sliding block)算法结合了定长切分和CDC切分的优点,块大小固定。它对定长数据块先计算弱校验值,如果匹配则再计算md5强校验值,两者都匹配则认为是一个数据块边界。该数据块前面的数据碎片也是一个数据块,它是不定长的。如果滑动窗口移过一个块大小的距离仍无法匹配,则也认定为一个数据块边界。滑动块算法对***和删除问题处理非常高效,并且能够检测到比CDC更多的冗余数据,它的不足是容易产生数据碎片。
(2)数据块指纹计算
数据块本身往往较大,因此数据指纹表示的目标是期望以较小的数据表示(如16、32、64、128字节)来区别不同数据块。数据指纹通常是对数据块内容进行相关数学运算获得,从当前研究成果来看哈希函数比较接近与理想目标,比如MD5、SHA1、SHA-256、SHA-512、为one-Way、Rabin哈希等。另外,还有许多字符串哈希函数也可以用来计算数据块指纹。然而,遗憾的是这些指纹函数都存在碰撞问题,即不同数据块可能会产生相同的数据指纹。相对来说,MD5和SHA系列哈希函数具有非常低的碰撞发生概率,因此通常被采用作为指纹计算方法。其中,MD5和SHA1是128位的,SHA-X(X表示位数)具有更低的碰撞发生概率,但同时计算量也会大大增加。实际应用中,需要在性能和数据安全性方面作权衡。另外,还可以同时使用多种哈希算法来为数据块计算指纹。
但是,现有数据块级重复数据删除技术去除了重复存储的数据块后,数据的重复数据删除率就是固定的,本发明提出了一种进一步提高重复数据删除率的方法和***,该方法中,将已经删除重复数据块而得到的新的数据块进一步组合成一个新的数据对象,利用现有的重复数据删除方法进一步删除新组成的数据对象中的重复数据,来进一步减少数据块占用的存储空间。
以下会具体陈述该方法,为了使陈述更清楚、明了,采用一个简单的例子贯穿方法的全部步骤,在该例子中,假定有一个原始数据对象为“abcdef ghabc abcdef defgh ghabc ghabc abcdef ghabc defgh”,使用现有技术中的数据块级重复数据删除方法,对数据对象进行重复数据删除,去除冗余数据块,得到以下3个不同的数据块:
数据块A:abcdef
数据块B:ghabc
数据块C:defgh
表2示出了采用表1的数据库表的格式的原始数据对象的元数据。其中数据块标识号标明该数据块在数据库中的唯一号,同时还可以表达该数据块在原始数据对象中的顺序;数据对象标识号表示标识数据对象在数据库中的唯一号,同表2。偏移位置表明该数据块在原始数据对象的偏移位置,数据块大小表明该数据块在原始数据对象的大小。其中链接的数据块标识号列只是用数据块代替,实际上是数据块A在存储介质的存储的偏移位置。显然,在存储介质偏移相同位置的链接的数据块标识号列表示重复的数据块。
表2  采用表1的数据库表格式的原始数据对象的元数据
下面以上面例子为基础,陈述本发明的方法及该方法应用到上述例子后的结果。在示例中,只提到了把一个数据对象的不同原始数据块逻辑组合成一个新的数据对象。实际上不同数据对象的数据块也可以逻辑组合成一个新的数据对象,使用类似的方法。图4示出了根据本发明的一种实施方式的一种重复数据删除的方法的步骤,根据图4,在获得步骤S401,获得已经使用重复数据删除方法得到的至少一个原始数据对象对应的元数据和多个数据块。对应上述例子,得到原始数据对象对应的元数据和对应的3个数据块。元数据中标明该原始数据对象中包含了9个数据块。
在合成步骤S402,将获得的多个数据块组合成新数据对象;对上述例子中,也就是将数据块A、数据块B、以及数据块C组合成新数据对象“abcdef ghabc defgh”。在上述合成步骤S302中,将获得的对应的数据块组合成新数据对象过程中,原始数据对象对应的数据块可以采用任何顺序来组合成一个新的数据对象。如果对数据块的特征不是很了解,可以采用随机顺序组合的方式;如果对数据块的特征比较了解,获得数据规律特征,可以指定其组合的顺序。
在删除步骤S403,对新数据对象进行重复数据删除,得到新数据对象对应的新元数据和新数据块;对应上述例子,得到两个新的数据块,即数据块D“abcd”和数据块E“efgh”,显然,新的数据块所占的存储空间比原来的数据块所占的存储空间进一步减少。另外,在对新数据对象进行重复数据删除,得到新数据对象对应的新元数据和新数据块的过程中,可以采用对原始数据对象使用的重复数据删除方法,也可以采用不同于对原始数据对象使用的重复数据删除方法,即使使用不同的重复数据删除方法,由于记录了数据块元信息,也不会造成数据恢复的问题。
在存储步骤S404,存储所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块。在存储所述至少一个原始数据对象对应的元数据、新元数据、以及新数据块的过程中,可以将所述至少一个原始数据对象对应的元数据和新元数据存储在数据库中,表3示出了本发明的一种元数据的数据库表格式,其中,利用两个不同数据对象标识号来标识原始数据对象和新数据对象,例如表3中1表示原始数据对象,2表示新数据对象;并且记录这两个不同数据对象之间的对应关系,该对应关系指出哪个数据对象标识号是原始数据对象对应的元数据采用的标识号,那个数据对象标识号是新数据对象的标识号,原始数据对象对应的元数据的表的链接的数据块标识号列为该数据块在组合的新数据对象中的偏移位置,例如在表3中,对应数据块标识号为1的行,链接的数据块标识号列中,2代表数据对象1的新数据对象为数据对象2,2-0中的0是数据块1在新数据对象“abcdef ghabc defgh”中的偏移位置。链接的数据块标识号列中的“D”和“E”分别代表数据块D和数据块E在存储介质中的偏移位置。
表3  本发明的一种元数据的数据库表格式
另外一种实施方式中,表4和表5示出了本发明的另一种元数据的数据库表格式,表4中,采用一个数据对象标识号来标识原始数据对象和新数据对象,并且原始数据对象对应的元数据的表的链接的数据块标识号列为原始数据对象的数据块表示,即数据块A,数据块B,等等,使用相同的标识号代表相同的数据块,链接的数据块标识号列中的“D”和“E”分别代表数据块D和数据块E在存储介质中的偏移位置。在表5中,表明原始数据对象和新数据对象的数据块之间的映射关系。表4的列链接的数据块标识号列给出的数据块表示和表5的结合,是两个不同数据对象的对应关系的另一种表示方法:原始数据对象对应的元数据中表列链接的数据块标识号列表明该数据块在新数据对象中的位置。
表4  采用一个数据对象标识号来标识原始数据对象和新数据对象的表格式
表5  原始数据对象和新数据对象的数据块之间的映射关系
另外,根据上述的两个实施例,本领域技术人员可以设计各种简单或者复杂的数据库表格式,来记录原始数据对象对应的元数据、新数据对象对应的新元数据,只要通过记录的两组元数据能够恢复出所述至少一个原始数据对象,就是合适的记录方式。而存储介质中,只需要存储新数据对象的新数据块。
在另外一种优选的实施方式中,还包括在存储步骤S404之后,根据存储原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块,恢复出所述至少一个原始数据对象(图4未示出)。恢复的具体方式与数据库中记录的方式具体相关,例如,在表3所示的方式中,首先将数据对象标识号为2的全部数据块检索出来,按照其数据块标识号、偏移位置、数据块大小,根据链接的数据块标识号列从其存储介质中恢复出来,就得到了数据对象1所存储的全部数据块,然后再根据数据对象1的数据块标识号、偏移位置、数据块大小,根据链接的数据块标识号列将原始数据对象恢复出来。对于表4和表5的记录方式,可以直接恢复出原始数据的数据块,从而结合原始数据对象的元数据,恢复出原始数据对象。
在一种优选的实施方式中,该方法还包括在存储步骤S404之前,将获得的新数据对象对应的新元数据和新数据块作为另一原始数据对象对应的元数据和对应的数据块,重复执行合成步骤S402到删除步骤S403,直到本次执行得到的新数据块和上次执行合成步骤S402到删除步骤S403得到的数据块相同为止(图4未示出)。此时,存储步骤S304要存储原始数据对象对应的元数据、每次重复执行合成步骤S402到删除步骤S403得到的新元数据、以及最后一次执行合成步骤S402到删除步骤S403得到的新数据块。
在该实施方式的数据恢复步骤中,需要根据存储的所述至少一个原始数据对象对应的元数据、每次重复执行合成步骤S402和删除步骤S403得到的新元数据、以及最后一次执行合成步骤S402和删除步骤S403得到的新数据块,逐级恢复每次重复执行合成步骤S402和删除步骤S403的新数据对象或者每次重复执行合成步骤S402和删除步骤S403前的数据块,从而得到所述至少一个原始数据对象。
如果重复执行了合成步骤S402和删除步骤S403,就会有原始数据对象对应的元数据和多个新元数据存储在数据库中,同样,可以采用如表3或者表4结合表5所示的数据库表格式,只是,表3中要记录多个不同数据对象标识号的对应关系,该对应关系指出哪个数据对象标识号是原始数据对象对应的元数据采用的标识号,哪个数据对象标识号是哪级(即哪次重复执行合成步骤S402和删除步骤S403得到的)新数据对象的标识号,并给出了原始数据对象及各级非最后一次执行合成步骤S402和删除步骤S403的数据块,在所对应的新数据对象中的偏移位置。只有最后一次执行合成步骤S402和删除步骤S403得到的新数据块,其链接的数据块标识号列是数据块在存储介质中的偏移位置。表4中用一个数据对象标识号来标识原始数据对象和各级新数据对象,并且原始数据对象对应的元数据的链接的数据块标识号列为其数据块的代号,每次重复执行合成步骤S402和删除步骤S403得到的新元数据的链接的数据块标识号列也为其数据块的代号,只有最后一次执行合成步骤S402和删除步骤S403得到的新数据块的链接的数据块标识号列是数据块在存储介质中的偏移位置,这种实施方式中,还需要记录原始数据对象对应的数据块与各级新数据对象对应的数据块之间的映射关系。这样才能在恢复过程中,逐级恢复每次执行重复数据删除的新数据对象或者各级数据块,从而得到原始数据对象。
在同一个发明构思下,本发明还公开了一种重复数据删除的***,图5示出了根据本发明的一种实施方式的一种重复数据删除的***的结构图,根据图5,该***包括:获得装置501,被配置为获得已经使用重复数据删除方法得到的至少一个原始数据对象对应的元数据和多个数据块;合成装置502,被配置为将获得的多个数据块组合成新数据对象;删除装置503,被配置为对新数据对象进行重复数据删除,得到新数据对象对应的新元数据和新数据块;以及存储装置504,被配置为存储所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块。
在一种优选的实施方式中,图5所示的***还包括恢复装置505,被配置为根据存储的所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块,恢复出所述至少一个原始数据对象。
在另一种优选的实施方式中,该***还包括重复装置(图5未示出),被配置为将获得的新数据对象对应的新元数据和新数据块作为另一原始数据对象对应的元数据和对应的数据块,重复运行合成装置和删除装置,直到本次执行得到的新数据块和上次运行合成装置和删除装置得到的数据块相同。此时,再次运行合成装置和删除装置已经没有意义,因为使用当前方法已经找不到重复数据了。此时,存储装置进一步被配置为存储原始数据对象对应的元数据、每次重复运行合成装置和删除装置得到的新元数据、以及最后一次运行合成装置和删除装置得到的新数据块。恢复装置进一步配置为根据存储的所述至少一个原始数据对象对应的元数据、每次重复运行合成装置和删除装置得到的新元数据、以及最后一次运行合成装置和删除装置得到的新数据块,逐级恢复每次重复运行合成装置和删除装置的新数据对象或者每次重复运行合成装置和删除装置前的数据块,从而得到所述至少一个原始数据对象。
本发明的***中,所述至少一个原始数据对象和新数据对象对应的元数据采用数据库存储,记录所述至少一个原始数据对象和新数据对象之间的对应关系,其中所述至少一个原始数据对象和新数据对象对应的元数据在数据库中的表列至少包括数据块标识号,偏移位置,数据块大小,链接的数据块标识号。其中所述至少一个原始数据对象对应的元数据的数据库表的链接的数据块标识号列,表明该数据块在新数据对象中的位置,新数据对象对应的元数据的数据库表的链接的数据块标识号列表明该数据块在存储介质中的位置。
本发明可以采取硬件实施方式、软件实施方式或既包含硬件组件又包含软件组件的实施方式的形式。在优选实施方式中,本发明实现为软件,其包括但不限于固件、驻留软件、微代码等。
而且,本发明还可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,这些介质提供程序代码以供计算机或任何指令执行***使用或与其结合使用。出于描述目的,计算机可用或计算机可读机制可以是任何有形的装置,其可以包含、存储、通信、传播或传输程序以由指令执行***、装置或设备使用或与其结合使用。
介质可以是电的、磁的、光的、电磁的、红外线的、或半导体的***(或装置或器件)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。目前光盘的例子包括紧凑盘-只读存储器(CD-ROM)、压缩盘-读/写(CD-R/W)和DVD。
适合于存储/或执行程序代码的数据处理***将包括至少一个处理器,其直接地或通过***总线间接地耦合到存储器元件。存储器元件可以包括在程序代码的实际执行期间所利用的本地存储器、大容量存储器、以及提供至少一部分程序代码的临时存储以便减少执行期间从大容量存储器必须取回代码的次数的高速缓存存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等等)可以直接地或通过中间I/O控制器耦合到***。
网络适配器也可以耦合到***,以使得数据处理***能够通过中间的私有或公共网络而耦合到其他数据处理***或远程打印机或存储设备。调制解调器、线缆调制解调器以及以太网卡仅仅是当前可用的网络适配器类型的几个例子。
从上述描述应当理解,在不脱离本发明真实精神的情况下,可以对本发明各实施方式进行修改和变更。本说明书中的描述仅仅是用于说明性的,而不应被认为是限制性的。本发明的范围仅受所附权利要求书的限制。

Claims (12)

1.一种重复数据删除的方法,包括:
a)获得已经使用重复数据删除方法得到的至少一个原始数据对象对应的元数据和多个数据块;
b)将获得的多个数据块组合成新数据对象;
c)对新数据对象进行重复数据删除,得到新数据对象对应的新元数据和新数据块;
d)存储所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块;以及
e)将获得的新数据对象对应的新元数据和新数据块作为另一原始数据对象对应的元数据和对应的数据块,重复执行步骤b到c,直到本次执行得到的新数据块和上次执行步骤b到c得到的数据块相同。
2.根据权利要求1所述的方法,还包括根据存储的所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块,恢复出所述至少一个原始数据对象。
3.根据权利要求1所述的方法,其中存储所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块包括存储所述至少一个原始数据对象对应的元数据、每次重复执行步骤b到c得到的新元数据、以及最后一次执行步骤b到c得到的新数据块。
4.根据权利要求3所述的方法,还包括根据存储的所述至少一个原始数据对象对应的元数据、每次重复执行步骤b到c得到的新元数据、以及最后一次执行步骤b到c得到的新数据块,逐级恢复每次重复执行步骤b到c的新数据对象或者每次重复执行步骤b到c前的所述多个数据块,从而得到所述至少一个原始数据对象。
5.根据权利要求1所述的方法,其中所述至少一个原始数据对象对应的元数据和新数据对象对应的元数据采用数据库存储,所述数据库中记录了所述至少一个原始数据对象和新数据对象之间的对应关系,其中所述至少一个原始数据对象和新数据对象对应的元数据在数据库中的表列至少包括数据块标识号,偏移位置,数据块大小,链接的数据块标识号。
6.根据权利要求5所述的方法,其中所述至少一个原始数据对象对应的元数据的数据库表的链接的数据块标识号列表明该数据块在新数据对象中的位置,新数据对象对应的元数据的数据库表的链接的数据块标识号列表明该数据块在存储介质中的位置。
7.一种重复数据删除的***,包括:
获得装置,被配置为获得已经使用重复数据删除方法得到的至少一个原始数据对象对应的元数据和多个数据块;
合成装置,被配置为将获得的多个数据块组合成新数据对象;
删除装置,被配置为对新数据对象进行重复数据删除,得到新数据对象对应的新元数据和新数据块;
存储装置,被配置为存储所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块;以及
重复装置,被配置为将获得的新数据对象对应的新元数据和新数据块作为另一原始数据对象对应的元数据和对应的数据块,重复运行合成装置和删除装置,直到本次执行得到的新数据块和上次运行合成装置和删除装置得到的数据块相同。
8.根据权利要求7所述的***,其中还包括:
恢复装置,被配置为根据存储的所述至少一个原始数据对象对应的元数据、新数据对象对应的新元数据、以及新数据块,恢复出所述至少一个原始数据对象。
9.根据权利要求7所述的***,其中所述存储装置进一步被配置为存储所述至少一个原始数据对象对应的元数据、每次重复运行合成装置和删除装置得到的新元数据、以及最后一次运行合成装置和删除装置得到的新数据块。
10.根据权利要求9所述的***,其中还包括:
恢复装置,被配置为根据存储的所述至少一个原始数据对象对应的元数据、每次重复运行合成装置和删除装置得到的新元数据、以及最后一次运行合成装置和删除装置得到的新数据块,逐级恢复每次重复运行合成装置和删除装置的新数据对象或者每次重复运行合成装置和删除装置前的所述多个数据块,从而得到所述至少一个原始数据对象。
11.根据权利要求7所述的***,其中所述至少一个原始数据对象对应的元数据和新数据对象对应的元数据采用数据库存储,所述数据库中记录了所述至少一个原始数据对象和新数据对象之间的对应关系,其中所述至少一个原始数据对象和新数据对象对应的元数据在数据库中的表列至少包括数据块标识号,偏移位置,数据块大小,链接的数据块标识号。
12.根据权利要求11所述的***,其中所述至少一个原始数据对象对应的元数据的数据库表的链接的数据块标识号列表明该数据块在新数据对象中的位置,新数据对象对应的元数据的数据库表的链接的数据块标识号列表明该数据块在存储介质中的位置。
CN201110304388.0A 2011-09-29 2011-09-29 一种重复数据删除的方法和*** Active CN103034659B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110304388.0A CN103034659B (zh) 2011-09-29 2011-09-29 一种重复数据删除的方法和***
US13/622,838 US8812461B2 (en) 2011-09-29 2012-09-19 Method and system for data deduplication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110304388.0A CN103034659B (zh) 2011-09-29 2011-09-29 一种重复数据删除的方法和***

Publications (2)

Publication Number Publication Date
CN103034659A CN103034659A (zh) 2013-04-10
CN103034659B true CN103034659B (zh) 2015-08-19

Family

ID=47993581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110304388.0A Active CN103034659B (zh) 2011-09-29 2011-09-29 一种重复数据删除的方法和***

Country Status (2)

Country Link
US (1) US8812461B2 (zh)
CN (1) CN103034659B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9128951B1 (en) * 2012-04-25 2015-09-08 Symantec Corporation Systems and methods for variable-length chunking for deduplication
CN103778268A (zh) * 2012-10-24 2014-05-07 鸿富锦精密工业(深圳)有限公司 文件自动分类方法及***
US9306997B2 (en) 2013-01-16 2016-04-05 Cisco Technology, Inc. Method for optimizing WAN traffic with deduplicated storage
US9300748B2 (en) * 2013-01-16 2016-03-29 Cisco Technology, Inc. Method for optimizing WAN traffic with efficient indexing scheme
US9509736B2 (en) 2013-01-16 2016-11-29 Cisco Technology, Inc. Method for optimizing WAN traffic
US10592527B1 (en) * 2013-02-07 2020-03-17 Veritas Technologies Llc Techniques for duplicating deduplicated data
US9116941B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Reducing digest storage consumption by tracking similarity elements in a data deduplication system
US9678975B2 (en) * 2013-03-15 2017-06-13 International Business Machines Corporation Reducing digest storage consumption in a data deduplication system
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
US10339112B1 (en) * 2013-04-25 2019-07-02 Veritas Technologies Llc Restoring data in deduplicated storage
CN103279502B (zh) * 2013-05-06 2016-01-20 北京赛思信安技术有限公司 一种具有与并行文件***结合的重复数据删除文件***的架构及方法
US9632720B2 (en) 2013-08-29 2017-04-25 International Business Machines Corporation Data de-duplication
CN103559106B (zh) * 2013-10-14 2016-03-02 华为技术有限公司 一种数据的备份方法、装置及***
US9798486B1 (en) * 2013-12-18 2017-10-24 EMC IP Holding Company LLC Method and system for file system based replication of a deduplicated storage system
CN105493080B (zh) * 2013-12-23 2019-08-16 华为技术有限公司 基于上下文感知的重复数据删除的方法和装置
EP3026585A4 (en) * 2014-02-14 2017-04-05 Huawei Technologies Co., Ltd. Server-based method for searching for data flow break point, and server
CN103955530B (zh) * 2014-05-12 2017-02-22 暨南大学 一种在线重复数据删除***的数据重建优化方法
US20170046092A1 (en) * 2014-07-04 2017-02-16 Hewlett Packard Enterprise Development Lp Data deduplication
CN104123347B (zh) * 2014-07-04 2018-01-09 北京思特奇信息技术股份有限公司 一种应用于boss***的数据重删方法及***
US10241708B2 (en) 2014-09-25 2019-03-26 Hewlett Packard Enterprise Development Lp Storage of a data chunk with a colliding fingerprint
US10037336B1 (en) * 2015-03-27 2018-07-31 EMC IP Holding Company LLC Performing block deduplication using block sequence classifications
US9665287B2 (en) 2015-09-18 2017-05-30 Alibaba Group Holding Limited Data deduplication using a solid state drive controller
CN105872017A (zh) * 2016-03-18 2016-08-17 清华大学 一种网页端进行文件差分编码同步方法及装置
CN106227901A (zh) * 2016-09-19 2016-12-14 郑州云海信息技术有限公司 一种基于重删与压缩并行的空间节省方法
US10417202B2 (en) 2016-12-21 2019-09-17 Hewlett Packard Enterprise Development Lp Storage system deduplication
US20200034244A1 (en) * 2018-07-26 2020-01-30 EMC IP Holding Company LLC Detecting server pages within backups
US10922281B2 (en) * 2018-10-25 2021-02-16 EMC IP Holding Company LLC Application aware deduplication
CN109213738B (zh) * 2018-11-20 2022-01-25 武汉理工光科股份有限公司 一种云存储文件级重复数据删除检索***及方法
US11119995B2 (en) 2019-12-18 2021-09-14 Ndata, Inc. Systems and methods for sketch computation
US10938961B1 (en) 2019-12-18 2021-03-02 Ndata, Inc. Systems and methods for data deduplication by generating similarity metrics using sketch computation
US11914553B2 (en) 2021-10-07 2024-02-27 T-Mobile Innovations Llc Methods and systems for analyzing similarities across tables and databases to perform de-duplication in a storage server
US11934367B2 (en) * 2021-10-07 2024-03-19 T-Mobile Innovations Llc Data management and de-duplication at a storage server

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706825A (zh) * 2009-12-10 2010-05-12 华中科技大学 一种基于文件内容类型的重复数据删除方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782368B2 (en) 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
US7814074B2 (en) 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US7519635B1 (en) 2008-03-31 2009-04-14 International Business Machines Corporation Method of and system for adaptive selection of a deduplication chunking technique
US7996371B1 (en) * 2008-06-10 2011-08-09 Netapp, Inc. Combining context-aware and context-independent data deduplication for optimal space savings
US8788466B2 (en) * 2008-08-05 2014-07-22 International Business Machines Corporation Efficient transfer of deduplicated data
US8751462B2 (en) 2008-11-14 2014-06-10 Emc Corporation Delta compression after identity deduplication
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
US8370297B2 (en) * 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101706825A (zh) * 2009-12-10 2010-05-12 华中科技大学 一种基于文件内容类型的重复数据删除方法

Also Published As

Publication number Publication date
US8812461B2 (en) 2014-08-19
US20130086009A1 (en) 2013-04-04
CN103034659A (zh) 2013-04-10

Similar Documents

Publication Publication Date Title
CN103034659B (zh) 一种重复数据删除的方法和***
US7366859B2 (en) Fast incremental backup method and system
CN107391306B (zh) 一种异构数据库备份文件恢复方法
CN106462592B (zh) 优化对索引的多版本支持的***和方法
US9727573B1 (en) Out-of core similarity matching
US8423519B2 (en) Data reduction indexing
US8560500B2 (en) Method and system for removing rows from directory tables
US10756757B2 (en) Maintaining data deduplication reference information
KR20070003579A (ko) 플래시형 매체에 트랜잭션 레코드를 저장하는 파일 시스템
EP3779715A1 (en) Method and apparatus for deleting duplicate data
US10783145B2 (en) Block level deduplication with block similarity
US11409616B2 (en) Recovery of in-memory databases after a system crash
CA2747661A1 (en) Methods and apparatus for content-aware data partitioning and data de-duplication
CN103098035A (zh) 存储***
US20120136842A1 (en) Partitioning method of data blocks
KR20070003576A (ko) 파일 시스템 무결성에 대한 최적화된 시동 검증
CN107506260A (zh) 一种动态分块数据库增量备份方法
WO2018200475A1 (en) System and method to accelerate compaction
US20170344579A1 (en) Data deduplication
CN104077380A (zh) 一种重复数据删除方法、装置及***
US20220083246A1 (en) Variable Length Deduplication of Stored Data
US10380141B1 (en) Fast incremental backup method and system
CN113535670A (zh) 一种虚拟化资源镜像存储***及其实现方法
CN111046043A (zh) 一种数据库表快速精确校验方法
US20160275134A1 (en) Nosql database data validation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant