CN107690624B - 用于处理备份数据的方法、装置和机器可读介质 - Google Patents

用于处理备份数据的方法、装置和机器可读介质 Download PDF

Info

Publication number
CN107690624B
CN107690624B CN201680032177.7A CN201680032177A CN107690624B CN 107690624 B CN107690624 B CN 107690624B CN 201680032177 A CN201680032177 A CN 201680032177A CN 107690624 B CN107690624 B CN 107690624B
Authority
CN
China
Prior art keywords
data
backup
storage system
baseline
block
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
Application number
CN201680032177.7A
Other languages
English (en)
Other versions
CN107690624A (zh
Inventor
A·巴拉查德兰
N·J·詹姆斯
M·R·艾斯勒
R·普拉蒂普
S·库马
V·斯里纳斯
穆月东
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.)
NetApp Inc
Original Assignee
NetApp 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 NetApp Inc filed Critical NetApp Inc
Publication of CN107690624A publication Critical patent/CN107690624A/zh
Application granted granted Critical
Publication of CN107690624B publication Critical patent/CN107690624B/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
    • 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/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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
    • 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/1469Backup restoration 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

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

Abstract

第一存储系统的第一部分基线数据被标识。第一个存储系统的第一改变数据被标识。第一改变数据包括自从先前时间点以来已经改变的数据。将第一备份数据写入第二存储系统。第一备份数据包括第一部分基线数据和第一改变数据。在将第一备份数据写入第二存储系统之后,第一存储系统的第二部分基线数据被标识。第二部分基线数据不包括第一部分基线数据。第一存储系统的第二改变数据被标识。第二改变数据包括自从写入第一备份数据以来已经改变的数据。第二备份数据被写入第二存储系统。第二备份数据包括第二部分基线数据和第二改变数据。

Description

用于处理备份数据的方法、装置和机器可读介质
技术领域
本公开的各方面大体上涉及数据存储领域,并且更具体地涉及具有滚动基线的数据备份。
背景技术
数据备份被广泛用于在尤其是在企业存储系统中的数据丢失、数据损坏等事件中恢复数据。虽然数据备份可以像将数据从主存储系统复制到辅存储系统一样直接,但是许多技术被用于优化该过程。例如,仅自从上次备份以来已经改变的数据可以被备份,从而减少被备份的数据的总量。
附图说明
通过参考附图可以更好地理解本文的公开。
图1描绘了用于由备份管理器生成第一备份的示例操作。
图2描绘了用于由备份管理器生成第二备份的示例操作。
图3描绘了用于由备份管理器生成第三备份的示例操作。
图4描绘了用于由备份管理器生成第四备份的示例操作。
图5描绘了用于生成部分基线备份的示例操作的流程图。
图6描绘了用于标识与特定部分基线相关联的“连续”块的示例操作的流程图。
图7描绘了用于使用模运算来标识与特定部分基线相关联的块的示例操作的流程图。
图8描绘了使用模运算所针对部分基线集合标识的块的视觉表示。
图9描绘了用于使用位图来标识与特定的部分基线相关联的块的示例操作的流程图。
图10描绘了使用位图针对部分基线集合标识的块视觉表示。
图11描绘了用于使用模运算来标识与特定部分基线相关联的节点的示例操作的流程图。
图12描绘了用于使用模运算来标识与特定部分基线相关联的文件的示例操作的流程图。
图13描绘了用于使用第一部分基线备份来恢复部分存储系统数据的备份管理器的示例操作。
图14描绘了用于使用第二部分基线备份来恢复部分存储系统数据的备份管理器的示例操作。
图15描绘了用于使用第三部分基线备份来恢复部分存储系统数据的备份管理器的示例操作。
图16描绘了用于使用第四部分基线备份来恢复部分存储系统数据的备份管理器的示例操作。
图17描绘了用于从滚动基线备份来恢复数据的示例操作的流程图。
图18描绘了包括具有滚动基线功能的备份管理器的示例计算机系统。
具体实施方式
以下描述包括实施本文公开的技术的示例系统、方法、技术、指令序列和计算机程序产品。然而,应当理解,可以所描述的特征可以在没有这些具体细节的情况下被实践。例如,虽然示例涉及数据块,但是本文的公开可以应用于其他数据单元类型,诸如索引节点、卷、分区、数据库等。在其他实例中,公知的指令实例、协议、结构和技术没有被详细示出以便于不混淆描述。
术语
本文的公开可以适用于各种“数据单元”。如本文使用的数据单元是可单个可标识的数据集合。例如,特定的存储设备可能以“块”的形式读取和写入数据,作为示例,其大小可能是4千字节。块是数据单元的示例。数据单元的其他示例包括索引节点、文件、卷等。另外,许多数据单元由较小的数据单元组成。例如,卷可能被定义为特定的块的集合,或者索引结点可能会引用块。
本文使用的数据单元被假定为具有唯一的标识符。例如,块可以由块号标识,索引结点可以由索引结点编号标识,而文件可能由文件路径标识。在一些实例中,唯一标识符可以由多个标识符组成。例如,两个不同的卷可能包括由块号“10”标识的块。然而,每个块可以由卷标识符和块标识符的组合被唯一地标识。当在下文中使用时,术语“标识符”是指唯一标识符,除非非唯一标识符是足够的,在这种情况下标识符可以是唯一的或非唯一的。附加是,尽管下面的示例将集中于特定类型的数据单元(诸如块或索引结点),但是公开不限于所描述的数据单元的特定类型,而是还可以应用于其他数据单元。
本文使用的示例假定基于零的编号系统。例如,数组是零索引,二进制数值的最低有效位是第0位,等等。然而,这些示例可以适用于基于一的编号系统或其他编号系统。
如本文所使用的术语“存储系统”可以应用于任意类型的存储设备或存储设备的集合。例如,存储系统可以是单个硬盘、存储设备阵列、集群存储系统等。同样的,存储设备可以是硬盘、闪存盘、磁带驱动器/磁带介质等。
一般的备份
各种技术被用于备份数据。考虑一下,例如,增量备份。生成存储系统的初始基线备份。基线包括将被备份的存储系统的所有数据。例如,存储系统可能包含多个卷。存储系统可以配置为备份卷中的一个或多个卷。基线因此将包括存储系统被配置为备份的每个卷的数据。
一旦生成了初始基线备份,就周期性地生成增量备份。增量备份包括自从生成上次备份以来具有改变的数据。因此,不是备份所有数据,而是只备份已改变的子集,从而减少备份的大小(通常)。为了从增量备份恢复数据,初始基线的数据被写入存储系统。一旦将初始基线写入存储系统,增量备份中的每一个将按时间顺序写入存储系统。
利用增量备份(和其他备份范例),周期性基线被创建。例如,考虑在其中仅采取增量备份并且将每个备份存储在个体磁带介质(以下称为“磁带”)上的场景。为了恢复数据,必须恢复初始基线,然后恢复每个个体备份。从数百个磁带中恢复数据可能是耗时耗力的过程。因此,备份系统可能每周(例如,星期天)生成单个基线,并且每隔一天生成一次增量备份。因此,为从备份中恢复数据,最多使用七个磁带。
滚动基线备份的示例说明
代替周期性地生成完整的基线备份,备份管理器可以生成分布在多个备份上的滚动基线。为了生成滚动基线,备份管理器每次执行备份时都会生成部分基线。备份管理器将部分基线连同任意修改的数据一起存储为部分基线备份(即,备份管理器也生成增量备份)。部分基线的大小根据“窗口大小”参数确定。窗口大小指示滚动基线分布在其上的备份数量。例如,如果窗口大小为4,则每个备份将包含基线总大小的四分之一的部分基线(如果数据不能被4整除,则具有一些改变)。每个部分基线包括专用的第四个基线数据。因此,任意四个连续备份的部分基线可以被组合以创建完整的基线。
图1至图4描绘了具有滚动基线功能的备份管理器(以下称为“备份管理器”)的示例操作。图1至图4描绘了在其中每个附图描绘了个体备份过程的示例场景。示例场景假定窗口大小为四。因此,在组合时,图1至图4中描绘的个体备份导致完整的基线。为了便于说明,示例场景假定在每天的基础上执行个体备份(例如星期一第一备份、星期二第二备份等)。然而,所使用的特定备份方案可能变化,下面将讨论一些可能的变化。
图1描绘了用于由备份管理器生成第一备份的示例操作。图1描绘了备份管理器102和数据块(在下文中称为“块”)104的集合。图1还描绘了初始基线备份106和滚动基线备份集合108。当图1中所描绘的备份管理器102的操作完成时,生成第一滚动基线备份110。
备份管理器102保持至少两个参数(窗口大小和窗口计数器),备份管理器102使用上述参数确定哪些块被包括在每个部分基线中。窗口大小通常是常数值(但可以是可配置的),窗口计数器在生成每个个体备份之后递增。如上所述,窗口大小是四。对于图1,窗口计数器初始化为零。
初始基线备份106是可选的并且主要用作针对在足够数量的滚动基线备份完成之前发生的数据丢失的保险。例如,如果没有生成初始基线备份106,并且在三次滚动基线备份完成之后发生数据丢失,则只有完整基线的四分之三存在。因此,一些数据不可以被恢复。如果生成初始基线备份106,则在生成足够数量的滚动基线备份之后,初始基线备份106变得大部分不相关。足够的滚动基线备份的数目通常等于窗口大小。在一些实例中,在生成足够数量的滚动基线备份之后,初始基线备份106可能是相关的。例如,如果与备份相关联的数据被破坏,则初始基线备份106可能包括未破坏的数据。图1中的示例操作假定初始基线备份106已经由备份管理器102生成。
在阶段A,备份管理器102确定要用于第一部分基线的块集合104。基于四个窗口大小,备份管理器102确定四个块应当被包括在部分基线中。备份管理器102在每块的基础上备份数据。因此,尽管十五个块中的四分之一是3.75个块,但备份管理器102将块的数量舍入为四。
一旦备份管理器102确定要包括在部分基线中的块的数量,备份管理器102确定块104中的哪四个块应当被包括在部分基线中。备份管理器102可以使用各种技术来确定哪些四个块应当被包括在部分基线中。在这个示例中,备份管理器102将块104分成连续的四分之一。因此,第一个四分之一包括块0到3,第二个四分之一包括块4到7,第三个四分之一包括块8到11,第四个“四分之一”包括块12到14。备份管理器102使用窗口计数器来确定块104的哪个四分之一要包括在部分基线中,其中窗计数器值为0对应于第一个四分之一(块0到3),窗计数器值为1对应于第二个四分之一(块4到7),等等。在该实例中,因为窗口计数器是0,所以备份管理器102确定块0到块3应当被包括在部分基线中。
在阶段B,备份管理器102标识自从初始基线备份106被生成以来已被修改的块。用于标识块104哪个块已经被修改的技术可以改变。例如,备份管理器102或另一部件可以维持标识已经被修改的列表(或其他数据结构),每次增量备份被生成时清除该列表。作为另一示例,备份管理器102或另一部件可以维持标识所有块104的表(或其他数据结构)。该表可以指示特定块是否已经被修改(即,可以包括脏位)。在该实例中,自从生成初始基线备份106以来,块7和13已被修改。
在阶段C,备份管理器102读取与如阶段A被确定的第一块集合和在阶段B确定的被修改的块相关联的数据。在该实例中,备份管理器102从块0到块3、7和13读取数据。
在阶段D,备份管理器102将在阶段C读取的数据写入被指示用于当前备份的存储位置,并递增窗口计数器值。备份管理器102写入数据的特定存储位置可以改变。在一些实例中,备份管理器102总是将数据写入相同的存储位置。例如,包括备份管理器102的存储系统可以与单个磁带驱动器耦合。在备份管理器102将数据写入位于磁带驱动器中的存储介质之后,管理员可以移除存储介质并插入不同的存储介质。
在一些实例中,备份管理器102可以将数据写入旋转的存储位置。例如,包括备份管理器102的存储系统可以与多个磁带驱动器耦合。备份管理器102可以至少部分地基于窗口大小和窗口计数器来选择特定的磁带驱动器来写入数据。例如,备份管理器102可以利用模运算来选择特定的磁带驱动器。例如,备份管理器102可以计算窗口计数器以窗口大小为模的值。因此,如果窗口计数器是0并且窗口大小是4,则备份管理器102选择由标识符0标识的磁带驱动器;如果窗口计数器是1并且窗口大小是4,则备份管理器选择由标识符1标识的磁带驱动器,等等。
在一些实例中,备份管理器102写入数据的特定存储位置可以针对单个备份中的每一个被显式地指定。换句话说,备份管理器102可以基于窗口计数器、日期等访问标识特定存储位置的数据结构
在该示例中,备份管理器102将块写入到与第一滚动基线备份110相关联的第一存储位置。写入第一存储位置的特定块包括与第一部分基线相关联的块(块0、1、2和3)以及自从初始基线备份106以来修改的块(块7和13)。写入第一个存储位置的块在图1中被标识在大括号中。类似地,与第一部分基线相关联的块由虚线图案标识,并且修改块由条纹图案标识,如上所述。
尽管没有描绘,备份管理器102还将与第一滚动基线备份110相关联的元数据写入适当的存储位置。所写入的特定元数据可以根据正在备份的数据的格式而改变。例如,元数据可以指定数据的格式、数据是否被压缩、使用的特定压缩算法等。在这个示例中,元数据包括窗口大小和窗口计数器。备份管理器102可以使用元数据来促进数据的恢复。
如上所述,备份管理器102也递增窗口计数器。如上所述,窗口计数器允许备份管理器102确定哪些块被用于部分基线。因此,递增窗口计数器允许备份管理器102标识被用于下一部分基线的块。在这个示例中,窗口计数器从0递增到1。备份管理器102递增窗口计数器的特定量可以在备份管理器之间改变。类似地,备份管理器102可以实现用于标识要用于特定部分基线的块的其他功能。在该实例中,备份管理器102可以执行适合于所使用的特定机制的操作。
图2描绘了用于由备份管理器生成第二备份的示例操作。类似于图1,图2描绘了备份管理器102和块104。图2还描绘了初始基线备份106和滚动基线备份108的集合。当图2中描绘的备份管理器102的操作完成时,生成第二滚动基线备份112。
在阶段A,备份管理器102确定将被用于第二部分基线的块集合104。为了确定要用于第二部分基线的块集合104,备份管理器102执行与针对图1的阶段A所描述的操作类似的操作。因为窗口大小保持为4,所以备份管理器102确定四个块应当被用于第二部分基线,如上所述。然而,在该实例中,窗口计数器现在为1,其对应于块104的第二个四分之一(块4至7)。因此,备份管理器102确定块4到7应当被包括在第二部分基线中。
在阶段B,备份管理器102标识自从第一滚动基线备份110被生成以来已被修改的块。备份管理器102可以通过执行与针对图1的阶段B所描述的那些操作类似的操作来标识已经被修改的块。在该实例中,备份管理器确定自从第一滚动基线备份110被生成以来,块11已经被修改。
在阶段C,备份管理器102读取与在阶段A确定的块集合和在阶段B确定的修改的块关联的数据。在该实例中,备份管理器102从块4到7和11读取数据。
在阶段D,备份管理器102将在阶段C读取的数据写入被指示用于当前备份的存储位置,并递增窗口计数器值。在该示例中,第二滚动基线备份112被写入适当的存储位置(与星期二的备份相关联)。具体地,备份管理器102将块4至7以及块11写入到针对第二滚动基线备份112所指示的存储位置。
另外,如上所述,备份管理器102写入与第二滚动基线备份112相关联的任意元数据(未描绘)。例如,备份管理器102写入指示窗口大小为4和窗口计数器为1的元数据。此外,如上所述,备份管理器102将窗口计数器递增1。因此,在这个示例中,备份管理器102将窗口计数器从1递增到2。
尽管大致类似于图1中所描绘的示例,但图2中所描绘的示例图示了针对第二部分基线的不同块的选择。图2中所描绘的示例也图示了单个滚动基线备份的可变大小的性质。虽然第二部分基线保持与第一部分基线相同的大小,但是第二滚动基线备份112小于第一滚动基线备份110。这是由在第一滚动基线备份110和第二滚动基线备份112之间修改的块的较少数目引起的。
图3描绘了用于由备份管理器生成第三备份的示例操作。类似于图1和2,图3描绘了备份管理器102和块104。图3还描绘了初始基线备份106和滚动基线备份集合108。当图3中描述的备份管理器102的操作完成时,生成了第三滚动基线备份114。
在阶段A,备份管理器102确定将被用于第三部分基线的块集合104。为了确定要用于第三部分基线的块集合104,备份管理器102执行与针对图1和2的阶段A所描述的操作类似的操作。因为窗口大小保持为4,所以备份管理器102确定四个块应当被用于第三部分基线,如上所述。然而,在该实例中,窗口计数器现在是2,它对应于块104的第三个四分之一(块8到11)。因此,备份管理器102确定块8至11应当被包括在第三部分基线中。
在阶段B,备份管理器102标识自从第二滚动基线备份112被生成以来已被修改的块。备份管理器102可以通过执行与图1和2的阶段B所描述的操作类似的操作来标识已经被修改的块。在该实例中,备份管理器确定自从第二滚动基线备份112被生成以来块10和12已经被修改。
在阶段C,备份管理器102读取与在阶段A确定的块集合和在阶段B确定的修改的块关联的数据。在该实例中,备份管理器102从块8到块12读取数据。尽管块10自从第二滚动基线备份112被生成以来被修改,但块10也是第三部分基线的一部分。备份管理器102只读取块10一次。
在阶段D,备份管理器102将在阶段C读取的数据写入被指示用于当前备份的存储位置,并递增窗口计数器值。在该示例中,第三滚动基线备份114被写入适当的存储位置(与周三的备份相关)。备份管理器102类似地写入任意关联的元数据(未描绘)。例如,备份管理器102写入指示窗口大小为4和窗口计数器为2的元数据。此外,如上所述,备份管理器102将窗口计数器递增1。因此,在这个示例中,备份管理器102将窗口计数器从2递增到3。
图4描绘了用于由备份管理器生成第四备份的示例操作。类似于图1至图3,图4描绘了备份管理器102和块104。图4还描绘了初始基线备份106和滚动基线备份集合108。当图4中描述的备份管理器102的操作被完成时,生成第四滚动基线备份116。
在阶段A,备份管理器102确定块104的集合将被用于第四部分基线。为了确定将被用于第四部分基线的块104的集合,备份管理器102执行与针对图1的阶段A所描述的操作的类似的操作。因为窗口大小保持为4,所以备份管理器102确定四个块应当被用于第四部分基线,如上所述。然而,在该实例中,窗口计数器现在为3,其对应于块104的第四个四分之一。然而,块104的第四个四分之一只包括三个块(而不是四个):块12至14。因此,备份管理器102确定块12到14应当被包括在第四部分基线中。
在阶段B,备份管理器102标识自从生成第三滚动基线备份114以来已被修改的块。备份管理器102可以通过执行与针对图1的阶段B所描述的操作类似的操作来标识已经被修改的块。在该实例中,备份管理器确定自从第三滚动基线备份114被生成以来块0、2和7已被修改。
在阶段C,备份管理器102读取与在阶段A确定的块集合和在阶段B确定的经修改的块相关联的数据。在该实例中,备份管理器102从块0、2、7和12至14读取数据。
在阶段D,备份管理器102将在阶段C读取的数据写入被指示用于当前备份的存储位置,并递增窗口计数器值。在该示例中,第四滚动基线备份116被写入适当的存储位置(与周四的备份相关联)。备份管理器102类似地写入任意关联的元数据(未描绘)。例如,备份管理器102写入指示窗口大小为4和窗口计数器为3的元数据。此外,如上所述,备份管理器102将窗口计数器递增1。因此,在这个示例中,备份管理器102将窗口计数器从3递增到4。
重复图1至图4中描绘的操作直到停止。然而,替代重复确定块104中的哪些块包括部分基线,备份管理器102可以存储块标识符,该块标示符包括在标识块标识符第一次之后部分基线中的每一个。例如,在确定块0至3包括第一部分基线之后,备份管理器102可以将标识块0至3的列表存储为包括第一部分基线连同标识符。标识符将是窗口计数器以窗口大小为模的结果,或者对于第一个部分基线为0。备份管理器102将对第二部分基线、第三部分基线和第四部分基线执行相同的操作。随后,为了确定将被使用的块集合,备份管理器102计算当前窗口计数器以窗口大小为模的结果,并使用结果以标识包括相关联部分基线的块列表。例如,如果窗口计数器是25,25以4(窗口大小)为模的结果是1。因此,备份管理器102将确定哪个列表由‘1’标识并使用所确定的列表的块标识符。
图5描绘了用于生成部分基线备份的示例操作的流程图。图5中描绘的操作可以由图1至4的备份管理器102或任意合适的部件来执行。
在框500处,备份管理器标识与当前部分基线相关联的块。用于标识与当前部分基线相关联的块的技术可以改变。例如,如上所述,备份管理器可以基于块标识符和窗口大小参数将要备份的整个块集合(即,包括完整基线的块集合)划分为连续块的组。备份管理器可以基于窗口计数参数来选择特定的分区。例如,当窗口计数参数为0时,备份管理器可以将第一个分区的块标识为与当前的部分基线关联。当窗口计数参数为1时,备份管理器可以将第二个分区的块标识为与当前部分基线相关联。
作为另一示例,备份管理器可以基于块标识符和窗口大小参数将要备份的整个块集合划分为不连续的块集合。为了对块集合进行划分,备份管理器可以利用模运算。例如,如果窗口大小参数是4,则具有可被零整除的块标识符的所有块包括第一分区;具有可被一整除的块标识符的所有块包括第二分区;具有可被二整除的块标识符的所有块包括第三分区;以及具有可被三整除的块标识符的所有块包括第四分区。备份管理器可以通过计算窗口计数为窗口大小模的结果来选择特定的分区。因此,当窗口计数参数为0时,选择具有可被零整除的块标识符的所有块;当窗口计数参数为6时,选择具有可被二整除的块标识符的所有块。
在备份管理器标识出与当前部分基线相关联的块之后,控制然后流向框502。
在框502处,备份管理器标识自从先前的备份以来已被修改的块。由备份管理器使用的用于标识自从上次备份以来已被修改的块的技术可以变化。例如,备份管理器可以分析与块相关联的时间戳,读取指示哪些块被修改的元数据等。在备份管理器标识自从上次备份以来已经被修改的块之后,控制然后流向框504。
在框504处,备份管理器开始数据备份循环。在数据备份循环期间,备份管理器迭代在框500和502处所标识的块集合,从源位置读取块并将块写入到与当前备份相关联的目的地位置。在第一次经过框504时,备份管理器初始化“当前块”变量以标识块集合中的第一块。在每个随后经过框504时,备份管理器更新当前块变量以从块集合中标识未处理的块。在备份管理器初始化或更新当前块变量之后,控制流向框506。
在框506处,备份管理器从源位置读取由当前块变量标识的块。为了读取该块,备份管理器可以将与该块相关联的块标识符传递给文件系统管理器或其他部件。在备份管理器从源位置读取由当前块变量标识的块之后,控制然后流向框508。
在框508处,备份管理器将由当前块变量标识的块写入与当前备份相关联的目的地位置。为了写入块,备份管理器可以将与该块关联的数据(通过引用或直接地)传递给文件系统管理器或其他部件,并标识目的地位置。在备份管理器将由当前块变量所标识的块写入与当前备份相关联的目的地位置之后,控制然后流向框510。
在框510处,备份管理器确定是否存在要备份的附加块。备份管理器可以通过确定是否已经到达列表末尾、与当前块参数相关联的块标识符是否已经达到最大值等来确定是否存在要备份的附加块。如果备份管理器确定存在不存在要备份的附加的块,则控制然后流向块512。如果备份管理器确定存在要备份的附加的块,则控制然后流回框504。
在框512处,备份管理器将与当前备份相关联的元数据写入到目的地位置。所写的特定元数据可能变化。例如,元数据可以包括窗口大小和窗口计数器参数、备份数据是否被压缩等。目的地位置可以与在框508处块被写入的目的地位置相同,或者可以是单独的位置。在备份管理器将与当前备份关联的元数据写入目的地位置后,过程结束。
尽管上述示例假定每个备份在每天的基础上发生,但备份可以在任意时间间隔发生。例如,在一些实例中,可以执行备份的可用时间(在下文中的“备份窗口”)可能取决于一周中的特定日而变化。例如,在一个工作日,备份窗口可能是夜间期间的四个小时。然而在星期天,备份窗口可能是白天期间的十二个小时。备份管理器可以通过生成多个部分基线备份来利用更长的备份窗口。例如,在每个工作日,备份管理器可能会如上所述生成单个部分基线备份。然而在星期天,备份管理器可能会生成三个部分基线备份。如上所述,即使在同一天生成每个部分基线备份,备份管理器也会在每个部分基线备份生成后递增窗口计数器。
对其他数据单元类型的适用性
如上所述,本文描述的示例不限于所描述的特定数据单元类型。例如,上述技术可以适用于与索引结点一起使用。索引结点是指向块(逻辑或物理;直接或间接)或其他索引结点的指针集合,因此(潜在地)导致分层结构。与由块标识符标识的块类似,可以通过索引结点标识符来标识索引结点。因此,上述的用于对块集合进行划分的技术可以用于对索引结点进行划分。然而,为了促进与索引结点相关联的分层结构的重新创建,备份管理器可以包括所选择的索引结点和根索引结点之间的所有父节点。例如,如果备份管理器确定特定索引结点将被备份,则备份管理器还确定索引结点的父节点也将被备份。如果索引结点的父节点不是根节点,则备份管理器将确定索引结点的祖父节点也将被备份。因此,备份管理器将处理分层结构,直到到达根索引结点。下面将介绍附加的示例。
划分技术示例
如上所述,可以使用各种技术来标识哪些块(或其他数据单元类型)与特定部分基线相关联。图6至图12提供了可被用于标识哪些数据单元用于特定部分基线的特定技术的示例。
图6描绘了用于标识与特定部分基线相关联的“连续”块的示例操作的流程图。图6中描绘的操作可以由图1至4的备份管理器102或任意合适的部件来执行。
在框600处,备份管理器确定当前部分基线中的块的数目。要确定当前部分基线中的块的数目,备份管理器将包括完整基线的块的总数目除以窗口大小。如果得到的商数n不是整数,则备份管理器可以将商舍入到最接近的整数。在某些实例中,备份管理器可以使用n的非整数值而无需修改。除非包括完整的基线的块的总数改变或窗口大小改变,否则n的值保持相同。因此,在最初计算n之后,所得到的值可以被存储以用于将来使用,从而减少了重复计算的数目。因此,在计算n之前,备份管理器可以确定是否已经计算了n,如果是,则使用存储的n的值。备份管理器还可以确定包括完整基线的块的总数是否已经改变,或者窗口大小是否已经改变。在该实例中,即使n先前被计算并存储以用于以后使用,备份管理器也重新计算n。在备份管理器确定当前部分基线中的块的数目之后,控制然后流向框602。
在框602处,备份管理器标识n个块以包括在当前部分基线中。备份管理器可以使用各种技术来标识n个块。作为第一示例,如果块标识符是连续的(例如,0,...,m),则备份管理器可以直接计算块标识符。为了计算第一块标识符x,备份管理器在框600处确定的n乘以当前窗口计数器值。为了计算最后的块标识符y,备份管理器将n-1添加到x。由块标识符x至y标识的n个块是被包括在当前部分基线中的块。
如果块标识符不是顺序的(例如,0,...,5、10,...19),则备份管理器可在块标识符的列表上迭代以确定要包括在部分基线中的块。具体而言,备份管理器可以计算到列表中的索引以标识第一块标识符的位置。到列表中的索引是x,如上面计算(n乘以当前窗口计数器值)。因此,备份管理器在列表中的块标识符上迭代,直到达到第x个块标识符。然后,备份管理器在列表中的下n个块标识符上迭代,标记或以其他方式指示每个块标识符与当前部分基线相关联。在备份管理器标识出要包括在当前部分基线中的n个块之后,控制然后流向框604。
在框604处,备份管理器将块标识符添加到包括当前部分基线的块列表。在备份管理器将块标识符添加到包括当前部分基线的块列表之后,过程结束。
图7描绘了用于使用模运算来标识与特定部分基线相关联的块的示例操作的流程图。图7中描绘的操作可以由图1至4的备份管理器102或任意合适的部件来执行。
在框700处,备份管理器计算窗口计数器值以窗口大小为模的结果x。在备份管理器计算x之后,控制然后流向框702。
在框702处,备份管理器开始部分基线块标识循环。在第一次通过框702的期间,备份管理器将当前块标识符初始化为与所有正被备份的块相关联的块标识符集合中的第一个。在每个随后经过框702的过程中,备份管理器将当前块标识符更新为来自该块标识符集合的未处理块标识符。在备份管理器初始化或更新当前块标识符之后,控制然后流向框704。
在框704处,备份管理器计算当前块标识符以窗口大小为模的结果y。在备份管理器计算出y之后,控制然后流向框706。
在框706处,备份管理器确定x是否等于y。如果x等于y,则控制然后流向框708。如果x不等于y,则控制流向框710。
在框708处,备份管理器将块标识符添加到包括部分基线的块列表。该列表可以实现为列表或其他数据结构。在备份管理器将块标识符添加到包括部分基线的块列表之后,控制然后流向框710。
在框710处,备份管理器确定是否所有块已经被迭代。如果备份管理器确定所有块还没有被迭代,则控制流回到框704。如果备份管理器确定所有块已经被迭代,则该过程结束。
图8描绘了如关于图7所描述的使用模运算针对部分基线集合标识的块的视觉表示。图8描绘了块集合804和基于特定窗口计数值的四个块的子集804A-804D。类似于图1至图4,块804是正被备份的块,并且由块标识符0至14表示。在该示例中,窗口大小参数是4,并且针对每个特定部分基线标识的块由虚线图案指示。
块子集804A描绘了包括与窗口计数0、4、8等相关联的部分基线的块的子集。当窗口计数是0、4、8等时,如关于图7所定义的x为0。因此,具有可被4整除(即,不具有余数)的块标识符的任意块被标识为包括部分基线。因此,由块标识符0、4、8和12标识的块包括与窗口计数0、4、8等相关联的部分基线
块子集804B描绘了包括与窗口计数1、5、9等相关联的部分基线的块的子集。当窗口计数是1,5、9等时,如关于图7所定义的x为1。因此,具有当被4除时具有余数1的块标识符的任意块被标识为包括部分基线。因此,由块标识符1、5、9和13标识的块包括与窗口计数1、5、9等相关联的部分基线。
块子集804C描绘了包括与窗口计数2、6、10等相关联的部分基线的块的子集。当窗口计数是2、6、10等时,如关于图7所定义的x为2。因此,具有当被4除时具有余数2的块标识符的任意块被标识为包括部分基线。因此,由块标识符2、6、10和14标识的块包括与窗口计数2、6、10等相关联的部分基线。
块子集804D描绘了包括与窗口计数3、7、11等相关联的部分基线的块的子集。当窗口计数是3,7、11等时,如关于图7所定义的x为3。因此,具有当被4除时具有余数3的块标识符的任意块被标识为包括部分基线。因此,由块标识符3、7和11标识的块包括与窗口计数3、7、11等相关联的部分基线。
作为另一示例,位图(或类似的数据结构)可以与模算术结合使用以识别与特定的部分基线相关联的块。考虑被表示为二进制值0b0100的位图和四个窗口大小。为了确定特定块是否与特定部分基线相关联,备份管理器计算块标识符为窗口大小模的结果y。备份管理器然后确定y是否与位图中被设置为1的位相对应。如果对应的位是1,则备份管理器确定该块与特定部分基线相关联。例如,如果块标识符是9,则y是1。因此,备份管理器确定第一位置中的位是否是1。在示例位图(0b0100)中,第一位置中的位是0。因此,备份管理器确定由块标识符9标识的块不是特定部分基线的一部分。然而,如果块标识符是10,则y是2。因此,备份管理器确定第二位置中的位是否是1。在示例位图(0b0100)中,第二位置中的位是1。因此,备份管理器确定由块标识符1标识的块是特定部分基线的一部分。
位图可以是可配置的。例如,存储系统可以包括配置数据。配置数据可以包括位图集合,其由备份管理器读取或被传递给备份管理器。例如,基于一周中的特定星期几等,在轮询调度(“round-robin”)的基础上位图可以被传递给备份管理器。存储系统可以包括促进由用户创建位图的用户界面。
包括完整基线的部分基线中的每一个由位图指定。因此,位图中位的数目等于窗口大小。例如,上面的位图包含四个位,对应于四个窗口大小。
上面图7中描绘的技术可以通过使用连续向左位移的位图来模拟。例如,如果窗口大小为4,则使用针对连续的部分基线的以下位图来模拟当窗口大小也是4时图7中所描绘的技术:0b000l;0b00l0;0b0l00;以及0b100。与图7中描述的技术不同,位图的使用允许包括部分基线的块以非顺序的方式被划分。下面说明了位图的这种使用。
图9描绘了用于使用位图来识别与特定部分基线相关联的块的示例操作的流程图。图9中描绘的操作可以由图1至4的备份管理器102或任意合适的部件来执行。
在框900处,备份管理器开始部分基线块标识循环。在第一次经过框900的期间,备份管理器将当前块标识符初始化为与正被备份的所有块相关联的块标识符集合中的第一个。在每个随后经过框900的过程中,备份管理器将当前块标识符更新为来自块标识符集合的未处理块标识符。在备份管理器初始化或更新当前块标识符之后,控制然后流向框902。
在框902处,备份管理器计算当前块标识符以窗口大小为模的结果y。在备份管理器计算y之后,控制然后流向框904。
在框904,备份管理器位将0b1向左移动y位(x)。将0b1向左位移y位有效地标识位图中哪个位对应于当前块标识符。例如果y是2,x是0b0100,将第二位位置标识为对应于当前块标识符。在备份管理器位将0b1向左移动y位之后,控制然后流向框906。
在框906,备份管理器确定x和y的按位与是否等于零。换句话说,备份管理器使用x和y执行按位与运算,并将结果与零进行比较。如果x中的1位与位图中的1位相匹配,则按位与运算的结果不为零。如果备份管理器确定x和y的按位与不等于零,控制然后流程向框908。如果备份管理器确定x和y的位与等于零,控制然后流向框910。
在框908处,备份管理器将块标识符添加到包括部分基线的块列表。该列表可以被实现为列表或其他数据结构。在备份管理器将块标识符添加到包括部分基线的块列表之后,控制然后流向框910。
在框910处,备份管理器确定所有块是否已经被迭代。如果备份管理器确定所有的块还未被迭代,则控制然后流向框900。如果备份管理器确定所有块已经被迭代,则过程结束。
图10描绘了使用位图针对部分基线集合标识的块的视觉表示。图10描绘了块集合1004和基于特定位图的四个块的子集1004A-1004D。类似于图1到4,块1004是被备份的块,并且由块标识符0到14表示。在该示例中,窗口大小参数是4,并且针对每个特定部分基线标识的块由虚线图案指示。
块子集1004A描绘了包括与位图0b0100相关联的部分基线的块的子集。当位图是0b0l00时,位图中的1对应于由块标识符标识的任意块,该块标识符当被4除时导致余数为2(即,当块标识符以4为模为2时)。因此,由块标识符2、6、10和14标识的块包括与位图0b0l00相关联的部分基线。
块子集1004B描绘了包括与位图0b000l相关联的部分基线的块的子集。当位图是0b000l时,位图中的1对应于由被4整除的块标识符标识的任意块(即,当块标识符以4为模为0时)。因此,由块标识符0、4、8和12标识的块包括与位图0b000l相关联的部分基线。
块子集1004C描绘了包括与位图0b1000相关联的部分基线的块的子集。当位图是0b1000时,位图中的1对应于由块标识符标识的任意块,该块标识符当除以4导致余数为3(即,当块标识符以4为模为3时)。因此,由块标识符3、7和11标识的块包括与位图0bl000相关联的部分基线。
块子集1004D描绘了包括与位图0b00l0相关联的部分基线的块的子集。当位图是0b00l0时,位图中的1对应于由块标识符标识的任意块,该块标识符当被4除时导致余数为1(即,当块标识符以4为模为1时)。因此,由块标识符1、5、9和13标识的块包括与位图0b00l0相关联的部分基线。
在使用四个位图中的每一个之后,位图将以相同的顺序被重新使用。因此,类似于图7中描述的和图8中图示的技术,位图的使用导致包括不连续且均匀分布的块组的部分基线。同样,任意四个连续的部分基线可以组合以创建完整的基线。
然而,不同于在图7中描述并且在图8中图示的技术,在图9中描述的技术,包括特定部分基线的特定块不全是使用模运算来确定的。因此,代替包括下一连续块的每个部分基线,可以使用位图来指示特定的块集合,从而允许附加的灵活性。
应当注意的是,单个位图可以有效地被用于指定应当进行多个部分基线备份。例如,位图0b1100使得备份管理器包括将通过使用0b1000而包括的块和将通过使用0b0l00而被包括的块。因此,位图0b1100实际上等同于使用位图0bl00一次和位图0b0l00一次来执行图9中描绘的操作两次。这可以允许备份管理器利用更长的备份窗口,类似于上述描述。但是,代替备份窗口较长时执行多个部分基线备份,备份管理器执行单个部分基线备份,但为基线选择更大的块的数目。
虽然备份管理器用于标识与特定部分基线相关联的索引结点的技术类似于用于标识与特定部分基线相关联的块的技术,但备份管理器还考虑由文件实现的分层结构系统。由于特定索引结点的修改可能会导致对直到根索引结点的父索引结点的修改,因此备份管理器还会标识包含特定部分基线的任意索引结点的父索引结点。
图11描绘了用于使用模运算来标识与特定部分基线相关联的索引结点的示例操作的流程图。图11中描绘的操作可以由图1至4的备份管理器102或任意合适的组件来执行。
在框1100处,备份管理器计算窗口计数器值以窗口大小为模的结果x。在备份管理器计算x后,控制然后流向框1102。
在框1102,备份管理器开始部分基线索引结点标识循环。在第一次通过框1102的期间,备份管理器将当前索引结点标识符初始化为与所有正被备份的索引结点相关联的索引结点标识符集合中的第一个。在每个随后通过框1102的过程中,备份管理器将当前索引结点标识符更新为来自索引结点标识符集合的未处理的索引结点标识符。由当前索引结点标识符标识的索引结点是“当前索引结点”。在备份管理器初始化或更新当前索引结点标识符之后,控制然后流向框1104。
在框1104处,备份管理器计算当前索引结点标识符以窗口大小为模的结果y。在备份管理器计算y之后,控制然后流向框1106。
在框1106处,备份管理器确定x是否等于y。如果x等于y,则控制流程进行到框1108。如果x不等于y,则控制然后流向框1116。
在框1108处,备份管理器将索引结点标识符添加到包括部分基线的索引结点的列表。该列表可以实现为列表或其他数据结构。在备份管理器将索引结点标识符添加到包括部分基线的索引结点列表之后,控制然后流向框1109。
在框1109,备份管理器确定当前索引结点是否是根索引结点。根索引节点可以用各种方式定义。例如,根索引结点可能是没有父索引结点的索引结点。作为另一示例,根索引结点可以是被明确指示为根索引结点的索引结点(即,根索引结点可能仍然具有父索引结点)。因此,备份管理器用于确定当前索引结点是否是根索引结点的特定技术可以变化。例如,备份管理器可以确定索引结点是否具有对父索引结点的引用,或者索引结点是否与索引结点是根索引节点的明确指示相关联。索引结点是否具有父索引结点或者是否是根索引结点可以在表示索引结点的数据结构中被指示。如果备份管理器确定当前索引结点是根索引结点,则控制然后流向框1110。如果备份管理器确定当前索引结点不是根索引结点,则控制然后流向框1116。
在框1110,备份管理器开始父索引结点标识循环。在第一次通过框1102期间,备份管理器将当前父索引结点初始化为当前索引结点的父索引节点。在每个随后通过框1102时,备份管理器将当前父索引节点更新为前一个当前父索引节点的父索引节点。在备份管理器初始化或更新当前父索引结点之后,控制然后流向框1112。
在框1112,备份管理器将标识当前父索引节点的索引结点标识符添加到包括部分基线的索引结点列表。在备份管理器将标识当前父索引结点的索引结点标识符添加到包括部分基线的索引结点列表之后,控制然后流向框1114。
在框1114处,备份管理器确定当前索引结点是否是根索引结点。为了确定当前索引结点是否是根索引结点,备份管理器可以执行与在框1109处执行的操作基本类似的操作。如果备份管理器确定当前索引结点是根索引结点,则控制然后流向框1116。如果备份管理器确定当前索引结点不是根索引结点,则控制然后流向框1110。
如果备份管理器在框1106处确定x等于y,则控制流向框1116。备份管理器在框1109处确定当前索引结点是根索引结点,控制也流向框1116。如果备份管理器在框1114确定当前父索引结点是根过引节点,则控制也流向框1116。在框1116处,备份管理器确定所有索引结点是否已经被迭代。如果备份管理器确定在所有索引结点还未被迭代,则控制然后流向框1104。如果备份管理器确定所有索引结点已经被迭代,则处理结束。
备份管理器用于标识与特定部分基线相关联的文件的技术也与用于识别与特定部分基线相关联的块的技术类似。然而,虽然文件可以由类似于块标识符的文件编号标识,但文件通常也由文件路径标识。文件路径通常标识文件系统内的特定位置,并通常使用字母数字字符(即,不是单个整数)来指定。因此,模算术可能不能直接应用于文件路径。然而,备份管理器可以将文件路径转换为整数,从而允许备份管理器对文件路径执行与对块标识符执行的操作类似的操作。虽然备份管理器可以将文件路径的数字表示直接处理为整数,但是文件路径的数字表示可以不必很长。因此,备份管理器可以计算文件路径的整数散列,并利用整数散列作为文件标识符。
图12描绘了用于使用模运算来标识与特定部分基线相关联的文件的示例操作的流程图。图12中描绘的操作可以由图1至4的备份管理器102或任意合适的部件来执行。
在框1200处,备份管理器计算窗口计数器值以窗口大小模的结果x。在备份管理器计算x之后,控制然后流向框1202。
在框1202处,备份管理器开始部分基线文件标识循环。在第一次通过框1202期间,备份管理器将当前文件路径初始化为与所有正在备份的文件相关联的文件路径集合中的第一个。在每个随后经过框1202时,备份管理器将当前文件路径更新为来自该文件路径集合的未处理文件路径。在备份管理器初始化或更新当前文件路径之后,控制然后流向框1204。
在框1204处,备份管理器计算当前文件路径的整数散列。备份管理器可以使用多种散列技术中的任意一种来计算当前文件路径的整数散列(例如,SHA-1、MD5等)。在备份管理器计算当前文件路径的整数散列之后,控制然后流向框1206。
在框1206处,备份管理器计算整数散列以窗口大小模的结果y。在备份管理器计算y之后,控制然后流向框1208。
在框1208处,备份管理器确定x是否等于y。如果x等于y,则控制然后流向框1210。如果x不等于y,则控制流向框1212。
在框1210处,备份管理器将文件路径添加到包括部分基线的文件列表。该列表可以实现为列表或其他数据结构。在备份管理器将文件路径添加到包括部分基线的文件列表之后,控制然后流向框1212。
在框1212处,备份管理器确定所有文件路径是否已经被迭代。如果备份管理器确定所有文件路径已经被迭代,则控制流回到框1202。如果备份管理器确定所有文件路径还未被迭代,则过程结束。
以上技术仅仅是可用于标识包括特定部分基线的数据单元的可能技术中的一些。其他技术可以被用于上述示例数据单元类型。类似地,这些技术可以被用于其他数据单元类型,包括卷、分区、驱动器等。
使用部分基线备份恢复数据
当存储系统发生数据丢失时,使用先前生成的备份数据可以被恢复。要使用部分基线备份来恢复数据,备份管理器将确定部分基线备份集合,其会在数据丢失之前提供数据的完整基线。例如,考虑执行每日备份的备份管理器,每日备份包括基于窗口大小为四的部分基线。用户标识发生数据丢失的日期并将日期提供给备份管理器。然后,备份管理器使用窗口大小来确定可用于创建完整基线的部分基线的集合。例如,如果用户指出数据丢失发生在星期五,则备份管理器(基于窗口大小为四)确定在星期一、星期二、星期三和星期四生成的备份包括可被组合以创建完整的基线的部分基线。当与和部分基线一起存储的增量备份组合时,在星期一、星期二、星期三和星期四生成的备份可以被用于将数据恢复到备份在星期四生成的点。在其上发生数据丢失的日期在本文被称为“关键日期”。
一旦适当的备份被标识,备份管理器就可以从备份中的每一个中读取数据并将数据写入存储系统中的适当位置。
图13至图16描绘了由备份管理器执行的用于从滚动基线备份集合恢复数据的操作。具体而言,图13、14、15和16中的每一个描绘了被执行用于恢复包括特定的部分基线备份的数据的操作。
图13描绘了用于使用第一部分基线备份来恢复存储系统数据的部分数据的备份管理器的示例操作。图13描绘了备份管理器1302和块集合1304。该块集合1304表示存储系统(未描绘)上的块。图13还描绘了滚动基线备份集合1308。滚动基线备份1308包括备份1310、1312、1314和1316。备份中的每一个包括部分基线备份并且可以包括增量备份(未单独地描绘)。在来自滚动基线备份1308的数据已经被写入到每个相应的个体块之后,块集合1304中的个体块被用条纹图案描绘。
在阶段A,备份管理器1302标识可以被组合以创建完整基线的部分基线备份集合。为了标识部分基线备份集合,备份管理器1302确定关键日期。在一些实例中,备份管理器1302被用户或其他部件通知关键日期。例如,用户可能会输入与数据丢失相对应的日期。作为另一示例,负责监视存储系统的状态的部件可以确定已经发生了数据丢失,并且通知备份管理器1302关键日期。在一些实例中,备份管理器1302确定关键日期本身。例如,备份管理器1302可以假设最近的备份被生成的日期之后的日期是关键日期。
一旦备份管理器1302已经标识出关键日期,备份管理器1302标识在关键日期之前生成的n个部分基线备份,其中n是窗口大小。在上面的示例中,窗口大小为4,每天生成部分基线备份,并且关键日期为星期五。因此,备份管理器1302将标识在星期一、星期二、星期三和星期四生成的部分基线备份。在此特定示例中,备份管理器1302将备份1310、1312、1314和1316标识为包含可被组合以创建完整基线的部分基线备份。
在阶段B,备份管理器1302读取与第一备份1310相关联的数据。为了读取与第一备份1310相关联的数据,备份管理器1302可以标识第一备份1310被存储的位置。为了标识位置,备份管理器1302可以查找与第一备份1310相关联的元数据。在一些实例中,用户可以指示相关联的位置。一旦备份管理器1302已经标识了第一备份1310被存储的位置,备份管理器1302就读取相关联的数据。
在阶段C,备份管理器1302处理第一备份1310。由备份管理器1302执行的处理可以变化。例如,第一备份1310可以被压缩、加密或以特定格式存储。如果适当的话,备份管理器1302可因此解压缩、解密或重新格式化/提取与第一备份1310相关联的数据。备份管理器1302还识别包括第一备份1310的特定数据。在该示例中,备份管理器1302确定第一备份1310包括块0、1、2、3、7和13的数据。被执行以标识包括第一备份1310的数据的特定操作可以根据第一备份1310的格式、在阶段B处第一备份1310如何被读取等而变化。块0、1、2和3包括部分基线备份,而块7和13包括增量备份。
在这个特定实例中,备份管理器1302不在部分基线备份和增量备份之间进行区分。在备份管理器1302在部分基线备份和增量备份的进行区分的实例中,备份管理器1302可以基于与第一备份1310相关联的元数据来确定哪些块包括每个。例如,元数据(其可能与第一备份1310一起存储或分开地存储)可指定用于生成第一备份1310的特定窗口大小和窗口计数器参数。此外,如果该技术是可配置的,则元数据可以指定用于标识哪些块包括部分基线的技术。一旦用于标识包括部分基线的块的特定参数被确定,备份管理器1302可以执行用于初始地标识块的相同操作,但是代替经历所有正在备份的块,备份管理器1302仅执行针对在第一备份1310中包括的块的操作。换言之,备份管理器1302可以执行图1的阶段C中描绘的操作,但是仅针对块0、1、2、3、7和13。
在一些实例中,与第一备份1310相关联的元数据可以指定包括部分基线备份和增量备份的块。因此,替代执行上述操作,备份管理器1302可以读取元数据以确定块0、1、2和3包括部分基线备份,并且块7和13包括增量备份。
在阶段D,备份管理器1302将与第一备份1310相关联的数据写入到块集合1304的适当块中。在该示例中,备份管理器1302将数据写入与包括第一备份1310的块相对应的块0、1、2、3、7和13。
图14描绘了使用第二部分基线备份来恢复存储系统数据的部分数据的备份管理器的示例操作。类似于图13,图14描绘了备份管理器1302和块集合1304。图14还描绘了滚动基线备份集合1308和备份1310、1312、1314和1316。
在阶段E,备份管理器1302读取与在图13的阶段A处标识的第二备份1312相关联的数据。为了读取与第二备份1312相关联的数据,备份管理器1302可以执行与在图13的阶段B处由备份管理器1302执行的那些操作基本上类似的操作。
在阶段F,备份管理器1302处理第二备份1312。由备份管理器1302执行的用于处理第二备份1312的操作可以基本上类似于由备份管理器1302在图13的阶段C处执行的那些操作。块4、5、6和7包括部分基线备份,并且块11包括增量备份。
在阶段G,备份管理器1302将与第二备份1312相关联的数据写入到块集合1304的适当块中。在该示例中,备份管理器1302将数据写入与包括第二备份1312的块相对应的块4、5、6、7和11。在图13的阶段D,备份管理器将数据写入块7,其作为增量备份的一部分被包括在第一备份1310中。因为块7是第二备份1312的部分基线部分的一部分,所以在图13的阶段D处写入的与块7相对应的数据被重写。
图15描绘了使用第三部分基线备份来恢复存储系统数据的部分数据的备份管理器的示例操作。类似于图13,图15描绘了备份管理器1302和块集合1304。图15还描绘了滚动基线备份集合1308和备份1310、1312、1314和1316。
在阶段H,备份管理器1302读取与在图13的阶段A处标识的第三备份1314相关联的数据。为了读取与第三备份1314相关联的数据,备份管理器1302可以执行与由备份管理器1302在图13的阶段B处执行的那些操作基本上类似的操作。
在阶段I,备份管理器1302处理第三备份1314。备份管理器1302执行的用于处理第三备份1314的操作可以是基本上类似于由备份管理器1302在图13的阶段C处的执行的那些操作。块8、9、10和11包括部分基线备份,并且块1和块12包括增量备份。
在阶段J,备份管理器1302将与第三备份1314相关联的数据写入到块集合1304的适当块中。在此示例中,备份管理器1302将数据写入与包括第三备份1314的块相对应的块1、8、9、10、11和12。如果数据先前被写入块1、8、9、10、11或12,则先前写入的数据被重写。
图16描绘了使用第四部分基线备份来恢复存储系统数据的部分数据的备份管理器的示例操作。类似于图13,图16描绘了备份管理器1302和块集合1304。图16还描绘了滚动基线备份集合1308和备份1310、1312、1314和1316。
在阶段K,备份管理器1302读取与在图13的阶段A处标识的第四备份1316相关联的数据。为了读取与第四备份1316相关联的数据,备份管理器1302可以执行与由备份管理器1302在图13的阶段B处执行的那些操作基本上类似的操作。
在阶段L,备份管理器1302处理第四备份1316。由备份管理器1302执行的用于处理第四备份1316的操作可以是基本上类似于由备份管理器1302在图13的阶段C执行的那些操作。块12、13和14包括部分基线备份,并且块0、2和7包括增量备份。
在阶段M,备份管理器1302将与第四备份1316相关联的数据写入到块集合1304的适当块中。在该示例中,备份管理器1302将数据写入与包括第四备份1316的块相对应的块0、2、7、12、13和14。如果数据先前写入块0、2、7、12、13或14,则先前写入的数据被重写。
在备份管理器将与第四备份1316相关联的数据写入适当的块之后,数据已被完全恢复。包括个体备份1310、1312、1314和1316的部分基线组合起来以创建完整的基线。因此,如果个体备份1310、1312、1314和1316不包括任意增量备份,则它们仍然足以完全恢复数据。
图17描绘了用于从滚动基线备份恢复数据的示例操作的流程图。图17中描绘的操作可以由图13至16的备份管理器1302或任意合适的部件来执行。
在框1700,备份管理器识别包括可以被组合以创建完整的基线的部分基线的备份集合。具体地,备份管理器确定紧接着关键日期之前生成的n个备份的集合,其中n是窗口大小。n个备份中的每一个均包含部分基线,并且可以包括增量备份。关键日期可以基于来自用户的输入、负责维护存储系统的部件等来确定。在备份管理器确定可以被组合以创建完整基线的部分基线集合和相关联的备份之后,控制流向框1702。
在框1702处,备份管理器开始数据恢复循环。在最初经过框1702期间,备份管理器初始化当前备份变量以引用备份集合的第一备份。在随后经过框1702时,备份管理器更新当前备份变量以引用还未被迭代的备份集合的备份。在备份管理器初始化或更新当前备份变量之后,控制然后流向框1704。
在框1704处,备份管理器读取与当前备份相关联的数据。数据读取的特定位置可以变化。例如,备份管理器可以确定备份被存储在多个介质中的一个上。在一些实例中,用户可以指示备份被存储在特定位置。在备份管理器读取与当前备份相关联的数据之后,控制然后流向框1706。
在框1706处,备份管理器处理与当前备份相关联的数据。备份管理器执行的用于处理与当前备份关联的数据的特定操作可以变化。例如,如果数据被压缩,则备份管理器可能会解压缩数据。此外,备份管理器标识与数据相关联的块。在备份管理器处理与当前备份相关联的数据之后,控制然后流向框1708。
在框1708处,备份管理器将与当前备份相关联的数据写入目的地存储系统的对应块。具体地,目的地存储系统是数据正被恢复到的存储系统。目的地存储系统可以是从其数据被备份的原始存储系统,或不同的存储系统。备份管理器将数据写入在框1706处标识的块。在备份管理器将与当前备份相关联的数据写入到目的地存储系统的对应块之后,控制然后流向框1710。
在框1710处,备份管理器确定是否所有的备份都已被处理。如果所有备份已经被处理,则该过程结束。如果不是所有备份都已经被处理,则控制然后流向框1702。
与图1至图12一样,图13至图17中描绘的示例可以适用于除块之外的数据单元类型。例如,如果索引结点被备份而不是块,则备份管理器会将数据写入对应的索引结点而不是对应的块。
应当注意的是,数据单元也可以是非文件系统相关的。例如,以上技术可以应用于数据库、数据库表或数据库表中的行。例如,数据库表中的每一行都可以通过唯一的标识符(不管是行号还是不同的唯一标识符,诸如散列)来标识。如上所述,上述相同技术可以被应用于行,从而类似于块地对行进行划分。类似地,数据单元可以是消息系统中的消息(例如,电子邮件系统中的电子邮件)。一般来说,数据单元可以是唯一可标识的任意数据分组。因此,数据单元可以是可配置的或基于用户输入而变化。
还应当注意,上述技术不限于特定备份系统。例如,上述技术可以应用于将数据备份到辅助群集(例如,基于磁盘的备份)、远程、虚拟存储装置(例如,“云”)等
作为示例流程图,图5-7、9、11、12和17以存储系统可以偏离的示例顺序呈现操作(例如,操作可以以与所图示的不同顺序和/或并行地被执行;可以执行附加地或更少的操作等)。例如,尽管图7将x描绘为在包括框702-710的循环外部被计算,但是可以在循环内计算x。
此外,流程图中描绘的循环可以在循环的完成之前的各个点处终止。例如,在执行在图7的框702-710处所描绘的循环的操作时,节点可能遇到错误,该错误导致循环在将块标识符添加到包括部分基线的块列表之前终止。这可以是对所描述的导致循环的提前终止的其他操作的附加。类似地,被标识为“针对每一个”循环的循环可以在每个元素被迭代之前终止。一般而言,与本文公开不直接相关的一些操作没有被描述,并且这些操作中的一些可能导致流程图中描绘的过程提前终止。
如本领域技术人员将理解的,本文公开的方面可以被实施为系统、方法或计算机程序产品。因此,本文公开的方面可以采取硬件、软件(包括固件、常驻软件、微代码等)或者软件和硬件方面的组合的形式,软件和硬件方面的组合在本文中通常可以被称为“电路”、“模块”或“系统”。此外,本文的公开的方面可以采取被实施在一个或多个机器可读介质中的程序产品的形式,该机器可读介质具有在其上的有机器可读程序代码。
可以利用一个或多个机器可读介质的任意组合。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读存储介质可以是例如使用电子、磁、光学、电磁、红外或半导体技术或其组合的系统、装置或设备。机器可读存储介质的更具体的示例(非穷举性列表)将包括以下项:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、便携式光盘只读存储器(CD-ROM)、光存储设备、磁存储设备、或前述的任意适当的组合。在本文件的上下文中,机器可读存储介质可以是可以包含或存储由指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任意有形介质。机器可读存储介质不包括暂时的、传播信号。
机器可读信号介质可以包括具有被实施在其中的机器可读程序代码的传播数据信号(例如在基带中或者作为载波的一部分)。这样的传播信号可以采取多种形式中的任意形式,包括但不限于电磁、光学或其任意适当的组合。机器可读信号介质可以是不是机器可读存储介质并且可以传送、传播或传输供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任意机器可读介质。
被实施在机器可读介质上的程序代码可以使用任意适当的介质来传输,其包括但不限于无线、有线、光缆、RF等、或前述的任意合适的组合。
用于执行本文公开的各方面的操作的程序代码可以以一种或多种程序设计语言的任意组合来编写,所述程序设计语言包括:面向对象的程序设计语言,诸如
Figure GDA0002759648000000311
编程语言、C++等;动态编程语言,诸如Python;脚本语言,诸如Perl编程语言或PowerShell脚本语言;以及常规过程编程语言,诸如“C”编程语言或类似编程语言。程序代码可以完全在独立机器上执行,可以跨多个机器上以分布式方式执行,并且可以在一台机器上执行,同时在另一机器上提供结果和/或接受输入。将执行/解释/翻译程序代码的机器的示例包括计算机、平板电脑、智能电话、可穿戴计算机、机器人、生物计算设备等。
图18描绘了包括具有滚动基线功能的备份管理器的示例计算机系统。计算机系统包括处理器1801(可能包括多个处理器、多个核、多个节点、和/或实现多线程等)。计算机系统包括存储器1807。存储器1807可以是系统存储器(例如,高速缓存、SRAM、DRAM、零电容器RAM、双晶体管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS、PRAM等中的一个或多个)或机器可读介质的上述可能实现中的任意一个或多个。计算机系统还包括总线1803(例如PCI、ISA、PCI-Express、
Figure GDA0002759648000000312
Figure GDA0002759648000000313
NuBus等),网络接口1805(例如ATM接口、以太网接口、帧中继接口、SONET接口、无线接口等)以及存储设备1809(例如,光存储器、磁存储器等)。计算机系统还包括备份管理器1811。备份管理器1811实施用于实现上述实施例的功能。备份管理器1811可以包括促进生成滚动基线备份和使用滚动基线备份来恢复数据的一个或多个功能。具体地,备份管理器1811可以包括标识包括特定部分基线的数据单元并且将数据单元存储为部分基线备份的功能。备份管理器1811可以还包括标识包括部分基线的备份集合并使用备份来恢复数据的功能,该部分基线可以被组合以创建完整的基线。这些功能中的任意一个可以部分地(或完全地)被实现在硬件中和/或在处理器1801上。例如,功能可以用专用集成电路被实现在处理器1801中实现的逻辑中、在外围设备或卡上的协处理器中等。此外,实现可包括图18中未图示的更少或附加的部件(例如,视频卡、音频卡、附加网络接口、外围设备等)。处理器1801、存储设备1809和网络接口1805被耦合到总线1803。尽管被图示为被耦合到总线1803,但是存储器1807可以耦合到处理器1801。
尽管参照各个方面和利用描述了示例,但是将理解的是,这些示例是示意性的,并且本文公开的范围不限于它们。一般而言,如本文所述的用于滚动基线的数据备份的技术可以用与任意一个硬件系统或硬件系统一致的设施来实现。许多改变、修改、添加和改进都是可能的。
可以为本文作为单个实例描述的部件、操作或结构提供复数实例。最后,各种部件、操作和数据存储之间的边界有些任意,并且特定的操作在特定的示意性配置的上下文中被示出。功能的其他分配是可预见的并且可以落入本文公开的范围内。通常,在示例配置中作为分离部件呈现的结构和功能可以实现为组合结构或部件。类似地,作为单个部件呈现的结构和功能可以被实现为分离的部件。这些和其他变化、修改、添加和改进可以落入本文公开的范围内。
如本文所使用的,除非另外明确指出,否则术语“或”是包含性的。因此,来自集合{A,B,C}中的任意元素或其任意组合(包括多个任意元素)满足短语“A、B或C中的至少一个”。

Claims (20)

1.一种处理备份数据的方法,包括:
从第一存储系统的多个数据单元选择数据单元的第一子集以创建用于所述第一存储系统的备份的第一部分基线,其中选择数据单元的所述第一子集是至少部分地基于计数器值和所述多个数据单元的标识符关于第一部分基线大小参数的模结果;
标识所述第一存储系统的第一改变数据,其中所述第一改变数据包括自先前备份操作以来已经改变的数据;
将第一备份数据写入第二存储系统,其中所述第一备份数据包括所述第一部分基线和所述第一改变数据;以及
在所述第一存储系统的下一次备份操作处,
从所述多个数据单元选择数据单元的第二子集以创建用于所述第一存储系统的备份的第二部分基线,其中数据单元的所述第二子集的选择是至少部分地基于更新的计数器值和所述多个数据单元的标识符关于第二部分基线大小参数的模结果,并且其中所述第二部分基线不包括所述第一部分基线;
标识所述第一存储系统的第二改变数据,其中所述第二改变数据包括自写入所述第一备份数据以来已经改变的数据;以及
将第二备份数据写入所述第二存储系统,其中所述第二备份数据包括所述第二部分基线和所述第二改变数据。
2.根据权利要求1所述的方法,其中基于所述计数器值和关于所述第一部分基线大小参数的所述多个数据单元的标识符的所述模结果来选择数据单元的所述第一子集包括:
将所述数据单元的所述第一子集确定为所述多个数据单元中的、具有对应于所述模结果中的、等于所述计数器值的那些模结果的标识符的那些数据单元。
3.根据权利要求1所述的方法,其中所述多个数据单元中的每一个数据单元是数据块、索引结点、或者文件中的一项,其中所述标识符中的每一个标识符是块标识符、索引结点标识符、或者文件路径的散列中的一项。
4.根据权利要求1所述的方法,其中选择数据单元的所述第一子集包括将位图应用于所述模结果。
5.根据权利要求1所述的方法,还包括递增所述计数器值以生成所述更新的计数器值。
6.根据权利要求1所述的方法,还包括:
从所述第二存储系统读取所述第一备份数据;
将所述第一备份数据写入第三存储系统;以及
在将所述第一备份数据写入所述第三存储系统之后,
从所述第二存储系统读取所述第二备份数据;以及
将所述第二备份数据写入所述第三存储系统。
7.根据权利要求1所述的方法,还包括:
将组标识符分配给数据单元的所述第一子集;
基于所述组标识符标识第三部分基线;
将第三备份数据写入所述第二存储系统,其中所述第三备份数据包括所述第三部分基线。
8.一种非暂态机器可读介质,所述非暂态机器可读介质具有存储在其上的指令,所述指令在由处理器执行时使所述处理器:
从第一存储系统的多个数据单元选择数据单元的第一子集以创建用于所述第一存储系统的备份的第一部分基线,其中数据单元的所述第一子集的选择至少部分地基于计数器值和所述多个数据单元的标识符关于第一部分基线大小参数的模结果;
标识所述第一存储系统的第一改变数据,其中所述第一改变数据包括自先前备份操作以来已经改变的数据;
将第一备份数据写入第二存储系统,其中所述第一备份数据包括所述第一部分基线和所述第一改变数据;以及
在所述第一存储系统的下一次备份操作处,
从所述多个数据单元选择数据单元的第二子集以创建用于所述第一存储系统的备份的第二部分基线,其中数据单元的所述第二子集的选择至少部分地基于更新的计数器值和所述多个数据单元的标识符关于第二部分基线大小参数的模结果,并且其中所述第二部分基线不包括所述第一部分基线;
标识所述第一存储系统的第二改变数据,其中所述第二改变数据包括自写入所述第一备份数据以来已经改变的数据;以及
将第二备份数据写入所述第二存储系统,其中所述第二备份数据包括所述第二部分基线和所述第二改变数据。
9.根据权利要求8所述的非暂态机器可读介质,其中基于所述计数器值和关于所述第一部分基线大小参数的所述多个数据单元的标识符的所述模结果来选择数据单元的所述第一子集包括:
将所述数据单元的所述第一子集确定为所述多个数据单元中的、具有对应于所述模结果中的、等于所述计数器值的那些模结果的标识符的那些数据单元。
10.根据权利要求8所述的非暂态机器可读介质,其中所述多个数据单元中的每一个数据单元是数据块、索引结点、或者文件中的一项,其中所述标识符中的每一个标识符是块标识符、索引结点标识符、或者文件路径的散列中的一项。
11.根据权利要求8所述的非暂态机器可读介质,其中选择数据单元的所述第一子集包括将位图应用于所述模结果以用于数据单元的所述第一子集的选择。
12.根据权利要求8所述的非暂态机器可读介质,其中所述指令还使所述处理器递增所述计数器值以生成所述更新的计数器值。
13.根据权利要求8所述的非暂态机器可读介质,其中所述指令还使所述处理器:
从所述第二存储系统读取所述第一备份数据;
将所述第一备份数据写入第三存储系统;以及
在将所述第一备份数据写入所述第三存储系统之后,
从所述第二存储系统读取所述第二备份数据;以及
将所述第二备份数据写入所述第三存储系统。
14.根据权利要求8所述的非暂态机器可读介质,其中所述指令还使所述处理器:
将组标识符分配给数据单元的所述第一子集;
基于所述组标识符标识第三部分基线;
将第三备份数据写入所述第二存储系统,其中所述第三备份数据包括所述第三部分基线。
15.一种用于处理备份数据的装置,包括:
处理器;以及
机器可读存储介质,具有在其中被存储的指令,所述指令由所述处理器可执行以使得所述装置,
从第一存储系统的多个数据单元选择数据单元的第一子集以创建用于所述第一存储系统的备份的第一部分基线,其中数据单元的所述第一子集的选择至少部分地基于计数器值和所述多个数据单元的标识符关于第一部分基线大小参数的模结果;
标识所述第一存储系统的第一改变数据,其中所述第一改变数据包括自先前备份操作以来已经改变的数据;
将第一备份数据写入第二存储系统,其中所述第一备份数据包括所述第一部分基线和所述第一改变数据;以及
在所述第一存储系统的下一次备份操作处,
从所述多个数据单元选择数据单元的第二子集以创建用于所述第一存储系统的备份的第二部分基线,其中数据单元的所述第二子集的选择至少部分地基于更新的计数器值和所述多个数据单元的标识符关于第二部分基线大小参数的模结果,并且其中所述第二部分基线不包括所述第一部分基线;
标识所述第一存储系统的第二改变数据,其中所述第二改变数据包括自写入所述第一备份数据以来已经改变的数据;以及
将第二备份数据写入所述第二存储系统,其中所述第二备份数据包括所述第二部分基线和所述第二改变数据。
16.根据权利要求15所述的装置,其中基于所述计数器值和关于所述第一部分基线大小参数的所述多个数据单元的标识符的所述模结果来选择数据单元的所述第一子集包括:
将数据单元的所述第一子集确定为所述多个数据单元中的、具有对应于所述模结果中的、等于所述计数器值的那些模结果的标识符的那些数据单元。
17.根据权利要求15所述的装置,其中选择数据单元的所述第一子集包括将位图应用于所述模结果以用于数据单元的所述第一子集的选择。
18.根据权利要求15所述的装置,其中所述指令使所述装置递增所述计数器值以生成所述更新的计数器值。
19.根据权利要求15所述的装置,其中所述指令还使所述装置:
从所述第二存储系统读取所述第一备份数据;
将所述第一备份数据写入第三存储系统;以及
在将所述第一备份数据写入所述第三存储系统之后,
从所述第二存储系统读取所述第二备份数据;以及
将所述第二备份数据写入所述第三存储系统。
20.根据权利要求15所述的装置,其中所述指令还使所述装置:
将组标识符分配给数据单元的所述第一子集;
基于所述组标识符标识第三部分基线;
将第三备份数据写入所述第二存储系统,其中所述第三备份数据包括所述第三部分基线。
CN201680032177.7A 2015-04-16 2016-04-15 用于处理备份数据的方法、装置和机器可读介质 Active CN107690624B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/688,418 2015-04-16
US14/688,418 US9836230B2 (en) 2015-04-16 2015-04-16 Data backup with rolling baselines
PCT/US2016/027864 WO2016168674A1 (en) 2015-04-16 2016-04-15 Data backup with rolling baselines

Publications (2)

Publication Number Publication Date
CN107690624A CN107690624A (zh) 2018-02-13
CN107690624B true CN107690624B (zh) 2021-02-26

Family

ID=55861219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680032177.7A Active CN107690624B (zh) 2015-04-16 2016-04-15 用于处理备份数据的方法、装置和机器可读介质

Country Status (4)

Country Link
US (2) US9836230B2 (zh)
EP (1) EP3283962B1 (zh)
CN (1) CN107690624B (zh)
WO (1) WO2016168674A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715433B2 (en) * 2014-08-29 2017-07-25 Netapp, Inc. Reconciliation in sync replication
US10346354B2 (en) * 2016-10-28 2019-07-09 Netapp, Inc. Reducing stable data eviction with synthetic baseline snapshot and eviction state refresh
CN113220230B (zh) * 2021-05-11 2023-07-25 北京百度网讯科技有限公司 数据导出方法及其装置、电子设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505315A (zh) * 2002-12-05 2004-06-16 华为技术有限公司 一种不会产生连环数据复制的数据容灾方法
CN1920788A (zh) * 2006-09-18 2007-02-28 毛国红 一种计算机系统或数据的恢复方法
US7934064B1 (en) * 2004-12-21 2011-04-26 Acronis Inc. System and method for consolidation of backups
CN102253871A (zh) * 2011-07-13 2011-11-23 重庆大学 一种数据备份、还原方法、装置及系统
US8554736B2 (en) * 2009-04-30 2013-10-08 Hewlett-Packard Development Company, L.P. Backup method
US9003143B1 (en) * 2014-04-30 2015-04-07 Storagecraft Technology Corporation Hash value comparison during crash-tolerant incremental change tracking between backups of a source storage

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765173A (en) 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list
US7171538B2 (en) * 2003-10-22 2007-01-30 International Business Machines Corporation Incremental data storage method, apparatus, interface, and system
US8078655B2 (en) * 2008-06-04 2011-12-13 Microsoft Corporation Generation of database deltas and restoration
US8683154B2 (en) * 2010-06-17 2014-03-25 Hitachi, Ltd. Computer system and system control method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505315A (zh) * 2002-12-05 2004-06-16 华为技术有限公司 一种不会产生连环数据复制的数据容灾方法
US7934064B1 (en) * 2004-12-21 2011-04-26 Acronis Inc. System and method for consolidation of backups
CN1920788A (zh) * 2006-09-18 2007-02-28 毛国红 一种计算机系统或数据的恢复方法
US8554736B2 (en) * 2009-04-30 2013-10-08 Hewlett-Packard Development Company, L.P. Backup method
CN102253871A (zh) * 2011-07-13 2011-11-23 重庆大学 一种数据备份、还原方法、装置及系统
US9003143B1 (en) * 2014-04-30 2015-04-07 Storagecraft Technology Corporation Hash value comparison during crash-tolerant incremental change tracking between backups of a source storage

Also Published As

Publication number Publication date
WO2016168674A1 (en) 2016-10-20
US10055154B2 (en) 2018-08-21
US20180067669A1 (en) 2018-03-08
US9836230B2 (en) 2017-12-05
EP3283962A1 (en) 2018-02-21
CN107690624A (zh) 2018-02-13
EP3283962B1 (en) 2019-06-12
US20160306573A1 (en) 2016-10-20

Similar Documents

Publication Publication Date Title
US9183268B2 (en) Partition level backup and restore of a massively parallel processing database
US8028140B2 (en) Save set bundling for staging
US8504528B2 (en) Duplicate backup data identification and consolidation
US11726883B2 (en) Fast and optimized restore using delta information
US20130159261A1 (en) De-duplication reference tag reconciliation
CN107690624B (zh) 用于处理备份数据的方法、装置和机器可读介质
US11385804B2 (en) Storing de-duplicated data with minimal reference counts
US9886351B2 (en) Hybrid image backup of a source storage
US11269817B2 (en) System and method for efficiently measuring physical space for an ad-hoc subset of files in protection storage filesystem with stream segmentation and data deduplication
US8966200B1 (en) Pruning free blocks out of a decremental backup chain
US10083087B1 (en) Managing backup copies in cascaded data volumes
US11775482B2 (en) File system metadata deduplication
US10430383B1 (en) Efficiently estimating data compression ratio of ad-hoc set of files in protection storage filesystem with stream segmentation and data deduplication
US11669545B2 (en) Any point in time replication to the cloud
US11269517B2 (en) Cost-aware storage allocation of deduplicated objects
CN117435135B (zh) 关于重复数据删除的存储空间回收的方法、装置和系统
US9208033B1 (en) Consolidating decremental backups in a decremental backup chain
Burda Mathematical model of data backup and recovery
CN114691418B (zh) 存储设备的信息恢复方法、装置、电子设备及存储介质
US20200334130A1 (en) Generating a data stream with configurable change rate and clustering capability

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