CN107209707B - 基于云的分级系统保存 - Google Patents
基于云的分级系统保存 Download PDFInfo
- Publication number
- CN107209707B CN107209707B CN201680006840.6A CN201680006840A CN107209707B CN 107209707 B CN107209707 B CN 107209707B CN 201680006840 A CN201680006840 A CN 201680006840A CN 107209707 B CN107209707 B CN 107209707B
- Authority
- CN
- China
- Prior art keywords
- act
- representation
- child
- file system
- parent
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
-
- 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/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/1469—Backup restoration techniques
-
- 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/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
云blob存储装置中的分级系统的高效备份。重建系统的在它在先前时间时刻存在的分级结构被重建。然后使用代表该先前时间时刻的文件系统中的改变的改变日志以制定在它在第二时间时刻存在的更新后的文件系统分级。然后制定并且向云blob存储装置提供文件系统的更新后的内射的表示和更新后的文件系统逆转信息。文件系统的内射的表示是文件系统的内容的一对一函数,因为逆转信息可以用来恢复文件系统的内容。也可以远程地存储系统分级中的各种节点的内射的表示。
Description
背景技术
计算系统经常将数据组织成分级结构。例如,文件系统将文件分级地组织成目录结构。数据库是分级的,其中个别记录可以被视为分级中的叶节点而分级中的较高级是记录组和/或其它组。然而,许多其它类型的数据也被分级地组织。
在文件系统的情况下,分级结构中的内部节点是目录,而分级结构中的叶节点是文件(或者可能罕见地是空目录)。文件系统经常包括用于由操作系统和/或在其上运行的应用使用的操作文件(例如,可执行文件或者数据文件)或者可以包括用户数据文件(例如,字处理文档、游戏保存文件、图片、视频、音乐等)。
远程备份服务提供远程地备份分级系统的全部或者部分。例如,在文件系统中,可以在本地系统上压缩、向远程位置分派和存储文件。
这里要求保护的主题内容不限于解决任何缺点或者仅在环境(比如以上描述的环境)中操作的实施例。实际上,提供这一背景技术仅举例说明其中可以实践这里描述的一些实施例的一种示例性技术。
发明内容
这里描述的至少一些实施例涉及云blob存储装置中的分级系统(比如文件系统或者数据库)的高效备份。分级系统在它在先前时间时刻存在的分级结构被重构。这可以使用分级系统的先前内射的表示和用于先前内射的表示的先前逆转信息而被实现。代表自从先前时间时刻起出现的分级系统中的改变的改变日志然后被用来制定在它在第二时间时刻存在的更新后的分级系统分级。分级系统的更新后的内射表示和更新后的分级系统逆转信息然后被制定并且向云blob存储装置提供。
分级系统的内射的表示是分级系统的内容的一对一函数,因为逆转信息可以用来恢复分级系统的内容。内射的表示通过使分级系统的内容经受内射函数而被获得。因而,与代表分级系统的内射的表示不同的内射的表示因此确信地不是由于将内射函数应用于分级系统的内容所产生。反言之,与分级系统的内射的表示相同的内射的表示因此在统计上确信已经由于将内射的表示应用于分级系统的内容所产生。在一些实施例中,除了分级系统分级中的各种节点的内射的表示之外还可以向云blob存储装置提供整个分级系统的内射的表示。因此可以从分级系统分级中的较低节点的内射的表示构造分级系统分级中的较高节点的较高级内射的表示。
根据这里描述的原理,为分级系统中的各种节点确定内射表示。尽管在确定内射的表示的顺序方面有一些依赖性(例如,在确定母节点的内射的表示之前首先有可用于母节点的每个子节点的内射的表示),但是也有高并发水平的机会。例如,所有叶节点(或者至少最低级叶节点)在可以确定它们的内射的表示之前各自没有依赖性。因此,在由云环境提供的处理中的高效并行(由于许多可用执行引擎)实现对分级系统的部分或者甚至全部的内射表示的由下至上高效和快速构造(这里也被称为“上卷”)。例如,与在单个执行引擎中在云以外执行的单个线程式操作比较,可以迅速地确定分级系统中的最低级的内射表示。
改变日志允许检测在系统分级的叶处的改变,这些改变然后可以与系统分级中的未改变的节点的内射的表示一起被高效地上卷(由下至上)成新的内射的表示。另外,从系统分级中的根节点的新根内射的表示,关联逆转信息可以用来发现系统分级的下一较低级的内射的表示。这可以继续,直至遇到叶节点从而产生对整个分级的“解开”。在另一方面,也可以仅关于感兴趣的一个或者多个后代路径实现对分级的解开从而避免与分级中的不感兴趣的数据关联的工作。因而,与系统分级结构组合的内射的表示允许仅基于根内射表示(即,备份版本)和分级路径从备份对任何指明的内容的迅速寻址和发现。
根据这里描述的一些实施例,云blob存储装置具有与本地系统上的分级系统布局匹配的分级系统布局。这样的分级匹配允许云直接地从改变日志获益,因为改变日志可以恰如它可以在本地系统上一样应用于云存储装置上的分级系统的结构。
内射的表示也在密码上安全而没有关联逆转信息。可以通过简单地比较以查看相同内射表示是否已经存在并且如果是则丢弃重复来实现去重复。同样,可以执行这一去重复而未向去重复机制显露内容本身,因为无需逆转信息用于去重复。这样的去重复可以不仅出现在叶节点(例如,出现在文件或者文件部分或者出现在记录)而且出现在中间节点(例如,记录目录或者组)。
另外,由于可以高效地获得分级结构的任何和所有节点的内射的表示,所以可以比较两个分级结构以确定哪些节点在两个分级结构之间不同。另外,这可以被完成而甚至没有查看在每个节点内的下层数据而实际上通过仅比较更小的内射的表示是否相同——这是对少量数据的高效和迅速比较操作。这可以在比较分级结构的版本以确定哪些节点已经在特定时间间隔中改变时特别地有用。
提供这一发明内容以用简化的形式介绍以下在具体实施方式中进一步描述的概念选集。这一发明内容没有旨在于标识要求保护的主题内容的关键特征或者实质特征,它也没有旨在于在确定要求保护的主题内容的范围时用作辅助。
附图说明
为了描述可以获得本发明的以上记载和其它的优点和特征的方式,对以上简要地描述的本发明的更具体描述将通过参照附图中所示其具体实施例而被提供。理解这些附图仅描绘本发明的典型实施例并且因此不会被视为限制它的范围,将通过使用附图用附加特点和细节来描述和说明本发明,在附图中:
图1图示了根据这里描述的原理的一个实施例的分级系统备份环境;
图2图示了用于备份分级系统的方法的流程图,该方法可以由图1的备份环境执行;
图3图示了用于制定分级系统中的母节点的内射的表示的方法,该方法可以对于分级系统分级中的每个非叶节点而被递归地重复;
图4图示了示例环境,该示例环境示出了形式为文件系统的示例分级系统,分级被备份到云blob存储装置中;
图5图示了用于将用于分级系统节点的内射的表示提供到云中的方法;
图6图示了用于响应于子节点中的改变来更新母节点的内容的方法的流程图;
图7图示了修改的环境,该环境代表对图4的环境的修改;
图8图示了用于确定特定分级系统节点自从特定时间点起是否已经改变的方法的流程图;以及
图9图示了其中可以运用这里描述的原理的示例计算系统。
具体实施方式
这里描述的至少一些实施例涉及将分级系统(比如文件系统或者数据库)高效备份到云blob存储装置中。分级系统的在它在先前时刻存在的分级结构被重构。这可以使用分级系统的先前内射的表示和用于先前内射的表示的先前逆转信息而被实现。代表自从先前时间时刻起出现的分级系统中的改变的改变日志然后被用来制定在它在第二时间时刻存在的更新后的分级系统分级。然后制定并且向云blob存储装置提供分级系统的更新后的内射表示和更新后的分级系统逆转信息。
分级系统的内射的表示是分级系统的内容的一对一函数,因为逆转信息可以用来恢复分级系统的内容。内射的表示通过使分级系统的内容经受内射函数而被获得。因而,与代表分级系统的内射的表示不同的内射的表示因此确信地不是由于将内射函数应用于分级系统的内容所产生。相反地,与分级系统的内射的表示相同的内射的表示因此实质上确信已经由于将内射函数应用于分级系统的精确内容所产生。在一些实施例中,除了分级系统分级中的各种节点的内射的表示之外还可以向云blob存储装置提供整个分级系统的内射的表示。可以从分级系统分级中的较低节点的内射的表示构造分级系统分级中的较高节点的较高级内射的表示。
根据这里描述的原理,为分级系统中的各种节点确定内射表示。尽管在确定内射的表示的顺序方面有一些依赖性(例如,在确定母节点的内射的表示之前首先有可用于母节点的每个子节点的内射的表示),但是也有高并发水平的机会。例如,所有叶节点(或者至少最低级叶节点)在可以确定它们的内射的表示之前各自没有依赖性。因此,在由云环境提供的处理中的高效并行(由于许多可用执行引擎)实现对分级系统的部分或者甚至全部的内射表示的由下至上高效和快速构造。例如,与在单个执行引擎中在云以外执行的单个线程式操作比较可以迅速地确定分级系统中的最低级的内射表示。
改变日志允许检测在系统分级的叶的改变,这些改变然后可以与系统分级中的未改变的节点的内射的表示一起被高效地上卷(由下至上)成新的内射的表示。另外,从系统分级中的根节点的新根内射的表示,关联逆转信息可以被用来发现系统分级的下一较低级的内射的表示。这可以继续,直至遇到叶节点从而产生对整个分级的“解开”。在另一方面,也可以仅关于感兴趣的一个或者多个后代路径来实现对分级的解开,从而避免与分级中的不感兴趣的数据关联的工作。因而,与系统分级结构组合的内射的表示允许仅基于根内射表示(即,备份版本)和分级路径从备份对任何指明的内容的迅速寻址和发现。
根据这里描述的一些实施例,云blob存储装置具有与本地系统上的分级系统布局匹配的分级系统布局。这样的分级匹配允许云直接地从改变日志获益,因为改变日志可以恰如它可以在本地系统上一样应用于云存储装置上的分级系统的结构。
内射的表示也在密码上安全而没有关联逆转信息。可以通过简单地比较以查看相同内射表示是否已经存在并且如果是则丢弃重复来实现去重复。同样,可以执行这一去重复而未向去重复机制显露内容本身,因为无需逆转信息用于去重复。这样的去重复可以不仅出现在叶节点(例如,出现在文件或者文件部分或者出现在记录)而且出现在中间节点(例如,记录目录或者组)。
另外,由于可以高效地获得分级结构的任何和所有节点的内射的表示,所以可以比较两个分级结构以确定哪些节点在两个分级结构之间不同。另外,这可以被完成而甚至没有查看在每个节点内的下层数据而实际上通过仅比较更小的内射的表示是否相同——这是对少量数据的高效和迅速比较操作。这可以在比较分级结构的版本以确定哪些节点已经在特定时间间隔中改变时特别地有用。
虽然已经和将用结构特征和/或方法动作特有的言语描述主题内容,但是将理解,在所附权利要求中定义的主题内容未必限于以上描述的特征或者动作或者这里描述的动作的顺序。实际上,公开描述的特征和动作作为实施权利要求的示例形式。
图1图示了根据这里描述的原理的一个实施例的分级系统备份环境100。分级系统备份环境100包括分级系统101在其上操作的操作计算系统110。分级系统备份环境100也包括分级系统101将被备份到的云blob存储装置120。“云blob”存储装置是领域术语,该术语描述特定类型的云存储装置,在该云存储装置中,存储的数据主要按名称而被描述并且主要地在二进制格式中被保持。因此,云blob存储装置允许用户在云环境中存储二进制对象(或者“blob”)。根据这里描述的原理,分系统的每个节点、包括分级系统的全部可以由对应的blob代表。
操作计算系统110也包括快照模块111、改变日志模块112和分级备份管理器113。在本描述中和在权利要求中,术语“计算系统”被广义地定义为包括任何计算系统设备或者包括协作计算系统的分布式汇集。因而,尽管快照模块111、改变日志112和分级备份管理器113中的一些或者全部可以位于与分级系统101相同的物理系统上,但是无需是这种情况。另外,甚至分级系统101本身可以是分布式。
这里描述的原理允许高效地备份和恢复分级系统(比如文件系统或者数据库系统),而允许用于有效和自动化的去重复的机会——特别地在共享数据时。实质上,分级系统的每个节点(包括根目录)可以被表示为节点的树型(例如,名称)以及该节点的内容的组合的内射的表示。
为了定义术语“内射的表示”,本描述将首先讨论“内射函数”的特性。内射函数是保存在输入域与输出域之间的区别的函数。换而言之,对于来自输入域的任何可能输入内容,在输出域中有仅一个可能输出,并且没有来自输入域的其它区别内容可以在输出域中生成相同输出。使用数学符号,令f为如下函数,该函数的域是集合A。如果并且仅如果对于A中的所有a和b,如果f(a)=f(b)则a=b,那么函数f为内射。等效地,如果a不等于b,则f(a)≠f(b)。
在本描述中和在权利要求中,“统计内射”函数是如下函数,其中对于A中的所有a和b,如果f(a)=f(b),则高概率a=b。可以从由以下各项构成的组选择高概率:1)实质上不可能,2)如此不重要以至于即使在域A中百万次选择“a”和百万次选择“b”,比其它方式更少可能存在有任何选择的“a”和任何选择的“b”使得f(a)=f(b),3)如此不重要以至于即使在域A中十亿次选择“a”和十亿次选择“b”,比其它方式更少可能存在有任何选择的“a”和任何选择的“b”使得f(a)=f(b),4)如此不重要以至于即使在域A中万亿次选择“a”和万亿次选择“b”,比其它方式更少可能存在有任何选择的“a”和任何选择的“b”使得f(a)=f(b),5)小于或者等于2-128的任何值,或者6)小于或者等于的于2-256的任何值。
例如,考虑SHA-256散列算法。有这样的算法的2256(在1077这一级)个可能唯一输出值。对于比例,一些估计让可观测范畴中的原子的数目在从1078到1082这一级。因而,两个区别值产生SHA-256散列算法的相同输出值的可能性在可以从可观测范畴中的所有原子随机选择原子并且然后在执行相同随机选择时发现已经再次选择相同原子的可能性这一级。这样的可能性可以被视为实质上不可能。事实上,即使重复这一过程千万亿(1015)以选择千万亿个原子,那两个原子中的任何原子相同的可能性保持实质上不可能,即使考虑生日悖论。因而,SHA-256散列算法可以如这里定义术语那样被视为统计内射函数。因而,在本描述中和在权利要求中,“统计内射函数”也可以简单地被称为“内射函数”。在本描述中和在权利要求中,特定内容的“内射的表示”意味着对特定内容执行统计内射函数的结果。
注意,无需内射函数中的精确理想,因为系统可能已经具有缺陷。因而,内射函数中的统计确信足以使得任何不确信在给定已经在任何复杂系统中存在的少量不确信时可忽略不计。
图2图示了用于备份分级系统的方法200的流程图。可选地,可以在图1的备份环境100中执行方法200。因而,现在将频繁参照图1的备份环境100来描述方法200。在如下情境中执行方法200,在该情境中,快照模块111已经取得了文件系统的以前快照,并且改变日志112已经跟踪了自从以前快照起已经对分级系统施加的至少一些改变。然而,即使在没有取得分级系统101的以前快照时仍然可以执行方法200的变型。以下也将进一步描述这样的变型。
分级备份管理器113响应于确定分级系统101将被备份来执行备份工作(动作201)。这里描述的原理不限于用于分级备份管理器113如何做出这一确定以备份分级系统101的任何机制或者策略。典型备份策略可以响应于检测到某些事件、时间间隔自从上次备份起的流逝、它们的组合等等。然而,由于这里描述的原理允许高效地(可能在仅分钟、秒或者秒的小数这一级)执行对分级系统(或者其部分)的备份,所以备份可以比常规分级系统备份系统可以正常地允许的备份更频繁。在一些实施例中,分级系统备份可以如在编辑之后保存分级(由用户显式地保存或者通过自动保存操作)那样经常。这也可以被视为检查对源控制系统的改变。
作为备份操作的部分,快照模块111可以取得分级系统在它在确定发起备份的时间存在的快照(动作202)。备份将出现的确定(动作201)也触发改变日志以保存它的在它截至新快照的时间存在的状态(动作203)。这一状态代表自从分级系统的先前快照起直至新快照的点已经出现的改变。在取得新快照(动作202)并且保存改变日志(动作203)之后,改变日志开始记录自从取得新快照起已经出现的新改变(动作204)。新改变可以用于在对将来备份迭代执行方法200时的后续备份。
分级备份管理器113确定分级系统分级在它在取得备份快照(在动作202中)的时间存在的状态(动作210)。如果没有取得分级系统101的先前备份(判决块211中的“否”),则可能快照(在动作202中取得)可以直接地用来(动作212)确定分级系统分级。备选地,可能分级备份管理器113通过跟踪目录和文件创建、删除以及修改而具有对在任何时间点的分级系统分级的持续了解。
在另一方面,如果取得了分级系统101的先前备份(判决块211中的“是”),则获得与先前分级系统快照对应的分级系统的先前内射的分级系统表示(动作213)。也获得与先前文件系统快照对应的先前文件系统逆转信息(动作214)。
参照图1,分级系统的先前内射的表示131A和先前分级系统逆转信息132A被图示为已经被存储在云blob存储装置120中。另外,操作计算系统110对先前内射的分级系统表示131A和先前分级系统逆转信息132A的访问由箭头141代表。可以无需从云取回这一信息。一个优化是从新近地向云写入(或者从云读取)的某些内射的表示(和关联逆转信息)的高速缓存更高效地取回这一信息。这些内射表示(并且包含逆转信息)按照定义为等幂而没有相干性问题或者正确性的风险。因此,如果内射表示在价内(in the cash),则可以使用内射表示而没有它不正确的风险。
如将从以下描述中所见,内射的分级系统表示和分级系统逆转信息的生成作为备份方法200的结果而出现。因而,经由对方法200的先前实行生成并且在云blob存储装置120中存储先前内射的分级系统表示131A和先前分级系统逆转信息132A。
分级备份管理器113然后使用先前内射的分级系统表示131和先前分级系统逆转信息132来制定分级系统分级作为在先前分级系统快照中存在的该分级系统(动作215)。以下将进一步描述关于这如何可以被完成的细节。然而,回顾内射的分级系统表示131是分级系统的先前状态的区别一对一函数(即,内射函数结果)。分级系统逆转信息是任何如下信息,该信息将允许对分级系统的内射的表示执行内射函数的反函数以由此再次取回分级系统的先前内容。然而,这时,仅制定分级系统分级(例如,目录结构,该目录结构以目录的名称和文件的名称代表分级系统分级的叶节点)。
分级备份管理器113然后使用在先前快照与当前快照之间的那些改变来制定改变的分级系统分级(动作216)。回顾在动作203中捕获截至当前快照时间的那些改变。那些改变然后被馈送给分级备份管理器113。基本上,该过程在最低级目录的叶节点开始、重新计算注入的表示,并且然后可以确定它们的母节点的较高级内射的表示。然后该分析上移至下一较低级节点并且并入新内射表示以及在先前较低级计算的新内射表示。然后上移至下一较高级等等。因此,应用改变的顺序在给定的级内任意而在级之间“由最低至最高”。出于这一相同原因,改变日志甚至无需按时间记录改变。
如果日志条目指示叶节点已经被变更,则使该叶节点无效,这意味着叶节点被标记为需要备份。如果日志条目指示添加叶节点,则该叶节点也被标记为待备份。如果删除文件或者目录,则该删除也被标记为在备份中待反映。这些操作中的任何操作也产生所影响的叶节点的前代链中的节点中的任何节点的内容改变。因而,为了捕获前代链中的那些目录的当前状态,那些目录的内容被备份。然而,由于这里描述的原理,对这样的目录的备份没有在计算上密集、无需在操作计算系统110与云blob存储装置120之间的大量带宽并且无需在云blob存储装置120内的大量存储空间。在一个备选实施例中,改变日志没有用来检测节点添加、删除或者重命名。取而代之,在先前和当前备份中遍历分级结果(而没有检查内容本身)。节点标识符然后用来在重命名叶节点时保存而从未被重用以确定哪些叶节点是新的而哪些是旧的以及哪些被重命名,从而从一个备份移至下一备份。这等效于使用完美改变日志以记录叶节点添加、删除和重命名。然而,这一备选实施例确实避免在多个备份之间多次重命名叶节点时存在的一些竞态条件,并且允许改变日志避免需要按时间记录改变。
这时,无论分级系统备份是正在被第一次执行(判决块211中的“否”)还是仅为更新后的分级系统备份(判决块212中的“是”),更新后的分级系统分级已经被制定(动作212或者动作216)。在任一情况下,分级备份管理器113通过将统计内射函数应用于分级系统内容来生成分级系统的更新后的内射的表示(动作221)。尽管这可能看似是繁琐和处理密集的任务,但是使用以下进一步描述的原理可以迅速地和高效地执行对更新后的内射的文件系统表示的这一制定,尤其在以前已经为先前状态备份了文件系统时。如果该节点尚未改变,因为它以前被确定并且不能已经改变,则无需执行对内射函数的计算(无论是在叶节点还是任何其它节点)。分级备份管理器113也使用改变的分级系统分级来制定(动作222)更新后的分级系统逆转信息。
分级备份管理器113然后使得更新后的内射的分级系统表示和更新后的分级系统逆转信息被提供给云blob存储装置120(动作223)。例如,在图1中,操作计算系统110提供更新后的内射的分级系统表示131B和更新后的分级系统逆转信息132B由箭头142代表。在这一提供(由箭头142代表)之后,更新后的内射的分级系统表示131B和更新后的分级系统逆转信息132B被图示为被存储在云blob存储装置120中。
注意,可以对于分级系统的每个备份重复这一方法200。在分级系统的下一备份中,更新后的内射的分级系统表示131B和更新后的分级系统逆转信息132B将分别发挥先前内射的文件系统表示131A和先前分级系统逆转信息132A的作用。另外,来自改变日志的改变将参考自从新备份而不是先前备份起的改变。因此,椭圆131C代表可以在云blob存储装置120内存在分级系统101的内射的分级系统表示的多个版本。类似地,椭圆132C代表可以在云blob存储装置120内存在分级系统逆转信息的多个版本,每个版本允许恢复到不同备份的版本。
如以前提到的那样,分级备份管理器为分级系统在它在备份时间的整个状态制定内射分级系统表示(动作221)和分级系统逆转信息(动作222)。在一个实施例中,为了这样做,分级备份管理器为在分级系统内的每个节点制定内射分级系统表示。取代对在文件系统分级中的每级的全部内容执行统计内射函数(例如,SHA-256散列),分级备份管理器在分级系统分级中的最低叶节点开始并且使用特定目录中的子节点的内射的表示以便更快地制定母节点的内射的表示。
图3图示了用于制定分级系统中的母节点(例如,目录)的内射的表示的方法300,该方法可以对于文件系统分级中的每个非叶节点而被递归地重复。图4图示了示例环境400,该环境示出了形式为文件系统分级401的示例分级系统分级被备份到云blob存储装置420中。因而,现在将频繁参照示例环境400来描述方法300。示例文件系统分级401为了在描述这里描述的原理时清楚而是简单的。然而,这里描述的原理不限于文件系统分级的结构或者复杂性。一些文件系统分级可以具有数千个或者甚至数百万个节点(即,目录或者文件)。
由于哈细化是用于执行统计内射函数的有效机制,所以统计内射函数的执行在下文有时将被称为“散列化”,并且内射的内容表示在下文有时将被称为“散列化”的表示。在图4的所图示的示例中,散列化的表示是SHA-256散列。
现在假设这是文件系统分级401已经第一次被备份。在为每个非叶节点执行方法300之前,用于叶节点中的每个叶节点的散列被获得。更一般而言,用于给定的节点的散列直至已知用于它的所有子节点的散列才能被确定,因此导致遍历分级的由上至下散列化。通常地,文件系统分级中的叶节点是文件,除了在空目录的独特情况下之外。在示例文件系统分级401中,有分别由名称“c”、“d”和“e”调用的三个叶节点文件413、414、415。
由于方法300被由上至下递归地执行,所以方法300将首先关于目录414(名称为“b”)而被执行以便获得目录“b”的内射的表示。因此,目录“b”在方法300的这一递归迭代中是“母目录”。
根据方法300,对于母目录“b”的每个子节点,对子节点执行(动作301)统计内射函数(例如,散列)以获得子节点的内射的表示(例如,散列)。因此,文件“d”的内容被散列化以获得散列化的结果0x1875,并且文件“e”的内容被散列化以获得散列化的结果0x8367。此外,可用来将内射的表示逆转回到原有内容的逆转信息被制定(动作302)。逆转信息可以在与形成内射的表示相似的过程中被生成。
在一个实施例中,为了将文件散列化,在小文件与更大文件之间做出区别。例如,对于小文件,文件散列可以确切地是文件内容的散列。然而,对于较大的文件,可以将那些文件划分成可以由页面表寻址的部分。对于更较大的文件,页面表可以具有若干级。在这一情况下,文件散列可以是顶级页面表的散列。顶级页面表包含下一较低级页面表的页面的散列等等。以这一方式,较大文件一次一个部分地被处理,并且页面表分级在逻辑上活在文件系统分级以下。例如,如果参照图4,假设文件“e”是大文件。可以已经通过散列化页面表中的顶级来获得了散列值0x8367。因此,子节点415可以被视为在该相同点嫁接到文件系统分级中的页面表树。在这一情况下,为了实现嫁接,内射表示在图形的该点的内容将代表节点指向页面表。存在用于其它节点的相似标志,该标志指示节点是否为中间节点(比如目录)、叶节点(比如文件)、单级页面表或者多级页面表(与级数目一起)。
一旦用于所有子节点的散列被获得,统计内射函数就对每个子节点内射的表示(例如,每个子散列)与该子节点的至少属性(例如,文件系统名称,该文件系统名称的表示将被保存在云中)一起被执行(动作311)。例如,在图4中,分级备份管理器可以执行以下串“d=0x1875,e=0x8367”的散列,该串包括文件“d”和“e”的散列以及文件的对应名称。在这一情况下,用于目录“b”的所得散列是0x4808。因而,现在存在目录“b”的内射的表示。另外,可用来取回每个子节点的内射的表示及其属性的逆转信息被定制(动作312)。例如,该逆转信息可以用来在给定输入0x4808时获得串“d=0x1875,e=0x8367”。
该递归然后可以前移一个迭代以被应用于文件系统的根目录“a”。因此,目录“a”在方法300的这一下一递归迭代中是“母目录”。
根据方法300,对于母目录“a”的每个子节点,对子节点执行统计内射函数(动作301)以获得子节点的内射的表示。因此,将获得目录“b”的内射的表示。然而,回顾已经通过方法300的先前迭代而获得目录“b”的内射的表示(0x7481),因此递归。因而,文件“c”被散列化以获得它的内射的表示0x1277。此外,可用来将内射的表示逆转回到原有内容的逆转信息被定制(动作302)。
然后,对每个子代内射的表示与该子节点的至少属性(例如,名称)一起执行统计内射函数(动作311)。例如,在图4中,分级备份管理器可以执行以下串“b/=0x4808,c=0x1277”的散列,该串包括在方法300的先前迭代中获得的目录“b”的内射的表示以及文件“c”的散列以及子目录和文件的对应名称。在这一情况下,用于目录“a”的所得散列是0x7481。因而,现在存在根目录“a”的内射的表示。另外,可用来取回每个子节点的内射的表示及其属性的逆转信息被定制(动作312)。例如,该逆转信息可以用来在给定输入0x7481时获得串“b/=0x4808,c=0x1277”。
根据动作223,可以向云blob存储装置提供用于文件系统节点中的至少一些文件系统节点中的每个文件系统节点的内射的表示。图5图示了用于将用于文件系统节点的内射的表示提供到云blob存储装置中的方法500。虽然不是需要的,但是可以从文件系统分级的顶部下至文件系统分级的叶节点递归地执行方法500。因而,在那些实施例中,直至向云blob存储装置提供用于母节点的散列,才向云blob存储装置提供用于给定的文件系统节点的散列。这可以在其中云blob存储装置垃圾箱通过确定内射的表示是否由另一内射的表示引用来收集的情形中有帮助。如果在母节点的散列之前没有首先提供子节点的散列,则这可能造成这样的垃圾收集算法将子散列裁决为不再被引用并且被标记用于处置。
因而,首先在根目录(a)是“母”目录开始执行方法500。首先向云blob存储装置提供母内射的表示(例如,目录“a”的散列0x7481)(和关联逆转信息)(动作501)以在云blob存储装置420中制定条目421。然后向云blob存储装置提供所有子代内射的表示(例如,目录b的散列0x4804和文件c的散列0x1277)(和关联逆转信息)(动作511)。例如,动作511可以在云blob存储装置中将条目422和423与它们的逆转信息一起产生(动作511)。
然后关于目录“b”是母目录再次执行方法500。当然,已经在方法500的先前执行中在云blob存储装置中保持了目录b的散列0x4808及其逆转信息(见条目422)作为动作511和512的一个实例。因而,方法500直接地前进到用于子节点“d”和“e”的动作511和512。因此,在云blob存储装置中将用于文件“d”的散列0x1875和用于文件“e”的散列0x8367与它们的逆转信息一起保持(动作512)。例如,动作511和512可以在云blob存储装置420中产生条目424和425。
这一以上描述构成用于如何可以初始地备份文件系统的细节。然而,一旦文件系统被初始地备份,则将存在对文件系统目录的内容的进一步更新。例如,无论何时添加或者删除目录以及无论何时创建、更新或者删除文件,文件系统的内容都改变。
图6图示了用于响应于子节点中的改变来更新母目录的内容的方法600的流程图。方法600可以在初始地改变的节点开始一路直至文件系统的根目录而被递归地执行。这在分级中被由上至下完成。
参照图4,在特定示例中,文件“c”已经被编辑。当然,文件“c”的内容因此已经改变,并且散列“0x1277”不再是更新后的文件“c”的内射的表示。同样地,在文件“c”的前代链中一路通向根目录的任何目录也已经让它的内容改变。因而,那些内射的表示也不再有效。
图7图示了修改的环境700,该修改的环境代表图4的环境400的修改。现在将关于图4的原有环境400和图7的修改的环境700来描述方法600。
在检测到特定母目录中的子节点已经改变时方法600被触发(动作601)。在方法600的第一实例中,该方法检测到文件“c”已经改变。因而,在方法600的这一第一实例中,文件“c”是“子节点”并且根目录“a/”是母目录。
在检测到子节点(文件“c”)的内容的更新时,统计内射函数对文件系统的子节点的修正的内容被执行以制定子节点的修正的子代内射的表示(动作602)以及可用来将修正的子代内射的表示逆转回到子节点的修正的内容的修正的子代逆转信息(动作603)。动作602和603可以被视为分别与动作301和302完全地相同,但是关于子节点的修正的内容和仅关于该子节点(而不是母目录的所有子节点)而被执行。
例如,在图7中,文件“c”的内容被散列化以获得新散列0x5444。如果文件“c”是由页面表分级代表的大文件,则方法600实际地首先在页面表的叶节点被执行。然后,方法600将被递归地执行直至它对页面表树中的母节点散列化。注意,用于节点412、414和415的内射的表示和逆转信息无需重新计算。
然后对修正的子代内射的表示和修正的子节点的属性重新执行统计内射函数以制定母目录的修正的母代内射的表示(动作611)和可用来将目录的母代表示逆转成修正的子代内射的表示和修正的子节点的属性的修正的母逆转信息(动作612)。动作611和612可以被视为分别与动作311和312完全地相同,但是也使用子节点413的改变的内射的表示而被执行。在图7中,例如,串“b/=0x4808,c=0x5444”被散列化以获得根目录“a”的新内射的表示0x4489。如果目录“a”不是根目录,则方法600可以被递归地执行,从而使得为从文件(或者从文件部分)沿着文件系统分级(以及也可能沿着页面表分级)的前代链一路直至根目录的每个节点重新制定内射的表示和逆转信息。
方法500然后可以被递归地重新执行以将那些改变节点更新到云blob存储装置中。例如,可以首先在云blob存储装置中创建用于根目录“a/”的条目421’,继而是用于改变的文件“c”的条目423’。注意,用于根目录“a/”的先前条目421和用于文件“c”的先前条目423仍然保留在云blob存储装置中。这可以被完成,因为散列本身(和关联逆转信息)相对地小,尤其地与云blob存储装置能力比较。这也允许通过简单地恢复回到先前条目421和423来容易地撤消文件系统改变。
以上描述了以保存版本化的方式备份文件系统。然而,备份操作的反过程可以被执行以恢复内容。例如,假设文件“c”在操作计算系统110上以某种方式丢失。分级备份管理器113因此可以取回条目423(或者如果恢复到更新后的版本则为423’)并且使用逆转信息以从文件“c”的内射的表示重新制定文件“c”的内容。分级备份管理器113也可以已经通过取回条目421(或者如果恢复到更新后的版本则为421’)来开始并且使用逆转信息以由此恢复串“b/=0x4808,c=0x5444”。为了这样做,也将存在用于到达文件的兴趣路径的一些标识。这给定了文件“c”的如下子代内射的表示,可以从该子代内射的表示(也使用用于文件“c”的逆转信息)恢复文件“c”的内容。如果整个文件系统被丢失,则可以由上至下重复这一过程,因为可以从母节点的内射的表示获得目录的每个子节点的子代内射的表示(以及名称)。
也可以使用这里描述的原理来简化差异化。例如,为了确定特定文件系统节点自从特定时间点起是否已经改变,可以遵循图8的方法800。例如,特定文件系统节点的内射的表示被制定(动作801)。这可以通过使用标识的路径从文件系统分级的顶部向下递归地执行方法300直至制定特定文件系统节点的内射的表示而被实现。
然后比较(动作802)重新制定的内射的表示与代表该文件系统节点在特定先前时间时刻的内容的先前内射的表示。如果没有匹配(判决块803中的“否”),则内容已经改变(判决804)。如果有确切匹配(判决块803中的“是”),则内容尚未改变(判决805)。
计算系统对这里描述的原理的实施是重要的。例如,以上描述的操作计算系统110可以是计算系统本身。另外,快照模块111、改变日志模块112和分级备份管理器可以各自是在计算系统上操作的模块。例如,这样的模块可以响应于计算系统的一个或者多个处理器运行形成由计算系统访问的计算机程序产品的在一个或者多个计算机可读存储介质上被体现的一个或者多个计算机可执行指令而被操作和/或实例化。因而,现在将关于图9描述一般计算系统。
计算系统现在越来越多地采用广泛多种形式。计算系统可以例如是手持设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或者甚至常规地没有视为计算系统的设备。在本描述中和在权利要求中,术语“计算系统”被广义地定义为包括任何如下设备或者系统(或者其组合),该设备或者系统包括至少一个物理有形处理器以及能够在其上具有可以由处理器执行的计算机可执行指令的物理有形存储器。计算系统可以被分布在网络环境之上并且可以包括多个构成计算系统。
如图9中所示,在它的最基本配置中,计算系统900通常地包括至少一个处理单元902和存储器904。存储器904可以是物理系统存储器,该物理系统存储器可以是易失性、非易失性或者二者的某个组合。术语“存储器”这里也可以用来指代非易失性海量存储装置,比如物理存储介质。如果计算系统为分布式,则处理、存储器和/或存储能力也可以为分布式。
如这里所用,术语“可执行模块”或者“可执行部件”可以指代可以在计算系统上倍执行的软件对象、例程或者方法。这里描述的不同部件、模块、引擎和服务可以被实施为在计算系统上执行的对象或者过程(例如,被实施为分离的线程)。
在以下描述中,实施例参照由一个或者多个计算系统执行的动作而被描述。如果这样的动作在软件中被实施,则执行动作的关联计算系统的一个或者多个处理器响应于已经执行了计算机可执行指令来指引计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或者多个计算机可读介质上被体现。这样的操作的示例涉及数据的操纵。可以在计算系统900的存储器904中存储计算机可执行指令(和被操纵的数据)。计算系统900也可以包含允许计算系统900例如通过网络910来与其它消息处理器通信的通信信道908。计算系统900也可以具有用于向用户进行显示的显示器912。
这里描述的实施例可以如以下更具体讨论的那样包括或者利用专用或者通用计算机系统,该专用或者通用计算机系统包括计算机硬件,如例如一个或者多个处理器和系统存储器。可以在总存储器904内包括系统存储器。系统存储器也可以被称为“主存储器”并且包括可由至少一个处理单元902通过存储器总线寻址的存储器位置,在该情况下,地址位置在存储器总线本身上被确立。系统存储器已经是传统易失性,但是这里描述的原理也在其中系统存储器部分地或者甚至完全地非易失性的境况中适用。
在本发明的范围内的实施例也包括用于携带或者存储计算机可执行指令和/或数据结构的物理和其它计算机可读介质。这样的计算机可读介质可以是可以由通用或者专用计算机系统访问的任何可用介质。存储计算机可执行指令和/或数据结构的计算机可读介质是计算机存储介质。携带计算机可执行指令和/或数据结构的计算机可读介质是传输介质。因此,举例而言而没有限制,本发明的实施例可以包括至少两个截然不同种类的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质是存储计算机可执行指令和/或数据结构的物理硬件存储介质。物理硬件存储介质包括计算机硬件,比如RAM、ROM、EEPROM、固态驱动(“SSD”)、闪存、相变存储器(“PCM”)、光盘存储装置、磁盘存储装置或者其它磁存储设备或者可以用来以计算机可执行指令或者数据结构的形式存储程序代码的任何其它硬件存储设备,这些计算机可执行指令或者数据结构可以由通用或者专用计算机系统访问和执行以实施本发明的公开的功能。
传输介质可以包括可以用来以计算机可执行指令或者数据结构的形式携带程序代码并且可以由通用或者专用计算机系统访问的网络和/或数据链路。“网络”被定义为实现电子数据在计算机系统和/或模块和/或其它电子设备之间的传送的一个或者多个数据链路。在信息通过网络或者另一通信连接(硬接线、无线或者硬接线或者无线的组合)向计算机系统被传送或者提供时,计算机系统可以将连接视为传输介质。以上示例的组合也应当被包括在计算机可读介质的范围内。
另外,在到达各种计算机系统部件时,可以从传输介质向计算机存储介质自动地传送形式为计算机可执行指令或者数据结构的程序代码(或者相反)。例如,通过网络或者数据链路而被接收的计算机可执行指令或者数据结构可以被缓存在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终地被传送给计算机系统RAM和/或在计算机系统处的更少易失性的计算机存储介质。因此,应当理解,计算机存储介质可以被包括在也(或者甚至主要地)利用传输介质的计算机系统部件中。
计算机可执行指令例如包括如下指令和数据,这些指令和数据当在一个或者多个处理器处被执行时使得通用计算机系统、专用计算机系统或者专用处理设备执行某个功能或者某组功能。计算机可执行指令可以例如是二进制文件、中间格式指令(比如汇编语言)或者甚至源代码。
本领域技术人员将认识到,可以在具有许多类型的计算机系统配置的网络计算环境中实践这里描述的原理,这些计算机系统配置包括个人计算机、按提示计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或者可编程的消费者电子装置、网络PC、小型计算机、大型机计算机、移动电话、PDA、平板计算机、寻呼机、路由器、交换机等。也可以在分布式系统环境中实践本发明,在这些分布式系统环境处,通过网络而被链接(由硬接线数据链路、无线数据链路或者由硬接线和无线数据链路的组合而被链接)的本地和远程计算机系统二者执行任务。这样,在分布式系统环境中,计算机系统可以包括多个构成计算机系统。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
本领域技术人员也将认识到,可以在云计算环境中实践本发明。云计算环境可以为分布式,但是这不是必需的。在为分布式时,云计算环境可以有意地被分布在组织内和/或让部件跨多个组织而被拥有。在本描述和以下权利要求中,“云计算”被定义为用于实现对可配置计算资源(例如,网络、服务器、存储装置、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可以在被恰当地部署时从这样的模型获得的其它许多优点中的任何优点。
可以在其它具体形式中体现本发明而没有脱离它的精神或者实质特点。所描述的实施例将在所有方面中仅被视为说明性而非限制性。本发明的范围因此由所附权利要求而不是由前文描述所指示。落在权利要求的等效含义和范围内的所有改变将被涵盖在它们的范围内。
Claims (20)
1.一种用于将分级系统中的母节点的内容远程地保存到云blob存储装置中的方法,所述方法包括:
对分级系统的子节点的内容执行统计内射函数,以制定所述子节点的子代内射的表示以及可用来将所述子代内射的表示逆转回到所述子节点的所述内容的子代逆转信息的动作;
对至少所述子代内射的表示和所述子节点的属性执行统计内射函数,以制定所述母节点的母代内射的表示和可用来将所述母节点的所述母代内射的表示逆转成所述子代内射的表示和所述子节点的所述属性的母代逆转信息的动作;
向云blob存储装置提供所述母代内射的表示和所述母代逆转信息的动作;以及
向所述云blob存储装置提供所述子代内射的表示和所述子代逆转信息的动作。
2.根据权利要求1所述的方法,向所述云blob存储装置提供所述子代内射的表示的所述动作在向所述云blob存储装置提供所述母代内射的表示的所述动作之后发生。
3.根据权利要求1所述的方法,还包括:
对所述分级系统的第二子节点的内容执行统计内射函数,以制定所述第二子节点的第二子代内射的表示以及可用来将所述第二子代内射的表示逆转回到所述第二子代节点的所述内容的第二子代逆转信息的动作。
4.根据权利要求1所述的方法,还包括更新所述母节点的内容的动作,更新所述母节点的内容的所述动作包括:
更新所述分级系统中的所述子节点的内容,以生成所述子节点的修正的内容的动作;
对所述分级系统的所述子节点的修正的内容执行统计内射函数,以制定所述子节点的修正的子代内射的表示以及可用来将所述修正的子代内射的表示逆转回到所述子节点的所述修正的内容的修正的子代逆转信息的动作;
对所述修正的子代内射的表示和所述修正的子节点的属性执行统计内射函数,以制定所述母节点的修正的母代内射的表示和可用来将所述母节点的所述修正的母代内射的表示逆转成所述修正的子代内射的表示和所述修正的子节点的所述属性的修正的母代逆转信息的动作;
向所述云blob存储装置提供所述修正的母代内射的表示和所述修正的母代逆转信息的动作;以及
向所述云blob存储装置提供所述修正的子代内射的表示的动作。
5.根据权利要求4所述的方法,向所述云blob存储装置提供所述修正的子代内射的表示的所述动作在向所述云blob存储装置提供所述修正的母代内射的表示和所述修正的母代逆转信息的所述动作之后发生。
6.根据权利要求1所述的方法,还包括恢复所述子节点的内容的动作,恢复所述子节点的内容的所述动作包括:
使用所述子代内射的表示以取回所述子代逆转信息的动作;以及
使用所述子代内射的表示和所述子代逆转信息以获得所述子节点的所述内容的动作。
7.根据权利要求6所述的方法,恢复所述子节点的内容的所述动作还包括:
使用所述母代内射的表示以取回所述母代逆转信息的动作;以及
使用至少所述母代内射的表示和所述母代逆转信息以获得所述子代内射的表示的动作。
8.根据权利要求7所述的方法,恢复所述子节点的内容的所述动作被执行作为恢复母目录的动作的部分,恢复所述母目录的所述动作还包括:
使用所述母代逆转信息以恢复所述母目录的所述内容的动作。
9.根据权利要求1所述的方法,还包括确定所述母节点自从所述母代内射的表示被制定起是否已经改变的动作,所述方法还包括:
重新制定母目录的所述母代内射的表示的动作;
比较重新制定的所述母代内射的表示与先前的所述母代内射的表示的动作;
如果重新制定的所述母代内射的表示不同于先前的所述母代内射的表示,推断所述母节点的所述内容已经改变的动作;以及
如果重新制定的所述母代内射的表示与先前的所述母代内射的表示相同,推断所述母节点的所述内容尚未改变的动作。
10.根据权利要求1所述的方法,还包括确定所述子节点自从所述子代内射的表示被制定起是否已经改变的动作,所述方法还包括的动作:
获得对所述子代内射的表示的重新制定的动作;
比较重新制定的所述子代内射的表示与先前的所述子代内射的表示的动作;
如果重新制定的所述子代内射的表示不同于先前的所述子代内射的表示,推断所述子节点的所述内容已经改变的动作;以及
如果重新制定的所述子代内射的表示与先前的所述子代内射的表示相同,推断所述子节点的所述内容尚未改变的动作。
11.根据权利要求1所述的方法,重新制定所述子代内射的表示的所述动作包括:
检测所述子节点的一个或者多个部分已经改变的动作;
对于检测到的改变的所述部分中的每个部分,执行统计内射函数以制定部分内射的表示的动作;以及
使用所述一个或者多个部分内射的表示,重新制定所述子代内射的表示的动作。
12.根据权利要求1所述的方法,所述母节点为所述分级系统的根目录。
13.根据权利要求1所述的方法,所述子节点为所述分级系统的文件。
14.根据权利要求1所述的方法,所述子节点为所述分级系统中的母目录的子目录。
15.根据权利要求14所述的方法,对所述分级系统的所述子节点的所述内容执行统计内射函数的动作还包括:
对所述分级系统的孙节点的内容执行统计内射函数,以制定所述孙节点的孙代内射的表示以及可用来将所述子代内射的表示逆转回到所述孙节点的所述内容的孙代逆转信息的动作,所述孙节点为所述分级系统的所述子目录中的子目录或者文件;
对至少所述孙代内射的表示和所述孙节点的属性执行统计内射函数,以制定所述子节点的所述子代内射的表示和所述子代逆转信息的动作。
16.根据权利要求15所述的方法,还包括:
向所述云blob存储装置提供所述孙代内射的表示和所述孙代逆转信息的动作。
17.根据权利要求16所述的方法,向所述云blob存储装置提供所述孙代内射的表示的所述动作在向所述云blob存储装置提供所述子代内射的表示的所述动作之后发生。
18.一种计算机系统,包括:
一个或者多个处理器:
一个或者多个计算机可读存储介质,包含计算机可执行指令,所述计算机可执行指令当由所述一个或者多个处理器执行时,使得所述计算机系统通过执行以下各项来将由备份在所述计算机系统处操作的分级文件系统的部件组成的架构实例化:
改变日志,所述改变日志标识所述分级文件系统中的多部分文件的哪些部分自从先前文件系统快照起的时间已改变;
分级备份管理器,其响应于所述分级文件系统将被备份的确定来执行以下各项:
获得所述分级文件系统的与所述先前文件系统快照对应的先前内射的表示和与所述先前文件系统快照对应的先前文件系统逆转信息的动作;
使用所述先前内射的表示来将先前文件系统分级制定为在所述先前文件系统快照中存在的该文件系统的动作;
使用改变日志来制定改变的文件系统分级的动作,所述改变的文件系统分级在分级结构和改变的文件中的至少一种中被改变;
使用所述改变的文件系统分级来制定所述分级文件系统的更新的内射的表示和更新的文件系统逆转信息的动作;以及
使得所述分级文件系统的所述更新的内射的表示和所述更新的文件系统逆转信息被存储在云blob存储装置的动作。
19.一种计算机可读存储介质,其上具有计算机可执行指令,所述计算机可执行指令指令被结构化以使得在由计算系统的一个或者多个处理器执行时,使得所述计算系统执行以下各项:
获得文件系统的与先前文件系统快照对应的先前内射的表示和与所述先前文件系统快照对应的先前文件系统逆转信息的动作;
使用所述先前内射的表示来将先前文件系统分级制定为在所述先前文件系统快照中存在的该文件系统的动作;
使用改变日志来制定第二文件系统分级的动作,所述改变日志代表自从所述先前文件系统快照起截至第二时间时刻对所述文件系统的改变;
使用所述第二文件系统分级来制定所述文件系统的第二内射的表示和第二文件系统逆转信息的动作;以及
使得所述文件系统的所述第二内射的表示和所述第二文件系统逆转信息被提供给云blob存储装置的动作。
20.根据权利要求19所述的计算机可读存储介质,所述计算机可执行指令被进一步结构化以使得在由所述计算系统的一个或者多个处理器执行时,使得所述计算系统执行以下各项:
使用改变日志来跟踪自从所述第二时间时刻起对所述文件系统的改变的动作;
使用所述第二内射的表示来将所述第二文件系统分级制定为在所述第二时间时刻存在的该文件系统的动作;
使用代表自从所述第二时间时刻起对所述文件系统的改变的所述改变日志来制定第三文件系统分级的动作;
使用所述第三文件系统分级来制定所述文件系统的第三内射的表示和第三文件系统逆转信息的动作;以及
使得所述文件系统的所述第三内射的表示和所述第三文件系统逆转信息被提供给所述云blob存储装置的动作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/610,989 US9953038B2 (en) | 2015-01-30 | 2015-01-30 | Cloud-based hierarchical system preservation |
US14/610,989 | 2015-01-30 | ||
PCT/US2016/013501 WO2016122901A1 (en) | 2015-01-30 | 2016-01-15 | Cloud-based hierarchical system preservation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107209707A CN107209707A (zh) | 2017-09-26 |
CN107209707B true CN107209707B (zh) | 2021-03-09 |
Family
ID=55361945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680006840.6A Active CN107209707B (zh) | 2015-01-30 | 2016-01-15 | 基于云的分级系统保存 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9953038B2 (zh) |
EP (1) | EP3251011B1 (zh) |
CN (1) | CN107209707B (zh) |
WO (1) | WO2016122901A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102067619B1 (ko) * | 2018-01-02 | 2020-02-11 | 주식회사 한글과컴퓨터 | 데이터 백업 방법과 이를 이용하는 데이터 백업 장치 및 사용자 단말 |
US10817498B2 (en) | 2018-05-31 | 2020-10-27 | Microsoft Technology Licensing, Llc | Distributed transactions in cloud storage with hierarchical namespace |
US10831720B2 (en) * | 2018-05-31 | 2020-11-10 | Microsoft Technology Licensing, Llc | Cloud storage distributed file system |
US10999397B2 (en) | 2019-07-23 | 2021-05-04 | Microsoft Technology Licensing, Llc | Clustered coherent cloud read cache without coherency messaging |
CN114225385B (zh) * | 2022-02-25 | 2022-07-08 | 腾讯科技(深圳)有限公司 | 云游戏数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162437A (zh) * | 2006-10-10 | 2008-04-16 | 国际商业机器公司 | 基于关系模型分析系统性能采样数据的方法、设备和系统 |
US8224935B1 (en) * | 2010-05-12 | 2012-07-17 | Symantec Corporation | Systems and methods for efficiently synchronizing configuration data within distributed computing systems |
CN102882928A (zh) * | 2012-08-31 | 2013-01-16 | 浪潮电子信息产业股份有限公司 | 一种云存储系统的分级存储管理方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778395A (en) | 1995-10-23 | 1998-07-07 | Stac, Inc. | System for backing up files from disk volumes on multiple nodes of a computer network |
US7225210B2 (en) | 2003-11-20 | 2007-05-29 | Overland Storage, Inc. | Block level data snapshot system and method |
CA2618135C (en) | 2005-08-09 | 2014-10-28 | Nexsan Technologies Canada Inc. | Data archiving system |
US7441092B2 (en) | 2006-04-20 | 2008-10-21 | Microsoft Corporation | Multi-client cluster-based backup and restore |
US7613750B2 (en) | 2006-05-29 | 2009-11-03 | Microsoft Corporation | Creating frequent application-consistent backups efficiently |
US8176018B1 (en) | 2008-04-30 | 2012-05-08 | Netapp, Inc. | Incremental file system differencing |
US8447734B2 (en) | 2009-11-30 | 2013-05-21 | Hewlett-Packard Development Company, L.P. | HDAG backup system with variable retention |
US8452932B2 (en) | 2010-01-06 | 2013-05-28 | Storsimple, Inc. | System and method for efficiently creating off-site data volume back-ups |
US8788769B2 (en) | 2010-11-16 | 2014-07-22 | Actifio, Inc. | System and method for performing backup or restore operations utilizing difference information and timeline state information |
US9824091B2 (en) * | 2010-12-03 | 2017-11-21 | Microsoft Technology Licensing, Llc | File system backup using change journal |
US8914327B2 (en) | 2012-03-16 | 2014-12-16 | Apple Inc. | Methods and systems for searching a backup volume |
US8949281B2 (en) * | 2012-03-31 | 2015-02-03 | Emc Corporation | System and method of hierarchical data containers |
US9152686B2 (en) | 2012-12-21 | 2015-10-06 | Zetta Inc. | Asynchronous replication correctness validation |
-
2015
- 2015-01-30 US US14/610,989 patent/US9953038B2/en active Active
-
2016
- 2016-01-15 CN CN201680006840.6A patent/CN107209707B/zh active Active
- 2016-01-15 WO PCT/US2016/013501 patent/WO2016122901A1/en active Application Filing
- 2016-01-15 EP EP16704958.4A patent/EP3251011B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162437A (zh) * | 2006-10-10 | 2008-04-16 | 国际商业机器公司 | 基于关系模型分析系统性能采样数据的方法、设备和系统 |
US8224935B1 (en) * | 2010-05-12 | 2012-07-17 | Symantec Corporation | Systems and methods for efficiently synchronizing configuration data within distributed computing systems |
CN102882928A (zh) * | 2012-08-31 | 2013-01-16 | 浪潮电子信息产业股份有限公司 | 一种云存储系统的分级存储管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US9953038B2 (en) | 2018-04-24 |
EP3251011A1 (en) | 2017-12-06 |
WO2016122901A1 (en) | 2016-08-04 |
EP3251011B1 (en) | 2018-12-05 |
US20160224433A1 (en) | 2016-08-04 |
CN107209707A (zh) | 2017-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11429641B2 (en) | Copying data changes to a target database | |
US11182356B2 (en) | Indexing for evolving large-scale datasets in multi-master hybrid transactional and analytical processing systems | |
US10891264B2 (en) | Distributed, scalable key-value store | |
CN107835983B (zh) | 使用一致的数据库快照在分布式数据库中进行备份和还原 | |
US9274896B2 (en) | Versioned file system with fast restore | |
CN107209707B (zh) | 基于云的分级系统保存 | |
US20160110261A1 (en) | Cloud storage using merkle trees | |
US10417265B2 (en) | High performance parallel indexing for forensics and electronic discovery | |
US11847028B2 (en) | Efficient export of snapshot changes in a storage system | |
US8990272B2 (en) | Versioned file system with pruning | |
JP6387399B2 (ja) | データ操作のための、メモリ及びストレージ空間の管理 | |
EP2646923A2 (en) | File system backup using change journal | |
US11403024B2 (en) | Efficient restoration of content | |
US10606805B2 (en) | Object-level image query and retrieval | |
US10061654B1 (en) | Depth first search of summary change log records for backup | |
US20170153951A1 (en) | Incremental synchronous hierarchical system restoration | |
US11550760B1 (en) | Time-based partitioning to avoid in-place updates for data set copies | |
US20240311248A1 (en) | Delivering file system namespace features without on-disk layout changes | |
Voss et al. | Searchdir |
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 |