CN102640118B - 用于高效文件存储的具有多个索引的去重复存储*** - Google Patents
用于高效文件存储的具有多个索引的去重复存储*** Download PDFInfo
- Publication number
- CN102640118B CN102640118B CN201080054280.4A CN201080054280A CN102640118B CN 102640118 B CN102640118 B CN 102640118B CN 201080054280 A CN201080054280 A CN 201080054280A CN 102640118 B CN102640118 B CN 102640118B
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management 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上提供的操作***可以是微软操作***、操作***、操作***、或另一种操作***。
图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 (9)
1.一种用于备份和恢复文件的方法,包括:
在一个第一类型存储装置上存储一个第一组一个或多个索引,其中该第一组的每个索引存储指示存储在一个去重复存储***中的多个文件分段的存储位置的信息;
在一个第二类型存储装置上存储一个第二组一个或多个索引,其中该第二组的每个索引存储指示存储在该去重复存储***中的多个文件分段的存储位置的信息;
响应于接收有待存储在该去重复存储***中的一个第一文件:
将该第一文件分为多个文件分段,其中该多个文件分段包括在接收该第一文件之前已经存储在该去重复存储***中的一个具体的文件分段,其中该第二组索引包括一个指示存储该具体的文件分段的存储位置的信息的索引;
使用该第一组索引而非第二组索引试图检索指示该第一文件的多个文件分段的存储位置的信息;
响应于确定该第一组索引中没有索引存储指示该具体文件分段的存储位置的信息在该去重复存储***中存储该具体文件分段的一个重复拷贝;
响应于接收一个从该去重复存储***恢复一个第二文件的请求:
确定该第二组索引的一个具体索引存储指示该第二文件的多个文件分段的存储位置的信息;并且
使用该第二组索引的具体索引来检索指示该第二文件的多个文件分段的存储位置的该信息以便恢复该第二文件。
2.如权利要求1所述的方法,进一步包括:
响应于确定该第一组的该具体索引已经达到最大容量将存储在该第一类型存储装置中的该第一组的一个具体索引移至存储在该第二类型存储装置上的第二组中。
3.如权利要求2所述的方法,其中该第一组索引包括一个第一索引,该第一索引存储指示频繁使用的多个文件分段的存储位置的信息;
所述方法进一步包括:
确定该第一组的具体索引的多个最常使用的文件分段;并且
响应于确定该第一组的具体索引有待移动到该第二组中将该多个最常使用的文件分段添加到该第一索引中。
4.如权利要求2所述的方法,进一步包括:
用存储在该第一类型存储装置上的一个新索引替代该第一组的具体索引。
5.如权利要求1所述的方法,
其中该第一组的索引通过将这些文件分段的指纹映射到这些文件分段的存储位置上来指示这些文件分段的存储位置;
其中该方法通过以下方式试图检索指示该第一文件的多个文件分段的存储位置的该信息:
确定该第一文件的多个文件分段的指纹;并且
利用该第一文件的多个文件分段的指纹来试图在该第一组的一个或多个索引中检索指示该第一文件的多个文件分段的存储位置的该信息。
6.一种用于备份和恢复文件的***,包括:
一个或多个处理器;以及
存储程序指令的随机存取存储器;
所述一个或多个处理器用于执行以下步骤:
在一个第一类型存储装置上存储一个第一组一个或多个索引,其中该第一组的每个索引存储指示存储在一个去重复存储***中的多个文件分段的存储位置的信息;
在一个第二类型存储装置上存储一个第二组一个或多个索引,其中该第二组的每个索引存储指示存储在该去重复存储***中的多个文件分段的存储位置的信息;
响应于接收有待存储在该去重复存储***中的一个第一文件:
将该第一文件分为多个文件分段,其中该多个文件分段包括在接收该第一文件之前已经存储在该去重复存储***中的一个具体的文件分段,其中该第二组索引包括一个存储指示该具体的文件分段的存储位置的的信息的索引;
使用该第一组索引而非第二组索引试图检索指示该第一文件的多个文件分段的存储位置的信息;
响应于确定该第一组索引中没有索引存储指示该具体文件分段的存储位置的该信息在该去重复存储***中存储该具体文件分段的一个重复拷贝;
响应于接收一个从该去重复存储***恢复一个第二文件的请求:
确定该第二组索引的一个具体索引存储指示该第二文件的多个文件分段的存储位置的信息;并且
使用该第二组索引的具体索引来检索指示该第二文件的多个文件分段的存储位置的该信息以便恢复该第二文件。
7.如权利要求6所述的***,其中所述一个或多个处理器进一步用于执行以下步骤:
响应于确定该第一组的具体索引已经达到最大容量将存储在该第一类型存储装置中的该第一组的一个具体索引移至存储在该第二类型存储装置上的第二组中。
8.如权利要求6所述的***,
其中该第一组索引包括一个第一索引,该第一索引存储指示频繁使用的多个文件分段的存储位置的信息;
其中所述一个或多个处理器进一步用于执行以下步骤:
确定该第一组的具体索引的多个最常使用的文件分段;并且
响应于确定该第一组的具体索引有待移动到该第二组中将该多个最常使用的文件分段添加到该第一索引中。
9.如权利要求6所述的***,
其中该第一组的索引通过将这些文件分段的指纹映射到这些文件分段的存储位置上来指示这些文件分段的存储位置;
其中所述一个或多个处理器进一步用于执行以下步骤:使用该第一组索引以通过以下方式试图检索指示该第一文件的多个文件分段的存储位置的该信息:
确定该第一文件的多个文件分段的指纹;并且
利用该第一文件的多个文件分段的指纹来试图在该第一组的一个或多个索引中检索指示该第一文件的多个文件分段的存储位置的该信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/580697 | 2009-10-16 | ||
US12/580,697 US20110093439A1 (en) | 2009-10-16 | 2009-10-16 | De-duplication Storage System with Multiple Indices for Efficient File Storage |
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 CN102640118A (zh) | 2012-08-15 |
CN102640118B true 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) |
Families Citing this family (27)
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 |
US8769627B1 (en) * | 2011-12-08 | 2014-07-01 | Symantec Corporation | Systems and methods for validating ownership of deduplicated data |
JP5851047B2 (ja) * | 2011-12-08 | 2016-02-03 | エンパイア テクノロジー ディベロップメント エルエルシー | ユーザ間重複排除を可能にするためのストレージディスカウント |
CN102523112B (zh) * | 2011-12-14 | 2015-09-09 | 华为技术有限公司 | 信息处理方法及设备 |
US9659060B2 (en) | 2012-04-30 | 2017-05-23 | International Business Machines Corporation | Enhancing performance-cost ratio of a primary storage adaptive data reduction system |
US9177028B2 (en) | 2012-04-30 | 2015-11-03 | International Business Machines Corporation | Deduplicating storage with enhanced frequent-block detection |
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 |
US10152389B2 (en) * | 2015-06-19 | 2018-12-11 | Western Digital Technologies, Inc. | Apparatus and method for inline compression and deduplication |
US9552384B2 (en) | 2015-06-19 | 2017-01-24 | HGST Netherlands B.V. | Apparatus and method for single pass entropy detection on data transfer |
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 |
US11036394B2 (en) | 2016-01-15 | 2021-06-15 | Falconstor, Inc. | Data deduplication cache comprising solid state drive storage and the like |
CN106487937A (zh) * | 2016-12-30 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种云存储***文件去重方法及*** |
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 | 富士通株式会社 | データ処理装置およびプログラム |
CN111200623B (zh) * | 2018-11-19 | 2022-03-29 | 福建天泉教育科技有限公司 | 基于分布式存储实现终端数据同步的方法及其*** |
Citations (2)
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 |
CN101515255A (zh) * | 2009-03-18 | 2009-08-26 | 成都市华为赛门铁克科技有限公司 | 一种数据的存储方法和存储装置 |
Family Cites Families (22)
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 |
GB2406679B (en) * | 2000-11-30 | 2005-05-18 | Coppereye Ltd | Database |
US7065619B1 (en) * | 2002-12-20 | 2006-06-20 | Data Domain, Inc. | Efficient data storage system |
JP4380193B2 (ja) * | 2003-03-25 | 2009-12-09 | ブラザー工業株式会社 | ファイルアクセス管理装置 |
US7373520B1 (en) * | 2003-06-18 | 2008-05-13 | Symantec Operating Corporation | Method for computing data signatures |
EP1866776B1 (en) * | 2005-03-11 | 2015-12-30 | Rocksoft Limited | Method for detecting the presence of subblocks in a reduced-redundancy storage system |
US8051252B2 (en) * | 2005-03-11 | 2011-11-01 | Ross Neil Williams | Method and apparatus for detecting the presence of subblocks in a reduced-redundancy storage system |
US7636767B2 (en) * | 2005-11-29 | 2009-12-22 | Cisco Technology, Inc. | Method and apparatus for reducing network traffic over low bandwidth links |
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 |
US20090132621A1 (en) * | 2006-07-28 | 2009-05-21 | Craig Jensen | Selecting storage location for file storage based on storage longevity and speed |
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 |
US8028106B2 (en) * | 2007-07-06 | 2011-09-27 | Proster Systems, Inc. | Hardware acceleration of commonality factoring with removable media |
US20090132616A1 (en) * | 2007-10-02 | 2009-05-21 | Richard Winter | Archival backup integration |
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 |
-
2009
- 2009-10-16 US US12/580,697 patent/US20110093439A1/en not_active Abandoned
-
2010
- 2010-10-01 CN CN201080054280.4A patent/CN102640118B/zh active Active
- 2010-10-01 WO PCT/US2010/051023 patent/WO2011046754A1/en active Application Filing
- 2010-10-01 JP JP2012534215A patent/JP5663585B2/ja not_active Expired - Fee Related
- 2010-10-01 EP EP10763567.4A patent/EP2488949B1/en active Active
Patent Citations (2)
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 |
CN101515255A (zh) * | 2009-03-18 | 2009-08-26 | 成都市华为赛门铁克科技有限公司 | 一种数据的存储方法和存储装置 |
Also Published As
Publication number | Publication date |
---|---|
JP5663585B2 (ja) | 2015-02-04 |
WO2011046754A1 (en) | 2011-04-21 |
JP2013508810A (ja) | 2013-03-07 |
CN102640118A (zh) | 2012-08-15 |
US20110093439A1 (en) | 2011-04-21 |
EP2488949A1 (en) | 2012-08-22 |
EP2488949B1 (en) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102640118B (zh) | 用于高效文件存储的具有多个索引的去重复存储*** | |
US7440965B1 (en) | Method and system for generating and restoring a backup image | |
US9703640B2 (en) | Method and system of performing incremental SQL server database backups | |
US7933938B2 (en) | File storage system, file storing method and file searching method therein | |
US8645737B2 (en) | Power-saving control apparatus and method | |
US8412680B1 (en) | System and method for performing backup operations and reporting the results thereof | |
US20100138677A1 (en) | Optimization of data distribution and power consumption in a data center | |
US10254964B1 (en) | Managing mapping information in a storage system | |
US8140537B2 (en) | Block level tagging with file level information | |
CN101836192A (zh) | 本地闪存和远程服务器混合连续数据保护 | |
CN102591947A (zh) | 用于数据去重复的快速且低ram占用的索引 | |
EP2583183A1 (en) | Data deduplication | |
CN1770114A (zh) | 存储网络中的复制操作 | |
CN102257491A (zh) | 可废弃文件 | |
US7657533B2 (en) | Data management systems, data management system storage devices, articles of manufacture, and data management methods | |
US20050132257A1 (en) | Data management systems, articles of manufacture, and data storage methods | |
US8799572B2 (en) | Sliding-window multi-class striping | |
US20170316017A1 (en) | Multi hard-disk file management system and method thereof | |
CN107220342A (zh) | 一种分布式数据库的控制方法及*** | |
US20040078519A1 (en) | Data reorganization method in a RAID striping system | |
CN1732516B (zh) | 双日志存储方法及其存储介质 | |
CN1297910C (zh) | 一种用于存储和恢复计算机***信息的方法和装置 | |
CN110196785A (zh) | 数据备份管理方法、装置及电子设备 | |
US20230111859A1 (en) | Information handling system storage application volume placement tool | |
CN116126523A (zh) | 负载均衡方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |