CN102378969A - 拷贝卷中存储的数据的去重复 - Google Patents
拷贝卷中存储的数据的去重复 Download PDFInfo
- Publication number
- CN102378969A CN102378969A CN2009801585096A CN200980158509A CN102378969A CN 102378969 A CN102378969 A CN 102378969A CN 2009801585096 A CN2009801585096 A CN 2009801585096A CN 200980158509 A CN200980158509 A CN 200980158509A CN 102378969 A CN102378969 A CN 102378969A
- Authority
- CN
- China
- Prior art keywords
- data
- copy
- volume
- copy volume
- source book
- 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
Links
- 230000004044 response Effects 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims description 42
- 230000006870 function Effects 0.000 claims description 27
- 238000007689 inspection Methods 0.000 claims description 21
- 230000008878 coupling Effects 0.000 claims description 18
- 238000010168 coupling process Methods 0.000 claims description 18
- 238000005859 coupling reaction Methods 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 15
- 230000004048 modification Effects 0.000 claims description 11
- 238000012986 modification Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007418 data mining Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 244000188472 Ilex paraguariensis Species 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
存储源卷和拷贝卷,其中,拷贝卷包含已经通过对源卷的写入而修改的数据。响应于对特定位置和资源卷的写入,检查去重复数据结构,以确定拷贝卷是否包含与特定位置的数据相同的数据。响应于根据去重复数据结构确定拷贝卷包含与特定位置的数据相同的数据,添加对拷贝卷的存储相同数据的第一位置的参考,而不是重复将特定位置的数据存储在拷贝卷中。
Description
背景技术
随着存储技术的发展,可存储在存储子系统(包括硬盘驱动器、盘阵列系统等)的数据量已经极大增长。可以出于各种目的保持存储子系统中的数据的拷贝,这些目的包括数据备份、数据挖掘(其中,对数据进行分析以提供对数据的更好理解)等。
存在不同类型的拷贝,包括快照和克隆。快照是数据的时间点表示。快照包含已经由于一个或多个写入操作而改变的源存储卷的数据块(注意,不将源存储卷中未改变的数据拷贝至快照)。响应于对源存储卷中的数据进行修改的写入,在写入到源存储卷之前,将原始数据拷贝至快照。
另一种类型的拷贝是克隆,其包含源存储卷的完全拷贝,包括源存储卷的未被修改的数据。
与保持快照和/或克隆相关联的问题是它们可能在存储空间方面是低效的。一般地,快照比克隆更加空间高效。然而,随着快照老化(age),快照的存储空间利用率也提高,这可能导致存储空间使用率更加低效。存储空间使用率低效的一个原因是快照和/或克隆可能包含相对较大的重复数据量。
附图说明
参照以下附图来描述本发明的一些实施例:
图1是根据一个实施例的包括源卷、拷贝卷以及包含允许对重复数据进行检测的信息的去重复数据结构的布置的示意图;
图2A至2C示意了根据一个实施例的导致快照卷更新的对源卷执行的写入的示例;
图3示意了根据一个实施例的允许对重复数据的标识的根据一个实施例的散列表;
图4示意了根据一个实施例的导致快照更新的对源卷执行的写入的另一示例;
图5是根据一个实施例的、数据从源卷至快照卷的空间高效拷贝过程的流程图;
图6是根据一个实施例的要被执行以在快照卷中提供数据冗余的附加任务的流程图;
图7示意了根据另一实施例的散列表;
图8示意了根据一个实施例的、重复数据在快照卷中的存储;
图9是根据另一实施例的要被执行以在快照卷中提供数据冗余的附加任务的流程图;
图10是根据一个实施例的包括源卷、快照卷以及用于实现快照卷中存储的数据的去重复的数据字典的布置的示意图;
图11是根据另一实施例的、数据从源卷至快照卷的空间高效拷贝过程的流程图;以及
图12是可结合一些实施例的存储子系统的框图。
具体实施方式
在根据一个实施例的存储子系统中,如图1所示,针对源卷100保持至少一个拷贝卷102,其中,拷贝卷102包含通过对源卷的一个或多个写入操作而进行的修改前的数据版本。“卷”指代存储子系统中包含的逻辑数据单元。“源卷”指代通常对其执行输入/输出(I/O)操作(包括读取、写入、删除等)的逻辑数据单元。“拷贝卷”指代包含源卷中存储的数据版本的逻辑数据单元,其中,数据的“版本”指代数据的先前版本(在由于写入操作而进行的修改之前)和/或源卷中的数据的重复拷贝。可以出于各种目的在存储子系统中提供拷贝卷102,这些目的包括数据备份(在损坏、错误或故障的情况下实现数据恢复)、数据挖掘(允许对数据进行分析以更好地理解数据)和/或其他目的。
在一些示例中,拷贝卷102可以是快照或克隆。快照包含已经由于一个或多个写入操作而改变的源卷100的数据块(注意,不将源卷100中未改变的数据拷贝至快照)。响应于对源卷中的数据块进行修改的写入,在写入到源卷之前,将原始数据块拷贝至快照。
克隆包含源卷100的完全拷贝。除了存储源卷100中已通过写入操作而修改的原始数据块之外,克隆还存储源卷中未被修改的数据块的拷贝。
尽管仅示出了一个源卷100和一个拷贝卷102,但是需要注意,可以存在多个源卷100和/或拷贝卷102。
如图1所示,源卷100包括数据块b1、b2、b3和b4,而拷贝卷102包括数据块s1、s2、s3和s4。“数据块”(或更简单地,“块”)指代卷中数据的分区,其中,该分区具有预定义大小(或具有各种大小)。尽管在源卷100和拷贝卷102中的每一个中仅绘出4个块,但是需要注意,可以在每个卷中提供更多块。在一个示例中,如果将通过写入操作来修改源卷100中的数据块b2,则可将写入操作完成前数据块b2中的原始数据拷贝至拷贝卷102中的对应数据块s2。将这种将数据从源卷拷贝至拷贝卷的拷贝作为“拷贝操作”的一部分来执行。拷贝操作可以是写入时拷贝操作或写入前拷贝操作。
根据一些实施例,维护去重复(deduplication)数据结构104以跟踪(由图1中的双箭头105表示)已存储在拷贝卷102中的数据。去重复数据结构保持表示拷贝卷102中包含的数据块的签名。可以基于对应的数据块的内容来计算签名。例如,一种类型的签名是通过将散列函数应用于数据块的内容而计算的散列值(也称作“散列键”)。另一种签名可以具有通过将校验和函数应用于数据块的内容而生成的校验和的形式,其中,校验和函数的示例包括散列函数、指纹、随机化函数等。更一般地,通过将预定义函数应用于数据块的内容来计算签名。
当针对源卷100中的特定数据块执行写入时,发起拷贝操作。作为拷贝操作的一部分,检查去重复数据结构104,以确定特定数据块(正在通过写入而被修改)当前是否包含作为已存储在拷贝卷102中的重复数据的数据。这是通过以下操作来完成的:计算源卷100的(要修改的)特定数据块中包含的数据的签名;以及将所计算的签名与去重复数据结构(104)中的签名进行比较。如果发生匹配,则这是以下指示器:特定数据块包含作为已存在于拷贝卷102中的重复数据的数据。
在这种情况下,存储子系统可以决定避免将(正在修改的)特定数据块的数据拷贝至拷贝卷102,从而避免将相同数据的多个实例存储在拷贝卷中。代替将特定数据块的数据拷贝至拷贝卷,添加了参考以指向已存储在拷贝卷中的相同数据。该参考可以具有与拷贝卷102相关联的元数据中的指针的形式。利用该指针来更新元数据,以指示与正在修改的特定数据块相关联的原始数据被存储在拷贝卷的另一位置处。该指针可以用于在存储子系统必须稍后取回特定数据块的原始数据的情况下恢复特定数据块的原始数据。
图2A至2C示意了响应于针对源卷100执行的写入而针对快照卷102执行的更新的示例。尽管在接下来的讨论中参考了快照卷,但是需要注意,在其他实施方式中可以将相同的技术应用于克隆卷。
图2A示意了针对源卷100创建快照卷102。在源卷100中,块b1、b2、b3和b4包含相应的数据“Y”、“X”、“Z”和“X”。此时,快照卷102为空。源卷100与元数据106相关联,其中,元数据106(包括mb1、mb2、mb3、mb4)描述了源卷100中的对应数据块b1、b2、b3和b4的各种属性。这些属性可以包括大小信息、物理地址信息等。快照卷102还与对应的元数据108(包括ms1、ms2、ms3、ms4)相关联,元数据108描述了快照卷102的对应块s1、s2、s3和s4的属性。在如图2A所示初始创建快照卷102时,针对快照卷102的元数据108仅指向针对源卷100的元数据106,这是由于快照卷102为空。
图2B示意了将数据“A”写入到块b2中,这导致用“A”替换块b2中的先前数据“X”。然而,如图2B所示,在完成将数据“A”写入到块b2之前,首先将块b2中的先前数据“X”拷贝至快照卷102中的块s2(在110)。在将数据“X”拷贝至快照卷102之后,将数据“A”写入到块b2中。注意,针对快照卷102中的块s2的元数据ms2不再指向源卷100的对应元数据mb2,这是由于针对快照卷102中的块s2的元数据ms2现在指向快照块s2中包含的数据(与源卷100中的对应块b2中包含的数据不同)。
图2A至2C的示例中使用的去重复数据结构104是图3所示的散列表104。在图2A中创建快照卷102时,图3中的散列表104初始为空。然而,在如图2B所示将数据“A”写入到源卷100的块b2中以替换数据“X”(这使得数据“X”拷贝至快照卷102的块s2)时,散列表104被填充了已存储在快照卷102的块s2中的数据“X”的条目。图3的散列表104具有两列:块地址列(指向快照卷102中的块)和散列键列(包含基于快照卷102中的对应块的内容计算的散列值)。实际上,散列表104将散列键映射至快照卷的数据块的对应块地址。在图3的示例中,散列表104的第一条目的块地址包含对快照卷102中的块s2的地址。在散列键列中,存储根据数据“X”计算的散列值(hash(X)),其构成数据“X”的签名。例如,对数据“X”应用的散列函数hash()可以是MD5(消息-摘要算法5)散列函数。在其他实施方式中,可以使用其他类型的散列函数或其他函数。
图2C示出了针对源卷100中的块b4执行的另一写入。注意,块b4最初还包含数据“X”。在将“B”写入到块b4中之前,确定是否必须将块b4中的先前数据(X)拷贝至快照卷102。这是通过以下操作来完成的:基于块b4中的数据X来计算散列值;以及将所计算的散列值与图3的散列表104的条目中存储的散列值进行比较。在到目前为止的示例中,在散列表104中仅存在一个条目,该条目指向块s2。在该示例中,块b4中的数据“X”的所计算的散列值将与散列表104中包含的“X”的散列值相匹配。因此,为了避免将数据“X”的重复拷贝存储在快照卷102中,实际上并不将块b4中的数据“X”物理拷贝至快照卷102,而是通过使针对快照块s4的元数据ms4指向存储“X”的拷贝的快照块s2的位置来更新这种元数据。这种指针由从元数据ms4至元数据ms2的箭头114表示。如果稍后必须取回快照卷102的块s4的内容,则存储子系统将基于元数据ms4中包含的指针来得知快照块s4的实际数据与快照块s2中存储的数据相同,并且,将从快照块s2中移除快照块s4的数据。
注意,图2A至2C以及图3示出了针对一个源卷仅存在一个快照卷的示例。需要注意,针对一个源卷可以存在多个快照卷。如果针对一个源卷创建了多个快照卷,则去重复结构104(例如,图3所示的散列表)被多个快照卷共享。图4示出了在不同时间点创建多个快照卷102A和102B。快照卷102A是在向块b2的第二写入操作之前创建的(其中,第二写入操作发生在对块b2的第一写入操作之后)。另一方面,快照卷102B是在向块b2的第二写入操作之后创建的。由于已经针对相同块(在这种情况下为块b2)执行多个写入操作,因此创建多个快照,这意味着存在特定数据块(如b2)的多个数据版本。
在图4的示例中,第一写入操作使数据“A”写入到源卷100中的块b3并使“X”写入到源卷100中的块b2。第二写入操作使数据“B”写入到块b2。作为第一写入操作的结果,源卷100的块b2和b3中的原始数据“Z”和“X”被拷贝至快照卷102A的快照块s2和s3。
当接收到第二写入时,存储子系统检查以查看第一快照(快照卷102A)的针对正被写入的块的元数据是否与源卷的对应块的元数据相联系。例如,在图4中,第一源卷102A的元数据ms1与元数据mb1相联系,并且第一源卷102A的元数据ms4与元数据mb4相联系,这是由于尚未修改源卷100的块b1和b4。然而,元数据ms2和ms3与第一源卷102A的相应元数据mb2和mb3不相联系。
如果第一快照卷102A中的对应块的元数据与源卷100中的对应块的元数据相联系,则存储子系统响应于写入操作而发起利用原始数据更新快照102A和102B的拷贝操作。存储系统计算(作为写入操作的对象的)原始数据的散列键,然后,存储子系统检查散列表104以找到散列键。如果存储系统找到散列键,则存储子系统利用指向已存储在快照之一中的数据的指针来更新第一快照102A的元数据和第二快照卷的元数据。如果存储子系统未在散列表中找到散列键,则存储子系统将来自源卷100的旧数据拷贝至第一快照卷102A的空闲空间中。接下来,存储子系统将散列键和指向(第一快照中的)数据的指针插入到散列表中。然后,存储子系统更新第二快照的元数据以指向第一快照卷的针对该块的元数据。
如果与正被写入的源块相对应的第一快照卷102A的块的元数据与第一快照卷102A的这种源块的元数据(如元数据ms2或ms3)不相联系,则存储子系统仅对第二快照卷执行拷贝操作。拷贝操作涉及计算(作为写入操作的对象的)原始数据的散列键,然后,存储子系统检查散列表104以找到散列键。如果存储系统在散列表104中找到散列键,则存储子系统利用指向已存储的数据的指针来更新第二快照卷102B的元数据。
如果存储子系统未在散列表104中找到散列键,则存储子系统将数据拷贝至第二快照卷102B的空闲空间中,然后将散列键与指向(第二快照卷中的)数据的指针一起插入散列表中。
上述相同算法可以用于克隆。当创建源卷的克隆时,存储子系统为克隆分配空间。存储子系统将源卷的元数据拷贝至克隆的元数据。当存储子系统为空闲时,存储子系统可以逐一拷贝数据块并在拷贝发生时更新元数据。
在响应于写入操作而拷贝数据之前,存储子系统首先计算数据块的散列值,然后搜索散列表以找到匹配。如果存储子系统找到这种匹配,则更新克隆的元数据以添加对重复数据的参考(如指针),而不是将数据拷贝至克隆。如果存储子系统未在散列表中找到散列值,则存储子系统将散列值和指向数据块的指针插入散列表中。
图5示出了根据一个实施例的过程的流程图。图5的过程由存储源卷并能够针对该源卷产生拷贝卷(快照卷或克隆卷)的存储子系统执行。起初,针对源卷创建拷贝卷(在502)。接着,接收写入请求(在504),其中,写入请求是执行将数据写入到源卷中的特定数据块。保存写入请求,并读取特定数据块中的当前数据(在506)。基于从特定数据块读取的当前数据创建散列键(在508)。接着,访问散列表(例如,图1和3所示的散列表104)并在散列表中对匹配散列键进行搜索(在510)以找到在508创建的散列键的匹配散列键。
接着,存储子系统确定是否在散列表中找到匹配散列键(在512)。如果是,则存储子系统接下来从散列表读取与匹配散列键相对应的块地址(在514)。注意,在一个实施例中,该过程从任务512直接进行至任务514(绕过由箭头“A”和“E”指示的中间任务,其在以下被进一步描述)。
代替将写入请求的重复数据拷贝至拷贝卷,丢弃或忽略写入请求的写入数据,并利用从散列表读取的块地址来更新与对应快照块相关联的元数据(在516)。
另一方面,如果存储子系统未在散列表中找到在508创建的散列键的匹配散列键(在512),则存储子系统获得快照卷中的空闲数据块的地址(在518)。接着,将(正在通过写入操作而修改的)当前数据的散列键和快照卷中的对应块地址插入到散列表中(在520)(注意,该过程从任务518进行至任务520,绕过由箭头“C”和“D”指示的中间任务,其在以下进一步描述)。
接着,把从源卷的特定数据块读取(且要利用写入数据替换)的当前数据拷贝至快照卷中的空闲块(在522)。然后更新与快照卷的该块相关联的元数据(在524)。
在以上讨论中,假定针对任何拷贝卷仅保持唯一的一个数据块(换言之,在拷贝卷中未存储相同数据的多个实例)。然而,在一些其他实施方式中,可以期望将相同数据的多个实例存储在快照卷中以提供数据冗余。这样,如果相同数据的任一个实例被损坏,则可以取回相同数据的另一实例以用于恢复损坏的数据。
在一些实施例中,可以实现两种类型的冗余技术:低级别冗余技术或高级别冗余技术。
如果实现了低级别冗余技术,则除图5所示的任务以外还执行图6所示的附加任务。图5中的箭头“A”从图5中的任务512通往图6中的任务602,而箭头“C”从图5中的任务518通往图6中的任务608。类似地,图5和6所示的其余箭头“B”、“D”和“E”彼此连接。
因此,如果图5中的512处的确定指示了在散列表中存在与在508基于要修改的源卷的特定数据块中的当前数据创建的散列键匹配的散列键,则存储子系统接下来读取与该散列键相对应的冗余计数器(在图6中的602)。在一些实施例中,可以在散列表(例如,图7所示的散列表700)中保持冗余计数器。冗余计数器是利用在散列表中找到的与对应散列键的每个匹配以递增方式增加的运行计数器。如果冗余计数器达到阈值界限(REDUNDANCY_LIMIT),其为对以下的指示:应当将与相同散列键相对应的数据的另一拷贝插入到快照卷中的另一空闲块中。
图7的散列表700包括四列:块地址列,用于存储快照块的块地址;散列键列,用于存储于由块地址列中的块地址标识的快照块中的数据相对应的散列键;冗余计数器列,包含用于对应的散列键的冗余计数器的当前值;以及替代位置列,包含快照卷中包含相同数据的替代块的块地址。
因此,在图7的示例中,散列表700的第一行指示了快照块s102是与快照块s2包含相同数据的替代位置。类似地,散列表700的第二行指示了快照块s2是包含快照块s102的重复数据的快照卷的替代位置。散列表700的第三行指示了尚未针对快照块s105创建替代位置(换言之,在快照卷中没有重复数据)。
图7示出了对于快照块s2(在散列表700的第一行中表示),冗余计数器已经达到阈值REDUNDANCY_LIMIT;因此,已经创建相同数据的重复拷贝并将其存储在快照块s102中。然后,对于快照块s102(在散列表700的第二行中表示),冗余计数器具有当前值1,因而尚未达到REDUNDANCY_LIMIT。因此,下次找到与快照块s102的匹配时,不将相同数据的另一拷贝插入到快照卷中;而是仅更新元数据以指向已包含该数据的快照块。然而,如果在某个稍后时间点,快照块s102的冗余计数器达到REDUNDANCY_LIMIT,则可将相同数据的另一拷贝存储到快照卷的另一快照块中。
如图6所示,响应于在散列表中找到的匹配散列键,读取与匹配散列键相对应的冗余计数器值(在602)。存储子系统接下来增加冗余计数器(在604),然后确定增加后的冗余计数器值是否大于REDUNDANCY_LIMIT(在606)。如果不大于,则该过程进行至图5中的任务514,在任务514中,执行去重复以避免将相同数据的另一实例拷贝至快照卷中;取而代之,更新快照卷块的元数据以指向与存储重复数据的快照卷块相对应的另一元数据(图5中的任务516)。
如果在606确定了冗余计数器具有大于REDUNDANCY_LIMIT的值,则该过程进行至图5中的任务518,在任务518中,获得快照卷中的空闲块的地址以存储来自快照卷的对应数据。注意,该数据是已处于快照卷中的先前数据的重复。接着,该过程进行至图6中的任务608以创建并初始化用于与正在填充的新快照块相对应的散列键的冗余计数器,并且,将冗余计数器插入到散列表700中(在610)(并例如利用值1来初始化冗余计数器)。
然后,该过程从任务610进行至(上述)图5的520、522和524。
图8示出了将数据“X”的多个实例保存在快照卷102的多个快照块中的示例。在图8的示例中,将数据“X”存储在快照块s2和s102中。快照块s3的元数据指向快照块s2,这是由于快照块s3还应该存储数据“X”而不避免重复。如以上所讨论,在快照块s2的冗余计数器达到REDUNDANCY_LIMIT之后利用重复数据(这里是“X”)填充快照块s102。
针对快照块s102的元数据还包含以下指针:该指针指向快照块s2以指示快照块s2是快照卷中针对相同数据的替代位置。在图8的示例中,快照块s104的元数据指向快照块s102以指示快照块s104应该存储数据“X”而不避免重复。
例如,如果快照块s2中的数据“X”变为被损坏,则可以从快照块s102中的替代位置取回相同数据“X”从而提供冗余。
如果实施了高级别冗余技术而不是图6所述的低级别冗余技术,则除图5所示的任务之外还实施图9的附加任务。如果确定了匹配散列键(与要通过写入请求修改的源卷的当前数据的散列键相匹配)(在图5中的512),则该过程从图5中的任务512进行至图9的任务902,在任务902中,存储子系统确定替代位置是否可用。如果是,则从散列表读取与该散列键相对应的冗余计数器值(在904),并增加冗余计数器值(在906)。
接下来,存储子系统确定增加后的冗余计数器值是否大于阈值REDUNDANCY_LIMIT(在908)。如果否,则该过程进行至(上述)任务514和516。另一方面,如果确定了冗余计数器值大于REDUNDANCY_LIMIT(在908),或者可替换地,如果确定了替代位置对散列键不可用(在902),则该过程进行至图5中的任务518以获得快照卷的空闲块的地址。
接下来,存储子系统确定散列表中是否存在散列键(在图9中的910),如果是,则更新替代位置以指向在包含匹配散列键的散列表中找到的条目(在912)。接下来,针对该散列键创建并初始化冗余计数器值(在914)。
如果确定了散列表中不存在匹配散列键(在910),则该过程从任务910直接进行至任务914以针对散列值创建并初始化冗余计数器。
接下来,将所创建和初始化的冗余计数器插入到散列表中(在916),然后,该过程进行至图5的任务520、522和524。
图9的高级别冗余技术与图6的低级别冗余技术之间的区别在于:如果匹配散列键的替代位置字段为空,则图9的高级别冗余技术使得创建快照卷中的另一位置以存储重复数据;换言之,如果替代位置字段为空(指示没有替代位置),则高级别冗余技术在创建快照卷中的数据的另一拷贝之前不等待冗余计数器首先达到REDUNDANCY_LIMIT。
图10示出了本发明的可替换实施例,其中,保持了数据字典1010以存储包含数据并表示该数据的校验和的去重复记录。图10还示出了第一源卷1002和第二源卷1004。第一快照卷1006与第一源卷1002相对应,而第二快照卷1008与源卷1004相对应。箭头1012从第一快照卷1006的数据块指向第一源卷1002。每个箭头1012指示了快照卷1006的对应数据块不包含任何数据,相反,源卷1002的对应数据块包含未修改的数据。快照卷1006的不具有指向源卷1002的指针的其余数据块包含对源卷1002的对应块的数据进行修改前的数据的先前版本。以类似的方式,箭头1014从第二快照卷1008的数据块指向第二源卷1004的对应数据块。
在图10的实施例中,数据字典1010包含多个去重复记录。每个去重复记录包含实际数据以及数据所处的地址。此外,去重复记录还包含基于去重复记录中的数据计算的校验和。随着时间的推移,数据字典1010变为完全由去重复记录填充,使得每个快照1006和1008将包含指向数据字典1010的对应去重复记录的指针。通过将每个唯一数据片段的仅一个拷贝保存在数据字典1010中,避免了快照卷1006和1008中相同数据的重复拷贝。
图11示出了根据对要存储在快照卷中的数据进行去重复的该可替换实施例的过程。接收要写入的来自一个或多个源卷的数据块的拷贝(在1102)。接着,准备要写入的这些接收块的队列(在1104)。此时,可以将完成状态返回给已发出写入请求的一个或多个请求者(在1105)。
然后从队列中迭代地取回每个块(在1106)。将数据块提供给校验和计算引擎,以便基于数据块的内容来计算校验和(在1108),并准备去重复记录(在1110)。所准备的去重复记录包括数据块以及校验和。将去重复记录发送至重复检查过程以将所创建的去重复记录与数据字典1010的去重复记录进行比较(在1112)。如果被发送至重复检查过程的校验和与数据字典1010中的校验和相匹配,则其为以下的指示:该块的数据已经存储在数据字典1010中。在这种情况下,返回数据的地址,并可以更新与对应的快照卷相关联的元数据以指向数据字典1010中的该地址。
另一方面,如果在被发送至数据字典1010的校验和与数据字典1010中包含的校验和之间不存在匹配,则利用新校验和以及被插入到数据字典1010中的另一去重复记录中的数据块来更新数据字典1010。返回存储该新数据块的地址。
在图11中,从重复检查过程接收响应(在1114)。该响应包括数据字典1010中存储的数据的地址。
接着,检查是否已经达到包含要被写入的块的队列的末尾。如果未达到,则重复任务1106、1108、1110、1112和1114。
可以在存储子系统(例如,图12所示的存储子系统1200)中执行包括图5、6、9和11所示的任务在内的上述各种任务以及所描述的其他任务。存储子系统1200包括物理存储介质1202,其可以利用基于盘的存储器件或半导体存储器件而实现。物理存储介质1202存储源卷(一个或多个)100、拷贝卷(一个或多个)102和去重复数据结构104(其可以是散列表或数据字典,如以上所讨论)。
存储子系统1200还包括存储控制器1204,该存储控制器1204包含可在存储控制器1204中执行的固件或软件1206。固件可以存储在存储控制器1204的内部存储器中。存储控制器1204的软件可以存储在外部存储器(如物理存储介质1202)中并被加载以由存储控制器1204执行。存储控制器1204可以利用微处理器、微控制器、专用集成电路(ASIC)、可编程日期阵列等实现。
对上述固件或软件的指令进行加载以由存储控制器1204执行。更一般地,存储控制器1204被称作处理器,其包括微处理器、微控制器、处理器模块或子系统(包括一个或多个微处理器或微控制器)或者其他控制或计算设备。如这里所使用,处理器可以指代单个组件或多个组件。
(固件或软件的)数据和指令存储在相应的存储器件中,这些存储器件被实现为一个或多个计算机可读或计算机可用存储介质。存储介质包括不同形式的存储器,其包括:半导体存储器件,如动态或静态随机存取存储器(DRAM或SRAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)以及闪存;磁盘,如固定盘、软盘和可移除盘;包括磁带在内的其他磁介质;以及光学介质,如光盘(CD)或数字视频光盘(DVD)。
在以上描述中,阐述了许多细节以提供对本发明的理解。然而,本领域技术人员将理解,在没有这些细节的情况下可以实施本发明。尽管针对有限数目的实施例公开了本发明,但是本领域技术人员将从中认识到许多修改和变型。所附权利要求意在涵盖落在本发明真正精神和范围内的这些修改和变型。
权利要求书(按照条约第19条的修改)
1.一种方法,包括:
将源卷存储在物理存储介质上;
存储包含已经通过对源卷的写入而修改的数据的拷贝卷;
响应于对源卷中包含第一数据的特定位置的写入,检查去重复数据结构,以确定拷贝卷是否包含与所述特定位置的第一数据相同的数据,其中所述特定位置的第一数据是在对特定位置执行写入之前的数据;以及
响应于根据所述去重复数据结构确定拷贝卷包含与所述特定位置的第一数据相同的数据,添加对拷贝卷的存储相同数据的第一位置的参考,而不是重复将所述特定位置的第一数据存储在拷贝卷中。
2.根据权利要求1所述的方法,其中,检查去重复数据结构包括:检查包含与拷贝卷的包含数据的数据块相对应的散列键的散列表。
3.根据权利要求1所述的方法,其中,检查去重复数据结构包括:检查包含多个去重复记录的数据字典,其中,每个去重复记录包含实际数据、所述实际数据的地址以及与所述实际数据相关联的校验和。
4.根据权利要求1所述的方法,其中,存储拷贝卷包括:存储快照卷。
5.根据权利要求1所述的方法,其中,存储拷贝卷包括:存储克隆卷。
6.根据权利要求1所述的方法,其中,添加对拷贝卷的第一位置的参考包括:将指针添加至拷贝卷的与源卷的所述特定位置相对应的第二位置的元数据,其中,所述指针指向拷贝卷的第一位置。
7.根据权利要求1所述的方法,还包括:
响应于根据所述去重复数据结构确定拷贝卷不包含与源卷的所述特定位置的第一数据相同的数据,将条目添加至所述去重复数据结构,其中,所添加的条目包含与源卷的所述特定位置的第一数据相对应的签名,以及其中,在所添加的条目中还包括拷贝卷中包含源卷的所述特定位置的第一数据的位置的地址。
8.根据权利要求1所述的方法,还包括:
响应于根据所述去重复数据结构确定拷贝卷包含与所述特定位置的第一数据相同的数据,检查指示以确定是否要在拷贝卷中保持相同数据的重复拷贝;以及
响应于确定要在拷贝卷中保持相同数据的重复拷贝,在所述去重复数据结构中创建与相同数据的该重复拷贝相关联的另一条目。
9.根据权利要求8所述的方法,其中,检查指示包括:检查冗余计数器,其中,所述冗余计数器达到预定阈值指示要在拷贝卷中保持相同数据的重复拷贝。
10.一种存储子系统,包括:
存储器,用于存储源卷、包含已经通过对源卷的写入而修改的数据的拷贝卷以及去重复数据结构;以及
存储控制器,用于:
保持包含拷贝卷中存储的对应数据的签名的去重复数据结构;以及
响应于对源卷的写入请求,访问所述去重复数据结构,以检查要通过写入请求修改的源卷的原始数据是否已经包含在拷贝卷中。
11.根据权利要求10所述的存储子系统,其中,所述存储控制器还用于:
响应于从所述去重复数据结构检测到要修改的源卷的原始数据已经包含在拷贝卷中,将指针添加至与拷贝卷的对应数据块相关联的元数据,其中,所述指针指向拷贝卷的包含要修改的源卷的原始数据的另一数据块。
12.根据权利要求10所述的存储子系统,其中,所述存储控制器还用于:
响应于从所述去重复数据结构检测到要修改的源卷的原始数据未包含在拷贝卷中,将新条目添加至所述去重复数据结构,其中,所述新条目包含基于要修改的源卷的原始数据而计算的签名。
13.根据权利要求10所述的存储子系统,其中,所述去重复数据结构中的签名包括以下各项之一:(1)基于拷贝卷中的数据的对应内容而计算的散列键;以及(2)基于拷贝卷中的数据的对应内容而计算的校验和。
14.根据权利要求10所述的存储子系统,其中,所述去重复数据结构还包含与相应签名相关联的指示,所述指示用于指示是否要在拷贝卷中保持相同数据的重复拷贝。
15.根据权利要求14所述的存储子系统,其中,所述指示包括计数器值,其中,所述计数器值中的每一个响应于涉及与该计数器值的签名相对应的数据的对应拷贝操作而增加,以及其中,该计数器值达到阈值是要保持数据的重复拷贝的指示。
16.根据权利要求10所述的存储子系统,其中,所述去重复数据结构将签名映射至拷贝卷的块的对应地址。
17.一种包括至少一个计算机可读存储介质的物件,所述至少一个计算机可读存储介质包含指令,所述指令在执行时使存储子系统:
接收对源卷的块中的原始数据进行修改的写入请求;以及
响应于所述写入请求而执行拷贝操作以更新拷贝卷的对应块,其中,所述拷贝操作包括:
基于源卷的块中的原始数据来计算签名;
将所计算的签名与去重复数据结构中的签名进行比较;以及
如果在所计算的签名与所述去重复数据结构中的签名之一之间存在匹配,则更新拷贝卷的块的元数据,以指向拷贝卷中包含与要通过所述写入请求修改的源卷的块中的原始数据相同的数据的另一块。
18.根据权利要求17所述的物件,其中,所述拷贝操作还包括:
如果在所计算的签名与所述去重复数据结构的签名之间不存在匹配,则将新条目添加至所述去重复数据结构,所述新条目包含所计算的签名以及拷贝卷的所述对应块的地址。
Claims (18)
1.一种方法,包括:
将源卷存储在物理存储介质上;
存储包含已经通过对源卷的写入而修改的数据的拷贝卷;
响应于对源卷中特定位置的写入,检查去重复数据结构,以确定拷贝卷是否包含与所述特定位置的数据相同的数据;以及
响应于根据所述去重复数据结构确定拷贝卷包含与所述特定位置的数据相同的数据,添加对拷贝卷的存储相同数据的第一位置的参考,而不是重复将所述特定位置的数据存储在拷贝卷中。
2.根据权利要求1所述的方法,其中,检查去重复数据结构包括:检查包含与拷贝卷的包含数据的数据块相对应的散列键的散列表。
3.根据权利要求1所述的方法,其中,检查去重复数据结构包括:检查包含多个去重复记录的数据字典,其中,每个去重复记录包含实际数据、所述实际数据的地址以及与所述实际数据相关联的校验和。
4.根据权利要求1所述的方法,其中,存储拷贝卷包括:存储快照卷。
5.根据权利要求1所述的方法,其中,存储拷贝卷包括:存储克隆卷。
6.根据权利要求1所述的方法,其中,添加对拷贝卷的第一位置的参考包括:将指针添加至拷贝卷的与源卷的所述特定位置相对应的第二位置的元数据,其中,所述指针指向拷贝卷的第一位置。
7.根据权利要求1所述的方法,还包括:
响应于根据所述去重复数据结构确定拷贝卷不包含与源卷的所述特定位置的数据相同的数据,将条目添加至所述去重复数据结构,其中,所添加的条目包含与源卷的所述特定位置的数据相对应的签名,以及其中,在所添加的条目中还包括拷贝卷中包含源卷的所述特定位置的数据的位置的地址。
8.根据权利要求1所述的方法,还包括:
响应于根据所述去重复数据结构确定拷贝卷包含与所述特定位置的数据相同的数据,检查指示以确定是否要在拷贝卷中保持相同数据的重复拷贝;以及
响应于确定要在拷贝卷中保持相同数据的重复拷贝,在所述去重复数据结构中创建与相同数据的该重复拷贝相关联的另一条目。
9.根据权利要求8所述的方法,其中,检查指示包括:检查冗余计数器,其中,所述冗余计数器达到预定阈值指示要在拷贝卷中保持相同数据的重复拷贝。
10.一种存储子系统,包括:
存储器,用于存储源卷、包含已经通过对源卷的写入而修改的数据的拷贝卷以及去重复数据结构;以及
存储控制器,用于:
保持包含拷贝卷中存储的对应数据的签名的去重复数据结构;以及
响应于对源卷的写入请求,访问所述去重复数据结构,以检查要通过写入请求修改的源卷的数据是否已经包含在拷贝卷中。
11.根据权利要求10所述的存储子系统,其中,所述存储控制器还用于:
响应于从所述去重复数据结构检测到要修改的源卷的数据已经包含在拷贝卷中,将指针添加至与拷贝卷的对应数据块相关联的元数据,其中,所述指针指向拷贝卷的包含要修改的源卷的数据的另一数据块。
12.根据权利要求10所述的存储子系统,其中,所述存储控制器还用于:
响应于从所述去重复数据结构检测到要修改的源卷的数据未包含在拷贝卷中,将新条目添加至所述去重复数据结构,其中,所述新条目包含基于要修改的源卷的数据而计算的签名。
13.根据权利要求10所述的存储子系统,其中,所述去重复数据结构中的签名包括以下各项之一:(1)基于拷贝卷中的数据的对应内容而计算的散列键;以及(2)基于拷贝卷中的数据的对应内容而计算的校验和。
14.根据权利要求10所述的存储子系统,其中,所述去重复数据结构还包含与相应签名相关联的指示,所述指示用于指示是否要在拷贝卷中保持相同数据的重复拷贝。
15.根据权利要求14所述的存储子系统,其中,所述指示包括计数器值,其中,所述计数器值中的每一个响应于涉及与该计数器值的签名相对应的数据的对应拷贝操作而增加,以及其中,该计数器值达到阈值是要保持数据的重复拷贝的指示。
16.根据权利要求10所述的存储子系统,其中,所述去重复数据结构将签名映射至拷贝卷的块的对应地址。
17.一种包括至少一个计算机可读存储介质的物件,所述至少一个计算机可读存储介质包含指令,所述指令在执行时使存储子系统:
接收对源卷的块中的数据进行修改的写入请求;以及
响应于所述写入请求而执行拷贝操作以更新拷贝卷的对应块,其中,所述拷贝操作包括:
基于源卷的块中的数据来计算签名;
将所计算的签名与去重复数据结构中的签名进行比较;以及
如果在所计算的签名与所述去重复数据结构中的签名之一之间存在匹配,则更新拷贝卷的块的元数据,以指向拷贝卷中包含与要通过所述写入请求修改的源卷的块中的数据相同的数据的另一块。
18.根据权利要求17所述的物件,其中,所述拷贝操作还包括:
如果在所计算的签名与所述去重复数据结构的签名之间不存在匹配,则将新条目添加至所述去重复数据结构,所述新条目包含所计算的签名以及拷贝卷的所述对应块的地址。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IN2009/000206 WO2010113167A1 (en) | 2009-03-30 | 2009-03-30 | Deduplication of data stored in a copy volume |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102378969A true CN102378969A (zh) | 2012-03-14 |
CN102378969B CN102378969B (zh) | 2015-08-05 |
Family
ID=42827535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980158509.6A Expired - Fee Related CN102378969B (zh) | 2009-03-30 | 2009-03-30 | 拷贝卷中存储的数据的去重复 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9009429B2 (zh) |
EP (1) | EP2414940A4 (zh) |
CN (1) | CN102378969B (zh) |
WO (1) | WO2010113167A1 (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831127A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 重复数据处理方法、装置及系统 |
CN103377285A (zh) * | 2012-04-25 | 2013-10-30 | 国际商业机器公司 | 用于增强对存储云去重技术的可靠性的方法与系统 |
CN103645970A (zh) * | 2013-12-13 | 2014-03-19 | 华为技术有限公司 | 一种远程复制多快照间增量去重的实现方法及装置 |
CN104205743A (zh) * | 2012-03-20 | 2014-12-10 | 华为技术有限公司 | 无线接入网中用于内容分发的方法和装置 |
CN104246720A (zh) * | 2012-05-01 | 2014-12-24 | 惠普发展公司,有限责任合伙企业 | 确定用于去重复的段边界 |
CN104350514A (zh) * | 2012-03-19 | 2015-02-11 | 加拿大皇家铸币厂 | 资产存储和转移系统中的外部日志存储 |
CN105009508A (zh) * | 2013-02-22 | 2015-10-28 | 国际商业机器公司 | 基于网络参数的完整性校验和选择性去重复 |
CN105074688A (zh) * | 2012-12-27 | 2015-11-18 | 阿卡麦科技公司 | 使用对等节点图的基于流的数据去重复 |
CN106663047A (zh) * | 2015-01-13 | 2017-05-10 | 森普利维蒂公司 | 用于优化的签名比较和数据复制的系统和方法 |
US9672218B2 (en) | 2012-02-02 | 2017-06-06 | Hewlett Packard Enterprise Development Lp | Systems and methods for data chunk deduplication |
CN107423165A (zh) * | 2017-08-01 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种数据快照首写拷贝方法及装置 |
CN108228096A (zh) * | 2016-12-21 | 2018-06-29 | 慧与发展有限责任合伙企业 | 存储系统去重复 |
CN108369487A (zh) * | 2015-11-25 | 2018-08-03 | 华睿泰科技有限责任公司 | 用于在去重虚拟文件系统中拍摄快照的系统和方法 |
US10200467B2 (en) | 2012-12-27 | 2019-02-05 | Akamai Technologies, Inc. | Stream-based data deduplication with peer node prediction |
CN109582638A (zh) * | 2018-10-25 | 2019-04-05 | 平安科技(深圳)有限公司 | 快照卷数据拷贝方法、装置及计算机可读存储介质 |
CN109697021A (zh) * | 2017-10-23 | 2019-04-30 | 阿里巴巴集团控股有限公司 | 一种磁盘快照的数据处理方法及装置 |
US10496490B2 (en) | 2013-05-16 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
CN110704407A (zh) * | 2019-09-04 | 2020-01-17 | 苏宁云计算有限公司 | 一种数据去重的方法和系统 |
CN110795389A (zh) * | 2019-10-28 | 2020-02-14 | 深信服科技股份有限公司 | 基于存储快照的拷贝方法、用户设备、存储介质及装置 |
US10592347B2 (en) | 2013-05-16 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
CN114253466A (zh) * | 2020-09-23 | 2022-03-29 | 慧与发展有限责任合伙企业 | 数据去重参数计算 |
US11442895B2 (en) * | 2020-07-27 | 2022-09-13 | EMC IP Holding Company LLC | Method for copying data, electronic device and computer program product |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8560503B1 (en) * | 2006-01-26 | 2013-10-15 | Netapp, Inc. | Content addressable storage system |
CN102378969B (zh) | 2009-03-30 | 2015-08-05 | 惠普开发有限公司 | 拷贝卷中存储的数据的去重复 |
US20110055471A1 (en) * | 2009-08-28 | 2011-03-03 | Jonathan Thatcher | Apparatus, system, and method for improved data deduplication |
US8473690B1 (en) | 2009-10-30 | 2013-06-25 | Netapp, Inc. | Using logical block addresses with generation numbers as data fingerprints to provide cache coherency |
US8799367B1 (en) * | 2009-10-30 | 2014-08-05 | Netapp, Inc. | Using logical block addresses with generation numbers as data fingerprints for network deduplication |
WO2011133443A1 (en) * | 2010-04-19 | 2011-10-27 | Greenbytes, Inc. | A method for optimizing the memory usage and performance of data deduplication storage systems |
US8402004B2 (en) | 2010-11-16 | 2013-03-19 | Actifio, Inc. | System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data |
US9858155B2 (en) | 2010-11-16 | 2018-01-02 | Actifio, Inc. | System and method for managing data with service level agreements that may specify non-uniform copying of data |
US8299944B2 (en) | 2010-11-16 | 2012-10-30 | Actifio, Inc. | System and method for creating deduplicated copies of data storing non-lossy encodings of data directly in a content addressable store |
US8788769B2 (en) | 2010-11-16 | 2014-07-22 | Actifio, Inc. | System and method for performing backup or restore operations utilizing difference information and timeline state information |
US8843489B2 (en) * | 2010-11-16 | 2014-09-23 | Actifio, Inc. | System and method for managing deduplicated copies of data using temporal relationships among copies |
US8417674B2 (en) * | 2010-11-16 | 2013-04-09 | Actifio, Inc. | System and method for creating deduplicated copies of data by sending difference data between near-neighbor temporal states |
US8904126B2 (en) | 2010-11-16 | 2014-12-02 | Actifio, Inc. | System and method for performing a plurality of prescribed data management functions in a manner that reduces redundant access operations to primary storage |
US8396905B2 (en) * | 2010-11-16 | 2013-03-12 | Actifio, Inc. | System and method for improved garbage collection operations in a deduplicated store by tracking temporal relationships among copies |
US8825972B1 (en) * | 2010-11-19 | 2014-09-02 | Symantec Corporation | Method and system of producing a full backup image using an incremental backup method |
US9933978B2 (en) | 2010-12-16 | 2018-04-03 | International Business Machines Corporation | Method and system for processing data |
US8332372B2 (en) * | 2010-12-16 | 2012-12-11 | International Business Machines Corporation | Method and system for processing data |
CN103207878B (zh) * | 2012-01-17 | 2016-05-04 | 阿里巴巴集团控股有限公司 | 发布信息的检查方法和装置 |
EP2859453A4 (en) * | 2012-06-08 | 2016-01-27 | Hewlett Packard Development Co | REPLACEMENT OF A DATA QUANTITY WITH A REFERENCE TO A MEMORY LOCATION |
US10176189B2 (en) * | 2012-09-19 | 2019-01-08 | Hitachi Data Systems Engineering UK Limited | System and method for managing deduplication using checkpoints in a file storage system |
US20140250078A1 (en) * | 2013-03-01 | 2014-09-04 | Storagecraft Technology Corporation | Multiphase deduplication |
US8751763B1 (en) * | 2013-03-13 | 2014-06-10 | Nimbus Data Systems, Inc. | Low-overhead deduplication within a block-based data storage |
US9696939B1 (en) * | 2013-03-14 | 2017-07-04 | EMC IP Holding Company LLC | Replicating data using deduplication-based arrays using network-based replication |
US9619477B1 (en) * | 2013-03-15 | 2017-04-11 | Veritas Technologies | Systems and methods for accelerating backup operations |
US10339112B1 (en) * | 2013-04-25 | 2019-07-02 | Veritas Technologies Llc | Restoring data in deduplicated storage |
US9891860B1 (en) * | 2013-06-28 | 2018-02-13 | EMC IP Holding Company, LLC. | Managing copying of data in storage systems |
US9514000B2 (en) | 2014-01-31 | 2016-12-06 | Western Digital Technologies, Inc. | Backup of baseline installation |
WO2015178943A1 (en) * | 2014-05-22 | 2015-11-26 | Hewlett-Packard Development Company, L.P. | Eliminating file duplication in a file system |
US9990156B1 (en) * | 2014-06-13 | 2018-06-05 | EMC IP Holding Company LLC | Deduplicating snapshots associated with a backup operation |
US10860237B2 (en) | 2014-06-24 | 2020-12-08 | Oracle International Corporation | Storage integrated snapshot cloning for database |
EP3161609B1 (en) | 2014-06-27 | 2022-08-03 | Nec Corporation | Storage device, program, and information processing method |
US20170046092A1 (en) * | 2014-07-04 | 2017-02-16 | Hewlett Packard Enterprise Development Lp | Data deduplication |
US10387447B2 (en) * | 2014-09-25 | 2019-08-20 | Oracle International Corporation | Database snapshots |
US10346362B2 (en) | 2014-09-26 | 2019-07-09 | Oracle International Corporation | Sparse file access |
US10659550B2 (en) * | 2014-10-07 | 2020-05-19 | Oath Inc. | Fixed delay storage and its application to networked advertisement exchange |
US9805099B2 (en) * | 2014-10-30 | 2017-10-31 | The Johns Hopkins University | Apparatus and method for efficient identification of code similarity |
US9684569B2 (en) | 2015-03-30 | 2017-06-20 | Western Digital Technologies, Inc. | Data deduplication using chunk files |
US10394760B1 (en) | 2015-04-16 | 2019-08-27 | Western Digital Technologies, Inc. | Browsable data backup |
US11068437B2 (en) | 2015-10-23 | 2021-07-20 | Oracle Interntional Corporation | Periodic snapshots of a pluggable database in a container database |
US10534547B2 (en) * | 2015-12-29 | 2020-01-14 | EMC IP Holding Company LLC | Consistent transition from asynchronous to synchronous replication in hash-based storage systems |
US11036676B2 (en) * | 2016-03-04 | 2021-06-15 | International Business Machines Corporation | Modifying storage space consumed by snapshots |
US10582015B2 (en) * | 2016-03-25 | 2020-03-03 | Amazon Technologies, Inc. | Compression dictionary systems and methods |
US10585611B2 (en) * | 2016-04-26 | 2020-03-10 | Netapp Inc. | Inline deduplication |
US10496668B1 (en) * | 2016-06-28 | 2019-12-03 | EMC IP Holding Company LLC | Optimized tender processing of hash-based replicated data |
US20180173778A1 (en) * | 2016-12-16 | 2018-06-21 | Linkedin Corporation | Database uniqueness constraints |
JP6579149B2 (ja) | 2017-04-20 | 2019-09-25 | 富士通株式会社 | ストレージ制御装置、及びストレージ制御プログラム |
US11068606B2 (en) * | 2017-09-20 | 2021-07-20 | Citrix Systems, Inc. | Secured encrypted shared cloud storage |
US10884868B2 (en) | 2017-10-05 | 2021-01-05 | Zadara Storage, Inc. | Dedupe as an infrastructure to avoid data movement for snapshot copy-on-writes |
US10884651B2 (en) * | 2018-07-23 | 2021-01-05 | EMC IP Holding Company LLC | Storage system with multi-phase verification of synchronously replicated data |
US11068460B2 (en) | 2018-08-06 | 2021-07-20 | Oracle International Corporation | Automated real-time index management |
US11010082B2 (en) * | 2018-10-31 | 2021-05-18 | EMC IP Holding Company LLC | Mechanisms for performing accurate space accounting for volume families |
US11500835B2 (en) | 2019-02-01 | 2022-11-15 | International Business Machines Corporation | Cohort management for version updates in data deduplication |
US10929050B2 (en) * | 2019-04-29 | 2021-02-23 | EMC IP Holding Company LLC | Storage system with deduplication-aware replication implemented using a standard storage command protocol |
US11151049B2 (en) * | 2019-10-24 | 2021-10-19 | EMC IP Holding Company, LLC | System and method for data migration from a CAS storage system to a non-CAS storage system |
US11416462B2 (en) * | 2020-07-13 | 2022-08-16 | EMC IP Holding Company LLC | Techniques for efficient data deduplication |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978791A (en) * | 1995-04-11 | 1999-11-02 | Kinetech, Inc. | Data processing system using substantially unique identifiers to identify data items, whereby identical data items have the same identifiers |
CN1523497A (zh) * | 2003-02-20 | 2004-08-25 | 太和科技股份有限公司 | 一种提供弹性扩充容量磁盘空间的方法 |
CN1573753A (zh) * | 2003-06-06 | 2005-02-02 | 微软公司 | 数据库对象脚本生成方法和系统 |
US20070226444A1 (en) * | 2006-03-22 | 2007-09-27 | Yuichi Yagawa | Method and apparatus for reducing the amount of data in a storage system |
US20090083610A1 (en) * | 2007-09-26 | 2009-03-26 | Hitachi, Ltd. | Storage sub-system and method for controlling the same |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928054B1 (en) * | 2000-09-20 | 2005-08-09 | Nortel Networks Limited | Apparatus, method, media and signals for connection-class parameter control of packet flow |
US7496695B2 (en) * | 2005-09-29 | 2009-02-24 | P.A. Semi, Inc. | Unified DMA |
US8165221B2 (en) | 2006-04-28 | 2012-04-24 | Netapp, Inc. | System and method for sampling based elimination of duplicate data |
US8412682B2 (en) | 2006-06-29 | 2013-04-02 | Netapp, Inc. | System and method for retrieving and using block fingerprints for data deduplication |
US7921077B2 (en) | 2006-06-29 | 2011-04-05 | Netapp, Inc. | System and method for managing data deduplication of storage systems utilizing persistent consistency point images |
DE102006055964A1 (de) | 2006-11-24 | 2008-05-29 | Bdt-Solutions Gmbh | Verfahren und Vorrichtung zur Datensicherung |
US20080250085A1 (en) * | 2007-04-09 | 2008-10-09 | Microsoft Corporation | Backup system having preinstalled backup data |
EP2012235A2 (en) | 2007-07-06 | 2009-01-07 | Prostor Systems, Inc. | Commonality factoring |
US8209506B2 (en) * | 2007-09-05 | 2012-06-26 | Emc Corporation | De-duplication in a virtualized storage environment |
JP2009251725A (ja) * | 2008-04-02 | 2009-10-29 | Hitachi Ltd | 記憶制御装置及び記憶制御装置を用いた重複データ検出方法。 |
US9215066B2 (en) * | 2008-06-25 | 2015-12-15 | Oracle America, Inc. | Method and system for making information in a data set of a copy-on-write file system inaccessible |
US20100186095A1 (en) * | 2009-01-20 | 2010-07-22 | Microsoft Corporation | Method and system for gap based anti-piracy |
CN102378969B (zh) | 2009-03-30 | 2015-08-05 | 惠普开发有限公司 | 拷贝卷中存储的数据的去重复 |
US8051050B2 (en) * | 2009-07-16 | 2011-11-01 | Lsi Corporation | Block-level data de-duplication using thinly provisioned data storage volumes |
US8898121B2 (en) * | 2012-05-29 | 2014-11-25 | International Business Machines Corporation | Merging entries in a deduplication index |
US9633033B2 (en) * | 2013-01-11 | 2017-04-25 | Commvault Systems, Inc. | High availability distributed deduplicated storage system |
-
2009
- 2009-03-30 CN CN200980158509.6A patent/CN102378969B/zh not_active Expired - Fee Related
- 2009-03-30 WO PCT/IN2009/000206 patent/WO2010113167A1/en active Application Filing
- 2009-03-30 EP EP09842560A patent/EP2414940A4/en not_active Ceased
- 2009-03-30 US US13/260,304 patent/US9009429B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978791A (en) * | 1995-04-11 | 1999-11-02 | Kinetech, Inc. | Data processing system using substantially unique identifiers to identify data items, whereby identical data items have the same identifiers |
CN1523497A (zh) * | 2003-02-20 | 2004-08-25 | 太和科技股份有限公司 | 一种提供弹性扩充容量磁盘空间的方法 |
CN1573753A (zh) * | 2003-06-06 | 2005-02-02 | 微软公司 | 数据库对象脚本生成方法和系统 |
US20070226444A1 (en) * | 2006-03-22 | 2007-09-27 | Yuichi Yagawa | Method and apparatus for reducing the amount of data in a storage system |
US20090083610A1 (en) * | 2007-09-26 | 2009-03-26 | Hitachi, Ltd. | Storage sub-system and method for controlling the same |
Cited By (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831127A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 重复数据处理方法、装置及系统 |
CN102831127B (zh) * | 2011-06-17 | 2015-04-22 | 阿里巴巴集团控股有限公司 | 重复数据处理方法、装置及系统 |
US9672218B2 (en) | 2012-02-02 | 2017-06-06 | Hewlett Packard Enterprise Development Lp | Systems and methods for data chunk deduplication |
CN104350514A (zh) * | 2012-03-19 | 2015-02-11 | 加拿大皇家铸币厂 | 资产存储和转移系统中的外部日志存储 |
CN104205743A (zh) * | 2012-03-20 | 2014-12-10 | 华为技术有限公司 | 无线接入网中用于内容分发的方法和装置 |
CN103377285A (zh) * | 2012-04-25 | 2013-10-30 | 国际商业机器公司 | 用于增强对存储云去重技术的可靠性的方法与系统 |
CN104246720B (zh) * | 2012-05-01 | 2016-12-28 | 惠普发展公司,有限责任合伙企业 | 确定用于去重复的段边界 |
CN104246720A (zh) * | 2012-05-01 | 2014-12-24 | 惠普发展公司,有限责任合伙企业 | 确定用于去重复的段边界 |
CN105074688B (zh) * | 2012-12-27 | 2018-04-17 | 阿卡麦科技公司 | 使用对等节点图的基于流的数据去重复 |
CN105074688A (zh) * | 2012-12-27 | 2015-11-18 | 阿卡麦科技公司 | 使用对等节点图的基于流的数据去重复 |
US10200467B2 (en) | 2012-12-27 | 2019-02-05 | Akamai Technologies, Inc. | Stream-based data deduplication with peer node prediction |
CN105009508A (zh) * | 2013-02-22 | 2015-10-28 | 国际商业机器公司 | 基于网络参数的完整性校验和选择性去重复 |
CN105009508B (zh) * | 2013-02-22 | 2017-12-29 | 国际商业机器公司 | 一种基于网络参数的完整性校验和选择性去重复的方法及装置 |
US10496490B2 (en) | 2013-05-16 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
US10592347B2 (en) | 2013-05-16 | 2020-03-17 | Hewlett Packard Enterprise Development Lp | Selecting a store for deduplicated data |
CN103645970A (zh) * | 2013-12-13 | 2014-03-19 | 华为技术有限公司 | 一种远程复制多快照间增量去重的实现方法及装置 |
CN103645970B (zh) * | 2013-12-13 | 2017-04-19 | 华为技术有限公司 | 一种远程复制多快照间增量去重的实现方法及装置 |
CN106663047A (zh) * | 2015-01-13 | 2017-05-10 | 森普利维蒂公司 | 用于优化的签名比较和数据复制的系统和方法 |
CN106663047B (zh) * | 2015-01-13 | 2021-01-08 | 慧与发展有限责任合伙企业 | 用于优化的签名比较和数据复制的系统和方法 |
US10884633B2 (en) | 2015-01-13 | 2021-01-05 | Hewlett Packard Enterprise Development Lp | System and method for optimized signature comparisons and data replication |
CN108369487B (zh) * | 2015-11-25 | 2021-05-04 | 华睿泰科技有限责任公司 | 用于在去重虚拟文件系统中拍摄快照的系统和方法 |
CN108369487A (zh) * | 2015-11-25 | 2018-08-03 | 华睿泰科技有限责任公司 | 用于在去重虚拟文件系统中拍摄快照的系统和方法 |
CN108228096A (zh) * | 2016-12-21 | 2018-06-29 | 慧与发展有限责任合伙企业 | 存储系统去重复 |
CN107423165A (zh) * | 2017-08-01 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种数据快照首写拷贝方法及装置 |
WO2019080717A1 (zh) * | 2017-10-23 | 2019-05-02 | 阿里巴巴集团控股有限公司 | 一种磁盘快照的数据处理方法及装置 |
CN109697021A (zh) * | 2017-10-23 | 2019-04-30 | 阿里巴巴集团控股有限公司 | 一种磁盘快照的数据处理方法及装置 |
CN109582638A (zh) * | 2018-10-25 | 2019-04-05 | 平安科技(深圳)有限公司 | 快照卷数据拷贝方法、装置及计算机可读存储介质 |
CN109582638B (zh) * | 2018-10-25 | 2023-08-22 | 平安科技(深圳)有限公司 | 快照卷数据拷贝方法、装置及计算机可读存储介质 |
CN110704407A (zh) * | 2019-09-04 | 2020-01-17 | 苏宁云计算有限公司 | 一种数据去重的方法和系统 |
CN110704407B (zh) * | 2019-09-04 | 2022-07-05 | 苏宁云计算有限公司 | 一种数据去重的方法和系统 |
CN110795389A (zh) * | 2019-10-28 | 2020-02-14 | 深信服科技股份有限公司 | 基于存储快照的拷贝方法、用户设备、存储介质及装置 |
CN110795389B (zh) * | 2019-10-28 | 2022-09-30 | 深信服科技股份有限公司 | 基于存储快照的拷贝方法、用户设备、存储介质及装置 |
US11442895B2 (en) * | 2020-07-27 | 2022-09-13 | EMC IP Holding Company LLC | Method for copying data, electronic device and computer program product |
CN114253466A (zh) * | 2020-09-23 | 2022-03-29 | 慧与发展有限责任合伙企业 | 数据去重参数计算 |
Also Published As
Publication number | Publication date |
---|---|
EP2414940A1 (en) | 2012-02-08 |
US20120017060A1 (en) | 2012-01-19 |
EP2414940A4 (en) | 2012-11-28 |
US9009429B2 (en) | 2015-04-14 |
WO2010113167A1 (en) | 2010-10-07 |
WO2010113167A4 (en) | 2010-12-23 |
CN102378969B (zh) | 2015-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102378969A (zh) | 拷贝卷中存储的数据的去重复 | |
US11567917B2 (en) | Writing data and metadata into storage | |
US8856469B2 (en) | Apparatus and method for logging optimization using non-volatile memory | |
CN111480149B (zh) | 持久存储器设备中的预写式日志记录 | |
US7788244B2 (en) | Method and system for copying a snapshot tree | |
US8234468B1 (en) | System and method for providing variable length deduplication on a fixed block file system | |
US7747664B2 (en) | Storage system format for transaction safe file system | |
KR101930092B1 (ko) | 데이터 이용가능성의 마운트타임 조정 | |
US9336095B2 (en) | Computing system and related data management method thereof | |
US11474708B2 (en) | Memory system for handling a bad block and operation method thereof | |
US7970804B2 (en) | Journaling FAT file system and accessing method thereof | |
US8041676B2 (en) | Backup and restore of file system objects of unknown type | |
US11487663B2 (en) | Method of operating storage device, storage device performing the same and storage system including the same | |
US8578359B2 (en) | Method and apparatus for reliable in-place update | |
CN103559139A (zh) | 一种数据存储方法及装置 | |
CN110187834B (zh) | 重删副本的数据处理方法、装置、电子设备 | |
US20090112951A1 (en) | Apparatus and method of managing files and memory device | |
KR101456104B1 (ko) | 비휘발성 메모리를 위한 듀얼 버퍼링 파일 관리 방법, 파일 관리 시스템 및 대용량 저장 장치 | |
Yuan et al. | Comprehensive evaluation of file systems robustness with SPIN model checking | |
WO2009049023A2 (en) | Multi-way checkpoints in a data storage system | |
CN116225776A (zh) | 一种固态硬盘的数据恢复方法、装置及设备 |
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 | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170116 Address after: Texas, USA Patentee after: HEWLETT PACKARD ENTERPRISE DEVELOPMENT L.P. Address before: Texas, USA Patentee before: Hewlett-Packard Development Co.,L.P. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150805 |
|
CF01 | Termination of patent right due to non-payment of annual fee |