CN109964217B - 去重数据装置和方法 - Google Patents
去重数据装置和方法 Download PDFInfo
- Publication number
- CN109964217B CN109964217B CN201780041621.6A CN201780041621A CN109964217B CN 109964217 B CN109964217 B CN 109964217B CN 201780041621 A CN201780041621 A CN 201780041621A CN 109964217 B CN109964217 B CN 109964217B
- Authority
- CN
- China
- Prior art keywords
- chunk
- data
- file
- deduplicated
- deduplicated data
- 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
Images
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/835—Timestamp
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种将接收的数据块101存储为去重数据块102的装置100,包括:存储库103,存储一个或多个容器104,每个容器104中存储有一个或多个数据段105和每个数据段105的段元数据106;以及数据库107,存储多个去重数据块102,每个去重数据块102包含多个对所述接收的数据块101的所述数据段105和对存储这些数据段105的所述容器104的引用108,其中,所述装置100用于在所述存储库103中维护多个块备份文件109,每个块备份文件109中存储有一个或多个去重数据块102的副本,以及所述装置100用于将所述数据库107中的去重数据块102与所述块备份文件109相关联,所述块备份文件109中存储有所述去重数据块102的副本。
Description
技术领域
本发明涉及一种去重数据,尤其是将已接收的数据块存储为去重数据块的装置和方法。具体而言,本发明涉及备份包含去重元数据的数据库。
背景技术
使用一种称为“去重”的过程将已经存储的数据移除来处理备份已成为一种常见做法。该过程不是存储副本,而是存储某种形式的对已经存储的重复数据所在位置的引用。这些引用和其它“围绕”该数据而存储的项通常称为元数据。
已存储数据块的元数据通常称为去重数据块,并且是已存储数据块的数据段的列表。已存储数据块的数据段是连续字节组成的序列,并且在接收到待存储的数据块时,通常将块划分成这些数据段(分段)。典型的数据段长度因产品而异,但平均长度约为4kB。一个块可能包含数千个这样的数据段。
数据段存储在容器中,一个容器可能包含数千个数据段。每个数据段存储在与段元数据相关联的容器中,并且一个容器中的数据段的所有段元数据的全部称为容器元数据。容器元数据可以存储关于引用计数的详细信息,这些引用计数指示以下内容:一个唯一数据段,表示发现该数据段的数据块的数量;存储细节;以及容器中的所有数据段的强散列。
此外,通常还存储去重索引,数据段在去重索引中被引用到已存储的去重数据块。
包括去重数据块和去重索引的元数据可以存储在分布式数据库中,可以从集群的若干个服务器访问该分布式数据库。分布式数据库通常处理去重数据装置(例如,临时下行节点、替换节点、故障磁盘等)的常规操作所需的所有一致性和容错性。
图6示出了传统去重数据装置600。装置600可以包括一个或多个备份节点602,每个备份节点602中存储有一个数据库。装置600还可以包括存储容器的库存储器601。数据库保存有引用到这些容器的元数据。为了提供部分备份,传统装置600包括一个或多个远程备份节点603,用于远程复制数据库。因此,需要额外的硬件。
如图7所示,如果还要备份库存储器601,那么装置600需要用于远程复制所有数据的远程库存储器701,这也需要增加额外的硬件。
然而,数据库和存储库601的备份是必要的,因为数据库无法处理以下灾难的能力:同时或永久破坏数据库集群中的若干个服务器的存储(超过数据库的容错水平)。
然而,分别将数据库和/或存储库复制到远程数据库和/或远程存储库会延迟每次数据库操作,并且需要与远程站点的通信链路以及远程站点中用于远程数据库的存储空间。为了完整备份,数据库和存储库都需要进行复制,甚至这些副本必须进行同步。这需要大量的计算资源,并且引入进一步延迟。
发明内容
鉴于上述问题和缺点,本发明旨在改进传统装置。因而,本发明的目的是提供一种装置和方法,能够在不使用远程复制的情况下从灾难中恢复数据库。具体而言,在不引入延迟的情况下,即在不牺牲性能的情况下,并且以比传统格式更紧凑的格式有效地执行数据库的备份。
本发明的目的通过所附独立权利要求中提供的方案实现。本发明的有利实施方式在各个从属权利要求中进一步定义。
具体而言,本发明提出了一种备份数据库的新设计,支持两个最相关进程进行写入和删除,尤其是以一种有效方式进行写入和删除。
本发明第一方面提供了一种将接收的数据块存储为去重数据块的装置,所述装置包括:存储库,存储一个或多个容器,每个容器中存储有一个或多个数据段和每个数据段的段元数据;以及数据库,存储多个去重数据块,每个去重数据块包含多个对所述接收的数据块中的所述数据段和对存储这些数据段的所述容器的引用,其中,所述装置用于在所述存储库中维护多个块备份文件,每个块备份文件中存储有一个或多个去重数据块的副本,以及所述装置用于将所述数据库中的所述去重数据块与所述块备份文件相关联,所述块备份文件中存储有所述去重数据块的副本。
通过向传统系统添加保存有所述块的元数据的副本的所述块备份文件,即所述去重数据块,允许在灾难发生的情况下重建所述数据库的所有内容。具体而言,可以在所述数据库中重建每个去重数据块。灾难恢复可以由多个节点同时完成,每个节点处理不同的块备份文件。因此,还可以有效执行所述恢复。
在所述第一方面的一种实施形式中,所述装置用于通过向所述去重数据块添加对所述块备份文件的引用将所述去重数据块与所述块备份文件相关联,所述块备份文件中存储有所述去重数据块的副本。
所述对所述块备份文件的引用可以在不占用太多空间的情况下实现,并且提供所需关联的有效实施形式。
在所述第一方面的另一实施形式中,所述数据库还包括去重索引。
也就是说,还可以在灾难发生的情况下充分且有效地恢复所述去重索引。
在所述第一方面的另一实施形式中,数据段的所述段元数据至少包括引用计数,所述引用计数指示引用该数据段的去重数据块的数量。
在所述第一方面的另一实施形式中,所述装置用于将多个去重数据块依次写入块备份文件中,以及向每个写入的去重数据块添加时间戳。
通过向每个写入的去重数据块添加所述时间戳,所述装置可以记录何时写入块,并且可以更有效地执行灾难恢复。
在所述第一方面的另一实施形式中,所述装置用于:为了从块备份文件中恢复去重数据块,仅使用所述具有最新时间戳的去重数据块。
由于忽略了较早的条目,因此所述恢复高效快速。
在所述第一方面的另一实施形式中,所述装置还用于:结合所述存储库中的每个块备份文件,存储已删除的块文件,所述已删除的块文件用于存储对与所述块备份文件相关联的每个已删除的去重数据块的引用。
所述已删除的块文件使得所述数据库能够在灾难发生的情况下更快速且更高效地恢复。
在所述第一方面的另一实施形式中,所述装置用于:为了删除去重数据块,将所述对待使用时间戳删除的所述去重数据块的引用写入与所述块备份文件相关联的所述已删除的块文件中,所述块备份文件与所述去重数据块相关联;从所述数据库中删除所述去重数据块;以及修改所述存储库中的所述去重数据块的每个数据段的所述段元数据。
这样,复制的数据块可以在所述第一方面的装置中有效删除。
所述时间戳对重复使用所述对所述去重数据块的引用的情况是有利的,并且需要知道所述去重数据块是一个新块。
在所述第一方面的另一实施形式中,所述装置还用于:当所述已删除的块文件的大小达到确定的阈值时,对于对所述已删除的块文件中的已删除的去重数据块的每个引用,移除所述已删除的块文件中引用的去重数据块的所有副本,所述已删除的块文件的时间戳比所述块备份文件中的已删除时间戳早;以及重置所述已删除的块文件。
这确保了所述已删除的块文件不会变得太大,并且不会影响所述存储库的空间和恢复效率。
在所述第一方面的另一实施形式中,所述装置用于:为了重建数据库,如果在所述关联的已删除的块文件中没有引用所述去重数据块,并且所述关联的已删除的块文件的时间戳比所述去重数据块的时间戳更新,则处理块备份文件中的每个去重数据块的最新副本,其中,所述去重数据块的所述处理包括递增由所述去重数据块引用的每个数据段的引用计数以及将所述去重数据块插入到所述数据库中。
这样,可以在灾难发生的情况下完整有效地重建所述数据库。
在所述第一方面的另一实施形式中,所述装置还用于:结合所述存储库中的每个块备份文件,存储引用文件,所述引用文件用于存储对去重数据块的引用的列表和每个关联的去重数据块在所述块备份文件中的位置。
在所述第一方面的另一实施形式中,所述装置还用于:为了加速恢复接收的数据块,在引用文件中查找与所述接收的数据块相关联的所述去重数据块的所述副本在所述块备份文件中的位置;以及从所述去重数据块的所述副本中和从所述去重数据块的所述副本所引用的所述容器中的所述数据段中恢复所述接收的数据块。
有利地是,当所述装置不能这样做时,提供对所述接收的数据块的引用,并且所述装置用于使用所述对所述接收的数据块的引用来在所述引用文件中查找所述块备份文件中的位置。
在所述第一方面的另一实施形式中,所述装置还用于:为了在重建所述数据库之前实现所述装置中的所有接收的数据块的临时恢复,在所有引用文件中查找与所有所述接收的数据块相关联的所述去重数据块的所述副本在所述块备份文件中的位置。
具体而言,为了在重建数据库期间或之前恢复一个或多个数据块,所述装置用于将相关引用文件读取到存储器中,以及构建一个指示每个去重数据块在与所述引用文件相关联的所述块备份文件中的位置的映射。然后,所述装置用于从所述块备份文件中的所述去重数据块中和所述去重数据块所引用的所述容器中的所述数据段中恢复所述数据块。有利地是,当所有相关引用文件被读取到所述存储器中的所述映射中时,所述装置能够随机访问所有相关的去重数据块。因此,可以更有效地从所述存储库中的容器文件中读取重建所述块所需的所述去重数据块。因此,在灾难发生之后,几乎可以立即开始恢复。
在所述第一方面的另一实施形式中,所述装置还用于在远程存储库中备份所述存储库。
这实现了所述装置的完整远程备份。因此,仅需复制所述存储库即可。所述备份包括实际数据(容器)和允许恢复数据库的文件。所述复制可以通过用户可用硬件上的任何存储复制软件来完成。
本发明第二方面提供了一种将接收的数据块存储为去重数据块的方法,所述方法包括:在存储库中存储一个或多个容器,每个容器中存储有一个或多个数据段和每个数据段的段元数据;在数据库中存储多个去重数据块,每个去重数据块包含多个对接收的数据块的所述数据段以及对存储这些数据段的容器的引用;在所述存储库中维护多个块备份文件,每个块备份文件中存储有一个或多个去重数据块的副本;以及将所述数据库中的去重数据块与所述块备份文件相关联,在所述块备份文件中存储有所述去重数据块的副本。
在所述第二方面的一种实施形式中,所述方法包括通过向所述去重数据块添加对所述块备份文件的引用将所述去重数据块与所述块备份文件相关联,所述块备份文件中存储有所述去重数据块的副本。
在所述第二方面的另一实施形式中,所述数据库还包括去重索引。
在所述第二方面的另一实施形式中,数据段的所述段元数据至少包括引用计数,所述引用计数指示引用该数据段的去重数据块的数量。
在所述第二方面的另一实施形式中,所述方法包括将多个去重数据块依次写入块备份文件中,以及向每个写入的去重数据块添加时间戳。
在所述第二方面的另一实施形式中,所述方法包括:为了从块备份文件中恢复去重数据块,仅使用所述具有最新时间戳的去重数据块。
在所述第二方面的另一实施形式中,所述方法还包括:结合所述存储库中的每个块备份文件,存储已删除的块文件,所述已删除的块文件用于存储对与所述块备份文件相关联的每个已删除的去重数据块的引用。
在所述第二方面的另一实施形式中,所述方法包括:为了删除去重数据块,将所述对待使用时间戳删除的所述去重数据块的引用写入与所述块备份文件相关联的所述已删除的块文件中,所述块备份文件与所述去重数据块相关联;从所述数据库中删除所述去重数据块;以及修改所述存储库中的所述去重数据块的每个数据段的所述段元数据。
在所述第二方面的另一实施形式中,所述方法还包括:当所述已删除的块文件的大小达到确定的阈值时,对于对所述已删除的块文件中的已删除的去重数据块的每个引用,移除所述已删除的块文件中引用的去重数据块的所有副本,所述已删除的块文件的时间戳比所述块备份文件中的已删除时间戳早;以及重置所述已删除的块文件。
在所述第二方面的另一实施形式中,所述方法还包括:为了重建数据库,如果在所述关联的已删除的块文件中没有引用所述去重数据块,并且所述关联的已删除的块文件的时间戳比所述去重数据块的时间戳更新,则处理块备份文件中的每个去重数据块的最新副本,其中,所述去重数据块的所述处理包括递增由所述去重数据块引用的每个数据段的引用计数以及将所述去重数据块插入到所述数据库中。
在所述第二方面的另一实施形式中,所述方法包括:结合所述存储库中的每个块备份文件,存储引用文件,所述引用文件用于存储对去重数据块的引用的列表和每个关联的去重数据块在所述块备份文件中的位置。
在所述第二方面的另一实施形式中,所述方法还包括:为了加速恢复接收的数据块,在引用文件中查找与所述接收的数据块相关联的所述去重数据块的所述副本在所述块备份文件中的位置;以及从所述去重数据块的所述副本中和从所述去重数据块的所述副本所引用的所述容器中的所述数据段中恢复所述接收的数据块。
在所述第二方面的另一实施形式中,所述方法还包括:为了实现所有接收的数据块的临时恢复,在所有所述引用文件中查找与所有接收的数据块相关联的所述去重数据块的所述副本在所述块备份文件中的位置。
在所述第二方面的另一实施形式中,所述方法还包括在远程存储库中备份所述存储库。
通过所述第二方面及其实施形式所述的方法,可以分别实现所述第一方面及其实施形式所述的设备的相同优点和效果。
本发明第三方面提供了一种包括程序代码的计算机程序产品,用于控制根据所述第一方面或其任意实施形式所述的装置,或运行在计算机上时用于执行根据所述第二方面或其任意实施形式所述的方法。
通过所述第三方面所述的计算机程序产品,可以实现根据所述第一方面所述的装置和根据所述第二方面所述的方法的所有优点和效果。
应注意,本申请中描述的所有设备、元件、单元和构件都可以以软件或硬件元件或其任何形式的组合来实现。本申请中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明各个实体适于或用于执行各自的步骤和功能。即使在下文描述或特定实施例中,由外部实体执行的具体功能或步骤没有体现在执行该具体步骤或功能的那个实体的具体详细元件的描述中,技术人员也应清楚,这些方法和功能可以在各个软件或硬件元件或其任意类型的组合中实施。
附图说明
结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实施形式,其中:
图1示出了本发明实施例提供的一种装置。
图2示出了本发明实施例提供的一种方法。
图3示出了本发明提供的装置的一种存储库。
图4示出了本发明实施例提供的一种包括装置的系统。
图5示出了本发明实施例提供的一种包括装置的系统。
图6示出了传统系统和装置。
图7示出了传统系统和装置。
具体实施方式
图1示出了本发明实施例提供的一种装置100。装置100用于将接收的数据块101存储为去重数据块102。
为此,装置100包括存储库103和数据库107。数据库107可以在网络系统的备份节点中进行维护。该存储库可以是网络系统的标准库存储器。
数据库107用于存储多个去重数据块102。每个去重数据块102是已接收和已存储的数据块101的元数据。每个去重数据块102包含多个对所述去重数据块102对应的接收的数据块101的数据段105和对存储这些数据段105的容器104的引用。在图1中,用虚线箭头表示对于数据库107中的第一个去重数据块102,前两个引用108引用两个不同容器104中的数据段105。
容器104存储在存储库103中。每个容器104中存储有一个或多个数据段105,其中,每个数据段优选地是装置100内的唯一数据段,即特定数据段105仅存储在一个容器104中。进一步地,容器104中存储有每个数据段105的段元数据106,其中,一个容器104中的数据段105的多个段元数据106称为容器元数据。
除了维护容器104之外,装置100还用于在存储库103中维护多个块备份文件109。每个块备份文件109用于存储一个或多个去重数据块102的副本。
进一步地,装置100用于将数据库107中的去重数据块102与块备份文件109相关联,块备份文件109中存储有去重数据块102的副本。这由从数据库107中的第一去重数据块102指向第一块备份文件109中的第一去重数据块102的虚线箭头来指示。
数据库107中的去重数据块102与块备份文件109之间的这种关联可以通过在数据库107中的去重数据块102中存储对块备份文件109的引用来执行。值得注意的是,数据库107可以进一步(可选地)包括去重索引110。
图2示出了本发明实施例提供的一种方法200。方法200包括方法步骤201至204,但是不需要以任何特定顺序执行。方法200对应于装置100,具体而言,方法步骤201至204对应于图1所示的装置100的动作。因此,图1中的装置100用于执行图2所示的方法200。
具体而言,在步骤201中,在存储库103中存储一个或多个容器104,其中,每个容器104中存储有一个或多个数据段105和每个数据段105的段元数据106。在步骤202中,在数据库107中存储多个去重数据块102,其中,每个去重数据块102包含多个对接收的数据块101中的数据段105和对存储这些数据段105的容器104的引用108。
在步骤203中,在存储库103中维护多个块备份文件109,其中,每个块备份文件109中存储有一个或多个去重数据块102的副本。
在步骤204中,将数据库107中的去重数据块102与块备份文件109相关联,块备份文件109中存储有去重数据块102的副本。
图3更详细地示出了图1所示的本发明实施例提供的装置100中的存储库103及其内容。存储库103包括多个容器104,每个容器104包含数据段105和段元数据106。此外,为了在灾难发生的情况下能够恢复数据库107,存储库103还存储多个块备份文件109。图3中示出了两个块备份文件109。每个块备份文件109内部具有一个或多个去重数据块102。在图3中,第一块备份文件109存储两个去重数据块102,而第二块备份文件109仅存储一个去重数据块102。
此外,结合每个块备份文件109,存储已删除的块文件300。这里,示出了两个已删除的块文件300,其中,一个已删除的块文件300与一个块备份文件109相关联。每个已删除的块文件300优选地存储对每个去重数据块102的引用301,该引用301与块备份文件109相关联。这样的引用301可以是已删除的去重数据块102的块标识符。图3中示出了与包括两个去重数据块102的块备份文件109相关联的已删除的块文件300包括两个引用301。这意味着这两个引用的去重数据块102都会被删除。另一个已删除的块文件300将对去重数据块102的引用301存储到仅保存一个去重数据库102的块备份文件109中。因此,这个被引用的去重数据块102当前也要删除。
此外,结合每个块备份文件109,存储引用文件302。这里,示出了两个引用文件302,其中,一个引用文件302与一个块备份文件109相关联。每个引用文件302优选地存储对每个去重数据块102的引用301,该引用301与块备份文件109相关联。图3中示出了与包括两个去重数据块102的块备份文件109相关联的引用块文件302包括两个引用301。另一引用文件302将对去重数据块102的引用301存储到仅保存一个去重数据块102的块备份文件109中。
图4示出了本发明实施例提供的一种在系统中实施的装置100,该系统包括虚拟机监控器网络、分布式数据库网络、文件服务器网络和管理网络。具体而言,在分布式数据库网络与文件服务器网络之间存在至少一个备份节点,该备份节点存储数据库107。该数据库107中存储有至少多个去重数据块102。此外,数据库107还可以包括每个数据段105的去重索引110和/或引用计数401,每个数据段105由数据库107中的去重数据块102引用。
装置100中的存储库103连接到文件服务器网络中的文件服务器。存储库103中存储有多个容器104,其中,每个容器104包括数据段105和段元数据106,并且还包括多个块备份文件109。
图4进一步示出了包括连接到分布式数据库网络的至少一个虚拟机监控器的虚拟机监控器网络。图4还示出了连接到文件服务器网络的管理网络,其中,管理网络包括至少一个管理节点。
图5示出了本发明实施例提供的图4所示的包括装置100的系统的扩展。具体而言,在图5的系统中,装置100还用于在远程存储库500中备份存储库103。远程存储库500连接到远程文件服务器,该远程文件服务器再次连接到文件服务器网络中的文件服务器,以进行远程文件服务器复制。该文件服务器再次连接到存储库103。在远程存储库500中复制容器104和块备份文件109。
如果要从图1、4和5之一所示的装置100中删除一个块,则将对已删除的去重数据块102的引用301写入图3所示的已删除的块文件300中。然后,从数据库107中删除去重数据块102。每个去重数据块102可以具有附加字段,包含将块备份文件109的备份存储在存储库103中的块备份文件109的名称。在这种情况下,当删除去重数据块102时,该字段指示必须从中删除的备份。
在存储库中修改已删除的去重数据块102中每个数据段105的段元数据106。这意味着,例如,如果删除包括与特定引用计数相关联的特定数据段105的去重数据块102,则将引用计数减1。
在删除过程中,当创建已删除的块文件300的条目时,还可以优选地仅在从数据库107中删除去重数据块102之后,但在修改段元数据106之前,例如,在减少引用计数401之前,创建时间戳。由于后期错误,时间戳允许忽略多次写入的块,从而使装置100,特别是块的删除更高效。
当已删除的块文件300变得足够大时,对块备份文件109进行碎片整理,并移除已删除的块的所有去重数据块102。换言之,从块备份文件109中移除关联的已删除的块文件300中的由引用301引用的去重数据块102的所有副本,并重置已删除的块文件300。
在灾难发生的情况下,可以重建数据库107的内容。因此,处理块备份文件109中而不是关联的已删除的块文件300中的去重数据块102。具体而言,如果在关联的已删除的块文件300中没有引用去重数据块102,并且该关联的已删除的块文件300的时间戳比去重数据块102的时间戳更新,例如,如果其引用301不包括在关联的已删除的块文件300中,并且关联的已删除的块文件300的时间戳比去重数据块(102)的时间戳更新,则处理块备份文件109中的每个去重数据块102的最新副本。去重数据块102的处理优选地包括递增由去重数据块102引用的每个数据段105的引用计数401以及将去重数据块102插入到数据库107中。
去重索引110优选地通过使用与在初始备份期间已经完成的相同表示更新去重索引110来重建。由于容器104的引用计数401和去重索引110优选地在重建后单独存储,所以备份明显小于传统系统和装置中的数据库的远程复制所需的空间。值得注意的是,灾难恢复可以由多个节点同时完成,每个节点处理不同的备份文件,因此使整个进程更快。
但是,数据库恢复需要一定的时间,因此在此时间段为业务恢复请求提供另一种机制。为此,称为引用文件302的另一文件与存储库中的每个块备份文件109相关联。引用文件302用于存储对去重数据块102的引用301的列表,例如,块标识符,以及每个关联的去重数据块102在块备份文件109中的位置。当灾难发生后(在数据库107完全恢复之前)请求恢复时,将所有相关的引用文件302读取到存储器中的映射中。装置100现在能够随机访问所有相关的去重数据块102。重建块所需的去重数据块102可直接从存储库103中的容器104中读取。这也具有以下有益效果:在灾难发生之后,几乎可以立即开始恢复。在此模式下的恢复独立于数据库恢复过程。引用文件302被重写为其块备份文件109的碎片整理的一部分。
如图5所示,整个系统可以通过远程存储库500进行备份。备份包括容器104和使数据库107恢复的所有文件。本发明的装置100的优点在于,在写入和/或删除时对块备份文件109的每次访问替代了针对传统上完成的数据库复制的七次调用(一次针对块,两次针对索引条目,四次针对容器引用计数)。
总之,本发明对去重数据装置100提出了一种备份保存在数据库107中的元数据的方式。因此,使用常规库存储器使得有可能使用传统硬件。包括去重数据块102的备份的块备份文件109内部保存在装置100中的不同的(成本较低的)部件中。这样降低了延迟(即保持性能)又节省了空间,因为格式更紧凑。去重数据块102和块备份文件109的备份可以用于:在灾难发生后恢复数据库107;在灾难发生后以只读模式使用存储库103(直到恢复);以及通过仅将库存储器103外部复制到远程存储库500来复制整个系统。
本发明增强了传统的去重数据装置和方法,并且提供了一种在破坏数据库一致性的特大灾难发生之后恢复数据库107的成本低的完整方式。本发明中提出的备份机制与传统机制相比需要的硬件较少,工作速度比传统装置和方法更快。可以以与常规操作大致相同的速度从装置中恢复数据,同时恢复数据库。
已经结合作为实例的不同实施例以及实施方案描述了本发明。但本领域技术人员通过实践所请发明,研究附图、本公开以及独立权项,能够理解并获得其它变体。在权利要求以及描述中,术语“包括”不排除其它元件或步骤且“一个”并不排除复数可能。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的组合不能在有利的实施方式中使用。
Claims (16)
1.一种将接收的数据块(101)存储为去重数据块(102)的装置(100),其特征在于,所述装置(100)包括:
存储库(103),存储一个或多个容器(104),每个容器(104)中存储有一个或多个数据段(105)和每个数据段(105)的段元数据(106);以及
数据库(107),存储多个去重数据块(102),每个去重数据块(102)包含多个对所述接收的数据块(101)中的所述数据段(105)和对存储这些数据段(105)的所述容器(104)的引用(108),其中,
所述装置(100)用于在所述存储库(103)中维护多个块备份文件(109),每个块备份文件(109)中存储有一个或多个去重数据块(102)的副本;以及
所述装置(100)用于将所述数据库(107)中的去重数据块(102)与所述块备份文件(109)相关联,所述块备份文件(109)中存储有所述去重数据块(102)的副本。
2.根据权利要求1所述的装置(100),其特征在于,
所述装置(100)用于通过向所述去重数据块(102)添加对所述块备份文件(109)的引用将所述去重数据块(102)与所述块备份文件(109)相关联,所述块备份文件(109)中存储有所述去重数据块(102)的副本。
3.根据权利要求1或2所述的装置(100),其特征在于,
所述数据库(107)还包括去重索引(110)。
4.根据权利要求1或2所述的装置(100),其特征在于,
数据段(105)的所述段元数据(106)至少包括引用计数(401),所述引用计数(401)指示引用该数据段(105)的去重数据块(102)的数量。
5.根据权利要求1或2所述的装置(100),其特征在于,用于
将多个去重数据块(102)依次写入块备份文件(109)中,以及向每个写入的去重数据块(102)添加时间戳。
6.根据权利要求1或2所述的装置(100),其特征在于,用于:为了从块备份文件(109)中恢复去重数据块(102),
仅使用具有最新时间戳的去重数据块(102)。
7.根据权利要求1或2所述的装置(100),其特征在于,还用于:
结合所述存储库(103)中的每个块备份文件(109),存储已删除的块文件(300),所述已删除的块文件(300)用于存储对与所述块备份文件(109)相关联的每个已删除的去重数据块(102)的引用(301)。
8.根据权利要求7所述的装置(100),其特征在于,用于:为了删除去重数据块(102),
将对待使用时间戳删除的所述去重数据块(102)的引用(301)写入与所述块备份文件(109)相关联的所述已删除的块文件(300)中,所述块备份文件(109)与所述去重数据块(102)相关联;
从所述数据库(107)中删除所述去重数据块(102);以及
修改所述存储库(103)中的所述去重数据块(102)的每个数据段(105)的所述段元数据(106)。
9.根据权利要求7所述的装置(100),其特征在于,还用于:当所述已删除的块文件(300)的大小达到确定的阈值时,
对于对所述已删除的块文件(300)中的已删除的去重数据块(102)的每个引用(301),移除所述已删除的块文件(300)中引用的去重数据块(102)的所有副本,所述已删除的块文件(300)的时间戳比所述块备份文件(109)中的所述已删除的时间戳早;以及
重置所述已删除的块文件(300)。
10.根据权利要求7所述的装置(100),其特征在于,用于:为了重建数据库(107),
如果在所述关联的已删除的块文件(300)中没有引用所述去重数据块(102),并且所述关联的已删除的块文件(300)的时间戳比所述去重数据块(102)的时间戳更新,则处理块备份文件(109)中的每个去重数据块(102)的最新副本,其中,所述去重数据块(102)的所述处理包括递增由所述去重数据块(102)引用的每个数据段(105)的引用计数(401)以及将所述去重数据块(102)插入到所述数据库(107)中。
11.根据权利要求10所述的装置(100),其特征在于,还用于:
结合所述存储库(103)中的每个块备份文件(109),存储引用文件(302),所述引用文件(302)用于存储引用(301)的列表和每个关联的去重数据块(102)在所述块备份文件(109)中的位置。
12.根据权利要求11所述的装置(100),其特征在于,还用于:为了加速恢复接收的数据块(101),
在引用文件(302)中查找与所述接收的数据块(101)相关联的所述去重数据块(102)的所述副本在所述块备份文件(109)中的位置;以及
从所述去重数据块(102)的所述副本中和从所述去重数据块(102)的所述副本所引用的所述容器(104)中的所述数据段(105)中恢复所述接收的数据块(101)。
13.根据权利要求11或12所述的装置(100),其特征在于,还用于:为了在重建所述数据库(107)之前实现所述装置(100)中的所有接收的数据块(101)的临时恢复,
在所有所述引用文件(302)中查找与所有接收的数据块(101)相关联的所述去重数据块(102)的所述副本在所述块备份文件(109)中的位置。
14.根据权利要求1或2所述的装置(100),其特征在于,用于:
在远程存储库(500)中备份所述存储库(103)。
15.一种将接收的数据块(101)存储为去重数据块(102)的方法(200),其特征在于,所述方法包括:
在存储库(103)中存储(201)一个或多个容器(104),每个容器(104)中存储有一个或多个数据段(105)和每个数据段(105)的段元数据(106);
在数据库(107)中存储(202)多个去重数据块(102),每个去重数据块(102)包含多个对所述接收的数据块(101)的所述数据段(105)和对存储这些数据段(105)的所述容器(104)的引用(108);
在所述存储库(103)中维护(203)多个块备份文件(109),每个块备份文件(109)中存储有一个或多个去重数据块(102)的副本;以及
将所述数据库(107)中的去重数据块(102)与所述块备份文件(109)相关联,所述块备份文件(109)中存储有所述去重数据块(102)的副本。
16.一种包括程序代码的计算机程序产品,其特征在于,所述计算机程序产品用于控制根据权利要求1至14之一所述的装置,或运行在计算机上时用于执行根据权利要求15所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2017/071467 WO2019037877A1 (en) | 2017-08-25 | 2017-08-25 | APPARATUS AND METHOD FOR DEDUPLICATING DATA |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109964217A CN109964217A (zh) | 2019-07-02 |
CN109964217B true CN109964217B (zh) | 2021-11-09 |
Family
ID=59699710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780041621.6A Active CN109964217B (zh) | 2017-08-25 | 2017-08-25 | 去重数据装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20200192760A1 (zh) |
EP (1) | EP3659042B1 (zh) |
CN (1) | CN109964217B (zh) |
WO (1) | WO2019037877A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11010258B2 (en) * | 2018-11-27 | 2021-05-18 | Commvault Systems, Inc. | Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication |
CN111858574B (zh) * | 2020-07-30 | 2022-02-11 | 暨南大学 | 一种面向数据去重技术的近似最优数据碎片块重写方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102221982A (zh) * | 2011-06-13 | 2011-10-19 | 北京卓微天成科技咨询有限公司 | 块级虚拟化存储设备上实现重复数据删除的方法及系统 |
CN106462605A (zh) * | 2014-05-13 | 2017-02-22 | 云聚公司 | 流媒体内容的分布式安全数据存储和传输 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928526B1 (en) * | 2002-12-20 | 2005-08-09 | Datadomain, Inc. | Efficient data storage system |
US7769722B1 (en) * | 2006-12-08 | 2010-08-03 | Emc Corporation | Replication and restoration of multiple data storage object types in a data network |
US8356017B2 (en) * | 2009-08-11 | 2013-01-15 | International Business Machines Corporation | Replication of deduplicated data |
US8965852B2 (en) * | 2009-11-24 | 2015-02-24 | Dell Products L.P. | Methods and apparatus for network efficient deduplication |
US9501365B2 (en) * | 2009-12-28 | 2016-11-22 | Netapp, Inc. | Cloud-based disaster recovery of backup data and metadata |
US9020900B2 (en) * | 2010-12-14 | 2015-04-28 | Commvault Systems, Inc. | Distributed deduplicated storage system |
US8874520B2 (en) * | 2011-02-11 | 2014-10-28 | Symantec Corporation | Processes and methods for client-side fingerprint caching to improve deduplication system backup performance |
US20140344539A1 (en) * | 2013-05-20 | 2014-11-20 | Kaminario Technologies Ltd. | Managing data in a storage system |
US10339106B2 (en) * | 2015-04-09 | 2019-07-02 | Commvault Systems, Inc. | Highly reusable deduplication database after disaster recovery |
US9946605B2 (en) * | 2015-11-25 | 2018-04-17 | Veritas Technologies Llc | Systems and methods for taking snapshots in a deduplicated virtual file system |
-
2017
- 2017-08-25 EP EP17757553.7A patent/EP3659042B1/en active Active
- 2017-08-25 CN CN201780041621.6A patent/CN109964217B/zh active Active
- 2017-08-25 WO PCT/EP2017/071467 patent/WO2019037877A1/en unknown
-
2020
- 2020-02-25 US US16/800,881 patent/US20200192760A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102221982A (zh) * | 2011-06-13 | 2011-10-19 | 北京卓微天成科技咨询有限公司 | 块级虚拟化存储设备上实现重复数据删除的方法及系统 |
CN106462605A (zh) * | 2014-05-13 | 2017-02-22 | 云聚公司 | 流媒体内容的分布式安全数据存储和传输 |
Also Published As
Publication number | Publication date |
---|---|
EP3659042A1 (en) | 2020-06-03 |
CN109964217A (zh) | 2019-07-02 |
WO2019037877A1 (en) | 2019-02-28 |
US20200192760A1 (en) | 2020-06-18 |
EP3659042B1 (en) | 2021-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11740974B2 (en) | Restoring a database using a fully hydrated backup | |
US9208166B2 (en) | Seeding replication | |
US11347600B2 (en) | Database transaction log migration | |
KR20150081810A (ko) | 데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치 | |
EP3796174B1 (en) | Restoring a database using a fully hydrated backup | |
US10628298B1 (en) | Resumable garbage collection | |
US11403176B2 (en) | Database read cache optimization | |
US20230394010A1 (en) | File system metadata deduplication | |
CN113728303B (zh) | 用于重复数据删除云分层的垃圾收集 | |
US11580015B2 (en) | Garbage collection for a deduplicated cloud tier using functions | |
US20200192760A1 (en) | Apparatus and method for deduplicating data | |
CN113728302B (zh) | 用于删除重复的云分层的垃圾收集 | |
US11645333B1 (en) | Garbage collection integrated with physical file verification | |
CN110945483B (zh) | 重复数据删除的网络系统和方法 | |
CN114328373A (zh) | 管理文件系统的方法、电子设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |