[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN101939737A - 可扩展的重复数据删除机构 - Google Patents

可扩展的重复数据删除机构 Download PDF

Info

Publication number
CN101939737A
CN101939737A CN2009801016964A CN200980101696A CN101939737A CN 101939737 A CN101939737 A CN 101939737A CN 2009801016964 A CN2009801016964 A CN 2009801016964A CN 200980101696 A CN200980101696 A CN 200980101696A CN 101939737 A CN101939737 A CN 101939737A
Authority
CN
China
Prior art keywords
data
duplication
backup
territory
data object
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.)
Pending
Application number
CN2009801016964A
Other languages
English (en)
Inventor
M·桑多菲
T·G·瑞特
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.)
Sepaton Inc
Original Assignee
Sepaton Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sepaton Inc filed Critical Sepaton Inc
Publication of CN101939737A publication Critical patent/CN101939737A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0686Libraries, e.g. tape libraries, jukebox

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)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Hardware Redundancy (AREA)

Abstract

一种用于从备份的存储系统中移除冗余数据的方法。在一个实施例中,该方法可以包括接收应用层数据对象,至少部分地基于与重复数据删除域相关联的数据对象的特征,从众多的重复数据删除域中选择一个重复数据删除域,确定应用层数据对象具有特征和将应用层数据对象指向重复数据删除域。

Description

可扩展的重复数据删除机构
技术领域
本发明的各个方面涉及数据的存储,更为具体的说是涉及用于提供可扩展的数据重复删除服务的装置和方法。
背景技术
大部分的计算机系统包括一个或多个的主机,以及被主机用于存储数据的一个或多个的数据存储系统。典型的是,这些主机和存储系统通过网络,例如,光纤通信网络,以太网络或者是其他类型的通信网络,连接在一起。光纤通信是一种标准,其兼备有以信道为基础的传输电路的速度优势和以网络为基础的传输电路的灵活性,而且其允许多个启发器与多个目标通过网络进行通信,其中启发器和目标可以是任何一种连接到网络上的设备。典型的是光纤通信是使用快速的传输媒体来执行的,例如,光学纤维电缆,因此,光纤通信对于需要传输大量数据的存储系统网络来说是一种最常用的选择。
附图1显示的是包括若干主机和备份的存储系统的典型的网络计算环境的一种实施例。一个或更多的应用服务器102通过局域网(LAN)103连接到众多的用户计算机104上。应用服务器102和用户计算机104都可以被认为是“主机”。应用服务器102通过存储区域的网络(SAN)108连接到一个或更多的主存储设备106上。主存储设备106可以是,例如,可以从EMC公司,IBM公司和其他公司购买的磁盘阵列。可以选择的是,数据总线(没有显示)或者其他的网络连接可以用于提供应用服务器和主存储系统106之间的相互连接。数据总线和/或光纤通信网络的连接可以使用协议进行操作,例如,小型计算机系统接口(SCSI)协议,其规定在主机(例如,应用服务器102)和存储系统106之间进行传输的数据包的格式。
人们认识到,附图1中举例说明的网络化的计算环境是一种典型的大型系统,其可能被一些大型的金融机构或大公司所使用。人们将会理解,大部分的网络化的计算环境并不需要包括附图1中所示的全部要素。例如,一种较小的网络化的计算环境可以简单地包括通过LAN与存储系统直接进行连接的主机。除此之外,尽管附图1举例说明的是分离的用户计算机104,应用服务器102和媒体服务器114,这些功能可以集成到一个或更多的计算机中。
除了主存储设备106之外,大部分的网络化的计算环境包括至少一个备用的或备份的存储系统110。典型的是,备份的存储系统110可以是磁带库,尽管可以使用其他大容量的可靠的备用存储系统。通常情况下,这些备用的存储系统的速度比主存储设备的速度慢,但是包括可移动的媒体的部分类型(例如,磁带,磁盘或光盘),其可以被移除和进行远距离的存储。
在用于举例说明的实施例中,应用服务器102能够直接与备份的存储系统110通信,例如,通过以太或者其他的通信连接112。然而,这样的连接可能是相对慢,并且可能占据一定的资源,例如,处理器的时间或者网络的频带宽度。因此,正如举例说明的一种系统可以包括一个或更多的媒体服务器114,其可以通过例如,光纤通信来提供SAN 108和备份的存储系统110之间的通信连接115。
媒体服务器114可以运行软件,其包括控制主机(例如,用户计算机104,媒体服务器114和/或应用服务器102),主存储设备106和备份的存储系统110之间的数据传输的备份/再存储应用程序。备份/再存储应用程序的实施例可以从,例如Veritas,Legato和其他的公司获得。为了数据保护,来自网络化的计算环境中的各种不同的主机和/或主存储设备可以使用本领域内众所周知的备份/再存储应用程序来周期性地备份到备份的存储系统110中。
当然,人们意识到,正如上文中所描述的那样,大部分的网络化的计算环境可能是比较小的,而且与附图1中所举例说明的复杂的网络计算机环境相比,可能包括很少的部件。因此,人们也意识到,媒体服务器114实际上可以与应用服务器112结合在一个主机中,而且备份/再存储应用程序可以在任何一台连接到(直接或间接地,例如通过网络)备份的存储系统110上的主机上运行。
一种典型的备份存储系统的实施例是磁带库,其包括大量的磁带盒和至少一个磁盘驱动,和控制磁带盒下载到磁盘驱动上和从磁盘驱动上卸载的自动设备。备份/再存储应用程序将指令发出到自动设备上,以确定特定的磁带盒的位置,例如,磁带编码0001,和将磁带盒下载到磁盘驱动中以致数据可以写入到磁带中。备份/再存储应用程序也控制数据写入到磁带中的格式。典型的是,通常,备份/再存储应用程序可以使用SCSI命令,或者其他标准命令,以指示自动设备和控制磁盘驱动将数据写入到磁带中和从磁带中恢复之前已经写入的数据。
传统磁带库的备份系统遇到了大量的难题,包括速度、可靠性和固定容量。多数大公司每周都需要备份太字节的数据。然而,即使是昂贵的高端磁带常常也仅仅是以30-40兆字节每秒(MB/s)的速度进行读/写,传输量为大约50千兆字节每小时(GB/hr)。因此,将一个或两个太字节的数据备份到磁带式的备份系统中需要花费至少10到20小时的连续数据传输时间。
除此之外,如果磁带被破坏(或者是由于人为的操作,或者是由于自动设备在移动或者下载操作过程中可能会损坏磁带,因此经常有可能相对频繁地发生在典型的磁带库中),或者如果磁带暴露在非理想的环境条件下,例如,极端的温度或湿度下,大部分的磁带制造商都不能保证,还有可能将数据存储(或再存储)到磁带中/从磁带中存储(再存储)数据。因此,需要及其用心地将磁带存放在控制下的环境中。更进一步说,磁带库中的合成机器(包括自动设备)的维护费用非常昂贵,以及单个的磁带盒也是相对昂贵的而且使用寿命有限。
考虑到传统的磁带库相关联的费用和备份的存储媒体的其他种类,出售商通常将重复数据删除处理过程合成到他们提供的产品中以降低全部的备份媒体的需求。重复数据删除是一种识别经过一段时间的数据重复序列的处理过程,也就是变量增量的压缩的一种表现。重复数据删除通常作为目标设备的功能来执行,例如,备份的存储设备。在备份的数据流中识别冗余数据的步骤是复杂的,在当前现有技术中,通常是用无用信息的指纹识别和图案识别来解决。
在无用信息的指纹识别中,下一段数据流首先经过的是对准处理(其试图预见数据流中好的“断点”,即众所周知的边界,这将为随后的配比提供最大的可能性),然后,进行的是无用信息的处理(通常在当前的现有技术中是SHA-1)。在进行无用信息的处理后,数据流被分为若干块(通常是8千字节-12千字节大小);每一块都被赋值其作为结果的无用信息值。无用信息值与存储器常驻表进行对比。如果发现无用信息登录,数据被假定为是冗余的并被替换为指示器,指到已经存储在磁盘存储系统中的现有的数据块;现有的数据的位置已在表中给出。如果没有发现无用信息登录,数据将被存储在磁盘存储系统中,和数据的位置及其无用信息被记录在存储器常驻表中。对所述装置进行举例说明的某些实施例可以在授予Data Domain的第7,065,619号美国专利和授予Quantum公司的第5,990,810号美国专利中可以找到。无用信息的指纹识别通常是通过在线进行的;也就是说,数据在被写入到磁盘之前是进行实时处理的。
根据图案识别,下一段数据流是第一“块”或者被分割为相对大的数据段(以大约32MB为序)。然后,数据通过单一的滚动散列法进行处理,由此得到无用信息值的列表。在无用信息值中进行格式转换,由此得到表示数据段的“指纹识别”的值的小表。然后,在无用信息的表中进行检索,以寻找到至少一定数量的指纹识别的无用信息,其将在任何其他给定的存储块中被发现。以如果仅有少量的配比没有符合要求,那么,块被认为是单值的并被直接存储到磁盘上。对应的指纹识别的无用信息被加入到存储器常驻表中。如果只有少量的配比符合要求,则有可能是当前的数据块与之前的存储数据块是相符合的。在这种情况下,通过配比的指纹识别来赋值的磁盘存储的块被读入到存储器,并与已经经过散列法处理的候选块进行字节与字节(byte-for-byte)的对比。如果数据的全部序列是足够的,那么数据块被替换为指示器为存储块的真实地址。如果全部的块没有配比,那么,将采用三角差分设备来确定在需要存储的块中的最小的数据集。结果是单值数据的正数的结合参考最为匹配的在先存储的数据的结合。对所述装置进行举例说明的某些实施例可以在授予Diligent公司的第US2006/0059207号美国专利申请中找到。正如上文所述,操作通常是在线进行的。
发明内容
本发明的各个方面和实施方案提供的是一种数据存储系统,其克服或者消除传统的重复数据删除技术的部分或全部的问题,并且与传统的重复数据删除技术相关联的数据存储系统相比,其能够提供更高的有效性和可扩展性。
概括来说,本发明的各个方面和实施方案提供的是一种以随机存取为基础的存储系统,其对传统的磁带式备份存储系统进行仿真,以致备份/再存储应用程序将设备的相同的视图和媒体视为真实的磁带库。本发明中的存储系统使用软件和硬件来仿真真实的磁带式媒体并将他们替换为一个或更多的随机存取的磁盘阵列,将磁带的格式,线性的顺序的数据转换为适合于存储在磁盘上的数据。
根据本发明的某些方面和实施方案,在此提供的是一种用于解码现有的备份数据集和将元数据(即,表示用户数据信息的数据)存储在可扩展的元数据高速缓冲存储器中的装置,一种为文件或目标而允许检索和/或浏览元数据高速缓冲存储器的装置,和一种用于通过网页连接借助现有的备份策略和典型的备份软件的执行从存储的数据中下载这些文件或目标的装置。同样地,包括可以是一种用于基于当前用户的信用而授权用户通过现有的授权机制和用于限制元数据的高速缓冲存储器的浏览的装置。
本发明的各个方面和实施方案也提供从备份的数据对象中移除冗余数据。移除的过程,可以称之为“重复数据删除”,减少所要求的用于维持备份数据的复制的存储容量,并由此减少了要求用于存储备份数据的电子媒体的数量。根据本发明的至少某些方面的重复数据删除过程的实施方案能够有效地使用计算资源,这是通过使用元数据来优化重复数据删除处理过程来实现的。
正如将要在下文中详细描述的那样,某些实施方案涉及全部的重复数据删除处理过程的智能定向。在这些实施方案的大部分中,数据存储系统使用软件和硬件来将数据对象指示到若干重复数据删除域中的其中之一上,以用于重复数据删除和存储。除此之外,将在硬件和/或软件中的运行的应用程序提供用于对重复数据删除域进行设定,其管理由给定的数据存储系统所限制的数据的重复数据删除。某些实施方案明确地表明了对由一定数量的可用存储所限制的传统的无用信息的指纹识别技术的认识。其他的实施方案反应出对随机的I/O工作量是一种在图案识别方式下的实质限制的认识。因此,这些实施方案明确地表明了对由传统的无用信息的指纹识别和图案识别的重复数据删除技术所施加的限制的认识。
根据本发明的其他方面和实施方案,在此提供一种用于执行体现在元数据高速缓冲存储器中的多个磁带盒的逻辑合并的装置,和一种用于适当地标示和对新合成的磁带盒进行条形编码,以致其可以被备份/再存储软件作为有效的数据集而接受的装置。同样地,根据本发明的更进一步的方面和实施方案,在此提供一种既用于存储表示合成的磁带盒的数据元素的多层复制,又能用于仅仅存储指示器为体现在元数据高速缓冲存储器中的现有数据的装置。
根据一个实施方案,在此提供的是一种用于指导应用层数据对象的重复数据删除的方法。该方法包括如下步骤:接收应用层数据对象,至少部分地基于与重复数据删除域相关联的数据对象的特征,从众多的重复数据删除域中选择一个重复数据删除域,确定应用层数据对象具备特征和将应用层数据对象指向选定的重复数据删除域。
在一个实施例中,接收应用层数据对象的步骤可以包括接收数据流的步骤和通过使用包含在数据流中的元数据来识别应用层数据对象的步骤。在另一个实施例中,接收数据流的步骤可以包括接收多重数据流。根据又一个实施例,方法可以进一步包括选取包含在带有应用层数据对象的数据流中的元数据的步骤。在又一个实施例中,从众多的重复数据删除域中选择一个重复数据删除域的步骤可以包括将选取的与应用层数据对象相关联的元数据与至少一个与重复数据删除相关联的特征进行对比。根据进一步的实施例,选取包含在数据流中的元数据的步骤可以包括选取至少备份策略名、数据流类型、数据流的名称、备份应用程序的名称、操作系统类型、数据类型、备份类型、文件名、目录结构和时间顺序的信息的其中之一。
在其他的实施例中,方法可以进一步包括将众多重复数据删除域中的每一个都设定为使用众多的重复数据删除方法的其中之一的步骤。根据另一个实施例,设定众多的重复数据删除域中的每一个的步骤可以包括将众多的重复数据删除域中的每一个都设定为使用选自由无用信息的指纹识别、图案识别和智能识别的重复数据删除所组成的组的众多的重复数据删除方法的其中之一。仍然是在另一个实施例中,方法可以进一步包括将众多的重复数据删除域中的每一个都与至少一个数据对象的特征相关联的步骤。根据额外的实施例,该方法可以进一步包括在选定的重复数据删除域,应用层数据对象中进行重复数据删除的步骤,和基于重复数据删除的步骤的结果,调整数据对象的特征与至少众多的重复数据删除域的其中之一相关联。在进一步的实施例中,调整数据对象的特征的步骤可以包括将数据存储在重复数据删除域的数据库中。
根据另外一个实施方案,提供的是一种网格式的计算环境,其执行用于指导上文中讨论的应用层数据对象的重复数据删除的方法的步骤。
根据另外一个实施方案,提供的是一种备份的存储系统,其执行用于指导上文中讨论的应用层数据对象的重复数据删除方法的步骤。在这一实施方案中,方法被执行的同时数据没有被备份到备份的存储系统中。
根据另外一个实施方案,提供的是一种备份的存储系统,其执行用于指导上文中讨论的应用层数据对象的重复数据删除方法的步骤。在这一实施方案中,方法被执行的同时数据被备份到备份的存储系统中。
根据另外一个实施方案,提供的是一种具有存储在定义结构中的计算机可读信号的计算机可读媒体。所述结构,作为被计算机执行的结果,指示计算机执行接收应用层数据对象的步骤,至少部分地基于与重复数据删除域相关联的重复数据对象的特征,从众多的重复数据删除域中选择一个重复数据删除域,确定应用层数据对象具有特征和将应用层数据对象指向选定的重复数据删除域的步骤。
根据另外一个实施方案,提供的是一种用于指导应用层数据对象的重复数据删除的系统。该系统包括众多的重复数据删除域,众多的重复数据删除域中的每一个重复数据删除域都与众多的应用层数据对象所共有的至少一个特征相关联,和连接到众多的重复数据删除域上的控制器,该控制器被设定为接收应用层数据对象,确定应用层数据对象具有至少一个与重复数据删除域相关联的特征和将应用层数据对象指向重复数据删除域。
在实施例中,控制器可以进一步设定为接收数据流和使用包括在数据流中的元数据来识别应用层数据对象。在另外一个实施例中,数据流可以是多重的。在其他的实施例中,控制器可以进一步被设定为选取包括在带有应用层数据对象的数据流中的元数据。仍然是在另一个实施方案中,控制器可以被进一步设定为确定应用层数据对象具有至少一个与重复数据删除域相关联的特征,这是通过将抽取的与应用层数据对象相关联的元数据与至少一个与重复数据删除域相关联的特征进行对比来进行的。在进一步的实施例中,控制器可以被进一步设定为选取至少备份策略名、数据流类型、数据流的名称、备份应用程序的名称、操作系统类型、数据类型、备份类型、文件名、目录结构和时间顺序的信息的其中之一。在另外的实施例中,控制器可以被进一步排列为设定多个重复数据删除中的每一个为使用多个重复数据删除方法的其中之一。仍然是在另外一个实施例中,控制器可以被进一步排列为设定多个重复数据删除域中的每一个为使用一种选自由无用信息的指纹识别,图案识别和智能识别的重复数据删除所组成的组。
根据另外一个实施例,控制器可以进一步被设定为与具有至少一个数据对象的特征的多个重复数据删除域中的每一个相关联。在其他的实施例中,控制器可以被进一步设定为在选定的重复数据删除域中导致应用层数据对象的重复数据删除,和基于重复数据删除步骤的结果,调整数据对象的特征与多个重复数据删除域的至少其中之一相关联。仍然是在另一个实施例中,控制器可以被进一步设定为将数据存储在重复数据删除域的数据库中。在另一个实施例中,系统可以包括在网格式的计算机环境中。仍然是在另外一个实施例中,控制器可以被进一步设定为接收应用层数据对象,确定应用层数据对象具有至少一个与重复数据删除域相关联的特征,和将应用层数据对象指向重复数据删除域中,同时数据没有被存储到系统中。对应地,根据一个实施例,控制器可以被进一步设定为接收应用层数据对象,确定应用层数据对象具有至少一个与重复数据删除域有相关联的特征,和将应用层数据对象指向重复数据删除域中,同时数据被存储到系统中。
其他的方面、实施方案和这些可以效仿的方面和实施方案的优势将在下文中进行详细的讨论。而且,人们将会理解上述信息和下文中细节的描述仅仅是出于举例说明各个方面和实施方案的实施例的目的,并且旨在提供对请求保护的方面和实施方案的本质和特征的理解的框架和概括说明。对应的附图是用于举例说明和进一步了解各个方面和实施方案之用,而且并入到本说明书中作为本说明书的一部分。附图以及说明书的其他部分,是用于解释所描述的和请求保护的方面和实施方案的原理和操作。
附图说明
至少一个实施方案的各个方面将结合对应的附图进行讨论。在这些附图中,并不是严格按照比例进行绘制,在各个附图中相同或几乎相同的部件用同样的数字进行标识。出于描述清楚的目的,并不是每一部件都在附图中有所标识。附图仅仅是用于举例说明和解释的目的,而不应该被认为是对本发明的限制。在附图中:
附图1是包括了备份的存储系统的大型网络化计算机环境的一个实施例的示意图;
附图2是根据本发明的方面的包括了存储系统的网络化计算机环境的一个实施例的示意图;
附图3是根据本发明的方面的存储系统的一个实施例的示意图;
附图4是举例说明了根据本发明的方面的存储系统的一个实施例的虚拟布局的示意图;
附图5是根据本发明的方面的系统文件的一个实施例的示意性布局;
附图6是根据本发明的方面的磁带式目录结构的一个实施例。
附图7是描述根据本发明的方面的形成合成的全部备份的方法的一个实施例的示意图;
附图8是根据本发明的方面的包括合成的全备份的备份数据集系列的一个实施例的示意图;
附图9是元数据高速缓冲存储器的结构的一个实施例的示意图;
附图10是存储合成的全备份的备份数据集的虚拟的磁带盒的一个实施例的示意图;
附图11是存储合成的全备份的备份数据集的虚拟的磁带盒的另一个实施例的示意图;
附图12是根据本发明的重复删除数据对象的方法流程图;
附图13A是两个备份的数据对象的示意图;
附图13B是附图13A中描述的备份数据对象的重复数据删除的复制的示意图;
附图13C是附图13A中描述的备份数据对象的重复数据删除的复制的另一个方框图;
附图14是根据本发明的方面的重复数据删除的指示器的一个实施例的方框图;
附图15是根据本发明的用于指导数据对象的重复数据删除的方法流程图。
具体实施方式
现在,本文中的各种不同的实施方案和方面将结合对应的附图进行更为详细的说明。人们将会理解,本发明并没有将其应用限制在以下的说明和用于举例说明的附图中设定的部件的排列和结构的细节上。本发明能够通过其他的实施方案予以实施,并可以通过各种不同的方式进行实践。在此提供的特定的执行步骤的实施例仅仅是出于举例说明的目的,而不是一种限制。尤其是,与任何一个或更多的实施方案结合进行讨论的步骤、元素和特征并不排除在其他的实施方案中起到相同的作用。同样地,本文中使用的术语和措辞是出于描述的目的,而不是一种限制。术语“包括”、“含有”、“具有”、“包含”、“涉及”以及上述术语的结合使用是指包括在其后所列的项目和等同替换物以及附加物。
本文中描述的任何一个实施方案都可以与任何其他的实施方案结合,因此,涉及的“实施方案”、“一些实施方案”、“可以替换的实施方案”、“一个实施方案”、“至少一个实施方案”、“该实施方案和其他的实施方案”或者类似的描述都不是相互排除的,而且旨在指明与实施方案结合进行描述的特定的特征、结构或者特性都可能包括在至少一个实施方案中。本文中所使用的术语并不是全部指向相同的实施方案。任何一个实施方案都可以以与在此公开的各个方面相一致的任何方式与任何其他的实施方案结合。涉及的连接词“或者”可以解释为包含,因此,使用“或者”进行描述的任何术语可以指向单一的,不止一个,和全部描述的术语的任何一种。
在本文中,术语“主机”是指任何具有至少一个处理器的计算机,例如,个人的计算机、工作站、大型机、网络用户、服务器等等,其能够与其他的设备进行通信,例如存储设备或者其他的主机。主机可以包括媒体服务器和应用服务器(正如之前在参考附图1进行描述的那样)以及用户计算机(其可以是用户的工作站、个人的计算机、大型机等等)。除此之外,在本公开的内容中,术语“网络化的计算环境”包括任何计算环境,在这样的计算环境中,众多的主机被连接到一个或更多的共享的存储系统中,由此存储系统可以与主机中的任何一台进行通信。光纤通信是通信网络的一个实施例,其可以与本发明中的各种实施方案结合使用。然而,人们将认识到,在此描述的网络并不限于光纤通信,以及各种不同的网络部件可以通过任何网络连接方式进行相互之间的通信,例如,Token Ring或者以太,或者除了光纤通信之外的连接,或者通过各种不同的网络连接的结合使用。而且,本发明的各个方面也可以在数据总线布局中使用,例如,SCSI或者是类似的SCSI。
根据本发明的各种不同的实施方案和方面,在此提供一种有效的可以移除的媒体数据库的备份存储系统,其可以使用一种或更多的磁盘阵列来对基于存储系统的可以移除的媒体进行仿真。使用本文中的实施方案,通过使用与已经使用过的将数据备份到可以移除的媒体上(例如,磁带,磁盘,光盘等)相同的备份/再存储应用程序,数据可以被备份到磁盘阵列中而不要求用户必须对现有的备份程序进行任何修改或者调整,或者必须订购新的备份/再存储应用程序。在一个实施方案中,将在本文中进行详细描述,被仿真的可以移除的媒体是磁带,和本发明的备份存储系统所仿真的磁带数据库,包括磁带和用于控制磁带在传统的磁带数据库系统中的自动装置。
使用本发明的实施方案进行备份和再存储的数据可以被组织为各种不同的数据对象。这些数据对象包括可以存储数据的任何结构。并不限于所列的可以效仿的数据对象包括但不限于比特、字节、数据文件、数据块、数据描述符、备份数据集和虚拟的磁带盒,其将在下文中进行讨论。尽管本公开的大部分是指数据文件的备份和再存储,但是本发明的实施方案可以处理任何的数据对象,以及人们将会理解,术语“数据文件”是可以与“数据对象”相互替换使用的。除此之外,正如本领域内的任何一名普通技术人员所熟知的那样,本文中描述的实施方案在开放式的系统连接(OSI)模式的应用层中进行操作的,并且依赖于其他的软件和/或硬件来提供由其他的OSI模式的应用层所表示的基础的网络服务。
除此之外,实施方案可以将备份的数据进行重复删除,以便更为有效地利用可以使用的计算机的资源。根据某些实施方案,数据的重复删除可以在线执行,即当数据存储系统正在接收数据的同时进行数据的重复删除和存储。在其他的实施方案中,数据的重复删除可以离线执行,即在数据存储系统已把将要被重复删除的数据进行存储之后再进行。正如下文将要详细讨论的那样,各种不同的实施方案可以智能地指导各种传统的和非传统的重复数据删除技术,以提供高效的可扩展的重复数据删除的服务。
根据本发明的各个方面的存储系统包括软件和硬件,其与主机(运行备份/再存储应用程序)和备份的存储媒体接口。存储系统可以被设计为仿真磁带,或可以移除的存储媒体的其他类型,例如,备份/再存储应用程序将设备和媒体的相同的视图视为真实的磁带数据库,并且将线性的连续的磁带格式的数据转换为适合于存储在随机存取的磁碟上的数据。在这种方式下,本发明的存储系统提供增强的计算机应用程序或程序内有效的功能(例如,允许用户检索个人的备份用户文件,正如将在下文中进行描述的那样),而无需新的备份/再存储应用程序的软件或策略。
参考附图2,在此以方框流程图的形式进行举例说明的是一种根据本发明的方面的网络化的计算环境的实施方案,其包括备份存储系统170。正如所举例说明的那样,主机120通过网络连接121来连接到存储系统170上。网络连接121可以是,例如,光纤通信连接,以便允许主机120和存储系统170之间的高速数据传输。人们能够理解,主机120可以是,或者说可以包括,一个或更多的应用服务器102(请参考附图1)和/或媒体服务器114(请参考附图1),并且能够从网络化的计算环境中的任一计算机中备份数据,或者从主存储设备106(请参考附图1)中备份数据。除此之外,一个或更多的用户计算机136也可以通过其他的网络连接138来连接到存储系统170上,例如,以太连接。正如将要在下文中进行详细讨论的那样,存储系统能够使用户计算机136的用户进行浏览和有选择地对来自存储系统的备份用户文件进行再存储。
存储系统包括备份的存储媒体126,其可以是例如,一个或更多的磁盘阵列,正如将要在下文中进行讨论的那样。备份的存储媒体126为来自主机120的备份数据提供真实的存储空间。然而,存储系统170也可以包括软件和额外的能够仿真可以移除的媒体存储系统的硬件,例如,磁带数据库,以致备份/再存储应用程序能在主机120上运行,尽管看起来数据被备份到传统的可以移除的存储系统中。因此,正如附图2中举例说明的那样,存储系统170可以包括“仿真媒体”134,其代表,例如,虚拟的或仿真的可以移除的存储媒体,例如,磁带。这些“仿真媒体”134通过存储系统的软件和/或硬件提供给主机,并显示主机120作为真实的存储媒体。仿真媒体134和真实的备份存储媒体126之间的进一步的接口可以是存储系统的控制器(没有显示)和开关网络132,其接受来自主机120的数据和将数据存储在备份的存储媒体126中,正如将要在下文中进行全面讨论的那样。以这种方式,存储系统将传统的磁带式存储系统“仿真”为主机120。
根据一个实施方案,存储系统可以包括“逻辑元数据高速缓冲存储器”242,其存储与用户数据相关联的元数据,用户数据是从主机120上备份到存储系统170上的。正如在本文中所使用的术语“元数据”是指代表用户数据和描述真实的用户数据的特征的那些数据。关于数据对象的元数据的可以效仿的类别包括但不限于,数据对象的大小、数据对象在主存储中的逻辑和/或真实位置,数据对象的创建日期,数据对象的最近修改的日期,存储数据对象项下的备份策略名,数据对象的识别器,例如,名称或水印,和数据对象的数据类型,例如,与数据对象相关联的软件应用程序。逻辑元数据高速缓冲存储器242表示可以检索到的数据集,其能使用户和/或软件的应用程序随机确定备份的用户文件,将用户文件与其他的文件进行对比,以及存储和熟练地使用备份的用户文件。软件的应用程序的两个实施例可以使用存储在逻辑元数据高速缓冲存储器242中的数据,包括合成的全备份应用程序240和终端用户再存储应用程序300,将在下文中进行全面的讨论。除此之外,重复数据删除的指示器,其将在下文中进行更为详细的讨论,可以使用元数据来提供存储系统中的可以扩展的重复数据删除的服务。
简要地说,合成的全备份应用程序240能够从一个现有的全备份的数据集中形成合成的全备份的数据集和一个或更多的增量备份数据集。合成的全备份可以避免用于周期性的(例如,每周)的全备份,从而节约相当多的时间和网络资源。合成的全备份应用程序240的细节将在下文中进行详细的讨论。终端用户的再存储应用程序300的细节也将在下文中进行详细的讨论,能够使终端用户(例如,用户计算机136的操作人员)能够对来自存储系统170的之前备份的用户文件进行浏览、确定位置,检查和/或再存储。
正如上文中的讨论,存储系统170包括与主机120和备份的存储媒体126接口的硬件和软件。而且,从主机120的角度,本发明的实施方案中的硬件和软件可以仿真传统的磁带库的备份存储系统,数据表现为备份到磁带上,但是实际上备份到其他的存储媒体中,例如,举例来说,众多的磁盘阵列中。
参考附图3,在此以方框流程图的形式对根据本发明的方面的存储系统170的一个实施例进行举例说明。在一个实施例中,存储系统170的硬件包括存储系统的控制器122和开关网络132,其将存储系统的控制器122连接到备份的存储媒体126上。存储系统的控制器122包括处理器127(其可以是单一的处理器或者是多个处理器)和可以运行存储系统的全部的或者部分软件的存储器129(例如,RAM,ROM,PROM,EEPROM,闪盘等等,或者是以上各种存储器的组合使用)。存储器129也可以用于存储元数据,该元数据与备份的存储媒体126中的数据相关联。软件,包括执行本发明的实施方案的编程码通常存储在计算机可读的和/或可写的非易失性的记录媒体中,例如,RAM和ROM,光盘或者是磁盘或磁带等等,然后,复制到存储器129中,在此软件被处理器127控制。由于本发明的并不限于某种特定的语言,因此所述的编程码可以使用众多的编程语言中的任何一种来编写,例如,Assembler,Java,Visual Basic,C,C#或者C++,Fontran,Pascal,Eiffel,Basic,COBOL或者是以上编程语言的结合使用。典型的是,在操作过程中,处理器127使得数据,例如执行本发明的实施方案的编程码,可以从非易失性的记录媒体中解读为存储器的另外一种形式,例如,RAM,与非易失性的记录媒体相比,其允许通过处理器对信息进行更为快速的存取。
正如附图3所示,控制器122也可以包括一定数量的端口适配器,其将控制器122连接到主机120上和开关网络132上。正如举例说明的那样,主机120通过端口适配器124a连接到存储系统中,其可以是,例如,光纤通信的端口适配器。通过存储系统的控制器122,主机120将数据备份到备份的存储媒体126中并从备份的存储媒体126中恢复数据。
在用于举例说明的实施例中,开关网络132可以包括一个或更多的光纤通信的开关128a,128b。存储系统的控制器122包括众多的光纤通信的端口适配器124b和124c,以将存储系统的控制器连接到光纤通信开关128a、128b上。通过光纤通信开关128a和128b,存储系统的控制器122允许数据复制到备份的存储媒体126上。正如附图3所举例说明的那样,开关网络132可以进一步包括一个或更多的以太开关132a,132b,其通过以太端口适配器125a,125b连接到存储系统的控制器122上。在一个实施例中,存储系统的控制器122进一步包括另外的以太端口适配器125c,其连接到,例如,LAN103,以使存储系统170和主机(例如,用户的计算机)进行通信,正如将要在下文中进行的讨论那样。
在附图3中举例说明的一个实施例中,存储系统的控制器122通过网络开关连接到备份的存储媒体126中,其包括两个光纤通信的开关和两个以太开关。预备的是存储系统170中每种类型中的至少两个能够消除系统中任何一个失误的单一点。换句话说,即使其中的一个开关(例如,光纤通信开关128a)失效,存储系统的控制器122仍将能够通过其他的开关与备份的存储媒体126进行通信。这样的排列有利于提高可靠性和速度。举例来说,正如上文中的讨论,通过提供备用部件和消除失效的单一点来提高可靠性。除此之外,在一些实施方案中,存储系统的控制器能够将数据备份到备份的存储媒体126中,使用并联的光纤通信开关中的全部或部分,从而提高整体的备份速度。然而,人们能够理解,在此并不要求系统包括两个或更多的开关类型中的每一个,也不要求开关网络既包括光纤通信又包括以太开关。更进一步说,在实施例中备份的存储媒体126包括单一的磁盘阵列,而根本就不需要开关。
正如上文中的讨论,在一个实施方案中,备份的存储系统126可以包括一个或更多的磁盘阵列。在一个优选的实施方案中,备份的存储媒体126包括众多的ATA或者SATA磁盘。这样的磁盘是“现货供应”的产品。而且,与传统的由EMC,IBM等制造商提供的磁盘阵列的产品相比,这样的产品相对便宜,其中的一个因素就在于可移除的媒体(例如,磁带)的成本,事实是,这样的媒体具有有限的使用寿命,与传统的以磁带为基础的备份存储系统相比,这样的磁盘在成本具有比较性。除此之外,与磁带相比,这样的磁盘可以更快的读/写数据。举例来说,通过单独的光纤通信连接,数据可以以至少大约150MB/s的速度备份到磁盘上,转换过来就是大约540GB/hr,明显快于(即,按照绝对值大小的顺序)磁带备份的速度。除此之外,若干光纤的通信连接可以并行执行,从而更快的提高速度。根据本发明的实施方案,备份的存储媒体可以组合用于执行大量的RAID(独立磁盘的随机阵列)方案中的任何一个。举例来说,在一个实施方案中,备份的存储媒体可以执行RAID-5。
正如上文中的讨论,本发明的实施方案通过使用磁盘来替换磁带盒作为真实的备份存储媒体,从而提供“虚拟的磁带数据库”的方式来对传统的磁带数据库的备份系统进行仿真。传统的磁带数据库中的真实的磁带盒被本文中使用的术语“虚拟的磁带盒盒”所替换。人们将能够理解本公开的目的,术语“虚拟的磁带盒盒”是指仿真的磁带数据库,其可以在软件和/真实的硬件中作为,例如,一个或更多的磁盘阵列来执行。人们将进一步理解,尽管在此的讨论主要涉及的是仿真磁盘,存储系统也可也仿真其他的存储媒体,例如,CD-ROM或者DVD-ROM,因此,通常术语“虚拟的磁带盒盒”是指仿真的存储媒体,例如,仿真的磁带或者是仿真的CD。在一个实施方案中,虚拟的磁带盒盒实际上对应的是一个或更多的硬盘。
因此,在一个实施方案中,软件的接口被提供给备份/再存储应用程序以用于仿真磁带数据库,以致看起来数据被备份到磁带上。然而,实际上的磁带数据库被一个或更多的磁盘所替换,以致数据实际上是被备份到这些磁盘阵列中。人们将会理解,可以移除的媒体的存储系统的任何的其他类型都可以被仿真,本发明并不限制磁带数据库的存储系统的仿真。以下的讨论将解释存储系统170的各个方面、特征和软件的操作。
人们将会理解,尽管软件是被描述为包含在存储系统170中的,而且可以被存储系统的控制器122(请参考附图3)的处理器127进行控制,在此并不要求所有的软件都在存储系统的控制器122中执行。软件程序,例如,合成的全备份的应用程序和终端用户再存储应用程序可以在主机和/或用户的计算机上执行,因此,部分可以分配给全部的或部分的存储系统的控制器,主机和用户计算机。因此,人们可以理解并不要求存储系统的控制器是真实的实体,例如,计算机。存储系统170可以与安装在主机中的软件通信,例如,媒体服务器114或者是应用服务器102。除此之外,存储系统可以包括若干软件应用程序,其可以在主机的相同或不同的部分上运行或安装。而且,人们将会理解,存储系统170并不限于设备的离散部件,尽管在某些实施方案中,存储系统170可以体现为设备的离散部件。在一个实施例中,存储系统170可以是自包括的,直到作为“即插即用”(即,不需要修改现有的备份程序和策略)的步骤替换传统的磁带数据库的备份系统。所述的存储系统单位也可以在网络化的计算环境中使用,其包括传统的备份系统以提供随机的或者是额外的存储容量。在其他的实施方案中,存储系统116可以在离散式的的计算环境中执行,例如,群集环境或者网格式的环境。
正如上文中的讨论,根据一个实施方案,主机120(其可以是例如,应用服务器102或者是媒体服务器114,请参考附图1)可以通过网络连接121(例如,光纤通信连接)将数据备份到备份的存储媒体126上,网络连接可以将主机120连接到存储系统170上。人们将会理解,尽管以下的讨论主要是指将数据备份到仿真的媒体中,策略上也同样适用于从仿真的媒体中再存储数据。主机120和仿真媒体134之间的数据流动可以通过备份/再存储应用程序进行控制,正如上文中的讨论。从备份/再存储应用程序的观点看,其表现为数据实际上备份到仿真媒体的真实版本中。
参考附图4,存储系统的软件150可以包括一个或更多的逻辑抽象层,其表示仿真媒体和提供安装在主机120中的备份/再存储应用140和备份存储媒体126之间的接口。软件150接受来自备份/再存储应用程序140中的磁带格式的数据,并将数据转换为适合于存储在随机存取的磁盘上的数据(例如,硬盘,光盘或类似的媒体)。在一个实施例中,软件150由存储系统的控制器122的处理器127执行,并可以存储在存储器129中(参考附图3)。
根据一个实施方案,软件150可以包括层,在此是指虚拟的磁带数据库(VTL)的层142,其可以提供磁带、磁带驱动器的SCSI仿真,而且自动装置也可以用于传动磁带盒和从磁带驱动器中传出。通过使用例如,用箭头144表示的SCSI指令,备份/再存储应用程序140可以(例如,在仿真媒体上备份或者写数据)与VTL142进行通信。因此,VTL可以形成其他的存储系统的软件和硬件和备份/再存储应用程序之间的软件接口,将仿真的存储媒体134(附图2)表示为备份/再存储应用程序,并允许仿真媒体看起来是作为传统的可以移除的备份存储媒体的备份/再存储应用程序。
本文中所指的第二软件层是指文件系统层146,可以在仿真的存储媒体(表示为VTL)和真实的备份存储媒体126之间提供接口。在一个实施例中,文件系统,146作为一个迷你的操作系统与备份存储媒体126进行通信,这是通过使用例如用箭头148表示的SCSI指令来将数据从备份的存储媒体126中读出或写入。
在一个实施方案中,VTL提供普通的磁带数据库的支持,并可以支持任何SCSI媒体的转换开关。仿真的磁带设备可以包括但不限于,IBM LTO-1和LTO-2磁带设备,QUANTUM SuperDLT320型的磁带设备,QUANTUM P3000型数据库系统,或者是STORAGETEK L180型的数据库系统。在VTL中,每一个虚拟的磁带盒是一种文件,在数据被存储时也动态增加。这与传统的具有固定容量的磁带盒形成对比。正如将要结合附图5所要进行的更进一步的描述那样,一个或更多的虚拟的磁带盒可以存储在系统文件中。
附图5举例说明的是一种文件系统的软件146中的数据结构的实施例,其解释了根据本发明的实施方案的系统文件200。在这一实施方案中,系统文件200包括标题202和数据204。标题202可以包括识别存储在系统文件中的每一个虚拟的磁带盒中的信息。标题也可以包括这样的信息,例如,虚拟的磁带盒是否被写保护,虚拟的磁带盒的创建/修改的日期等等。在一个实施例中,标题202包括这样的信息,其能够唯一地识别每一个虚拟的磁带盒和从存储在存储系统中的其他虚拟的磁带盒区分出每一个虚拟的磁带盒。例如,这样的信息可以包括虚拟的磁带盒的名称和识别数字(对应于通常表现为真实的磁带的条形码,以致磁带可以被自动装置识别)。标题202也可以含有其他的信息,例如,每一个虚拟的磁带盒的容量,最近一次修改的日期等等。
根据本发明的一个实施方案,标题202的大小可以优化为反映出被存储的数据的类型(即,表示从一个或更多的主机系统中备份的数据的虚拟的磁带盒)和所述数据的不同的子集的数量(即,虚拟的磁带盒),其可以是系统可以跟踪的。例如,通常备份到磁带存储系统的数据由表示众多的系统和用户文件的较大的数据集进行表征。由于数据的子集是如此之大,将被跟踪的离散数据文件的数量就相对小。对应地,在一个实施方案中,基于存储如此多的数据来保持有效跟踪(即,标题很大)和没有空间用于足够数量的磁带盒的识别符(即,标题很小)之间的折中,可以选择标题202的大小。在一个可以效仿的实施方案中,标题202使用的是系统文件200的第一个32MB。然而,人们将会理解,基于系统的需要和特征,并取决于系统的需要和容量,标题202可以具有不同的大小,人们可以为标题202选择不同的大小。
人们将会理解,从备份/再存储应用程序的观点来看,具有全部相同的标志和特征的虚拟的磁带盒看起来像真实的磁带盒。也就是说,对于备份再存储的应用程序,虚拟的磁带盒表现为连续写入的磁带。然而,在一个优选的实施方案中,存储在虚拟的磁带盒中数据并不是以连续的格式存储在备份的存储媒体126中。而是,看上去被被写入到虚拟的磁带盒中的数据实际上作为随机的可以存取的磁盘格式的数据而被存储在存储系统的文件中。元数据被用于将存储的数据连接到虚拟的磁带盒中,以致备份/再存储应用程序可以以磁带盒的格式进行读和写。
因此,以一个优选的实施方案的广泛的观点来看,存储系统170从主机120中接收用户和/或系统数据(在此是指“文件数据”)并存储在补充备份的存储媒体126的磁盘阵列中。软件150(请参考附图4)和/或存储系统的硬件将文件数据以系统文件的格式写入到备份的存储媒体126中,正如将要在下文中进行详细描述的那样。作为数据文件被抽取出来的元数据被存储系统的控制器进行备份,以跟踪被备份的用户和/或系统文件的特征。例如,每一个文件的这样的元数据可以包括文件名、文件的最近修改或创建的日期、与文件有关的任何编密码信息和其他的信息。除此之外,对于每一个文件,元数据可以被存储系统所创建,其将文件连接到虚拟的磁带盒中。使用这样的元数据,软件提供给主机一种仿真的磁带盒;然而,文件数据实际上没有以磁带的形式进行存储,而是以系统文件的形式进行存储,正如将要在下文中进行详细描述的那样。将数据存储在系统文件中,而不是以连续的磁带盒的格式,优势在于可以允许高速、有效和随机的存取各个文件,而无需扫描全部的连续的数据来找到特定的文件。
正如上文中的讨论,根据一个实施方案,文件数据(即,用户和/或系统数据)被作为系统文件存储在备份的存储媒体中,每一个系统文件都包括标题和数据,数据是真实的用户和/或系统的文件。每一个系统文件200的标题202包括磁带目录206,其含有将用户和/或系统文件连接到虚拟的磁带盒中的元数据。本文中使用的术语“元数据”不是指用户或者系统文件的数据,而是指描述真实的用户和/或系统文件的特征的数据。根据一个实施例,磁带目录可以向下限定到比特级,虚拟的磁带盒的数据的外层。
在一个实施方案中,磁带目录206具有表格结构,正如在附图6中所举例说明的那样。表格包括用于信息类型的存储(例如,数据,文件标记(FM)等等)的栏220,用于在比特中使用的磁盘块的大小的栏222,和记录存储有文件数据的磁盘块的数量的栏224。因此,磁带目录允许控制器能随机存取存储在备份的存储媒体126中的任何数据文件。例如,参考附图6,由于磁带目录指示出文件226的数据是从系统文件200的起始处开始一个方框,数据文件226可以快速在虚拟的磁带盒上定位。由于其对应的是文件标记(FM),这个方框没有大小。文件标记并没有存储在系统文件中,即文件标记对应的是零数据。由于他们被传统的磁带所使用,磁带目录包括文件标记,因此,备份/再存储应用程序可以写数据文件和文件标记,和在浏览虚拟的磁带盒时,希望能看到文件标记。因此,文件标记在磁带目录中被跟踪。然而,文件标记并不表示任何任何数据,因此也没有存储在系统文件的数据节中。所以,文件的数据226开始于系统文件的数据节的起始处,用箭头205表示(请参考附图5),是1024字节的长度(即,一个磁盘方框的长度是1024字节)。人们将会理解,其他的文件数据可以存储在除了1024字节大小之外的方框中,这取决于数据的数量,及数据文件的大小。例如,为有效存储,较大的数据文件可以用较大的数据方框进行存储。
在一个实施例中,磁带目录可以包含在“文件描述符”中,其与备份到存储系统中的每一个数据文件都相关联。文件描述符包含与存储在存储系统中的数据文件204相关联的元数据。在一个实施方案中,文件描述符可以根据标准格式执行,例如,被大多数的以UNIX为基础的系统所使用的磁带存档文件(tar)格式。每一个文件描述符可以包括这样的信息,例如,对应的用户文件的名称、用户文件被创建/修改的日期、用户文件的大小以及任何对用户文件的存储限制等等。存储在文件描述符中的其他信息可以进一步包括描述从其中可以复制数据的目录结构的信息。因此,文件描述符可以含有可以检索的关于数据文件的元数据,正如将要在下文中详细描述的那样。
以一个优选的实施方案的广泛的观点来看,任何虚拟的磁带盒可能含有众多的数据文件和对应的文件描述符。以一存储系统软件的广泛的观点来看,被存储在系统文件中的数据文件可以连接到,例如,特定的备份工作。例如,由一个主机在特定的时间中执行的备份可以形成一个系统文件,其对应于一个或更多的虚拟的磁带盒。虚拟的磁带盒可以是任何大小,和动态增长,由于更多的用户文件被存储在虚拟的磁带盒中。
参考附图2,正如上文中的讨论,存储系统170可以包括合成的全备份应用程序240。在一个实施方案中,主机120将数据备份到仿真媒体134上,形成一个或更多的虚拟的磁带盒。在某些计算环境下,“全部备份”,即存储在网络的(请参考附图1)主存储系统中的全部数据的备份,可以是周期性地进行(例如,每周)备份。由于有大量的数据需要复制,这一过程通常非常长。因此,在许多的计算环境下,额外的备份,可以称之为周期性的增量备份可以在连续的全部备份(即,每天)之间执行。增量备份是一种过程,由于执行的是最后的(是否是增量或者是全部的)备份,因此只有数据被改变。通常,改变的数据被备份到文件基础上,即使常常是文件中的大部分数据没有改变。因此,增量备份通常是比较小的,因此与全部备份相比,也能比较快的完成。人们将会理解,尽管许多环境通常需要每周执行一次全部的备份和在这一周的每一天中的增量备份,因此,并不需要使用所述的时间框架。举例来说,某些环境可以要求在一天中进行多次增量备份。本发明的原理适用于任何使用全部备份(和可以选择的增量备份)的环境;无论它们多长时间执行一次。全部的和/或增量备份的执行可以导致大量的冗余数据被存储到存储系统170中。为了消除与这些冗余数据相关联的负担,存储系统170可以控制将在下文中进行详细的讨论的重复数据删除的系统和过程。
在全部备份程序过程中,主机可以创建一个或更多的包含有备份数据的虚拟的磁带盒,其包括为数众多的数据文件。出于清楚说明的目的,以下的讨论假设全部备份仅仅形成一个虚拟的磁带盒。然而,人们将会理解,全部备份可以产生不止一个虚拟的磁带盒,以及本发明的原理可以适用于任何数量的虚拟的磁带盒。
根据一个实施方案,在此提供一种用于从现有的全部备份的数据集和一个或更多的增量备份数据集中形成合成的全部备份的数据集的方法。该方法可以消除周期性的执行全部备份(例如,每周)的需要,从而用户能够节约大量的时间和网络资源。更进一步说,对于本领域内的普通技术人员来说是众所周知的是,基于全部备份和一个或更多的增量备份的再存储数据可以是一种耗时的过程,原因在于,例如,如果文件的最新的版本存在于增量备份中,备份/再存储应用程序通常将会基于最新的全部备份再次存储文件,然后,适用任何来自增量的备份中改变。因此,假设合成的全部备份可能仅仅基于合成的全部备份而具有允许备份再存储应用程序进行更快的再次存储数据文件的额外优势,而无需执行多次地从全部备份和一个或更多的增量备份中再次存储。人们将会理解,本文中使用的术语“大部分的最新版本”通常是指数据文件的大部分的最新复制(即,数据文件被保存的最近的时间),无论文件是否具有新的版本编号。本文中使用的术语“版本”通常是指相同文件的复制,其可以以相同的方式进行修改或者可以节约大量的时间。
参考附图7,在此举例说明的是合成的全部备份程序的示意图。在第一时刻,主机120可以按时执行全部备份230,例如,在周末。主机120可以顺序执行增量备份232a,232b,232c,232d,232e,例如,在一周中的每一天里。然后,存储系统170可以产生合成的全部备份数据集234,正如将要在下文中进行的讨论那样。
根据一个实施方案,存储系统170可以包括软件应用程序,在此是指合成的全备份应用程序240(请参考附图3)。合成的全备份应用程序240可以在存储系统的控制器122中运行(请参考附图2)或者在主机120中运行。合成的全部备份应用程序包括形成合成的全部备份数据集234所必须的软件命令和接口。在一个实施例中,合成的全部备份应用可以执行表示全部备份的数据集230和增量备份数据集232中的每一个的元数据的逻辑合并,以产生新的含有合成的全部备份的数据集234的虚拟的磁带盒。
例如,参考附图8,现有的全部备份的数据集可以包括用户文件F1,F2,F3和F4。第一增量备份的数据集232a可以包括用户文件F2’,F2的修改版本,和F3’,F3的修改版本。第二增量备份的数据集232b可以包括用户文件F1’,F1的修改版本,和F2”,F2的进一步修改版本,和新的用户文件F5。因此,合成的全部备份数据集234从全部备份的数据集230和两个增量数据集232a和232b的逻辑合并中产生,其含有用户文件F1,F2,F3,F4和F5中的每一个的最新版本。因此,正如附图8所示,合成的全部备份的数据集含有用户文件F1’,F2”,F3’,F4,和F5。
再次参考附图3和附图4,文件系统的软件146可以产生逻辑元数据高速缓冲存储器242,其存储与仿真的媒体134中的每一个用户文件相关联的元数据。人们将会理解,逻辑元数据高速缓冲存储器并不要求必须是真实的数据高速缓冲存储器,但是可以是存储在存储媒体126中的数据的可以检索到的集合。在其他的实施例中,逻辑元数据高速缓冲存储器242可以作为数据库执行。元数据被存储在数据库中,传统的数据库的指令(例如,SQL命令)可以用于完成全部备份的数据集和一个或更多的增量备份的数据集的逻辑合并,以产生合成的全部备份的数据集。
在另一个实施方案中,元数据的一部分可以存储在数据库中,和其他的部分可以存储在存储系统的文件中。例如,备份的数据集的元数据,包括备份的数据集的名称和数据对象,其包括可以包括在传统的数据库中,同时数据数特指向数据对象,例如,在数据对象是数据文件的情况下,数据文件的大小,安全信息和在主存储中的位置可以包括存储系统的文件中。以所述方式存储的元数据能够从传统的数据库中方便地恢复周期性查询数据,以及通过在存储系统的文件中的较少的周期性要求的数据的更快的存储来促进系统的可扩展性。
正如上文中的讨论,存储在仿真媒体134中的每一个数据文件都可以包括文件描述符,其含有与数据文件相关联的元数据,包括文件在备份的存储媒体126中的位置。在一个实施方案中,主机120中运行的备份/再存储应用程序将数据以源磁带格式存储在仿真媒体134中。附图9中举例说明的是表示磁带格式的数据结构250的实施例。正如上文中的讨论,系统文件的数据结构包括标题,其可以含有如下有关数据文件的信息,例如,数据文件的文件描述符、文件创建和/或修改的日期、安全信息、形成文件的主系统的目录结构,以及将文件连接到虚拟的磁带盒中的其他信息。这些标题与真实的用户和系统文件的数据254相关联,其从主机、主存储系统等中被进行备份(复制)。系统文件的数据结构可以随机包括垫板(pads)256,其适当地将下一个标题对准方框边界。
正如附图9所示,在一个实施例中,标题数据是在逻辑元数据高速缓冲存储器242中定位的,以允许快速的检索和任意存取其他的连续磁带数据格式。逻辑元数据高速缓冲存储器对在存储系统的控制器122中执行的文件系统的软件146的使用允许将存储在仿真的媒体134中的线性的连续的磁带数据格式转换为存储在真实的磁盘中的任意访问的数据格式并弥补备份的存储媒体126。逻辑元数据高速缓冲存储器242存储标题252,其包括数据文件的文件描述符、可以用于控制对数据文件的存取的安全信息,正如将要在下文中进行详细讨论的那样,和指针257,以指示数据文件在虚拟的磁带盒和备份存储媒体126中的真实的位置。在一个实施方案中,逻辑元数据高速缓冲存储器存储与在全部备份的数据集230中的全部数据文件和增量的数据集232中的每一个文件相关联的数据。
根据一个实施方案,合成的全备份应用程序240使用存储在逻辑元数据高速缓冲存储器中的信息来产生合成的全部备份的数据集。合成的全部备份的数据集被连接到由合成的全备份应用程序240产生的合成的虚拟的磁带盒中。对于备份/再存储应用程序,合成的全部备份的数据集看起来被存储在这个合成的虚拟的磁带盒中。正如上文中的讨论,合成的全部备份的数据集可以通过执行现有的全部备份的数据集和增量备份数据集的逻辑合并来形成。逻辑合并可以包括对比包含在现有的全部备份的数据集和增量备份数据集的中的每一个数据文件,和形成每一个用户文件的最新修改的版本的合成版,正如上文中结合附图8所进行的举例说明那样。
根据一个实施方案,合成的虚拟的磁带盒260包括指针,其指向数据文件在其他的虚拟的磁带盒中的位置,特别是,虚拟的磁带盒含有现有的全部备份的数据集和增量备份数据集,正如附图10所示。考虑到上文中结合附图8给出的实施例,合成的虚拟的磁带盒260包括指针266,其指向(用箭头268表示)用户文件F4(由于现有的全部备份的数据集包括最新的版本F4中)的现有的全部备份的数据集在虚拟的磁带盒262中位置,和例如,用户文件F3’在虚拟的磁带盒264中的增量数据集232a中的位置。
合成的虚拟的磁带盒也包括列表270,其含有包括指针266的数据的全部的虚拟的磁带盒的识别数字(和可以是名字)。这一附属的磁带盒的列表270对于引用来说是重要的,例如,跟踪真实数据的存储,和防止附属的虚拟的磁带盒被清除。在这一实施方案中,合成的全部备份的数据集不包括任何真实的用户文件,但是包括确定用户文件在备份的存储媒体126的位置的指针集。因此,需要防止真实的用户文件(存储在其他的虚拟的磁带盒中的)被删除。这将通过部分跟踪含有数据的虚拟的磁带盒的记录(附属的列表270)来完成,和保护其他的虚拟的磁带盒中的每一个不被写入或删除。合成的虚拟的磁带盒也可以包括磁带盒数据272,例如,合成的虚拟的磁带盒的大小,在备份的存储媒体126中的位置等等。除此之外,合成的虚拟的磁带盒可以具有识别数字和/或名称274。
根据另外一个实施方案,合成的虚拟的磁带盒可以包括指针和真实存储的用户文件的结合。参考附图11,在一个实施例中,合成的虚拟的磁带盒包括指针266,其指向在虚拟的磁带盒262中存储的现有的全部备份的数据集230中的数据文件(最新的版本,正如上文中参考附图9所作的讨论那样)的位置。合成的虚拟的磁带盒也可以包括含有从增量数据集232中复制的真实的数据文件的数据278,正如箭头280所示。以这样的方式,增量备份数据集可以在合成的全部备份的数据集276创建之后被删除,从而节约了存储的空间。合成的虚拟磁带盒是相对小的,原因就在于它们含有全部的或部分的指针,而不是全部的用户文件的复制件。
人们将会理解,合成的全部备份的可以包括任何指针和存储的文件数据的结合,和并不限于以上给定的实施例。例如,合成的全部备份的可以包括用于存储在某些增量和/或全部备份中的某些文件的数据文件的指针,和可以包括从其他的现有的全部的和/或增量备份中复制的被存储的文件数据。仍然是可以选择的是,合成的全部备份可以基于之前的全部备份和任何相关的备份来创建,其并不包括任何指针,而是包括从适当的全部和/或增量备份中复制的真实的文件数据的最新版本。
在一个实施方案中,合成的全部备份的应用程序软件可以包括不同的算法,其能够为现有的全部备份的数据集和增量备份数据集对比用户和系统文件的元数据,以确定数据文件中的每一个的最新版本是否确定位置。例如,一种微分算法可以用于对比创建和/或修改的日期,版本的编码(如果是可应用的),等等,在不同的备份集中的相同日期的文件的不同的版本之间,以选择数据文件的最接近的版本。然而,用户可能经常打开用户文件和保留文件(从而更改其修改的日期)而无需真实地改变文件内部的任何数据。因此,系统可以执行更多高级的分析系统中的日期或者用户文件的微分算法,以确定数据是否实际上的被更改。所述的微分算法的改变和对比算法的其他类型在本领域内是已知的。除此之外,正如上文中的讨论,元数据存储在数据库的格式中的位置,数据库的命令,例如,SQL命令也可以用于执行逻辑合并。本发明可以使用任何所述的算法,以确保每一个用户文件的最新的或最后的版本可以从全部对比的现有备份集中选出,以及正确地创建合成的全部备份的数据集。
正如本领域内的普通技术人员所熟知的,合成的全部备份应用程序使得全部备份的数据集得以形成和可以使用,而无需主机执行真实的全部备份。这不仅能避免加重带有处理器的主机的过多的将数据传输到备份的存储系统的负担,也可以在一些实施方案中,其中的合成全部的备份应用程序可以在存储系统中执行,其能够显著减少对网络宽带的利用。正如在附图7中所举例说明的,进一步的合成全部备份的数据集可以通过适用第一合成的全部备份的数据集234和连续的增量备份数据集236来形成。由于文件或目标中的不是经常修改,也不是经常被复制,这将提供显著的时间优势。事实是,合成的全部备份的数据集可以使指针对准刚刚被复制的文件。
根据本发明的某些方面涉及将冗余的数据从数据对象中移除的可扩展的重复数据删除系统。例如,根据某些实施方案,重复数据删除系统被设定为使用预处理的元数据来管理数据的重复删除。更为详细的说,基于在将要被重复删除的数据中的存在或不存在特定的元数据的值,实施方案可以将数据指向到重复数据删除域。这些重复数据删除域中的每一个可以采用特定的重复数据删除技术,其实对于数据中的有效的重复数据删除的特定类型是量身定做的。
例如,附图14展现的是重复数据删除的指示器1400的方框图,其被特定设定为提供可以扩展的重复数据删除的服务。重复数据删除的指示器1400可以用作在各种不同的计算机系统中的软件,硬件或者是软件和硬件的结合。例如,根据一个实施方案,重复数据删除的指示器1400被作为上文中结合附图3所讨论的存储系统的控制器122的一部分来执行。在附图14中描述的重复数据删除的指示器1400的特定设定被用于仅仅举例说明的目的,不应当被认为是限制,本发明的实施方案可以通过各种不同的设定来构建,而不会脱离于本发明的目的。虽然,本文中讨论的某些实施例着重于具有单一的重复数据删除的指示器1400的实施方案,其他的实施方案可以包括两个或更多的重复数据删除的指示器,而不会脱离于本发明的范围。
参考附图14,重复数据删除的指示器1400包括数据接口1402、指示引擎1404、重复数据删除的数据库1406、重复数据删除域1408,1410和1412和重复数据删除的数据库接口1414。在所示的实施例中,数据接口1402包括资源,例如,可执行的编码,数据,数据结构或目标,设定用于交换,例如,提供和接收,具有一个或更多的数据流的信息。同样地,在用于举例说明的实施方案中,数据接口1402可以与指示引擎1404进行双向通信。
正如附图所示,指示引擎1404可以与数据接口1402,重复数据删除域的数据库1406和重复数据删除域1408,1410和1412进行大量的数据交换。反过来,重复数据删除域的数据库1406也可以与指示引擎1404和重复数据删除的数据库的接口1414进行数据通信。重复数据删除的数据库的接口1414包括设定用于与各种不同的外部实体进行信息交换的设备。这些外部实体包括,其他的用户和/或系统。在所示的实施例中,重复数据删除的数据库的接口1414也可以与重复数据删除域的数据库1406进行数据交换。重复数据删除域1408,1410和1412中的每一个包括设定为既与指示引擎1404又与各种不同的外部实体进行信息交换的设备。例如,在一个实施方案中,重复数据删除域1408,1410和1412可以与数据存储媒体,例如,上文中结合附图3进行的讨论的备份的存储媒体126进行信息交换。
信息可以在元件,部件和子系统之间以本文描述的任何一种技术进行流动。这些技术包括,例如,通过标准的协议(例如,TCP/IP,)将数据传输到网络上,将数据在存储器中的模块之间进行传递,以及通过写入文件、数据库或者其他的非易失性的存储设备的方式传输信息。除此之外,信息的指针或者其他的参考信息可以在位置上传输和接收,代替或者除此之外,信息的复件。相反的,信息可以代替交换,或者除此之外,信息的指针或者其他的参考。可以使用用户信息通信的其他的技术和协议,而不会脱离本发明的范围。
在附图14中所示的实施例中,重复数据删除域的数据可靠1406包括设定用于存储和恢复描述一个或更多的重复数据删除域的特征的信息。这一信息的实施例可以包括,对于每一个重复数据删除域,计算源的数量属于,或者被分配为重复数据删除域,一种特定的将要被重复数据删除域所使用的重复数据删除的方法,和一个或更多的与重复数据删除域的相关联数据对象的特征。重复数据删除域的数据库1406也可以保留与由重复数据删除域所使用的重复数据删除的方法相关联的特征,例如,无用信息列表。
重复数据删除域的数据库1406可以采用能够将信息存储在计算机的可读媒体上的任何一种逻辑结构,包括固定文件、索引文件、等级数据库,相关的数据库或者目标导向数据库。数据可以使用独值和外部的关键关系和索引进行模块化。独值和外部的关键关系和索引可以建立在各种不用的领域和列表之间,以能够确保数据的整体性和数据的相互交换的性能。
在用于举例说明的实施例中,数据接口1402包括被设定用于以各种不同的方式和格式与具有各种不同的数据流进行信息交换的设备。这些数据流可以包括任何信息的提供者,其将通过重复数据删除的处理过程,例如,正如上文中结合附图1进行讨论的主存储设备106。数据接口1402可以接收其他的数据格式中的离散的数据块、数据的连续源和从多个存储位置而来的多元数据流。除此之外,数据接口1402可以在线接收数据,即,当数据存储系统包括数据结构1402时,接收数据以备重复数据删除和存储之用,或者是离线的,即,在数据存储设备已经完成数据的存储之后再进行重复数据删除。
在用于举例说明的实施例中,重复数据删除域1408,1410和1412都可以包括一个或更多的独立的重复数据删除域。重复数据删除域可以包括软件和/或具有被设定用于执行在数据对象上执行重复数据删除的处理过程的硬件。每一个重复数据删除域都可以包括专用的数据存储。在所示的实施例中,每一个重复数据删除域可以与一个或更多的与若干数据对象相同的特征相关联。除此之外,在这一实施例中,每一个重复数据删除域采用的特定的重复删除的方法。这些特征允许各个重复数据删除域为相关的数据对象提供高效的重复数据删除环境。
例如,根据一个实施方案,重复数据删除域1408,1410和1412中的每一个都采用智能识别的重复数据删除过程,例如,将要在下文中讨论的过程1200。然而,在其他的实施方案中,重复数据删除域1408可以利用无用信息的指纹识别的处理过程,重复数据删除域1410可以采用图案识别过程和1412可以采用过程1200。因此,实施方案并不限于特定的重复删除方法或者重复删除方法的配置使用。
在各种不同的实施方案中,指示引擎1404包括被设定用于将数据对象指向与一个或更多的数据对象的特征相关联的重复数据删除域的设备。根据一个实施方案,这些特征包括与数据对象相关联的元数据。在用于举例说明的实施方案中,指示引擎1404可以接收来自数据接口1402的数据对象。指示引擎1404可以选择重复数据删除域1408,1410和1412中的哪一个为适合于对接收到的数据对象进行重复删除。正如所示,指示引擎1404也可以将数据对象指示到选定的重复数据删除域中。指示引擎1404也可以方便地设定为估计重复数据删除行为的结果,所述行为由重复数据删除域1408,1410和1412执行,而且基于这样的判断,指示引擎和相当多数量的冗余数据将若干重复数据删除域贯穿单一的重复数据删除域,从而节约专用的计算资源。
在各种不同的实施方案中,指示引擎1404包括被设定用于从数据接口1402中以各种不同的方式和格式接收数据,包括离散的数据块,数据流和多重数据流。在这些实施方案中,指示引擎1404可以从接收到的数据中抽取出经过处理的元数据。元数据包括正如上文中结合逻辑元数据高速缓冲处理器进行讨论的的信息类型,因此,在这些实施方案中,可以包括,在其他的元数据中,备份策略的名称,数据流的类型,数据流的名称,备份应用程序的名称,操作系统的类型,数据类型,备份类型,文件名,目录结构和描述符的结构和时间顺序的信息,例如日期和时间。
更进一步,在某些实施方案中,指示引擎1404具有被设定用于基于抽取出来的元数据来识别与数据流对准点或者多数据流的设备。在这些实施方案中,指示引擎1404可以沿着这些对准点对数据流或多重数据流进行分割,以形成数据对象。同样地,在某些实施方案中,指示引擎1404可以将元数据和数据对象进行关联。被关联的元数据可以包括,在其他的元数据中,用于形成数据对象的元数据。
举例来说,根据一个实施方案,基于数据对象随后的特殊服务的备份,指示引擎1404可以将数据流对准到数据对象中。类似地,在其他的实施方案中,指示引擎1404可以对准数据对象,包括具有相同的文件名称和描述符位置的文件。在进一步的实施方案中,基于由备份/再存储编程所创建的数据对象或者基于数据的类型,例如,由Oracle数据库形成的包含在数据对象中的数据,指示引擎1404可以形成数据对象和相关的元数据。
根据一个实施方案,指示引擎1404具有被设定用于通过对与数据对象相关联的元数据进行判断来指示数据对象的设备。在这一实施方案中,指示引擎1404可以将与数据对象相关联的元数据和与各个重复数据删除域相关联的数据对象的特征进行对比。当发现足够数量的匹配时,指示引擎1404可以推进将数据对象与重复数据删除域进行匹配以进行下一步的处理。根据一个实施方案,指示引擎1404可以通过提供数据对象的复制件给重复数据删除域,或者通过提供参考给数据对象,例如,指针,给重复数据删除域,来推进数据对象。根据某些实施方案,与数据对象相关联的元数据和与重复数据删除域相关联的数据对象的特征都是关于数据对象的内容的特征。
例如,在一个实施方案中,与数据对象相关联的元数据和与重复数据删除域相关联的数据对象的特征是一种软件应用程序,其可以形成数据对象,例如,MICROSOFT OUTLOOK。在这一实施例中,当由MICROSOFT OUTLOOK所创建的数据对象汇合时,指示引擎1404可以将这些数据对象指示到与于MICROSOFTOUTLOOK数据对象相关联的重复数据删除域中。在其他的实施方案中,元数据和数据对象的特征可以是其他类型的信息。
根据若干实施方案,指示引擎1404包括被设定用于进一步合并冗余数据越过重复数据删除域的设备。在这些实施方案中,指示引擎可以判断与重复数据删除相关联的处理过程的结果,和与重复数据删除相关联的处理过程的特征,以确定冗余数据贯穿重复数据删除域。例如,在一个实施方案中,指示引擎1404可以周期性地“刷新”或者检索与重复数据删除域相关联的无用信息表,对任何重复数据删除域中具有共性的无用信息的指纹识别,其采用无用信息的指纹识别。在这一实施方案中,指示引擎1404可以大量存储通过不同的重复数据删除域进行处理的数据,但是具有这些共同的指纹识别,通过将一个或更多的重复数据删除域指示为替换冗余数据的复制件,对于冗余数据的单一的复制件。
在其他的实施方案中,指示引擎1404可以形成新的重复数据删除域,或者修改现有的重复数据删除域的设定,来合并与冗余数据相关联的由上文中讨论的刷新处理过程所发现的数据的进一步处理。例如,在一个实施方案中,指示引擎1404可以将包括来自一个重复数据删除域的与冗余数据相关联的数据的数据对象的进一步的处理过程移位到其他过程中,这是通过改变与特定的重复数据删除域相关联数据对象的特征来实现的。
例如,在一个实施方案中,指示引擎1404包括被设定用于发现与包括通过刷新发现的冗余数据的数据对象具有共性的元数据的设备。更进一步,在这一实施例中,基于共同的元数据,指示引擎可以确定对应于共同的元数据的一个或更多的数据对象特征。指示引擎1404也可以将这些最新确定的数据对象的特征与新的或现有的重复数据删除域进行相关联,即,重复数据删除域之下,其进一步处理将会通过存储相关性在重复数据删除域的数据库1406中来合并。与之相反,指示引擎1404可以与重复数据删除域的数据库1406相互作用,以断开一个或更多的数据对象特征与现有的重复数据删除域之间的关联性,以防止这些重复数据删除域接收包括未来与冗余数据相关联的数据的数据对象。在这种方式下,指示引擎1404可以调整与最新发现的共同元数据相关联的数据对象的流动,到与最新确定的数据对象的特征相关联的重复数据删除域中。
在一些实施方案中,指示引擎1404包括当指示数据对象到特定的重复数据删除域中时,被设定用于使用额外的信息的设备。例如,根据一个实施方案,指示引擎1404可以检测专用于特定的重复数据删除域的存储空间具有小于剩余容量的极限值的容量。在这种情况下,指示引擎1404可以将数据对象指示到其他的重复数据删除域中,或者可以分配额外的存储容量给重复数据删除域。在其他的实施方案中,指示引擎1404可以将数据对象指示到特定的重复数据删除域中,基于时间保留的数量,直到数据对象失效。例如,在这种实施方案中,指示引擎1404可以将具有较少的保留时间的数据对象指示到具有较少的处理额外量的重复数据删除域中,而不考虑重复数据删除域对于数据对象的容量,由于数据对象在较短的时间周期内将被从存储器重擦除。
根据各种不同的实施方案,重复数据删除域的数据库的接口1414具有被设定用于与各种不同的外部实体进行信息交换的设备。根据用于举例说明的实施方案,重复数据删除域的数据库的接口1414可以给用户提供各种不同的用户接口的隐喻(metaphor),其能够使得用户创建、修改和删除重复数据删除域,例如,重复数据删除域1408,1410和1412。更为具体的是,当显示用于创建新的重复数据删除域的隐喻,重复数据删除域的数据库的接口1414可以给用户提供接口部件,其允许用户指定与新的重复数据删除域相关联的数据对象的特征。对应地,重复数据删除的数据库的接口1414可以将接口部件提供给用户,其能使用户指定为新的重复数据删除域所使用的重复数据删除的方法。
在其他的实施方案中,重复数据删除域的数据库的接口1414具有被设定用于从外部系统中接收数据的设备,例如,备份/再存储程序,和自动设定,基于接收到的数据,重复数据删除域要处理的来自外部系统的下一部分的数据。例如,在若干实施方案中,重复数据删除域的数据库的接口1414可以确定在数据对象的类型中的共有特征将被接收,或者正被接收,和将重复数据删除域1408,1410和1412设定以提高重复数据删除的能力。在一个实施方案中,重复数据删除域的数据库的接口1414可以确定,基于由备份/再存储程序提供的备份的策略,数据对象的主要的存储位置将作为执行备份策略的结果被接收。在这一实施方案中,基于主要的存储位置的信息,重复数据删除域的数据库的接口1414可以存储重复数据删除域1408,1410和1412的设定。在其他的实施方案中,由重复数据删除域的数据库的接口1414所存储的设定可以基于形成数据对象,而不是存储位置的软件应用的基础。其他的实施方案可以使用数据的其他类型来确定适合的重复数据删除域的结构和设定。
正如上文中的讨论,重复数据删除的指示器1400可以使用若干重复数据删除方法中的其中之一,以将冗余数据从数据对象中移除。一种特殊的可以用在重复数据删除域中的重复数据删除的技术是智能识别的重复数据删除。附图12举例说明的是,根据本发明的一个实施方案的用于从数据对象中重复删除数据的智能识别的处理过程1200实施例。附图13举例说明改进的参考技术技术,当与重复数据删除一起使用时,其产生额外的处理效率。重复数据删除的处理过程可以通过使用单一的备份存储系统来执行,或者在离散式的存储系统的环境中执行,例如,正如上文中讨论的网格环境。
一般来说,系统执行处理过程1200可以通过选出与一系列数据对象相关联的元数据来识别那些将是进一步重复数据删除的处理过程中需要进行的处理的数据对象,例如,举例来说,类似于共享的复制的数据的数据对象。系统可以检查被识别的数据对象,以用于额外的处理过程来确定任何冗余数据的位置。更近一步说,系统可以构建被识别的数据对象的复制件,其指向单一的冗余数据的复制,以及可以选择的是,使这些复制件的整体生效。为了再次要求被冗余数据占据的存储系统的容量,系统可以删除原来被识别的数据对象。重复数据删除方法的实施方案和各个方面和特征将要在下文中进行更为详细的描述。
仍然参考附图12,其中在步骤1202,数据的重复删除过程1200开始。在步骤1204,系统识别将被进一步的重复数据删除处理的数据对象。在一个实施方案中,系统可以识别有可能含有的冗余数据的数据对象。各种不同的方法和元数据可以被用于完成这样的识别。例如,在一个实施方案中,备份的数据对象在主存储器中的真实位置可以指明其有可能具有带有其他的备份数据对象的数据。更为确切的说,如果两个备份的数据对象是源于相同的主存储系统的设备,例如,特定的服务器,那么,数据对象可以被识别为有可能包括冗余数据的复制件。同样地,在其他的实施方案中,如果二者都是由特定的软件应用程序来创建的,那么两个数据对象可以被识别为有可能具有冗余数据。仍然是在另外一个实施方案中,无论数据对象是作为全部备份的一部分或者是作为增量备份策略来存储的,都可能表示冗余数据的相似性。通过扩大缺乏的计算机资源,例如,CPU周期,可能含有重复删除的数据的数据对象的识别会提高处理过程1200的总效率,将会着重于那些最受惠于冗余数据的移除的数据对象。
在其他的实施方案中,系统可以被设定为自动包括某些数据对象,或者基于与这些数据对象相关联的元数据,从进一步的重复数据删除中排除某些数据对象。举例来说,系统可以被设定为包括由重复数据删除的过程中的特定的软件创建的数据对象。类似地,系统可以被设定为包括作为特定的策略的部分进行备份的以用于进一步的重复数据删除过程的数据对象。相反的,通过来自进一步的重复数据删除过程的特定的策略和/或特定名称的数据对象,系统也可以被设定为排除全部的数据对象的备份。这些设定的优化使得系统的行为能够适合任何客户环境中的特殊需要,因此,提高系统的效率、性能和可扩展性。
在步骤1206中,系统包括处理过程1200确定冗余数据在进一步的重复数据删除处理过程中被识别的数据对象中的位置。这种分析可能通过使用元数据和/或通过检查被识别的数据对象的真实内容来实现。在一个实施方案中,具有相同的元数据的数据对象被假设为包括相同的数据。例如,如果数据对象是数据文件和都共享了相同的名称,在主存储器中的真实位置和周期性的冗余检查(CRC),无用信息或者在重复数据删除的处理过程中产生的相同的其他元数据,然后,两个数据对象可以被记录为冗余。使用元数据来识别冗余数据提供了若干的优势。由于只是数据对象的元数据,而不是数据对象的整体被处理,因此,元数据的使用提高了效率。
在其他的实施方案中,数据对象可以在字节对字节(byte-for-byte)的基础上对比,以在记录之前确定为冗余。当对比的类型可以是计算资源的强度,它也可以提供任何被识别的数据是冗余的存储保证,实际上,完全是冗余的。这种确定冗余的过程可能是有用的,例如,当处理数据对象的整体是特别重要时,例如金融数据。
仍然是在其他的实施方案中,包括在数据对象中的数据的其他部分被分析为建立整体目标的冗余。例如,某些软件应用程序可以将被修改的数据归类在他们修改的数据对象中的某一位置上,例如,在目标开始或结束的位置。因此,使用这样的数据分配的方式,系统将充分数据删除的过程着重于数据对象的最有可能是静态的部分,从而提供系统的效率。
本发明的实施方案可以采用这些技术的结合使用来确定冗余数据的位置。更为具体地说,基于例如用于识别上文中所述的进一步的重复数据删除的处理过程的数据对象的元数据,系统可以将特定的技术用在特定的数据对象上。元数据可以包括,在其他的实施例中,在主存储器中的位置,导致数据对象被备份和与数据对象相关联的软件应用程序的策略。由于数据对象的识别,相对于确定充分删除的数据的方式来调节系统的能力促进了系统的可扩展性和性能。
在步骤1208,执行处理过程1200的系统可以形成之前被识别的数据对象的重复数据删除的复制,其包括冗余数据。这些重复数据删除的复制可以包括较少的或者没有冗余数据。在一个实施方案中,被识别的数据对象可以包括,例如,虚拟的磁带盒。在这样的方式下,系统可以形成一个或更多的重复数据删除的虚拟的磁带盒,当完全被移除时,包括在被识别的虚拟的磁带盒中的全部数据。正如上文中讨论的合成的虚拟的磁带盒,这些重复删除的虚拟的磁带盒可以包括数据对象和数据对象的指针。
在这些重复数据删除的复制的创建中,系统可以将重复删除的数据的复制件存储在特定的数据对象中和创建和/或在其他的数据对象中修改指针,以将重复删除的数据存储在这些数据对象中。当存储重复删除的书库和指针时,系统可以允许使用各种不同的方法。在一个实施方案中,重复删除的数据存放在最久的数据对象中,和指针识别的重复删除的数据的位置被存放在包括重复删除的数据较新的数据对象中。这一技术在本领域内是指反向引用,当无用信息的索引被创建为概括重复数据删除的处理过程的数据对象时,该技术是通用的。
在其他的实施方案中,重复删除的数据存放在最新的数据对象中,和指针识别的重复删除的数据的位置被存放在较久的包括重复删除的数据的数据对象中。这一技术可以被称之为正向引用。当由于降低指针的减引用被用于解决包括在备份的数据对象中全部的的数据,数据存储在最新的备份中时,正向引用增加了数据还原的性能,。这种增强的性能是特别有利的,原因在于最新的事实(即,最近的),当数据必须被存储在主存储器中时,通常要使用备份。
附图13A,13B,13C举例说明的是正如上文中讨论的正反向引用。附图13A显示的是,备份的数据对象1302和1304先于重复数据删除过程。为了解释说明的目的,请假设备份的数据对象1302是在备份的数据对象1304之前被存储的。备份的数据对象1302包括唯一的数据部分1306和冗余数据部分1310A。备份的数据对象1304包括独值数据部分1308和冗余数据部分1310B。
附图13B举例说明了在正向引用下的数据对象1302和1304的重复数据删除的复制。数据对象1304,其是两个对象中的存储较多的一个,包括冗余数据部分1310B的复制。数据对象1302,其是两个对象中的存储较少的一个,包括指针1312,其指向冗余数据部分1310B。因此,在重复数据删除的复制完成之后,较新的数据对象包括冗余数据的复制,和较久的数据对象,其包括指向在较新的数据对象中的冗余数据的指针。
附图13C举例说明的是在反向引用下的数据对象1302和1304的重复数据删除的复制。数据对象1302,其是两个对象中的存储较少的一个,包括冗余数据部分1310A的复制。数据对象1302,其是两个对象中的存储较多的一个,包括指针1312,其指向冗余数据部分1310A。因此,在重复数据删除的复制完成之后,较久的数据对象包括冗余数据的复制,和较新的数据对象,其包括指向在较久的数据对象中的冗余数据的指针。
在步骤1210中,系统可以将重复数据删除的复制与之前被识别的数据对象进行对比,以确保数据的整体性被保留。这种对比可能要求数据对象的指针的减引用,和可能包括在数据对象中的数据的字节对字节(byte-for-byte)的对比。在整体检查完成之后,在一个实施方案中,系统可以交换识别重复数据删除的复制和它们各自之前的被识别的数据对象的指针,以致重复数据删除的数据对象成为主要的数据对象和之前被识别的数据对象可以被删除而无需破坏其所引用的任何数据对象的整体性。系统也可以对元数据进行其他的调整已确保其适当反应出重复数据删除的复制的特征。
在步骤1212,之前被识别的数据对象所占据的存储容量被其他的数据对象要求使用。在一个实施方案中,这样是通过简化删除之前的被识别的数据对象来实现。在步骤1214,处理过程1200结束。
处理过程1200描述了优选事件的顺序。其他的步骤也可以增加,或者处理过程1200中的步骤的顺序可以改变,而不会脱离于本发明的宗旨。在一个实施方案中,处理过程1200可以执行备份的存储系统中的每一个数据对象。在其他的实施方案中,系统可以为在备份的存储系统中的数据对象的子集执行处理过程1200。
处理过程1200可以以命令的方式执行,或者以实时的或者再出现的过程的计划来执行。当重复数据删除所要求的空间将要达到或超过某一极限值时,可以执行处理过程1200的进一步的子集。例如,在一个实施方案中,当重复数据删除将是空闲的时候,处理过程1200可以仅仅执行至少一个特定的数字(例如,50)太字节,或者被占据的备份存储空间的特定的百分比(例如,25%)。当执行驱动计算步骤时,包括过程1200的步骤可以在离散的计算环境中执行,例如网格式的环境。
因此,总的来说,重复数据删除的处理过程1200的实施方案可以减少维护备份数据的的复制所要求的存储空间,因此,减少存储备份数据所需要的电子媒体的数量。进一步说,通过使用元数据来优化重复数据的删除过程,重复数据删除的处理过程1200的实施方案可以有效使用计算资源。最后,通过将重复数据删除的数据以正向用于方案的格式进行存储,重复数据删除可以提高通常使用的数据的还原功能。
各种实施方案都包括为计算机系统提供可扩展的重复数据删除的服务的处理过程。附图15举例说明了一种处理过程1500的实施例,其包括接收数据,选择重复数据删除域以处理数据和将数据指示到选定的重复数据删除域的步骤。处理过程1500开始于步骤1502。
在步骤1504,计算机系统接收将要被重复删除的数据。正如上文中讨论的那样,根据一个实施方案,数据可以采用各种不同的形式,包括数据块,数据流和多重数据流。在附图14所示的实施例中,数据被数据接口1402接收和提供到指示引擎1404以备进一步的处理。根据这一实施例,基于包括在数据流中的经过预处理的元数据,指示引擎1404接收数据和将数据分割为一个或更多的数据对象。进一步,在这一实施例中,指示引擎1404与具有其创建的数据对象相关联的元数据相关。
在步骤1506,计算机系统选择重复数据删除域来处理接收到的数据。根据附图14中所示的实施例,指示引擎1404选择重复数据删除域1408,1410和1412中的其中之一来处理特定的数据对象,通过将与数据对象相关联的元数据和与重复数据删除域相关联的数据对象的的特征进行对比。除此之外,基于其他的信息,例如,特定的重复数据删除域中的存储空间的剩余空间数量,指示引擎1404可以选择或者不选择特定的重复数据删除域。
在步骤1508中,计算机系统将接受到的数据指示到选定的重复数据删除域中。根据附图14中举例说明的实施方案,指示引擎1404可以将数据对象提供给选定的重复数据删除域,通过将引用信息传递到数据对象,或者数据对象的复制,传递到重复数据删除域中。
处理过程1500在步骤1510处终止。
处理过程1500举例说明的一个在特定的实施方案中的步骤的特定的顺序。这些处理过程中的每一步中包括的步骤可以通过或者使用一个或更多的在本文中所讨论过的特定的设定的计算机系统来执行。对应地,步骤的顺序可以改变,或者可增加其他的步骤,而不会脱离于本发明的范围。
正如上文中结合附图3进行的讨论那样,存储系统可以包括提到的作为终端用户再存储应用程序300的软件应用程序。因此,根据其他的实施方案,在此提供的是一种用于终端用户确定备份数据的位置和再存储备份的数据,而无需IT人员的创造性和无需对现有的备份/再存储的处理程序和/或策略做任何改变的方法。在典型的备份存储系统中,在主机120上运行的备份/再存储应用程序由IT人员控制,而且对于终端用户而言,存取备份数据而没有IT人员的创造性劳动是没有可能的或者是非常困难的。根据本发明的方法和实施方案,提供存储系统的软件以用于允许终端用户确定和再存储他们的文件,通过,例如,网络或者其他与备份存储媒体126相连的接口。
人们将会理解,具有合成的全备份应用程序240,终端用户再存储应用程序300可以在存储系统的控制器122上运行(请参考附图2)或者可以在主机120上运行。终端用户的再存储应用程序包括软件命令和接口,是允许授权用户搜索逻辑元数据高速缓冲存储器以确定位置,和任意地从备份的存储媒体126中对备份文件进行再存储。
根据一个实施方案,在此提供的软件包括用户接口,其安装在用户计算机上和/或可以在用户计算机136上执行。用户接口可以是允许用户确定文件在备份的存储媒体中的任何一种类型的接口。例如,用户接口可以是图形用户接口,可以是网络的,或者可以是文本接口。通过网络连接138(其可以是,例如,以太连接),用户计算机被连接到存储系统170中。通过网络连接138,用户计算机136的操作人员可以存取存储在存储系统170中的数据。
在一个实施方案中,终端用户再存储应用程序300包括用户证明的和/或授权的特征。例如,用户可以要求使用用户名和密码通过用户计算机上的用户接口登录。用户计算机可以将用户名和密码与存储系统进行通信(即,到终端用户再存储应用程序),其可以使用适当的用户证明装置来确定用户是否有权访问存储系统。用户证明机制的某些实施例包括但不限于,MICROSOFT动态目录服务器(Active Directory server),UNIX“黄页”服务,或者轻型目录访问协议(Lightweight Directory Access Protocol)。登录/用户证明装置可以与终端用户再存储应用程序进行通信以交换用户特权。例如,某些用户可以允许仅仅搜索由他们自己创建的文件,或者是含有某些特权的文件,或者是被所有者识别的文件。其他的用户,例如,系统操作员或者管理员可以允许访问全部的备份文件等等。
根据一个实施方案,终端用户再存储应用程序使用的逻辑元数据高速缓冲存储器来获得关于在备份存储媒体中进行备份的全部数据文件的信息。通过用户接口,终端用户再存储应用程序向用户提供被存储的用户文件的分级文件结构的目录,例如,备份的时间/日期、用户名、原始的用户计算机的目录结构(其可以在文件被备份之后获得),或者其他的文件特征。在一个实施例中,呈现给用户的目录结构可以根据用户的特权而发生改变。终端用户再存储应用程序可以接受提供浏览的要求(即,通过用户接口,用户可以浏览目录结构以确定需要的文件的位置),或者用户可以通过文件名,日期等等搜索文件。
根据一个实施方案,用户可以从存储系统中再存储文件。例如,一旦用户确定需要的文件,正如上文中的讨论,用户可以从存储系统中通过网络连接138下载文件。在一个实施例中,下载程序可以以比较与任何网络下载的方式进行,正如本领域内的任何一名普通技术人员所熟知的那样。
通过允许终端用户存取那些他们被允许浏览/下载的文件,和通过用户接口来建立所述的存取(例如,网络技术),终端用户再存储应用程序可以使得用户能够搜索和再存储他们自己的文件而无需改变任何备份策略或程序。
人们将会理解,尽管本发明的各个方面,例如,合成的全备份应用程序和终端用户再存储应用程序已经主要通过软件在本文中进行了描述,人们将会理解,对于软件、硬件或者固件或者是它们的结合的任何改变都是可行的。
因此,例如,本发明的各种实施方案可以包括任何与计算机程序进行编码(例如,多个指令)的计算机可读媒体(即,计算机存储器,软盘,压缩盘,磁带等等),当至少部分是在存储系统的处理器上执行时,完成上文中详细描述的合成的全备份应用程序和/或终端用户再存储应用程序的功能。
总的来说,本发明的各个实施方案和方面包括仿真传统的磁带式备份系统的存储系统和方法,但可以提供增强的功能,例如,能够创建合成的备份和允许终端用户浏览和再存储文件。然而,人们也会理解本发明的各个方面可以用于除计算机数据的备份之外的其他方面。由于本发明中的存储系统被用于经济地进行存储大量的数据,和可以以相反的顺序随意存取被存储的数据,以及在硬盘存取时间,本发明的实施方案可以发现使用外部的传统备份存储系统。例如,本发明的实施方案可以用于存储代表影像或音乐的宽泛选择的视频或音频数据,和在提出要求时就能够建立视频/音频。
鉴于本发明的至少一个实施方案的若干方面已经得到描述,人们将会理解各种不同的修改、改变和改进将对于本领域的普通技术人员来说是容易的。因此,这样的修改、改变和改进都是本公开的一部分并都在本发明的范围之内。对应地,上述描述和附图仅仅是出于可以效仿的目的。

Claims (29)

1.一种用于指导应用层数据对象的重复数据删除的方法,该方法包括:
接收应用层数据对象;
至少部分地基于与重复数据删除域相关联的数据对象的特征,从众多的重复数据删除域中选择一个重复数据删除域;
确定应用层数据对象具备特征;和
将应用层数据对象指向选定的重复数据删除域。
2.根据权利要求1的方法,其中接收应用层数据对象包括:
接收数据流;以及
使用包含在数据流中的元数据来识别应用层数据对象。
3.根据权利要求2的方法,其中接收数据流包括接收多重数据流。
4.根据权利要求2的方法,进一步包括选取包含在带有应用层数据对象的数据流中的元数据。
5.根据权利要求4的方法,其中从众多的重复数据删除域中选择一个重复数据删除域包括将选取的与应用层数据对象相关联的元数据与至少一个与重复数据删除域相关联的特征进行对比。
6.根据权利要求4的方法,其中选取包含在数据流中的元数据包括选取至少备份策略名、数据流类型、数据流的名称、备份应用程序的名称、操作系统类型、数据类型、备份类型、文件名、目录结构和时间顺序的信息的其中之一。
7.根据权利要求1的方法,进一步包括将众多的重复数据删除域中的每一个都设定为使用众多的重复数据删除方法的其中之一。
8.根据权利要求7的方法,其中设定众多的重复数据删除域中的每一个包括将众多的重复数据删除域中的每一个都设定为使用选自由无用信息的指纹识别、图案识别和智能识别的重复数据删除所组成的组中的一种重复数据删除方法。
9.根据权利要求1的方法,进一步包括将众多的重复数据删除域中的每一个都与至少一个数据对象的特征联系起来。
10.根据权利要求1的方法,进一步包括:
在选定的重复数据删除域中,对应用层数据对象进行重复数据删除;以及
基于重复数据删除步骤的结果,调整数据对象的特征与众多的重复数据删除域中的至少其中之一相关联。
11.根据权利要求10的方法,其中调整数据对象的特征包括将数据存储在重复数据删除域的数据库中。
12.一种具有存储于其中的计算机可读信号的计算机可读媒体,其定义作为被计算机执行的结果的指令,以指示计算机执行权利要求1的方法。
13.根据权利要求1的方法,其中方法在网格式计算机环境中执行。
14.根据权利要求1的方法,其中方法在备份的存储系统中执行,同时数据没有被备份到备份存储系统中。
15.根据权利要求1的方法,其中方法在备份的存储系统中执行,同时数据被备份到备份的存储系统中。
16.一种用于指导应用层数据对象的重复数据删除的系统,该系统包括:
众多的重复数据删除域,众多的重复数据删除域中的每一个都与众多的应用层数据对象所共有的至少一个特征相关联;以及
连接到众多的重复数据删除域上的控制器,该控制器被设定用于:
接收应用层数据对象;
确定应用层数据对象具有至少一个与重复数据删除域关联的特征;以及
将应用层数据对象指向重复数据删除域。
17.根据权利要求16的系统,其中控制器被进一步设定为:
接收数据流;以及
使用包含在数据流中的元数据来识别应用层数据对象。
18.根据权利要求17的系统,其中数据流是多重的。
19.根据权利要求17的系统,其中控制器被进一步设定用于选取包含在具有应用层数据对象的数据流中的元数据。
20.根据权利要求19的系统,其中控制器被进一步设定用于通过对比选取的与应用层数据对象相关联的元数据和至少一个与重复数据删除域相关联的特征来确定应用层数据对象具有至少一个与重复数据删除域相关联的特征。
21.根据权利要求19的系统,其中控制器被进一步设定用于选取至少备份策略名、数据流类型、数据流的名称、备份应用程序的名称、操作系统类型、数据类型、备份类型、文件名、目录结构和时间顺序的信息的其中之一。
22.根据权利要求16的系统,其中控制器被进一步排列以便将众多的重复数据删除域中的每一个都设定为使用众多的重复数据删除方法的其中之一。
23.根据权利要求22的系统,其中控制器被进一步排列以便将众多的重复数据删除域中的每一个都设定为使用选自由无用信息的指纹识别、图案识别和智能识别的重复数据删除所组成的组中的一种重复数据删除方法。
24.根据权利要求16的系统,其中控制器被进一步设定用于将众多的重复数据删除域中的每一个都与至少一个数据对象的特征联系起来。
25.根据权利要求16的系统,其中控制器被进一步设定用于:在选定的重复数据删除域中,导致应用层数据对象的重复数据删除;以及
基于重复数据删除步骤的结果,调整数据对象的特征与众多的重复数据删除域中的至少其中之一相关联。
26.根据权利要求25的系统,其中控制器被进一步设定用于将数据存储在重复数据删除域的数据库中。
27.根据权利要求16的系统,其中系统被包含在网格式计算机环境中。
28.根据权利要求16的系统,其中控制器被进一步设定用于接收应用层数据对象,确定应用层数据对象具有至少一个与重复数据删除域相关联的特征和将应用层数据对象指向重复数据删除域,同时数据没有被备份到系统中。
29.根据权利要求16的系统,其中控制器被进一步设定用于接收应用层数据对象,确定应用层数据对象具有至少一个与重复数据删除域相关联的特征和将应用层数据对象指向重复数据删除域,同时数据被备份到系统中。
CN2009801016964A 2008-01-16 2009-01-16 可扩展的重复数据删除机构 Pending CN101939737A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US2150108P 2008-01-16 2008-01-16
US61/021,501 2008-01-16
PCT/US2009/031222 WO2009091957A2 (en) 2008-01-16 2009-01-16 Scalable de-duplication mechanism

Publications (1)

Publication Number Publication Date
CN101939737A true CN101939737A (zh) 2011-01-05

Family

ID=40885894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801016964A Pending CN101939737A (zh) 2008-01-16 2009-01-16 可扩展的重复数据删除机构

Country Status (6)

Country Link
EP (1) EP2235640A2 (zh)
JP (1) JP2011510405A (zh)
CN (1) CN101939737A (zh)
AU (1) AU2009206038A1 (zh)
CA (1) CA2711273A1 (zh)
WO (1) WO2009091957A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103975300A (zh) * 2011-12-08 2014-08-06 英派尔科技开发有限公司 用于允许跨用户的重复数据删除的存储折扣
CN109416681A (zh) * 2016-08-29 2019-03-01 国际商业机器公司 使用幽灵指纹进行工作负载优化的重复数据删除
US11182406B2 (en) 2020-03-27 2021-11-23 International Business Machines Corporation Increased data availability during replication
CN114020218A (zh) * 2021-11-25 2022-02-08 建信金融科技有限责任公司 混合重复数据删除调度方法及系统

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8291183B2 (en) 2009-01-15 2012-10-16 Emc Corporation Assisted mainframe data de-duplication
JP5623239B2 (ja) * 2010-10-28 2014-11-12 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 書込みレコードの重複を排除する記憶装置、及びその書込み方法
US8682873B2 (en) 2010-12-01 2014-03-25 International Business Machines Corporation Efficient construction of synthetic backups within deduplication storage system
US8332372B2 (en) * 2010-12-16 2012-12-11 International Business Machines Corporation Method and system for processing data
US9933978B2 (en) 2010-12-16 2018-04-03 International Business Machines Corporation Method and system for processing data
US9128616B2 (en) * 2012-04-13 2015-09-08 Hitachi, Ltd. Storage device to backup content based on a deduplication system
EP3248354A4 (en) 2015-01-19 2018-08-15 Nokia Technologies Oy Method and apparatus for heterogeneous data storage management in cloud computing
JP6720612B2 (ja) * 2016-03-23 2020-07-08 日本電気株式会社 情報処理装置、ストレージシステム、記憶制御方法およびコンピュータプログラム
CN110603517B (zh) * 2017-06-08 2023-07-25 日立数据管理有限公司 对分布的经过擦除编码的对象去复制
CN112632191B (zh) * 2020-12-29 2024-06-11 中国农业银行股份有限公司 一种数据处理方法及系统
CN118159936A (zh) * 2022-08-31 2024-06-07 华为技术有限公司 顺序存储介质上的并行重复数据删除机制

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6795819B2 (en) * 2000-08-04 2004-09-21 Infoglide Corporation System and method for building and maintaining a database
KR20020066836A (ko) * 2001-02-14 2002-08-21 한국통신정보기술 주식회사 계층적 데이터구조를 기록한 기록매체 및 계층적 데이터저장구조를 형성하는 방법
EP1244221A1 (en) * 2001-03-23 2002-09-25 Sun Microsystems, Inc. Method and system for eliminating data redundancies
KR100700200B1 (ko) * 2004-12-24 2007-03-27 주식회사 나우콤 파일의 정보를 이용하여 중복된 파일을 저장하고다운로드하는 방법 및 장치
US7840537B2 (en) * 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US8315984B2 (en) * 2007-05-22 2012-11-20 Netapp, Inc. System and method for on-the-fly elimination of redundant data

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103975300A (zh) * 2011-12-08 2014-08-06 英派尔科技开发有限公司 用于允许跨用户的重复数据删除的存储折扣
CN109416681A (zh) * 2016-08-29 2019-03-01 国际商业机器公司 使用幽灵指纹进行工作负载优化的重复数据删除
CN109416681B (zh) * 2016-08-29 2022-03-18 国际商业机器公司 使用幽灵指纹进行工作负载优化的重复数据删除
US11182406B2 (en) 2020-03-27 2021-11-23 International Business Machines Corporation Increased data availability during replication
CN114020218A (zh) * 2021-11-25 2022-02-08 建信金融科技有限责任公司 混合重复数据删除调度方法及系统
CN114020218B (zh) * 2021-11-25 2023-06-02 建信金融科技有限责任公司 混合重复数据删除调度方法及系统

Also Published As

Publication number Publication date
EP2235640A2 (en) 2010-10-06
JP2011510405A (ja) 2011-03-31
CA2711273A1 (en) 2009-07-23
AU2009206038A1 (en) 2009-07-23
WO2009091957A2 (en) 2009-07-23
WO2009091957A3 (en) 2009-10-15

Similar Documents

Publication Publication Date Title
CN101939737A (zh) 可扩展的重复数据删除机构
CN101479944B (zh) 基于采样消除重复数据的系统和方法
CN101515273B (zh) 提供用于在存储设备的分布式文件系统中进行信息追踪的元数据的系统和方法
KR100890573B1 (ko) 에뮬레이팅된 저장 시스템
US8938595B2 (en) Emulated storage system
US8280926B2 (en) Scalable de-duplication mechanism
US9002785B2 (en) Stubbing systems and methods in a data replication environment
US8352422B2 (en) Data restore systems and methods in a replication environment
US6880051B2 (en) Method, system, and program for maintaining backup copies of files in a backup storage device
US20050108486A1 (en) Emulated storage system supporting instant volume restore
US20040153481A1 (en) Method and system for effective utilization of data storage capacity
US20110246429A1 (en) Stub file prioritization in a data replication system
EP1683028A1 (en) Emulated storage system supporting instant volume restore
US8195612B1 (en) Method and apparatus for providing a catalog to optimize stream-based data restoration
JP2007527572A5 (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110105