CN101996233B - 用于对经重复删除的数据进行复制的方法和系统 - Google Patents

用于对经重复删除的数据进行复制的方法和系统 Download PDF

Info

Publication number
CN101996233B
CN101996233B CN201010251595XA CN201010251595A CN101996233B CN 101996233 B CN101996233 B CN 101996233B CN 201010251595X A CN201010251595X A CN 201010251595XA CN 201010251595 A CN201010251595 A CN 201010251595A CN 101996233 B CN101996233 B CN 101996233B
Authority
CN
China
Prior art keywords
data
storehouse
piece
grid
duplication
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.)
Expired - Fee Related
Application number
CN201010251595XA
Other languages
English (en)
Other versions
CN101996233A (zh
Inventor
S·H·阿基拉维
A·J·伊什-沙罗姆
L·阿罗诺维奇
Y·巴雷尔
O·勒尼曼
R·阿舍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101996233A publication Critical patent/CN101996233A/zh
Application granted granted Critical
Publication of CN101996233B publication Critical patent/CN101996233B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms

Landscapes

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

Abstract

本发明提供了一种用于对经重复数据删除的数据进行复制的方法和系统。具体地,提供了用于使用处理器设备对经重复数据删除的数据进行复制的各种实施方式。为在源库中创建的经重复数据删除的数据的块指派全局块标识(id),该全局块id在包括源库的网格集合中是唯一的。全局块id是使用块、网格集合的包含网格和源库中的至少一个唯一标识值生成的。将全局块id从源库向目标库传输。如果目标库确定全局块id与位于目标库中的经重复数据删除的数据的已有块相关联,则在后续复制过程期间目标库不接收该块。

Description

用于对经重复删除的数据进行复制的方法和系统
技术领域
本发明总体上涉及计算机,并且更具体地涉及用于在计算存储环境中对经重复数据删除的(deduplicated)数据进行复制的装置、方法和计算机程序产品实施方式。
背景技术
重复数据删除系统可以使各种逻辑数据存储实体(诸如,文件、数据对象、备份图像、数据快照或虚拟盒式磁带)具体化。通常需要将这种数据存储实体从其原始站点向远程站点复制。复制的数据实体增强了数据的可用性和容错能力。越来越需要这种容错和广泛的可用性。尽管若干已有方法可以用于执行数据复制,并且具体地,用于执行经重复数据删除的数据实体的复制,但是这些方法都伴随有局限性,这些局限性会负面影响复制效率、系统性能和数据一致性;需要附加的开销;或者上述的组合。
发明内容
重复数据删除是指针对冗余数据的精简和/或消除。在重复数据删除过程中,数据的重复拷贝被精简或消除,从而分别留下数据少量的冗余拷贝或者数据的单个拷贝。使用重复数据删除过程带来各种益处,诸如减小了所需存储容量并增大了网络带宽。归因于这些和其他益处,近些年,重复数据删除已成为计算存储系统中非常重要的技术领域。提供重复数据删除功能性的挑战包括这些方面,诸如,在通常大型存储库中高效地找到重复的数据模式,以及利用经重复数据删除的存储有效形式来存储该数据模式。
鉴于现有技术目前的状态,需要一种用于对经重复数据删除的数据进行复制的机制,其满足高效复制过程的所有要求,同时避免了现有方法的局限性,由此改进了用于对经重复数据删除的数据进行复制的现有方法。因此,提供了用于对经重复数据删除的数据进行复制的各种实施方式。在一个这种实施方式中,仅作为示例,提供了一种用于使用处理器设备对经重复数据删除的数据进行复制的方法。在源库中创建的经重复数据删除的数据块被指派以全局块标识(id),该标识在包括源库在内的网格集合中是唯一的。全局块id是使用网格集合的包含网格、源库和块的至少一个唯一标识值生成的。全局块id从源库向目标库传输。如果目标库确定该全局块id与位于该目标库中经重复数据删除的数据的已有块相关联,则该目标库在随后的复制过程期间不会接收该块。
除了上述示例性方法实施方式以外,提供了其他示例性系统和计算机产品实施方式,并带来了相关优势。
附图说明
为了容易地理解本发明的优势,将通过参考附图中示出的特定实施方式来给出以上简要描述的本发明的更具体描述。应当理解,在附图描绘了本发明的实施方式,而并不由此用来限制其范围的条件下,将通过使用附图、利用附加的特定性和细节来描述和说明本发明,其中:
图1示出了本发明的诸方面可以在其中实施的示例性计算环境;
图2示出了全局块标识(ID)的示例性结构;
图3示出了用于提供在源库与目标库之间对经重复数据删除的数据进行复制的示例性结构;
图4示出了用于在源库与目标库之间对经重复数据删除的数据进行复制的示例性方法;
图5示出了用于在源库与目标库之间对经重复数据删除的数据进行复制的附加示例性方法,其包括对经重复数据删除的数据进行处理;以及
图6示出了在诸如图1所示计算环境的计算环境中、包括处理器设备的示例性计算设备。
具体实施方式
现在转到图1,描绘了计算环境中数据存储系统(例如,虚拟磁带系统)的示例性架构10。架构10向本地主机18和20提供存储服务,以及向远程数据存储系统提供复制数据,如所示。与存储设备14通信的本地存储系统服务器12通过包括部件(诸如,光纤通道交换机16)的网络与本地主机18和20连接。光纤通道交换机16能够例如执行针对磁带设备的命令(诸如,小型计算机系统接口(SCSI)命令)。本领域技术人员应当理解,架构10可以包括各种存储部件。例如,存储设备14可以包括传统硬盘驱动(HDD)设备,或者可以包括固态驱动(SSD)设备。
本地存储系统服务器12通过网络22与远程存储系统服务器24连接。远程服务器24与本地连接的盘存储设备26通信;以及经由另一网络和网络部件28(诸如,光纤通道交换机28)与本地连接的主机30和32连接。网络22可以包括各种网络拓扑,诸如广域网(WAN)、局域网(LAN)、存储区域网(SAN)和其他配置。类似地,交换机16和28可以包括其他类型的网络设备。
如前所述,架构10向本地主机提供本地存储服务,以及向远程数据存储系统提供复制数据(由使用箭头34的数据复制功能性指示)。如将要描述的,本发明的各种实施方式和请求保护的主题可以实现在架构(诸如架构10)上。例如,在一个实施方式中,盘存储设备14可以是经重复数据删除的存储系统的部分,用于存储经重复数据删除的数据实体。经重复数据删除的数据实体继而可以经历数据复制过程34,借由该过程,经重复数据删除的数据实体在远程盘存储设备26上得以复制。这些过程将在下文进一步描述。
这种将以经重复数据删除的形式驻留在经重复数据删除的存储系统内的数据实体向远程重复数据删除存储系统进行复制的过程,从源系统和目的地系统二者上的处理时间和存储要求的角度看来应该是高效的,并且应当可以利用重复数据删除存储系统的特点来促进这种效率。
高效复制过程应当解决以下考虑:(1)复制的数据实体应当以存储高效的经重复数据删除的形式存储在目标存储系统中,(2)复制过程所需的网络带宽应当最小化,(3)目标存储系统内的复制实体的数据应当可用于针对在目标系统上处理的数据的重复数据删除,(4)复制过程应当确保复制数据实体的源拷贝与目标拷贝之间的完全一致性(即,复制数据实体的源拷贝与目标拷贝之间存在差异的概率应当为0),以及(5)源存储系统和目标存储系统可以具有不同的结构和布局。
存在用于数据复制的若干方法,其可以用来设计和实现重复数据删除存储系统的复制机制。对于使用数学上较强的摘要(例如,消息摘要(MD)和安全哈希算法(SHA)哈希函数集)、基于数据分段的内容来标识、存储和取回数据分段的重复数据删除系统而言,这些摘要值也可以用于复制机制。可以通过在源系统与目标系统之间交换将要复制的数据的这种摘要值来实现带宽减小,此外,复制数据的摘要值可以用于目标侧的重复数据删除过程。然而,使用这种方法会使复制过程经受数据的源拷贝和复制拷贝之间的不一致性概率不为零,这是因为依赖的是摘要值而不是实际的数据。此外,存在这样的重复数据删除系统,其不依赖于数学上较强的摘要,并且针对这样的重复数据删除系统而言,实现这种复制方法会带来存储的显著开销和这种附加值的使用。
盘复制通常基于从源设备到其目标设备传播写入操作。同步复制表示这样的情境,其中仅当所有目标设备确认了写入操作时,才认为源设备上的写入操作完成。这一方法保证了源设备与目标设备之间的完全一致性。但是,同步复制机制通常降低了性能。备选地,异步复制涉及这样的情境,其中只要本地操作完成,就认为源设备上的写入操作完成。写入操作的复制是在后台异步执行的。这一方法改进了性能;问题在于最近的写入操作可能在源设备故障的情况下丢失。在盘复制方法中,由于复制的是物理写入操作,其特点在于,该写入操作所影响的源设备上的块的物理位置,所以在相对于源设备的目标设备的结构和布局上施加了约束。另外,由于盘复制将在重复数据删除系统的软件层以下使用,这样的机制不支持仅处理特定于应当复制的数据实体(以其逻辑上稳定的形式)的块,由此可能复制额外的不相关的块,并且因此增加了复制所需的系统资源(网络带宽和存储二者)。更高效的是集成在重复数据删除系统软件层内的机制,给定要复制的特定数据实体,其知道应当被复制的特定相关数据块。
事务性数据的复制通常基于源系统将更新写入日志,并继而向目标系统复制写入日志的数据。目标系统确认接收到复制的更新,由此允许进行后续更新的复制。还存在这样的协议,其支持经由多个存储系统而不是一个存储系统来对数据实体执行更新。此类别的方法通常在数据库系统中使用。然而,在重复数据删除存储系统(其可能不是事务性的)的上下文中,可能没有要复制的更新日志,因此这一方法并不适用。此外,由于这种更新的日志通常可能与比应当复制的数据实体大或者以其他方式不同的数据实体相关联,所以可能复制额外的不相关块,由此增加了复制所需的网络带宽和存储资源。
下文描述的实施方式提供了一种用于对经重复数据删除的数据进行复制的新方法,其满足高效复制过程的上述所有考虑,同时避免前述已有方法的局限性,由此改进了用于对经重复数据删除的数据进行复制的已有方法。在一个示例中,所示实施方式的机制可以针对重复数据删除存储系统,其将所存储的经重复数据删除的数据划分成大小可变的块并实现存储效率,这是通过给定在先标识重复出现的数据模式(经由任何适当的方法),重复参考包含这种重复出现的数据模式的部分的经重复数据删除的数据块而实现的。
贯穿下文描述和请求保护的主题,描述属于所示实施方式的下述术语。“库”意在指示这样的存储,其与单个或若干处理器相关联,并且其数据内容以经重复数据删除的形式存储。库可以具有虚拟存储的诸多方面。备选地,库可以具有对应于物理存储的诸多方面,或者可以包括物理和虚拟存储二者的诸多方面。“网格”意在指示库的集合,其中库的数据实体可以被复制到网格中的每个其他库。“网格集合”意在指示所有网格的集合,其中库可以在网格集合中的网格之间迁移。库可以在任意给定时间被指派给单个网格。通过从网格中的远程源库复制的方式,或者通过从本地源接收传入数据(例如,备份流)的任何其他支持方式,可以将数据流式传输至库中。
如将贯穿全文所见,所示实施方式提供了为在库中创建的经重复数据删除的数据的每个新块(即,这样的块,已经确定了其数据对于库而言是新的)指派在网格集合中唯一的标识值。通过将包含网格、库和块的唯一标识值组合,生成这种唯一的块标识(这将在下文描述)。此唯一的块标识具有促进诸如下文的高效复制过程的特性。首先,尽管块标识唯一地标识块的数据内容,但是其不以概率论方式(诸如,摘要函数)依赖于块的数据内容。因此,块标识基于这些标识值消除了在修剪重复出现的数据块期间的任何错误匹配,并且针对数据损坏提供了完全的安全性。第二,块标识独立于块在库中的物理位置,由此避免了对源库和目标库的结构和布局的任何约束。第三,块标识值永不重复利用。结果,块标识值的生成和管理是简单的,并且消除了陈旧块引用的可能性。
唯一的块标识值用于在所有复制过程中标识数据块的重复出现,由此增强了这些过程的效率(这将在下文描述)。这些值从源库向目标库传输。存储被指派有唯一标识值B的块的目标库不会在复制期间再次接收具有相同唯一标识值B的块,而是会重复使用已经位于存储中的相同块。
除了指派和传输唯一块标识值以外,所示实施方式还提供了这样的机制,借由该机制,针对每个块或块集合,支持重复数据删除的相关联表征也被传输到目标库,并且插入到目标库内的重复数据删除索引中。所使用的重复数据删除方法和相关联的数据表征可以是本领域技术人员公知的任何类型。在一个实施方式中,重复数据删除表征构成了与所使用的重复数据删除方法结合使用的重复数据删除索引的部分。针对复制的每个文件,例如,向目标库传输重复数据删除索引的匹配部分(作为重复数据删除表征)。在一个实施方式中,重复数据删除索引可以包括用于将文件数据的新分段与文件数据的旧分段进行匹配的数学计算。在其他示例中,重复数据删除索引可以包括相关联文件数据的块的哈希值索引。
将重复数据删除表征嵌入在目标库中支持对流式传输至目标库中的传入数据的重复数据删除过程,以便在该库中找到适当的数据以用于重复数据删除目的。即,块B在传入数据流中到达目标库内,并且其与另一块B类似或者相同,此另一块B已在之前到达复制的数据实体内,其将被考虑用于针对块B的重复数据删除,并且将作为对块B的参考而存储在目标库中。
鉴于上文,所示实施方式支持实现高效复制过程,并且如下解决了高效复制的之前五个方面。首先,复制的数据实体以存储高效的经重复数据删除形式存储在目标存储系统中,而无需除传输所需数据块(已经是经重复数据删除的形式)以外的任何进一步处理。经重复数据删除的块可以以进一步压缩或以其他方式重新布置的形式(例如,加密的)存储,并且在复制过程期间,源库或目标库都无需执行解码操作的提取。块从源库向目标库传输,并且以与其在源库中的保存形式一样的形式存储在目标库中。
第二,数据实体的复制过程所需的网络带宽可以通过仅传输尚未存在于目标库中的经重复数据删除的数据块而得以最小化。第三,目标库内复制实体的数据可用于针对在目标库上处理的数据的重复数据删除,这借助于传输经重复数据删除的数据块和其支持重复数据删除的表征。第四,复制方法确保复制数据实体的源拷贝和目标拷贝之间的完全一致性。第五也是最后一点,源库和目标库可以具有不同结构和布局。
在库中创建的经重复数据删除的数据的每个新块被指派有标识值,其在网格集合中是唯一的。在一个实施方式中,可以使用以下方法生成唯一的块标识。第一,计算唯一的网格标识(在此称为“网格id”)。在一个实施方式中,这可以通过递增由与网格集合对应的且促进该网格集合内网格生成的软件实体(标记为网格集合管理器)所维护的网格id变量的值来实现。备选地,用户可以指派唯一的网格id。
库是独立于网格创建的,并且继而可以被指派给网格,并且进一步在同一网格集合中于网格之间迁移(在任何给定时间,库可以与单个网格相关联)。响应于将库指派给网格,向库指派唯一的“库id”,该“库id”是通过递增由与网格对应的且促进库附属于该网格的软件实体(标记为网格管理器)所维护的库id变量的值而计算的。备选地,用户可以指派唯一的库id。唯一的“块id”是通过递增由与库对应的且促进该库内的块的分配的软件实体(标记为库管理器)所维护的块id变量的值而计算的。
如上所述的对应于网格集合、网格和库的软件实体可以按照本领域技术人员的预期实现。例如,特定的软件实体可以称为“网格管理器”。网格管理器软件可以辅助管理上述各种id。例如,网格管理器可以确定是否已经指派了特定网格id,并且向新的网格指派网格id。类似地,网格管理器或其他软件实体可以管理和指派库id和块id。网格管理器软件可以结合其他存储管理软件实现,这也是本领域技术人员可以预期的。
块id与网格id和库id的组合定义为给定块的“全局块id”(标记为GBID),并用作该块在网格集合中的唯一标识值。现在转到图2,其示出了GBID 36的示例性数据结构。GBID 36包含对应于特定网格的网格id 38、对应于特定库的库id 40和对应于特定块的块id 42的组合。
当分配了从本地处理的传入数据流起源的、经重复数据删除的数据的新块时,还分配新的GBID并将其指派给该块。然而,当在复制过程期间接收到经重复数据删除的数据的新块时,将从源库接收的其GBID保存起来,并且还在目标库中使用。GBID可以记录如下。第一,对于经由复制过程接收的块,其GBID按照接收时的原样记录。对于经由库内的本地数据处理接收的块,将其GBID记录在库中,使得其网格id组分和库id组分设置为空值。注意,在库内,块id组分支持对块的唯一标识。响应于向目标库传输了这种块,向块id组分添加网格id组分和库id组分的适当值以形成完整的GBID值。这使得网格之间的库迁移更加容易,因为在迁移库时,没有持久的块级数据要修改。
GBID各组分的值永不重复利用。因此,每个组分都定义得足够大,以便容纳至少某一定义时间帧的连续处理。相关网格集合和网格的元数据维护在每个相关联的库中,使得每个库可以独立于该网格集合和网格的元数据和软件实体来处理通信。
在一个实施方式中,软件实体可以存储这样的标识文件,其具有与软件实体负责的每个网格有关的信息。此信息可以包括与网格内的某些库和该库内的某些块有关的等价信息。此信息可以包括前述网格id、库id和块id。此外,此信息可以包括与特定网格相关联的网际协议(IP)地址或特定网格的成员。出于冗余目的,标识文件可以存储在多个位置。
在下文中,图3示出了各种结构,其在上文被描述为并入到包括之前在图1中所示存储设备14和26的经重复数据删除的存储系统中。存储设备14作为源设备14,而远程设备26作为目标设备26。源设备14包括网格集合44。示出了三个网格A、B和C(网格46、48和50)。如所示,库A(库52)包含于网格46中。其他库(诸如,库B和/或库C)可以包含于网格46、包含于网格48、包含于网格集合44,或者可以与另一源14一起定位和/或相关联,或者可以位于本领域技术人员可以预期的任何地方。如所示,块A-C(块58、60和62)包含于库52中。最后,GBID 64与块58相关联。
通过复制过程34,将GBID 64通过网络22向目标设备26传输。目标设备26包括与针对源设备14在之前描述的结构类似和对应的各种结构,包括网格集合66、网格68、70和72、库74、块80、82和84,以及GBID 64。本领域技术人员将会理解,尽管示出了若干网格、库、块等,但是特定源和目标设备可以包括多个这些结构,并且此外,这些结构可以位于任何其他地方。此外,尽管将GBID 64示出为包含于块58和80中,但是这种示出的目的在于方便示出GBID 64与这些块相关联。因此,本领域技术人员将理解,GBID 64可以在逻辑上或者物理上位于经重复数据删除的存储系统内的另外的地方,或者任何其他地方。
全局块id用于在复制过程中标识块的重复出现,因此节省了复制和存储经重复数据删除的格式的数据(在源库中这样保存的,无需进一步处理)所需的带宽。现在转到图4和图5,提供了用于源库和目标库之间的重复数据删除处理和复制的示例性方法90和122。本领域技术人员将会理解,方法90和122中的各种步骤可以以不同方式实现,以适合于特定应用。另外,所描述的方法可以利用在计算存储环境上操作的或以其他方式与之相关联的各种装置实现,诸如,硬件、软件、固件或其组合。例如,该方法可以部分或全部实现为计算机程序产品,其包括存储有计算机可读程序代码部分的计算机可读存储介质。计算机可读存储介质可以包括盘驱动器、闪存、数字通用盘(DVD)、压缩盘(CD)、固态设备(诸如,固态驱动器(S SD))和其他类型的存储介质。
首先转到图4,给出了源设备14(包含一个或多个源库)和目标设备26(包含一个或多个目标库)(也参见例如图1)之间的示例性复制的框图。方法90开始于步骤92,其中定位源库中存储有复制的实体的数据的经重复数据删除的存储块。在下一步骤中,向目标库传输这些块的GBID值(步骤94)。目标库接收这些GBID值,并使用GBID索引来本地搜索这些id的存在。目标库随后将GBID值划分成之前定位在目标库中的值(已存在),和之前未定位在目标库中的值(之前不存在)(步骤96)。
指定为之前不存在于目标库上的GBID值被传送回源库(步骤98)。源库加载与该之前不存在的GBID值相关联的块的数据(步骤100)。源库继而将向目标库传输的块的GBID值记录在其GBID索引中(步骤102)。源库将与之前不存在的id相关联的块的数据以其存储的形式(例如,压缩的)向目标库传输。
一旦目标库接收到数据,则目标库递增已有块的参考计数(步骤106)、以块被接收的形式(在源库中的保存形式)存储所接收的(不存在)的块,并且相应地递增其参考计数(步骤108)。在下一步骤中,目标库将所接收块的GBID值记录在其GBID索引中(步骤110)。继而,将复制的数据的分段与容纳这些分段的经重复数据删除的存储块之间的映射记录在目标库中(步骤112)。
一旦记录了映射,则目标库向源库传输数据已接收到并且已经执行了此类活动的确认(步骤114)。响应于接收到确认,源库定位与复制的数据实体相关联的重复数据删除表征(如前所述,可以是任何类型)(步骤116),并向目标库传输复制的数据实体的重复数据删除表征(步骤118)。目标库接收重复数据删除表征,并将其本地记录在搜索数据结构中以进行重复数据删除(步骤120)。方法90结束于目标库向源库发送接收到表征并已记录的附加确认(步骤122)。
尽管图4以框图格式描绘了复制的示例过程,但是在这种复制之前可以发生涉及由源库接收传入数据的附加过程。这归因于此事实,即,新数据随着计算存储环境的操作而持续地流式传输至经重复数据删除的存储系统。另外,涉及由目标库读取复制数据的过程可以在这种复制之后发生。在下文中,除了前述复制过程之外,图5还以流程图形式提供了这些过程的示例性说明。
方法122开始(步骤124),其中基于存储在库中的数据的重复数据删除表征、针对库中的已有数据对传入数据进行了重复数据删除(通过使用任何适当方法)。最后,将经重复数据删除的数据划分成已经存在于库中的块和未存在于库中的新块(步骤126)。注意,无论使用哪个重复数据删除表征都可以与在库内本地处理的传入数据相关联,或者与从其他库复制到该库的数据相关联,这将在下文详述。还向库添加传入数据的重复数据删除表征,以用于其他传入数据的重复数据删除。
对于存在于库中的块,其参考计数递增。对于新的块,(针对每个新的块)生成新的全局块id(GBID),并且将新块和其GBID(其中网格id组分和库id组分在GBID内设置为空值)存储在库中(步骤128)。将传入数据的分段到容纳这些分段的经重复数据删除的存储块的映射记录在库中。此映射支持在使用经重复数据删除的块存储传入数据流之后对该传入数据流的重建,以用于读取目的。
一旦传入数据进行了如前所述的处理,则可以复制经重复数据删除的数据。在源库中定位存储复制实体的数据的经重复数据删除的存储块,并将这些块的GBID值向目标库传输(步骤130)。目标库接收这些GBID值,并使用GBID索引来本地搜索这些id的存在,随后将这些id划分成已存在的id和不存在的id(步骤132),以及将不存在的id传送回源库。源库加载与新的、不存在的id相关联的块的数据(步骤134)、将接收的不存在的GBID记录在其GBID索引中(步骤136),以及以其存储的形式(例如,压缩的)、将与不存在的GBID相关联的块的数据向目标库传输(步骤138)。
如果与传输的数据相关联的GBID之前被确定为已存在(步骤140),则目标库在前进到步骤150之前递增相关联的已有块的参考计数(步骤142)。如果与所传输数据相关联的GBID之前被确定为新的(还是在步骤140中),则目标库以块被接收的形式(在源库中存储的形式)存储所接收的(不存在的)块(步骤144),并相应地递增其参考计数(步骤146)。目标库将所接收块的新GBID值记录在其GBID索引中(步骤148)。在下一步骤中,复制的数据的分段到容纳这些分段的经重复数据删除的存储块的映射记录在目标库中(步骤150)。
在传输确认(步骤152)之后,源库定位(步骤154)并传输与复制的数据实体相关联的经重复数据删除的表征(还是任何类型)(步骤156)。目标库接收经重复数据删除的表征,并在向源库传输第二确认(步骤160)之前将其本地记录在搜索数据结构中以用于重复数据删除(步骤158)。由于从源库复制到目标库的数据可用于针对目标库中本地处理的数据的重复数据删除,因此本地处理的数据实体也可以使用最初经由复制从源库接收的经重复数据删除的块而存储在目标库中。当将这种数据实体从目标库向源库复制时,容纳这些实体的诸部分的经重复数据删除的块(最初从源库接收的)并未被传输回源库,因为响应于向目标库传送,其GBID值记录在了源库的GBID索引中。
如前所指示的,在复制过程之后的点处,可以读取目标库中复制实体的数据。当这发生时,目标库取回前述复制的实体到经重复数据删除的存储块的映射(步骤162)。基于上述映射,将适当的存储块加载至存储器中,以及从这些块取回适当的数据分段(步骤164)。方法122继而结束(步骤166)。
在有些实施方式中,可以经由复制过程从其他库接收新的(不存在的)块或者在本地处理的传入数据的帧中接收。尽管针对新块生成GBID在这些情况中有所不同(如上所指出的),但是针对这两种情况以相同的方式存储新块的数据。通常,分配逻辑存储段以容纳新块的群组,并且新块存储在所分配的存储段内。此逻辑存储段可以物理上位于库中的任何地方,这取决于库的内部逻辑和优化。相应地,所示实施方式的机制因此不会相对于源库而向目标库的结构和布局施加任何约束。
在下文中,图6提供了图1中所示计算机环境10的部分的示例,其中可以实现前述实施方式的机制。然而,应当理解,图6仅是示例性的,并且不意在陈述或暗含对各种实施方式的示例性方面可以在其中实现的特定架构的任何限制。在不脱离以下描述和请求保护主题的范围和精神的前提下,可以对图6中所示架构做出很多修改。
图6示出了可以用于实现本发明实施方式的示例性计算机环境的部分200。计算机202包括处理器204和存储器206,诸如随机访问存储器(RAM)。在一个实施方式中,存储系统服务器12(图1)可以包括与计算机202中所示部件类似的部件。计算机202可操作地耦合到显示器219,其在图形用户界面218上向用户呈现诸如窗口之类的图像。计算机202可以耦合到其他设备,诸如键盘216、鼠标220、打印机228等。当然,本领域技术人员将认识到,上述部件的任何组合或者任意数量的不同部件、外设和其他设备可以与计算机202一起使用。
一般而言,计算机202在存储于存储器206中的操作系统(OS)208(例如,z/OS、OS/2、LINUX、UNIX、WINDOWS、MAC OS)的控制下操作,并与用户对接以例如通过图形用户界面(GUI)模块232接受输入和命令以及呈现结果。在本发明的一个实施方式中,OS 208促进备份机制。尽管GUI模块232被绘制为单独的模块,但是执行GUI功能的指令可以驻留在或分布在操作系统208、应用210中,或利用专用存储器和处理器实现。OS 208包括复制模块240,其可以适用于执行上述示例性实施方式中的各种过程和机制。复制模块240可以以硬件、固件或硬件和固件的组合实现。在一个实施方式中,复制模块240可以具体化为专用集成电路(ASIC)。如本领域技术人员将理解的,与复制模块240相关联的功能性也可以与和处理器204、存储器206及计算机202的其他部件相关联的功能性一起具体化在公知为片上系统(SoC)的专用ASIC中。此外,与复制模块相关联的功能性(或者计算机202的其他部件)可以实现为现场可编程门阵列(FPGA)。
如图6所示,计算机202包括编译器212,其允许以诸如COBOL、PL/1、C、C++、JAVA、ADA、BASIC、VISUAL BASIC或任何其他编程语言之类的编程语言编写的应用程序210转译成处理器204可读的代码。在编译后,计算机程序210使用利用编译器212生成的关系和逻辑来访问,并操纵存储在计算机202的存储器206中的数据。计算机202可选地还包括外部数据通信设备230,诸如调制解调器、卫星链路、以太网卡、无线链路或用于例如经由互联网或其他网络与其他计算机通信的其他设备。
数据存储设备222是直接访问存储设备(DASD)222,包括保存有多个数据集的一个或多个主卷。DASD 222可以包括多个存储介质,诸如,硬盘驱动器(HDD)、磁带等。数据存储设备236还可以以与设备222类似的方式包括多个存储介质。设备236可以被指定为备份设备236,用于保存主要存储在设备222上的多个数据集的备份版本。如本领域技术人员将理解的,设备222和236不需要位于同一机器上。设备222可以在地理上位于不同区域中,并且由诸如以太网的网络链路连接。设备222和236可以包括一个或多个卷,针对每个卷具有相应的卷目录表(VTOC)。
在一个实施方式中,实现操作系统208、计算机程序210和编译器212的指令有形地具体化在计算机可读介质中(例如,数据存储设备220),其可以包括一个或多个固定或可移除数据存储设备224,诸如压缩磁盘、软盘、硬驱动器、DVD/CD-ROM、数字带、闪速存储卡、固态驱动器等,其一般地表示为存储设备224。此外,操作系统208和计算机程序210包括这样的指令,当计算机202读取并执行这些指令时,会引起计算机202执行实现和/或使用本发明所需的步骤。例如,计算机程序210可以包括用于实现前述网格集合管理器、网格管理器和库管理器的指令。计算机程序210和/或操作系统208指令还可以有形地具体化在存储器206中和/或通过数据通信设备230传输或由其访问。由此,在此使用的术语“产品”、“程序存储设备”和“计算机程序产品”意在囊括从任何计算机可读设备或介质可访问的和/或可操作的计算机程序。
本发明的实施方式可以包括一个或多个相关联软件应用程序210,其包括例如用于管理包括计算设备网络(诸如,存储区域网(SAN))的分布式计算机系统的功能。因此,处理器204可以包括存储管理处理器(SMP)。程序210可以在单个计算机202内操作,或者可以作为包括计算设备网络的分布式计算机系统的一部分进行操作。网络可以囊括一个或多个计算机,其可以经由局域网和/或互联网连接(其可以是公共的或安全的,例如通过虚拟专用网(VPN)连接)或经由光纤通道SAN或本领域技术人员所知的其他已知网络类型连接。(注意,光纤通道SAN通常仅用于计算机与存储系统通信,而不用于彼此通信。)
如本领域技术人员将会理解的,本发明的诸方面可以实现为系统、方法或计算机程序产品。因此,本发明的诸方面可以采取完全硬件实施方式、完全软件实施方式(包括固件、驻留软件、微代码等)或组合了软件和硬件方面的实施方式的形式,其全部可以一般性地在此称为“电路”、“模块”或“系统”。此外,本发明的诸方面可以采取在具体化有计算机可读程序代码的一个或多个计算机可读介质中具体化的计算机程序产品。
可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置或器件或前述的任何适当组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件或前述的任何适当组合。在本文件的上下文中,计算机可读存储介质可以是任何有形的介质,其可以包含或存储供指令执行系统、装置或设备使用或与之结合的程序。
计算机可读介质可上具体化的程序代码可以使用任何适当介质来传输,包括但不限于无线、有线、光缆、RF等,或前述的任何适当组合。用于执行本发明诸方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,这些编程语言包括面向对象的编程语言(诸如Java、Smalltalk、C++之类),还包括常规的过程式编程语言(诸如“C”编程语言或类似的编程语言)。程序代码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户的计算机,或者,可以(例如,利用互联网服务提供商来通过互联网)连接到外部计算机。
参照根据本发明实施方式的方法、装置(系统)和计算机程序产品的流程图图示和/或框图描绘了本发明的诸方面。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中框的组合可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令会创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。
这些计算机程序指令还可以存储在计算机可读介质中,其可以指引计算机或其他可编程数据处理装置或其他设备以特定方式起作用,使得存储在计算机可读介质中的指令会产生包括用于实现在流程图和/或框图框中指定的功能/动作的指令的产品。这些计算机程序指令也可以被加载到计算机、其他可编程数据处理装置或其他设备上,以引起在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图框中指定的功能/动作的过程。
上述附图中的流程图和框图示出了根据本发明各种实施方式的系统、方法和计算机程序产品的可能实现的架构、功能性和操作。就这一点,流程图或框图中的每个框可以代表代码的模块、段或部分,其包括用于实现指定逻辑功能的一个或多个可执行指令。还应当注意,在某些备选实现中,框中标注的功能可以不按附图中标注的顺序发生。例如,以连续方式示出的两个框事实上可以基本上并发执行,或者框有时可以以相反顺序执行,这取决于所涉及的功能性。还应当注意,流程图图示和/或框图的每个框和流程图图示和/或框图的框的组合可以由执行特定功能或动作的基于专用硬件的系统实现,或者由专用硬件和计算机指令的组合实现。
以上对本发明的一个或多个实施方式进行了详细的描述,但是本领域技术人员可以理解,可以对这些实施方式进行修改和调整而不脱离所附权利要求中给出的本发明的范围。

Claims (29)

1.一种用于使用处理器设备对经重复数据删除的数据进行复制的方法,包括:
在源库中创建经重复数据删除的数据的块;
为所述创建的经重复数据删除的数据的块指派全局块标识id,所述全局块id在包括所述源库的网格集合中是唯一的,其中所述全局块id是使用所述块、所述网格集合的包含网格和所述源库的至少一个唯一标识值生成的;
将所述全局块id从所述源库向目标库传输;
确定所述全局块id是否与位于所述目标库中的所述经重复数据删除的数据的已有块相关联;
响应于确定所述全局块id与位于所述目标库中的所述经重复数据删除的数据的已有块相关联,在后续复制过程期间所述目标库不接收所述块;
响应于确定所述全局块id不与位于所述目标库中的所述经重复数据删除的数据的已有块相关联,将所述全局块id传输回所述源库,以及将与所述块相关联的数据从所述源库向所述目标库传输;以及
响应于在所述源库中接收到传入数据,针对所述源库中的已有数据对所述传入数据进行重复数据删除,将所述传入数据划分成所述经重复数据删除的数据的多个已有块和多个新块,其中所述块是所述多个新块中的一个,所述多个已有块的每一个具有递增的参考计数,以反映接收到所述传入数据。
2.如权利要求1的方法,进一步包括,在传输所述全局块id之后,针对所述块将支持重复数据删除的表征从所述源库向所述目标库传输,其中所述表征被插入到所述目标库中的重复数据删除索引中。
3.如权利要求1的方法,其中指派所述全局块id进一步包括执行以下中至少一个:
指派在所述网格集合的所述包含网格中唯一的网格标识id,其中所述网格id是通过执行选择之前不存在的网格id和手动指派所述网格id中的一个而计算的,
响应于将所述源库指派给所述网格集合的所述包含网格,向所述源库指派在所述包含网格中唯一的库标识id,其中所述库id是通过执行选择之前不存在的库id和手动指派所述库id中的一个而计算的,以及
指派在所述网格集合的所述包含网格中唯一的块标识id,其中所述块id是通过选择之前不存在的块id而计算的。
4.如权利要求3的方法,其中:
选择之前不存在的网格id包括递增与所述网格集合对应的网格id变量,
选择之前不存在的库id包括递增与所述包含网格对应的库id变量,以及
选择之前不存在的块id包括递增与所述源库对应的块id变量。
5.如权利要求4的方法,进一步包括:通过组合所述网格id、所述库id和所述块id来生成所述全局块id。
6.根据权利要求3的方法,进一步包括:
将所述网格id、所述库id和所述块id中的至少一个作为元数据存储在标识文件中。
7.如权利要求6的方法,进一步包括:将与所述包含网格和所述源库中的至少一个相关联的至少一个网际协议IP地址作为元数据与所述网格id、所述库id和所述块id中的至少一个一起存储在所述标识文件中。
8.如权利要求7的方法,进一步包括:通过组合所述网格id、所述库id和所述块id来生成在所述源库和目标库中唯一的全局块标识id。
9.如权利要求8的方法,进一步包括:
将所述全局块id从所述源库向所述目标库传输,其中如果所述目标库确定所述全局块id与位于所述目标库中所述经重复数据删除的数据的已有块相关联,则在后续复制过程期间所述目标库不接收所述块。
10.如权利要求9的方法,进一步包括,在传输所述全局块id之后,针对与所述块id相关联的块将支持重复数据删除的表征从所述源库向所述目标库传输,其中所述表征被插入到所述目标库中的重复数据删除索引中。
11.如权利要求1的方法,进一步包括,
响应于在所述源库中接收到传入数据,除了向所述块指派所述全局块id之外,还向剩余的多个新块中的每一个指派多个附加全局块id,其中所述块、所述全局块id、所述多个新块和所述多个附加全局块id中的每一个都存储在所述源库中,以及
将所述传入数据的分段到所述多个已有块和所述多个新块的映射记录在所述源库中。
12.如权利要求1的方法,进一步包括,依照传输所述全局块id,由所述源库将所述至少一个唯一标识值记载在全局块id索引中。
13.如权利要求1的方法,其中,依照传输所述全局块id,所述目标库使用重复数据删除索引确定所述全局块id是否与位于所述目标库中的所述经重复数据删除的数据的已有块相关联。
14.如权利要求13的方法,进一步包括,在传输与所述块相关联的数据之后,所述目标库将与所述块相关联的数据存储在所述目标库中,并且递增与所述块相关联的参考计数。
15.如权利要求13的方法,进一步包括,如果确定所述全局块id存在于所述目标库中,则递增与所述块相关联的参考计数。
16.如权利要求13的方法,进一步包括,在传输所述全局块id之后,所述目标库执行以下中至少一个:
将所述全局块id记录在全局块id索引中,以及
记录复制的数据的分段到所述经重复数据删除的数据的所述块和多个附加块的映射。
17.如权利要求16的方法,进一步包括,由所述目标库执行以下中至少一个:
取回所述映射,以及
将所述块和所述多个附加块中的至少一个加载至存储器位置。
18.一种用于使用处理器设备对经重复数据删除的数据进行复制的系统,包括:
用于在源库中创建经重复数据删除的数据的块的装置;
用于为所述创建的经重复数据删除的数据的块指派全局块标识id的装置,所述全局块id在包括所述源库的网格集合中是唯一的,其中所述全局块id是使用所述块、所述网格集合的包含网格和所述源库的至少一个唯一标识值生成的;
用于将所述全局块id从所述源库向目标库传输的装置;
用于确定所述全局块id是否与位于所述目标库中的所述经重复数据删除的数据的已有块相关联的装置;
用于响应于确定所述全局块id与位于所述目标库中的所述经重复数据删除的数据的已有块相关联,在后续复制过程期间所述目标库不接收所述块的装置;以及
用于响应于确定所述全局块id不与位于所述目标库中的所述经重复数据删除的数据的已有块相关联,将所述全局块id传输回所述源库,以及将与所述块相关联的数据从所述源库向所述目标库传输的装置;
用于响应于在所述源库中接收到传入数据针对所述源库中的已有数据对所述传入数据进行重复数据删除,将所述传入数据划分成所述经重复数据删除的数据的多个已有块和多个新块,其中所述块是所述多个新块中的一个,所述多个已有块的每一个具有递增的参考计数,以反映接收到所述传入数据。
19.如权利要求18的系统,进一步包括,用于在传输所述全局块id之后,针对所述块将支持重复数据删除的表征从所述源库向所述目标库传输的装置,其中所述表征被插入到所述目标库中的重复数据删除索引中。
20.如权利要求18的系统,用于为所述创建的经重复数据删除的数据的块指派全局块标识id的装置进一步包括依照指派所述全局块id,执行以下中至少一个的装置:
指派在所述网格集合的所述包含网格中唯一的网格标识id,其中所述网格id是通过执行选择之前不存在的网格id和手动指派所述网格id中的一个而计算的,
响应于将所述源库指派给所述包含网格,向所述源库指派在所述网格集合的所述包含网格中唯一的库标识id,其中所述库id是通过执行选择之前不存在的库id和手动指派所述库id中的一个而计算的,以及
指派在所述网格集合的所述包含网格中唯一的块标识id,其中所述块id是通过选择之前不存在的块id而计算的。
21.如权利要求20的系统,其中:
选择之前不存在的网格id包括递增与所述网格集合对应的网格id变量,
选择之前不存在的库id包括递增与所述包含网格对应的库id变量,以及
选择之前不存在的块id包括递增与所述源库对应的块id变量。
22.如权利要求21的系统,进一步包括:用于通过组合所述网格id、所述库id和所述块id来生成所述全局块id的装置。
23.如权利要求19的系统,进一步包括,用于响应于在所述源库中接收到传入数据:
除了向所述块指派所述全局块id之外,还向剩余的多个新块中的每一个指派多个附加全局块id,其中所述块、所述全局块id、所述多个新块和所述多个附加全局块id中的每一个都存储在所述源库中,以及
将所述传入数据的分段到所述多个已有块和所述多个新块的映射记录在所述源库中的装置。
24.如权利要求19的系统,进一步包括,用于依照传输所述全局块id,将所述至少一个唯一标识值记录在全局块id索引中的装置。
25.如权利要求19的系统,进一步包括,用于依照传输所述全局块id,使用重复数据删除索引确定所述全局块id是否与位于所述目标库中的所述经重复数据删除的数据的已有块相关联的装置。
26.如权利要求25的系统,进一步包括,用于在传输与所述块相关联的数据之后,将与所述块相关联的数据存储在所述目标库中,并且递增与所述块相关联的参考计数的装置。
27.如权利要求25的系统,进一步包括,用于如果确定所述全局块id存在于所述目标库中,则递增与所述块相关联的参考计数的装置。
28.如权利要求25的系统,进一步包括以下中至少一个:
用于将所述全局块id记录在全局块id索引中的装置,以及
用于记录复制的数据的分段到所述块和所述经重复数据删除的数据的多个附加块的映射的装置。
29.如权利要求28的系统,进一步包括以下中至少一个:
用于取回所述映射的装置,以及
用于将所述块和所述多个附加块中的至少一个加载至存储器位置的装置。
CN201010251595XA 2009-08-11 2010-08-11 用于对经重复删除的数据进行复制的方法和系统 Expired - Fee Related CN101996233B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/539,109 2009-08-11
US12/539,109 US8356017B2 (en) 2009-08-11 2009-08-11 Replication of deduplicated data

Publications (2)

Publication Number Publication Date
CN101996233A CN101996233A (zh) 2011-03-30
CN101996233B true CN101996233B (zh) 2013-09-25

Family

ID=43589180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010251595XA Expired - Fee Related CN101996233B (zh) 2009-08-11 2010-08-11 用于对经重复删除的数据进行复制的方法和系统

Country Status (2)

Country Link
US (2) US8356017B2 (zh)
CN (1) CN101996233B (zh)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2009330073B2 (en) 2008-12-22 2012-11-15 Google Llc Asynchronous distributed de-duplication for replicated content addressable storage clusters
US8321380B1 (en) 2009-04-30 2012-11-27 Netapp, Inc. Unordered idempotent replication operations
US8655848B1 (en) 2009-04-30 2014-02-18 Netapp, Inc. Unordered idempotent logical replication operations
US8671072B1 (en) 2009-09-14 2014-03-11 Netapp, Inc. System and method for hijacking inodes based on replication operations received in an arbitrary order
US8862559B2 (en) * 2009-10-06 2014-10-14 Dell Products L.P. Scalable mechanism for detection of commonality in a deduplicated data set
US8458144B2 (en) * 2009-10-22 2013-06-04 Oracle America, Inc. Data deduplication method using file system constructs
US8799367B1 (en) * 2009-10-30 2014-08-05 Netapp, Inc. Using logical block addresses with generation numbers as data fingerprints for network 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
GB2482128A (en) * 2010-07-19 2012-01-25 Quantum Corp Delta chunks and delta hashes
US8438130B2 (en) * 2010-12-13 2013-05-07 International Business Machines Corporation Method and system for replicating data
US8904120B1 (en) 2010-12-15 2014-12-02 Netapp Inc. Segmented fingerprint datastore and scaling a fingerprint datastore in de-duplication environments
US8898119B2 (en) * 2010-12-15 2014-11-25 Netapp, Inc. Fingerprints datastore and stale fingerprint removal in de-duplication environments
US8671308B2 (en) 2011-05-02 2014-03-11 International Business Machines Corporation Optimizing disaster recovery systems during takeover operations
US8850139B2 (en) * 2011-05-11 2014-09-30 International Business Machines Corporation Changing ownership of cartridges
US8782016B2 (en) * 2011-08-26 2014-07-15 Qatar Foundation Database record repair
US8898112B1 (en) * 2011-09-07 2014-11-25 Emc Corporation Write signature command
US9396205B1 (en) * 2011-09-20 2016-07-19 Netapp, Inc. Detection and handling of namespace changes in a data replication system
US10223375B2 (en) * 2011-09-20 2019-03-05 Netapp, Inc. Handling data extent size asymmetry during logical replication in a storage system
WO2013085519A1 (en) * 2011-12-08 2013-06-13 Empire Technology Development, Llc Storage discounts for allowing cross-user deduplication
US8719234B2 (en) * 2012-01-25 2014-05-06 International Business Machines Corporation Handling rewrites in deduplication systems using data parsers
JP5561303B2 (ja) * 2012-03-30 2014-07-30 日本電気株式会社 データ複製システム、データ複製方法、及びそのプログラム
US9407720B2 (en) * 2012-04-06 2016-08-02 Sony Dadc Us Inc. Direct file transfer without sending requested file through requesting device
US8909607B2 (en) * 2012-05-21 2014-12-09 International Business Machines Corporation Context sensitive reusable inline data deduplication
US9305004B2 (en) * 2012-06-05 2016-04-05 International Business Machines Corporation Replica identification and collision avoidance in file system replication
US8762718B2 (en) * 2012-08-03 2014-06-24 Palo Alto Research Center Incorporated Broadcast deduplication for satellite broadband
CN103049391B (zh) * 2012-12-29 2014-05-07 华为技术有限公司 数据处理方法和设备
US10592527B1 (en) * 2013-02-07 2020-03-17 Veritas Technologies Llc Techniques for duplicating deduplicated data
US9678975B2 (en) 2013-03-15 2017-06-13 International Business Machines Corporation Reducing digest storage consumption in a data deduplication system
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
US10146787B2 (en) * 2013-07-26 2018-12-04 Quest Software Inc. Transferring differences between chunks during replication
CN104424316B (zh) * 2013-09-06 2018-06-05 华为技术有限公司 一种数据存储方法、数据查询方法、相关装置和系统
US20150088837A1 (en) * 2013-09-20 2015-03-26 Netapp, Inc. Responding to service level objectives during deduplication
WO2016006050A1 (ja) * 2014-07-09 2016-01-14 株式会社日立製作所 ストレージシステム及び記憶制御方法
CN104156420B (zh) * 2014-08-06 2017-10-03 曙光信息产业(北京)有限公司 事务日志的管理方法和装置
US9830342B2 (en) 2014-11-20 2017-11-28 International Business Machines Corporation Optimizing database deduplication
US9678977B1 (en) * 2015-11-25 2017-06-13 International Business Machines Corporation Similarity based deduplication of snapshots data
EP3312727B1 (en) * 2016-03-02 2018-11-14 Huawei Technologies Co., Ltd. Differential data backup method and device
US10620834B2 (en) * 2016-03-25 2020-04-14 Netapp, Inc. Managing storage space based on multiple dataset backup versions
US11422898B2 (en) 2016-03-25 2022-08-23 Netapp, Inc. Efficient creation of multiple retention period based representations of a dataset backup
US10489345B2 (en) 2016-03-25 2019-11-26 Netapp, Inc. Multiple retention period based representations of a dataset backup
US11176097B2 (en) 2016-08-26 2021-11-16 International Business Machines Corporation Accelerated deduplication block replication
US10802922B2 (en) 2016-08-26 2020-10-13 International Business Machines Corporation Accelerated deduplication block replication
US11630735B2 (en) 2016-08-26 2023-04-18 International Business Machines Corporation Advanced object replication using reduced metadata in object storage environments
CN107171825B (zh) * 2017-04-11 2020-09-25 Tcl移动通信科技(宁波)有限公司 一种终端的重复日志过滤方法
CN107451204B (zh) * 2017-07-10 2021-01-05 创新先进技术有限公司 一种数据查询方法、装置及设备
US10613766B1 (en) * 2017-07-27 2020-04-07 EMC IP Holding Company LLC Data replication techniques
EP3659042B1 (en) * 2017-08-25 2021-10-06 Huawei Technologies Co., Ltd. Apparatus and method for deduplicating data
US10754557B2 (en) 2017-09-26 2020-08-25 Seagate Technology Llc Data storage system with asynchronous data replication
US11372569B2 (en) * 2018-05-23 2022-06-28 Sap Se De-duplication in master data management
CN110609807B (zh) * 2018-06-15 2023-06-23 伊姆西Ip控股有限责任公司 用于删除快照数据的方法、设备和计算机可读存储介质
US11068390B2 (en) 2019-02-01 2021-07-20 EMC IP Holding Company LLC Scalable garbage collection for deduplicated storage
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608865A (en) * 1995-03-14 1997-03-04 Network Integrity, Inc. Stand-in Computer file server providing fast recovery from computer file server failures
EP1702267B1 (en) * 2003-12-19 2007-09-05 Veritas Operating Corporation Method and apparatus for performing operations on selected data in a storage area
CN101038594A (zh) * 2006-03-09 2007-09-19 国际商业机器公司 使用不透明对象属性来控制增量备份的方法和系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5583995A (en) 1995-01-30 1996-12-10 Mrj, Inc. Apparatus and method for data storage and retrieval using bandwidth allocation
US5990810A (en) * 1995-02-17 1999-11-23 Williams; Ross Neil Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
US5870759A (en) 1996-10-09 1999-02-09 Oracle Corporation System for synchronizing data between computers using a before-image of data
US6751667B1 (en) * 2000-10-06 2004-06-15 Hewlett-Packard Development Company, L.P. System for generating unique identifiers in a computer network
EP1244221A1 (en) 2001-03-23 2002-09-25 Sun Microsystems, Inc. Method and system for eliminating data redundancies
WO2004047078A2 (en) 2002-11-20 2004-06-03 Filesx Ltd. Fast backup storage and fast recovery of data (fbsrd)
US7720796B2 (en) * 2004-04-23 2010-05-18 Neopath Networks, Inc. Directory and file mirroring for migration, snapshot, and replication
US7752387B2 (en) 2006-03-21 2010-07-06 International Business Machines Corporation Offloading firmware update tasks from RAID adapter to distributed service processors in switched drive connection network enclosure
US8301589B2 (en) 2006-05-10 2012-10-30 Sybase, Inc. System and method for assignment of unique identifiers in a distributed environment
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
US7504969B2 (en) 2006-07-11 2009-03-17 Data Domain, Inc. Locality-based stream segmentation for data deduplication
US7827137B2 (en) 2007-04-19 2010-11-02 Emc Corporation Seeding replication
US8204866B2 (en) 2007-05-18 2012-06-19 Microsoft Corporation Leveraging constraints for deduplication
US8315984B2 (en) * 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data
JP5060876B2 (ja) * 2007-08-30 2012-10-31 株式会社日立製作所 ストレージシステム及びストレージシステムの消費電力低減方法
US10248483B2 (en) 2007-10-19 2019-04-02 Oracle International Corporation Data recovery advisor
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US20090132534A1 (en) 2007-11-21 2009-05-21 Inventec Corporation Remote replication synchronizing/accessing system and method thereof
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
US7908436B1 (en) * 2008-04-25 2011-03-15 Netapp, Inc. Deduplication of data on disk devices using low-latency random read memory
US8082228B2 (en) * 2008-10-31 2011-12-20 Netapp, Inc. Remote office duplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5608865A (en) * 1995-03-14 1997-03-04 Network Integrity, Inc. Stand-in Computer file server providing fast recovery from computer file server failures
EP1702267B1 (en) * 2003-12-19 2007-09-05 Veritas Operating Corporation Method and apparatus for performing operations on selected data in a storage area
CN101038594A (zh) * 2006-03-09 2007-09-19 国际商业机器公司 使用不透明对象属性来控制增量备份的方法和系统

Also Published As

Publication number Publication date
US20130124468A1 (en) 2013-05-16
US8880482B2 (en) 2014-11-04
US8356017B2 (en) 2013-01-15
CN101996233A (zh) 2011-03-30
US20110040728A1 (en) 2011-02-17

Similar Documents

Publication Publication Date Title
CN101996233B (zh) 用于对经重复删除的数据进行复制的方法和系统
US11960777B2 (en) Utilizing multiple redundancy schemes within a unified storage element
US11593036B2 (en) Staging data within a unified storage element
US11716385B2 (en) Utilizing cloud-based storage systems to support synchronous replication of a dataset
US11086555B1 (en) Synchronously replicating datasets
US11093139B1 (en) Durably storing data within a virtual storage system
US11636031B2 (en) Optimized inline deduplication
US20210019237A1 (en) Data recovery in a virtual storage system
US11947683B2 (en) Replicating a storage system
US11934681B2 (en) Data migration for write groups
CN112470142A (zh) 在存储系统的中介器服务之间进行切换
CN102483711B (zh) 对复制顺序访问存储组件进行同步
US20220334990A1 (en) Zone drive data format
US20220269601A1 (en) Cost Effective Storage Management
US11768623B2 (en) Optimizing generalized transfers between storage systems
JP7189965B2 (ja) ホスト認識更新書き込みの方法、システム、およびコンピュータ・プログラム
US11803453B1 (en) Using host connectivity states to avoid queuing I/O requests
US20230353635A1 (en) Replication Utilizing Cloud-Based Storage Systems
US20230229363A1 (en) Tiering Valid Data after a Disaster Recovery Operation

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130925

CF01 Termination of patent right due to non-payment of annual fee