CN102640118A - 用于高效文件存储的具有多个索引的去重复存储系统 - Google Patents

用于高效文件存储的具有多个索引的去重复存储系统 Download PDF

Info

Publication number
CN102640118A
CN102640118A CN2010800542804A CN201080054280A CN102640118A CN 102640118 A CN102640118 A CN 102640118A CN 2010800542804 A CN2010800542804 A CN 2010800542804A CN 201080054280 A CN201080054280 A CN 201080054280A CN 102640118 A CN102640118 A CN 102640118A
Authority
CN
China
Prior art keywords
file
index
group
fragmentations
memory location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010800542804A
Other languages
English (en)
Other versions
CN102640118B (zh
Inventor
F·郭
W·吴
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.)
NortonLifeLock Inc
Original Assignee
Symantec 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 Symantec Corp filed Critical Symantec Corp
Publication of CN102640118A publication Critical patent/CN102640118A/zh
Application granted granted Critical
Publication of CN102640118B publication Critical patent/CN102640118B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

在此描述了一种使用多个索引的去重复存储系统。一个第一组一个或多个索引可以存储在随机存储器(RAM)或其他类型的快速存储器中。一个第二组一个或多个索引可以存储在一个或多个磁盘驱动器或另一类型的存储器中,在这类存储器中可以廉价地存储大量数据。在将新文件添加到该去重复存储系统中时可以使用第一组索引,以便确定是否已经存储了该新文件的文件分段。当恢复文件时可以使用第二组索引,以便查找该文件的分段。

Description

用于高效文件存储的具有多个索引的去重复存储系统
技术领域
本发明总体上涉及用于计算机系统的数据备份软件。更具体地,本发明涉及备份软件,该备份软件运行用于创建并使用一种去重复存储系统的多个索引。
背景技术
大机构经常使用备份存储系统,该系统对多个客户端计算机系统所使用的文件进行备份。备份存储系统可以利用数据去重复技术以避免不得不存储的大量数据。例如,文件从一个备份到下一个备份可能变化很小或者完全没有变化。可以使用去重复技术以使得不需要再次备份已经备份过的文件数据。文件可以分为多个分段,并且文件分段可以作为分段对象单独地存储在备份存储系统中。当备份了文件的一个新版本时,备份软件可以检查代表当前文件分段的分段对象是否已经存储在备份存储系统中。已经存储的每个分段对象可以被再次引用,而无需存储新的分段对象的副本。
备份存储系统可以使用一个索引,该索引指示分段对象在备份存储系统中的存储位置。可以通过将一个哈希函数应用到分段对象上来创建分段对象的指纹。索引可以将分段对象的指纹映射到分段对象的存储位置上。当一个文件被备份到系统上时,将它分成多个分段并在索引中查找这些分段的指纹。如果在索引中发现了一个分段,那么可以再次使用该分段并且不需要再次对其进行存储。因此,仅存储每个唯一分段的一份拷贝,并且多个文件可以共享该分段的单一拷贝。
为了使索引查找速度更快,可以将索引存储在RAM中。这种解决方案对于小备份存储系统而言是有效的,但是对大系统并不十分适合。当系统容量达到几百太字节时,分段的数量可能超过一百亿。管理一百亿指纹的索引就出现了问题,因为索引太大以致于无法存入存储器。
如果索引存储在磁盘中,在索引中进行表项查找、创建、删除和修改也是一个问题,因为速度会很慢。随机磁盘存取性能非常差,在一些系统中每秒的索引表项存取次数不超过1000。
发明内容
在此披露了一种用于备份并恢复去重复存储系统中的文件的系统和方法的不同实施方案。根据该方法的一个实施方案,一个第一组一个或多个索引可以存储在一个第一类型存储装置中。在一些实施方案中,该第一类型的存储装置可以是能够快速访问该存储装置的所有内容的一种存储装置。在一些实施方案中,该第一类型的存储装置可以是随机存取存储器(RAM)。在其他实施方案中,该第一类型存储装置可以是固态驱动器(SSD)。该第一组的每个索引指示去重复存储系统中存储的文件分段的存储位置。
一个第二组一个或多个索引可以存储在一个第二类型存储装置中。在一些实施方案中,该第二类型存储装置可以是在其上可廉价地存储大量数据的一种存储装置,例如一个或多个磁盘驱动器。同样,第二组中的每个索引指示存储在该去重复存储系统中的文件分段的存储位置。
响应于接收有待存储在该去重复存储系统中的一个第一文件,该方法可操作用于将该第一文件分为多个文件分段。该第一组索引而非第二组索引可用于试图查找该第一文件的多个文件分段的存储位置。
响应于接收一个从该去重复存储系统恢复一个第二文件的请求,该方法可操作用于确定该第二组索引的一个具体索引指示该第二文件的文件分段的存储位置。该第二组索引的具体索引可用于查找该第二文件的文件分段的存储位置,以恢复该第二文件。
在一些实施方案中,该第一文件的多个文件分段可以包括在接收该第一文件之前已经存储在该去重复存储系统中的一个具体文件分段。有可能的是第二组索引可以包括指示该具体文件分段的存储位置的一个索引,但该第一组索引中没有一个索引可以指示该具体文件分段的存储位置。在这种情况中,响应于确定该第一组索引中没有索引指示该具体文件分段的存储位置,该方法可操作用于在该去重复存储系统中存储该具体文件分段的一个重复拷贝。
在一个进一步的实施方案中,响应于确定该第一组的具体索引已经到达最大容量或充满,该方法可操作用于将存储在RAM中的第一组的一个具体索引移至存储在该一个或多个磁盘驱动器上的第二组中。在一些实施方案中,响应于确定该第一组的具体索引将移至该第二组中,该方法还可以确定该第一组的具体索引的多个最常使用的文件分段并将这些最常使用的文件分段添加到该第一组的另一个索引中。
附图说明
当结合以下附图来考虑以下详细说明时,可以更好地理解本发明,在附图中:
图1展示了连接至一个去重复存储系统的多个客户端计算机系统;
图2的示图展示了该去重复存储系统中的一个备份服务器计算机的实例;
图3展示了存储在该备份服务器计算机的系统存储器中的不同软件模块;
图4的流程图展示了一种用于将新的文件备份到该去重复存储系统中的方法的一个实施方案;
图5的流程图展示了一种用于从该去重复存储系统恢复文件的方法的一个实施方案;以及
图6至8展示了该去重复存储系统所使用的索引。
尽管本发明很容易有各种修改和替代形式,但是通过附图中的实例示出了多个具体实施方案,并对其进行了详细说明。然而,应该理解的是这些附图以及对其所作的详细说明并无意于将本发明限制于所披露的具体形式,恰恰相反,旨在包括落在所附权利要求所限定的本发明的要旨与范围之内的所有修改、等同替换以及替代形式。
具体实施方式
以下披露了一种用于备份并存储文件的系统和方法的不同实施方案。该方法可以用于将文件备份至一个存储系统,在该系统中使用去重复技术以避免存储文件数据的重复拷贝。使用去重复技术来避免存储数据对象的重复拷贝的存储系统在本文称之为去重复存储系统。文件可以被分为多个分段,并且文件数据可以作为独立分段存储在去重复存储系统中。如以下描述的,该系统可以使用多个索引,这些索引指示该去重复存储系统中所存储的分段的存储位置,其中这些索引中的一个或多个存储在快速存储器中,例如RAM或固态驱动器,并且一个或多个存储在廉价的存储器中,例如磁盘驱动器。
图1展示了通过网络84连接至去重复存储系统30的多个客户端计算机系统82。在不同的实施方案中,客户端计算机系统82可以通过任何类型的网络或网络的组合连接到去重复存储系统30上。例如,网络84可以包括局域网(LAN)、广域网(WAN)、内部网、互联网等中的任意类型或其组合。局域网的实例包括以太网、光纤分布式数据接口(FDDI)网络、以及令牌环网。每台计算机或者设备还可以利用任意类型的有线或无线连接媒质与网络相连。例如,有线媒质可以包括连接至普通老式电话服务(POTS)等的以太网、光纤通道、调制解调器。无线连接媒质可以包括卫星链路、连接蜂窝服务的调制解调器链路、无线链路如WI-FITM、使用无线通信协议如IEEE 802.11(无线以太网)、蓝牙等等的无线连接。
去重复存储系统30可以运行备份软件100,该软件通过网络84从客户端计算机系统82接收文件并为例如备份存储器存储文件。例如,备份软件100可以周期性地与客户端计算机系统82进行通信以便备份定位在客户端计算机系统82上的文件。
去重复存储系统30可以包括一个或多个备份服务器计算机32,该备份服务器计算机运行备份软件100并与客户端计算机系统82进行通信。图2的示图根据一个实施方案详细地展示了备份服务器计算机32的一个实例。通常,备份服务器计算机32可以是任意类型的物理计算机或计算装置,并且图2仅作为一个实例给出。在所示的实施方案中,备份服务器32包括总线212,该总线将备份服务器32的主要子系统或组件相互连接,如一个或多个中央处理器单元214、系统存储器217(通常是RAM,但是还可以包括ROM、闪存RAM、或类似的存储器)、输入/输出控制器218、外部音频装置,如经由音频输出接口222的扬声器系统220、外部装置,如经由显示适配器226的显示屏224、串行端口228和230、键盘232(与键盘控制器233连接)、存储接口234、可操作用于接收软盘238的软盘驱动器237、可操作用于与光纤通道网络290相连接的主机总线适配器(HBA)接口卡235A、可操作用于连接到SCSI总线239上的主机总线适配器(HBA)接口卡235B、以及可操作用于接收光盘242的光盘驱动器240。还包括鼠标246(或其他点击装置,经由串行端口228连接至总线212)、调制解调器247(经由串行端口230连接至总线212)、以及网络接口248(直接连接至总线212)。
总线212允许一个或多个中央处理器214与系统存储器217之间的数据通信,如前所提,该系统存储器可以包括只读存储器(ROM)或闪存(均未示出)、以及随机存取存储器(RAM)。RAM通常是主存储器,包括备份软件100的软件程序载入到该存储器中。除其他代码外,ROM或闪存可以包括基本输入输出系统(BIOS),该系统控制基本的硬件操作,例如与外围组件的交互。与备份服务器32一起驻存的软件通常存储在一种计算机可读媒质上或通过该媒质进行访问,例如硬盘驱动器(例如,固盘244)、光盘驱动器(例如,光驱动器240)、软盘单元237、或者其他存储媒质。另外,可以通过网络调制解调器247或网络接口248来接收软件。
存储接口234就像节点10的其他存储接口一样可以连接至用于信息存储和/或检索的标准计算机可读媒质上,例如一个或多个磁盘驱动器244。备份软件100可以存储从磁盘驱动器244上的客户端计算机系统82接收的文件数据。在一些实施方案中,备份软件100还可以或可替代地可以在共享存储装置40上存储文件数据。在一些实施方案中,共享存储装置40可以通过光纤通道网络290连接至备份服务器32。在其他实施方案中,共享存储装置40可以通过多种其他类型的存储接口或网络中的任意一种连接至备份服务器32。另外,在其他实施方案中,备份软件100可以在包含于或连接至备份服务器计算机32的各种其他类型的存储装置中的任意一种上存储文件数据。
很多其他装置或子系统(未示出)可以采用类似的方式连接至备份服务器32。相反,实施本披露并不要求在图2所示的所有装置都存在。装置和子系统可以采用不同于图2所示的方式相互连接。本文描述的用于实施备份软件100的代码可以存储在计算机可读存储媒质中,例如系统存储器217、磁盘驱动器244、光驱动器242、或软盘驱动器238中的一个或多个。备份服务器32上提供的操作系统可以是微软
Figure BDA00001704276200051
操作系统、
Figure BDA00001704276200052
操作系统、
Figure BDA00001704276200053
操作系统、或另一种操作系统。
图3展示了存储在备份服务器32的系统存储器217中的各种软件模块。软件模块的程序指令可由备份服务器32的一个或多个处理器执行。图3中所示的软件模块作为软件架构的一个实例而给出,该软件架构实施本文描述的各种特征。在其他实施方案中,可以使用其他软件架构。
在所示的实施方案中,备份服务器32的软件包括操作系统软件902,该操作系统软件管理备份服务器32的基本操作。备份服务器32的软件还包括网络通信模块904。网络通信模块904可以由操作系统软件902、备份软件100或其他软件模块来使用,以便与其他计算机系统进行通信,例如客户端计算机系统82。备份服务器32的软件还包括备份软件100。备份软件100包括各种模块,例如索引管理模块908、存储模块910以及恢复模块912。以下描述了备份软件100的各种模块所执行的功能。
备份软件100的索引管理模块908可以创建并使用多个索引,而不是一个大索引。每个索引可以指示去重复系统中存储的各种文件分段的存储位置。一个第一组一个或多个索引可以存储在一个第一类型的存储装置上。该第一类型的存储装置可以是能够快速访问存储在该存储装置的所有内容的一种存储装置。在一些实施方式中,第一类型的存储装置可以是随机存取存储器(RAM),例如系统存储器217。在其他实施方案中,第一类型存储装置可以是固态驱动器(SSD)、闪存装置、或其他类型的存储装置。
一个第二组一个或多个索引可以存储在另一类型存储装置上。第二类型存储装置可以是成本便宜的存储装置,在该存储装置中可以较为经济地存储大量的数据。在一些实施方案中,第二类型存储装置可以是一个或多个磁盘驱动器,例如一个或多个磁盘驱动器244。
当备份文件时,备份软件100可以使用存储在快速存储器(例如RAM)中的第一组索引而非存储在磁盘驱动器上的第二组索引,以便尝试查找文件的多个文件分段的存储位置。第一组索引可以足够大以至于能够查找所需要的最多的文件分段,但也可以是足够的小以便适合于RAM。当恢复文件时,可以使用存储在磁盘驱动器上的第二组索引,如下所述。
图4的流程图展示了一种用于将新文件备份到去重复存储系统30中的方法的一个实施方案。该方法可以在去重复储存系统30的一个或多个备份服务器计算机32上运行的备份软件100来实现。
如方框501中所指,文件可以分为多个分段。如方框503中所指,可以通过将哈希函数或其他算法用于该分段的数据来计算每个分段的指纹或签名。对于每个指纹,可以执行以下步骤。
如方框505所指,备份软件100可以检查存储在快速存储器(例如RAM)中的第一组索引以试图查找指纹。而对存储在廉价存储器(例如,磁盘驱动器)中的第二组索引,不检查指纹。由于第一组索引存储在RAM中或另一类型的快速存储装置上,可以快速访问这些索引。
如果没有发现指纹,就表示相应的文件分段没有存储在去重复存储系统30中。因此,将分段添加到去重复存储系统30中,并且将指纹与指示存储位置的信息一起加到第一组中的一个索引上,在该存储位置上可以访问分段,如方框507所指。如果在添加指纹后索引充满,那么可以将索引移至存储在磁盘驱动器上的第二组索引中,如方框509所指。可以利用一个新的空索引来替代在第一组中的索引。
备份软件100还可以存储文件信息,该文件信息详细说明了文件的分段的一个指纹列表。如方框511所指,可以将当前指纹添加到文件信息中的指纹列表中。另外,可以将在其中发现指纹的索引(或指纹添加到其中的索引)添加到文件信息中。这使得备份软件100在需要恢复文件时能够确定使用哪个索引来查找指纹。
图5的流程图展示了一种用于从去重复存储系统30恢复文件的方法的一个实施方案。该方法可以由在去重复储存系统30的一个或多个备份服务器计算机32上运行的备份软件100来实现。
备份软件100可以从对文件进行备份时所存储的文件来检索文件信息。如上所描述,文件信息包括文件的分段的一个指纹列表。可以对列表中的每个指纹执行方框601、603以及605。
如方框601所指,备份软件100可以检查文件信息以确定哪个索引指示了指纹所识别的相应文件分段的位置。然后可以访问该索引以找到文件分段的存储位置,如方框603所指。接着可以检索文件分段,如方框605所指。
一旦已经检索到所有的文件分段,可以对这些分段进行级联以便恢复文件。
在一些实施方案中,存储在RAM中的第一组索引可以包括称之为基本索引的一种专用索引,该基本索引存储了最常遇到的指纹。这使得频繁使用的指纹能够保存在快速存储器中,当将新文件备份至去重复存储系统中时,可以在该快速存储器中快速找到指纹。在其他实施方案中,基本索引可以包括其他专用指纹。例如,在一些实施方案中,可以将每个文件的第一分段的指纹添加到基本索引中。
图6展示了三个索引存储在系统存储器(RAM)217中的实例。索引901A(称为基本索引)可以一直保存在存储器中,而另外两个索引901B和901C在充满时可以移至磁盘驱动器中。基本索引901A将最常使用的文件分段的指纹映射到最常使用的文件分段的存储位置上。当新文件添加到存储系统时,文件中包含的新分段的指纹被添加到索引901B中。在此实例中,索引901B当前包括指纹FP6、FP7、FP8、FP9、FP10、以及FP11。图7展示了稍后一段时间上的索引。索引901B现在充满了,所以新的指纹正在被添加到索引901C中。
图8展示了索引901C充满之后一段时间上的索引。为了给新的索引腾出可以添加新指纹的空间,索引901B已经移出了RAM 217并且移至硬盘驱动器244上。另外,备份软件100已经确定了索引901B的最常使用的指纹(FP8和FP11)并将它们添加到索引901A中。新索引901D已经创建,用于添加新文件分段的新指纹。
假设现在接收了一个新文件以存储在存储系统中,并且该文件包括具有指纹FP9的分段。备份软件100的存储模块910试图利用指纹FP9查找在RAM 217中存储的索引中的分段的存储位置。然而,由于RAM 217中没有一个索引包括指纹FP9,所以未发现分段。因此,在这种情况下将重复分段添加到存储系统中。然而,存储在RAM 217中的索引可以足够的大,以至于它们包括所需的最多指纹的“工作集”。因此,添加重复区段的情况比较少见。在一些实施方案中,索引901B和901C可以足够的大,以便包含若干天或星期中遇到的值得备份的所有分段的指纹。
现在假设需要恢复使用分段(具有指纹FP10)的一个文件。同样,指纹FP 10不包括在存储在RAM 217中的索引中的任意一个中。然而,文件信息表明了曾经使用了哪个索引来指示文件的分段。因此,文件信息表明索引901B应该用于查找文件的分段的存储位置,以便可以恢复文件。这样,备份软件100的恢复模块912可以访问磁盘驱动器244上的索引901B。
因此,不是使用必须存储在RAM中或磁盘上的一个大索引,而是使用多个更小的索引。一个或多个足够可以查找大部分最新增加区段和最常使用的区段的索引存储在RAM中。当新文件加入到系统中时,只有RAM中的索引用于查找文件分段的存储位置。这使得查找更快速并且可扩展。旧有的索引存储在磁盘上并且在恢复文件时可用于查找分段的储存位置。
最常使用的分段的指纹保留在基本索引中并且总是可用的。只要ram足够大以至于保持分段指纹的工作集,去重复中的分段查找就可以实现高速,而无需牺牲可扩展性。在RAM中不存在的索引只用于恢复。每个文件记录哪个文件用于它的区段。在恢复的过程中,仍然可以通过从磁盘查找旧的索引来找到每个文件的每个分段。
因为每个索引小于使用一个大索引的常规系统,使用多个索引的操作更为有效,例如表项查找、创建、删除以及修改。因为存储在RAM中的索引只包含系统中的所有分段的一个子集的指纹,这可以更快地搜索这些索引以确定它们是否包含一个给定的指纹。确定一个具体的指纹不存在于索引中的速度是重要的,因为文件数据的重要部分可能是新的数据。
在RAM中存储的索引的指纹工作集不足够大的情况下,系统会产生重复的分段。这在成本和效率之间是一个权衡。
在恢复的过程中,可能需要从磁盘搜索某些索引项。为了使其更快,在一些实施方案中,在使用磁盘上的索引的同时,可以将其载入到RAM中。
已经在上文描述了一种用于备份并恢复文件的方法的各种实施方案。该方法由彼此结合运行的不同装置来实施,并且致使这些设备中的一个或多个发生变化。例如,可以通过如上所讨论对索引进行存储来改变去重复存储系统(或备份服务器计算机使用的存储装置)的备份服务器计算机。
要注意的是,在一些实施方案中,本文所述的不同功能可以根据基于云的计算技术或者软件即服务(SAAS)技术来实施。例如,在一些实施方案中,备份软件100的功能可以提供为一种云计算服务。
进一步要注意的是,各种实施方案可以进一步包括根据前面针对一种计算机可访问的存储媒质所作的说明而实施的接收、发送或者存储指令和/或数据。一般而言,计算机可访问的存储媒质可以包括任意可以由一个或多个计算机(或者处理器)在使用期间访问以便将指令和/或数据提供给该一个或多个计算机的存储媒质。例如,计算机可访问存储媒质可以包括存储媒质,例如磁或光媒质,例如一个或多个磁盘(固定的或可移动的)、磁带、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW等。存储媒质可以进一步包括可通过外围接口(例如通用串行总线(USB)接口等)访问的易失的或非易失的存储媒质,例如RAM(例如同步动态RAM(SDRAM)、静态RAM(SRAM)等)、ROM、闪存、非易失存储器(例如闪存)。在一些实施方案中,一个或多个计算机可以通过通信装置(例如网络和/或无线链路)来访问存储媒质。
为了解释的目的,已经参照具体实施方案对前述说明作出了描述。但是,这些示意性的说明并不旨在穷举或者将本发明限制在所披露的准确形式。鉴于以上传授内容,许多修改与变形都是可能的。为了最好地解释本发明的原理及其实际应用,选择并说明了这些实施方案,从而使得本领域的其他技术人员能够最好地利用本发明,以及针对预期的具体用途而作了各种适当修改的不同实施方案。

Claims (19)

1.一种存储多个程序指令的计算机可访问的存储媒质,这些程序指令可执行用于:
在一个第一类型存储装置上存储一个第一组一个或多个索引,其中该第一组的每个索引指示存储在一个去重复存储系统中的多个文件分段的存储位置;
在一个第二类型存储装置上存储一个第二组一个或多个索引,其中该第二组的每个索引指示存储在该去重复存储系统中的多个文件分段的存储位置;
响应于接收有待存储在该去重复存储系统中的一个第一文件:
将该第一文件分为多个文件分段;
使用该第一组索引而非第二组索引试图查找该第一文件的多个文件分段的存储位置;
响应于接收一个从该去重复存储系统恢复一个第二文件的请求:
确定该第二组索引的一个具体索引指示该第二文件的多个文件分段的存储位置;并且
使用该第二组索引的具体索引来查找该第二文件的多个文件分段的存储位置以便恢复该第二文件。
2.如权利要求1所述的计算机可访问存储媒质,
其中该第一文件的多个文件分段包括在接收该第一文件之前已经在该去重复存储系统中存储的一个具体文件分段;
其中该第二组索引包括指示该具体文件分段的存储位置的一个索引;
其中响应于确定该第一组索引中没有索引指示该具体文件分段的存储位置这些程序指令进一步可执行用于在该去重复存储系统中存储该具体文件分段的一个重复拷贝。
3.如权利要求1所述的计算机可访问存储媒质,其中这些程序指令进一步可执行用于:
响应于确定该第一组的具体索引已经达到最大容量将存储在RAM中的该第一组的一个具体索引移至存储在一个或多个磁盘驱动器上的第二组中。
4.如权利要求3所述的计算机可访问存储媒质,
其中该第一组索引包括一个第一索引,该第一索引指示频繁使用的多个文件分段的存储位置;
其中这些程序指令可执行用于:
确定该第一组的具体索引的多个最常使用的文件分段;并且
响应于确定该第一组的具体索引有待移动到该第二组中将该多个最常使用的文件分段添加到该第一索引中。
5.如权利要求3所述的计算机可访问存储媒质,其中这些程序指令进一步可执行用于:
以存储在RAM中的一个新索引替代该第一组的具体索引。
6.如权利要求1所述的计算机可访问存储媒质,
其中该第一组的索引通过将这些文件分段的指纹映射到这些文件分段的存储位置上来指示这些文件分段的存储位置;
其中这些程序指令可执行用于使用该第一组索引以通过以下方式试图查找该第一文件的多个文件分段的存储位置:
确定该第一文件的多个文件分段的指纹;并且
利用该第一文件的多个文件分段的指纹来试图在该第一组的一个或多个索引中查找该第一文件的多个文件分段的存储位置。
7.如权利要求1所述的计算机可访问存储媒质,其中该第一类型存储装置是以下各项之一:
随机存取存储器(RAM);
固态驱动器(SSD)。
8.如权利要求1所述的计算机可访问存储媒质,
其中该第二类型存储装置是一个或多个磁盘驱动器。
9.一种方法,包括:
在一个第一类型存储装置上存储一个第一组一个或多个索引,其中该第一组的每个索引指示存储在一个去重复存储系统中的多个文件分段的存储位置;
在一个第二类型存储装置上存储一个第二组一个或多个索引,其中该第二组的每个索引指示存储在该去重复存储系统中的多个文件分段的存储位置;
响应于接收有待存储在该去重复存储系统中的一个第一文件:
将该第一文件分为多个文件分段;
使用该第一组索引而非第二组索引试图查找该第一文件的多个文件分段的存储位置;
响应于接收一个从该去重复存储系统恢复一个第二文件的请求:
确定该第二组索引的一个具体索引指示该第二文件的多个文件分段的存储位置;并且
使用该第二组索引的具体索引来查找该第二文件的多个文件分段的存储位置以便恢复该第二文件。
10.如权利要求9所述的方法,
其中该第一文件的多个文件分段包括在接收该第一文件之前已经在该去重复存储系统中存储的一个具体文件分段;
其中该第二组索引包括指示该具体文件分段的存储位置的一个索引;
其中该方法进一步包括响应于确定该第一组索引中没有索引指示该具体文件分段的存储位置在该去重复存储系统中存储该具体文件分段的一个重复拷贝。
11.如权利要求9所述的方法,进一步包括:
响应于确定该第一组的该具体索引已经达到最大容量将存储在RAM中的该第一组的一个具体索引移至存储在一个或多个磁盘驱动器上的第二组中。
12.如权利要求11所述的方法,
其中该第一组索引包括一个第一索引,该第一索引指示频繁使用的多个文件分段的存储位置;
其中这些程序指令可执行用于:
确定该第一组的具体索引的多个最常使用的文件分段;并且
响应于确定该第一组的具体索引有待移动到该第二组中将该多个最常使用的文件分段添加到该第一索引中。
13.如权利要求11所述的方法,进一步包括:
以存储在RAM中的一个新索引替代该第一组的具体索引。
14.如权利要求9所述的方法,
其中该第一组的索引通过将这些文件分段的指纹映射到这些文件分段的存储位置上来指示这些文件分段的存储位置;
其中该方法通过以下方式试图查找该第一文件的多个文件分段的存储位置:
确定该第一文件的多个文件分段的指纹;并且
利用该第一文件的多个文件分段的指纹来试图在该第一组的一个或多个索引中查找该第一文件的多个文件分段的存储位置。
15.一种系统,包括:
一个或多个处理器;以及
存储程序指令的随机存取存储器;
其中这些程序指令可由该一个或多个处理器来执行以用于:
在一个第一类型存储装置上存储一个第一组一个或多个索引,其中该第一组的每个索引指示存储在一个去重复存储系统中的多个文件分段的存储位置;
在一个第二类型存储装置上存储一个第二组一个或多个索引,其中该第二组的每个索引指示存储在该去重复存储系统中的多个文件分段的存储位置;
响应于接收有待存储在该去重复存储系统中的一个第一文件:
将该第一文件分为多个文件分段;
使用该第一组索引而非第二组索引试图查找该第一文件的多个文件分段的存储位置;
响应于接收一个从该去重复存储系统恢复一个第二文件的请求:
确定该第二组索引的一个具体索引指示该第二文件的多个文件分段的存储位置;并且
使用该第二组索引的具体索引来查找该第二文件的多个文件分段的存储位置以便恢复该第二文件。
16.如权利要求15所述的系统,
其中该第一文件的多个文件分段包括在接收该第一文件之前已经在该去重复存储系统中存储的一个具体文件分段;
其中该第二组索引包括指示该具体文件分段的存储位置的一个索引;
其中响应于确定该第一组索引中没有索引指示该具体文件分段的存储位置这些程序指令通过该一个或多个处理器进一步可执行用于在该去重复存储系统中存储该具体文件分段的一个重复拷贝。
17.如权利要求15所述的系统,其中这些程序指令进一步可由该一个或多个处理器来执行以用于:
响应于确定该第一组的具体索引已经达到最大容量将存储在RAM中的该第一组的一个具体索引移至存储在一个或多个磁盘驱动器上的第二组中。
18.如权利要求16所述的系统,
其中该第一组索引包括一个第一索引,该第一索引指示频繁使用的多个文件分段的存储位置;
其中这些程序指令进一步可由该一个或多个处理器来执行以用于:
确定该第一组的具体索引的多个最常使用的文件分段;并且
响应于确定该第一组的具体索引有待移动到该第二组中将该多个最常使用的文件分段添加到该第一索引中。
19.如权利要求15所述的系统,
其中该第一组的索引通过将这些文件分段的指纹映射到这些文件分段的存储位置上来指示这些文件分段的存储位置;
其中这些程序指令通过该一个或多个处理器可执行用于使用该第一组索引以通过以下方式试图查找该第一文件的多个文件分段的存储位置:
确定该第一文件的多个文件分段的指纹;并且
利用该第一文件的多个文件分段的指纹来试图在该第一组的一个或多个索引中查找该第一文件的多个文件分段的存储位置。
CN201080054280.4A 2009-10-16 2010-10-01 用于高效文件存储的具有多个索引的去重复存储系统 Active CN102640118B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/580,697 US20110093439A1 (en) 2009-10-16 2009-10-16 De-duplication Storage System with Multiple Indices for Efficient File Storage
US12/580697 2009-10-16
PCT/US2010/051023 WO2011046754A1 (en) 2009-10-16 2010-10-01 De-duplication storage system with multiple indices for efficient file storage

Publications (2)

Publication Number Publication Date
CN102640118A true CN102640118A (zh) 2012-08-15
CN102640118B CN102640118B (zh) 2015-09-09

Family

ID=43558283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080054280.4A Active CN102640118B (zh) 2009-10-16 2010-10-01 用于高效文件存储的具有多个索引的去重复存储系统

Country Status (5)

Country Link
US (1) US20110093439A1 (zh)
EP (1) EP2488949B1 (zh)
JP (1) JP5663585B2 (zh)
CN (1) CN102640118B (zh)
WO (1) WO2011046754A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487937A (zh) * 2016-12-30 2017-03-08 郑州云海信息技术有限公司 一种云存储系统文件去重方法及系统
CN111200623A (zh) * 2018-11-19 2020-05-26 福建天泉教育科技有限公司 基于分布式存储实现终端数据同步的方法及其系统

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370315B1 (en) * 2010-05-28 2013-02-05 Symantec Corporation System and method for high performance deduplication indexing
WO2012030383A1 (en) * 2010-08-31 2012-03-08 Falconstor, Inc. Data deduplication
US8745003B1 (en) * 2011-05-13 2014-06-03 Emc Corporation Synchronization of storage using comparisons of fingerprints of blocks
US8782003B1 (en) 2011-05-13 2014-07-15 Emc Corporation Synchronization of storage using log files and snapshots
CN103975300A (zh) * 2011-12-08 2014-08-06 英派尔科技开发有限公司 用于允许跨用户的重复数据删除的存储折扣
US8769627B1 (en) * 2011-12-08 2014-07-01 Symantec Corporation Systems and methods for validating ownership of deduplicated data
CN102523112B (zh) * 2011-12-14 2015-09-09 华为技术有限公司 信息处理方法及设备
US9177028B2 (en) * 2012-04-30 2015-11-03 International Business Machines Corporation Deduplicating storage with enhanced frequent-block detection
US9659060B2 (en) 2012-04-30 2017-05-23 International Business Machines Corporation Enhancing performance-cost ratio of a primary storage adaptive data reduction system
US9563632B2 (en) * 2012-07-23 2017-02-07 Dell Products L.P. Garbage collection aware deduplication
US20140115260A1 (en) * 2012-10-18 2014-04-24 Oracle International Corporation System and method for prioritizing data in a cache
US8898118B2 (en) 2012-11-30 2014-11-25 International Business Machines Corporation Efficiency of compression of data pages
US20190007380A1 (en) * 2013-04-01 2019-01-03 International Business Machines Corporation De-duplication of data streams
US10339112B1 (en) * 2013-04-25 2019-07-02 Veritas Technologies Llc Restoring data in deduplicated storage
WO2015016817A1 (en) * 2013-07-29 2015-02-05 Hewlett-Packard Development Company, L.P. Integrity of frequently used de-duplication objects
CN103412802B (zh) * 2013-08-12 2016-12-28 浪潮(北京)电子信息产业有限公司 容灾数据文件访问控制列表备份的方法及装置
US20150213049A1 (en) * 2014-01-30 2015-07-30 Netapp, Inc. Asynchronous backend global deduplication
US9552384B2 (en) 2015-06-19 2017-01-24 HGST Netherlands B.V. Apparatus and method for single pass entropy detection on data transfer
US10152389B2 (en) 2015-06-19 2018-12-11 Western Digital Technologies, Inc. Apparatus and method for inline compression and deduplication
US9665287B2 (en) 2015-09-18 2017-05-30 Alibaba Group Holding Limited Data deduplication using a solid state drive controller
US10216748B1 (en) * 2015-09-30 2019-02-26 EMC IP Holding Company LLC Segment index access management in a de-duplication system
TW201734750A (zh) 2016-01-15 2017-10-01 飛康國際股份有限公司 包含固態硬碟儲存裝置及類似物的重複資料刪除快取記憶體
US10789002B1 (en) * 2017-10-23 2020-09-29 EMC IP Holding Company LLC Hybrid data deduplication for elastic cloud storage devices
US20190129806A1 (en) * 2017-10-27 2019-05-02 Synology Inc. Methods and computer program products for a file backup and apparatuses using the same
JP2020057305A (ja) * 2018-10-04 2020-04-09 富士通株式会社 データ処理装置およびプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
US20070124415A1 (en) * 2005-11-29 2007-05-31 Etai Lev-Ran Method and apparatus for reducing network traffic over low bandwidth links
US20070192548A1 (en) * 2005-03-11 2007-08-16 Williams Ross N Method and apparatus for detecting the presence of subblocks in a reduced-redundancy storage system
US20080133835A1 (en) * 2002-12-20 2008-06-05 Data Domain Inc. Efficient data storage system
US20090132616A1 (en) * 2007-10-02 2009-05-21 Richard Winter Archival backup integration
US20090132621A1 (en) * 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
CN101515255A (zh) * 2009-03-18 2009-08-26 成都市华为赛门铁克科技有限公司 一种数据的存储方法和存储装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0282332A (ja) * 1988-09-20 1990-03-22 Fujitsu Ltd 索引ファイルのインデックス用入出力バッファ方式
JPH05233387A (ja) * 1992-02-20 1993-09-10 Matsushita Electric Ind Co Ltd ファイル管理方法
US5555391A (en) * 1993-12-23 1996-09-10 Unisys Corporation System and method for storing partial blocks of file data in a file cache system by merging partial updated blocks with file block to be written
GB9811574D0 (en) * 1998-05-30 1998-07-29 Ibm Indexed file system and a method and a mechanism for accessing data records from such a system
GB2369695B (en) * 2000-11-30 2005-03-16 Indigo One Technologies Ltd Database
JP4380193B2 (ja) * 2003-03-25 2009-12-09 ブラザー工業株式会社 ファイルアクセス管理装置
US7373520B1 (en) * 2003-06-18 2008-05-13 Symantec Operating Corporation Method for computing data signatures
JP4975724B2 (ja) * 2005-03-11 2012-07-11 ロックソフト リミテッド 低冗長記憶システム内のサブブロックの存在を検出する方法
US7716180B2 (en) * 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US7454592B1 (en) * 2006-02-16 2008-11-18 Symantec Operating Corporation Block-level and hash-based single-instance storage
US7478113B1 (en) * 2006-04-13 2009-01-13 Symantec Operating Corporation Boundaries
US7672981B1 (en) * 2007-02-28 2010-03-02 Emc Corporation Object classification and indexing of very large name spaces using grid technology
US20080243878A1 (en) * 2007-03-29 2008-10-02 Symantec Corporation Removal
US20080243769A1 (en) * 2007-03-30 2008-10-02 Symantec Corporation System and method for exporting data directly from deduplication storage to non-deduplication storage
US8046509B2 (en) * 2007-07-06 2011-10-25 Prostor Systems, Inc. Commonality factoring for removable media
JP5233233B2 (ja) * 2007-10-05 2013-07-10 日本電気株式会社 情報検索システム、情報検索用インデックスの登録装置、情報検索方法及びプログラム
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
US20080133835A1 (en) * 2002-12-20 2008-06-05 Data Domain Inc. Efficient data storage system
US20070192548A1 (en) * 2005-03-11 2007-08-16 Williams Ross N Method and apparatus for detecting the presence of subblocks in a reduced-redundancy storage system
US20070124415A1 (en) * 2005-11-29 2007-05-31 Etai Lev-Ran Method and apparatus for reducing network traffic over low bandwidth links
US20090132621A1 (en) * 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
US20090132616A1 (en) * 2007-10-02 2009-05-21 Richard Winter Archival backup integration
CN101515255A (zh) * 2009-03-18 2009-08-26 成都市华为赛门铁克科技有限公司 一种数据的存储方法和存储装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487937A (zh) * 2016-12-30 2017-03-08 郑州云海信息技术有限公司 一种云存储系统文件去重方法及系统
CN111200623A (zh) * 2018-11-19 2020-05-26 福建天泉教育科技有限公司 基于分布式存储实现终端数据同步的方法及其系统
CN111200623B (zh) * 2018-11-19 2022-03-29 福建天泉教育科技有限公司 基于分布式存储实现终端数据同步的方法及其系统

Also Published As

Publication number Publication date
EP2488949B1 (en) 2014-05-07
CN102640118B (zh) 2015-09-09
WO2011046754A1 (en) 2011-04-21
JP2013508810A (ja) 2013-03-07
EP2488949A1 (en) 2012-08-22
JP5663585B2 (ja) 2015-02-04
US20110093439A1 (en) 2011-04-21

Similar Documents

Publication Publication Date Title
CN102640118B (zh) 用于高效文件存储的具有多个索引的去重复存储系统
CN101233517B (zh) 把包括工作文件的集合保持在存储池中的方法和系统
CN103238140B (zh) 基于去重复的存储系统中用于可扩展引用管理的系统和方法
US9703640B2 (en) Method and system of performing incremental SQL server database backups
US7440965B1 (en) Method and system for generating and restoring a backup image
JP4075203B2 (ja) データバックアップシステム
CN102521072B (zh) 虚拟磁带库设备及数据恢复方法
US20100161565A1 (en) Cluster data management system and method for data restoration using shared redo log in cluster data management system
CN105447075A (zh) 用于动态划分的计算机实现方法
US10254964B1 (en) Managing mapping information in a storage system
JP5984151B2 (ja) データの復旧方法、プログラムおよびデータ処理システム
CN104272274A (zh) 一种分布式文件存储系统中的数据处理方法及设备
CN102591947A (zh) 用于数据去重复的快速且低ram占用的索引
CN101836192A (zh) 本地闪存和远程服务器混合连续数据保护
CN104541252A (zh) 用于实现基于服务器的分层大容量存储系统的系统和方法
CN1567262A (zh) 基于数据卷快照的在线数据备份方法
CN102713856A (zh) 具有选择性按需数据可用性的多阶段文件系统恢复
CN1645335A (zh) 用于存储卷的一致拷贝的方法、系统和制造品
CN102750317A (zh) 数据持久化处理方法、装置及数据库系统
US10379977B2 (en) Data management method, node, and system for database cluster
CN104583966A (zh) 用于去重复文件系统的备份和恢复系统以及对应的服务器和方法
US20050114408A1 (en) Data management systems, data management system storage devices, articles of manufacture, and data management methods
KR101666440B1 (ko) 환형큐 기반의 인-메모리 데이터베이스 시스템에서의 데이터 처리방법
CN102523112A (zh) 信息处理方法及设备
US8356230B2 (en) Apparatus to manage data stability and methods of storing and recovering data

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