平码五不中公式规律
  • / 30
  • 下载费用:30 金币  

用于优化的签名比较和数据复制的系统和方法.pdf

关 键 ?#21097;?/dt>
用于 优化 签名 比较 数据 复制 系统 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201680001991.2

申请日:

2016.01.13

公开号:

CN106663047A

公开日:

2017.05.10

当前法律状态:

实审

?#34892;?#24615;:

审中

法?#19978;?#24773;: 专利申请权的转移IPC(主分类):G06F 11/14登记生效日:20170811变更事项:申请人变更前权利人:森普利维蒂公司变更后权利人:慧与发展有限责任合伙企?#24403;?#26356;事项:地址变更前权利人:美国马萨诸塞变更后权利人:美国德克萨斯州|||实质审查的生效 IPC(主分类):G06F 11/14申请日:20160113|||公开
IPC分类号: G06F11/14 主分类号: G06F11/14
申请人: 森普利维蒂公司
发明人: G·A·柯拉吉斯; 肖彦; T·G·奥尔森
地址: 美国马萨诸塞
优先权: 2015.01.13 US 62/102,808
专利代理机构: 中国国际贸?#29366;?#36827;委员会专利商标事务所 11038 代理人: 鲍进
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201680001991.2

授权公告号:

||||||

法律状态公告日:

2017.09.01|||2017.08.08|||2017.05.10

法律状态类型:

专利申请权、专利权的转移|||实质审查的生效|||公开

摘要

用于节点间数据复制同时减少用于远程备份的网络流量的系统、方法和计算机可读储存介质。系统接收把位于源网络节点上的数据集复制到远程网络节点的命令,在源网络节点上访问数据集的先前快照的签名和数据集的当前快照的签名,在源网络节点处执行在先前快照和当前快照之间的本地签名比较以标识不匹配的一个或多个签名,将不匹配的签名发送到远程网络节点,在远程网络节点上搜索不匹配的签名,以及如果它们不存在于当前远程网络节点上,则将与不匹配的签名相关联的数据发送到远程网络节点以并入到当前远程快照内。

权利要求书

1.一种系统,包括源网络节点和远程网络节点,每个节点具有处理器和存储指令的存
储器,所述指令在被所述处理器执行时使得所述处理器执行用于在远程网络节点上生成位
于源网络节点上的数据集的远程备份副本的操作,所述操作包括:
接收把位于所述源网络节点上的所述数据集复制到所述远程网络节点的命令,所述数
据集包括树型结构文件系统中的数据和元数据的签名,其中所述文件系统数据和元数据作
为对象被存储在对象仓库中,每个对象具有全局唯一的内容衍生签名;
响应于所述命令,在所述源网络节点上访问所述数据集的先前存储快照的签名和所述
数据集的当前快照的签名,其中所述先前快照包括树型结构文件系统的所述数据和元数据
对象的所述签名的树,并且其中存储在所述源网络节点上的所述先前快照对应于存储在所
述远程网络节点处的先前远程快照;
在所述源网络节点处执行所述先前快照和所述当前快照之间的本地签名比较以识别
在所述先前快照和所述当前快照之间不匹配的一个或多个签名,其中所述本地签名比较是
从所述树的根开始的迭代的自上而下比较,并且其中不匹配的签名在所述树中具有不同内
容或不同定位中的至少一个;
将不匹配的签名发送到所述远程网络节点;
在所述远程网络节点上执行对于不匹配的签名的搜索;
从所述远程网络节点接收关于不匹配的签名是否存在于所述远程网络节点处的响应;
以及
如果不匹配的签名不存在于所述远程网络节点处,则把与不匹配的签名相关联的数据
发送到所述远程网络节点以供并入当前远程快照内。
2.根据权利要求1所述的系统,其中所述源网络节点和所述远程网络节点跨广域网
(WAN)进行通信。
3.根据权利要求2所述的系统,其中跨所述WAN异步地发送不匹配的签名。
4.根据权利要求2所述的系统,其中不匹配的签名在跨所述WAN被发送之前被批处理。
5.根据权利要求4所述的系统,其中被批处理的签名包括来?#36816;?#36848;树的不同兄弟节点
的签名。
6.一种用于在远程网络节点上生成位于源网络节点上的数据集的远程备份副本的方
法,包括:
接收把位于源网络节点上的数据集复制到远程网络节点的命令,所述数据集包括树型
结构文件系统中的数据和元数据的签名,其中所述文件系统数据和元数据作为对象被存储
在对象仓库中,每个对象具有全局唯一的内容衍生签名;
响应于所述命令,在所述源网络节点上访问所述数据集的先前存储快照的签名和所述
数据集的当前快照的签名,其中所述先前快照包括树型结构文件系统的所述数据和元数据
对象的所述签名的树,并且其中存储在所述源网络节点上的所述先前快照对应于存储在所
述远程网络节点处的先前远程快照;
在所述源网络节点处执行所述先前快照和所述当前快照之间的本地签名比较以识别
在所述先前快照和所述当前快照之间不匹配的一个或多个签名,其中所述本地签名比较是
从所述树的根开始的迭代的自上而下比较,并且其中不匹配的签名在所述树中具有不同内
容或不同定位中的至少一个;
将不匹配的签名发送到所述远程网络节点;
在所述远程网络节点上执行对于不匹配的签名的搜索;
从所述远程网络节点接收关于不匹配的签名是否存在于所述远程网络节点处的响应;
以及
如果不匹配的签名不存在于所述远程网络节点处,则把与不匹配的签名相关联的数据
发送到所述远程网络节点以供并入当前远程快照内。
7.根据权利要求6所述的方法,其中所述源网络节点和所述远程网络节点跨广域网
(WAN)进行通信。
8.根据权利要求7所述的方法,其中,跨所述WAN异步地发送不匹配的签名。
9.根据权利要求7所述的方法,还包括:
在跨所述WAN发送之前,批处理不匹配的签名。
10.根据权利要求9所述的方法,其中,被批处理的签名包括来?#36816;?#36848;树的不同兄弟节
点的签名。
11.一?#22336;?#26242;时性计算机可读储存介质,其中存储有指令,所述指令在被处理器执行时
使得所述处理器执行操作,所述操作包括:
接收把位于源网络节点上的数据集复制到远程网络节点的命令,所述数据集包括树型
结构文件系统中的数据和元数据的签名,其中所述文件系统数据和元数据作为对象被存储
在对象仓库中,每个对象具有全局唯一的内容衍生签名;
响应于所述命令,在所述源网络节点上访问所述数据集的先前存储快照的签名和所述
数据集的当前快照的签名,其中所述先前快照包括树型结构文件系统的所述数据和元数据
对象的所述签名的树,并且其中存储在所述源网络节点上的所述先前快照对应于存储在所
述远程网络节点处的先前远程快照;
在所述源网络节点处执行所述先前快照和所述当前快照之间的本地签名比较以识别
在所述先前快照和所述当前快照之间不匹配的一个或多个签名,其中所述本地签名比较是
从所述树的根开始的迭代的自上而下比较,并且其中不匹配的签名在所述树中具有不同内
容或不同定位中的至少一个;
将不匹配的签名发送到所述远程网络节点;
在所述远程网络节点上执行对于不匹配的签名的搜索;
从所述远程网络节点接收关于不匹配的签名是否存在于所述远程网络节点处的响应;
以及
如果不匹配的签名不存在于所述远程网络节点处,则把与不匹配的签名相关联的数据
发送到所述远程网络节点以供并入当前远程快照内。
12.根据权利要求11所述的非暂时性计算机可读储存介质,其中所述源网络节点和所
述远程网络节点跨广域网(WAN)进行通信。
13.根据权利要求12所述的非暂时性计算机可读储存介质,其中,跨所述WAN异步地发
送不匹配的签名。
14.根据权利要求12所述的非暂时性计算机可读储存介质,存储附加的指令,所述附加
的指令在被所述处理器执行时使得所述处理器执行包括以下的操作:
在跨所述WAN发送之前,批处理不匹配的签名。
15.根据权利要求14所述的非暂时性计算机可读储存介质,其中,被批处理的签名包括
来?#36816;?#36848;树的不同兄弟节点的签名。

说明书

用于优化的签名比较和数据复制的系统和方法

优先权

本申请要求在2015年1月13日提交的美国临时申请No.62/102,808的权益,其公开
内容通过引用被整体并入本文。

?#38469;?#39046;域

本发明涉及数据复制,并且更具体地,涉及用于执行数据储存备份的签名比较或
其它数据复制操作的系统和方法。

背景?#38469;?br />

计算机服务器和计算机服务器集群朝向虚拟机不断移动以提供计算服务。在这种
环?#25345;校?#31649;理?#26412;?#24120;为虚拟机配置远程备份任务。在远程备份期间,源虚拟机的数据的快照
被复制给目标(例如,远程数据?#34892;?。

在当前的解决方案中,签名被发送到目标,并且在目标上进行比较,目标通常驻留
在WAN连接上。WAN连接通常慢并且昂贵,并且许多其他任务竞争WAN连接上的带宽。由于单
个远程备份任务可?#28304;?#21457;数百万计的签名比较的事实,?#25214;?#26222;遍和大规模的备份任务会导
致显著的延时、堵塞WAN连接以及占用服务器资源。

发明内容

提供用于改善的远程备份操作的系统、方法以及计算机可读介质,该操作可以减
少WAN流量和远程备份持续时间。响应于远程备份命令,源网络节点执行数据集的先前快照
和当前快照之间的本地签名比较。以这种方式,源网络节点仅需要将本地不匹配的签名发
送到远程网络节点。然后远程网络节点可以搜索不匹配的签名,并且向源网络节点发送标
识出不存在于远程网络节点上的签名的响应。源网络节点随后发送仅与不存在于远程网络
节点上的签名相关联的数据,以并入到数据集的远程快照中。

根据本公开进行操作的系统特别有益于某些远程备份使用情况,诸如具有大量的
随机写使用模式的、大小的范围高达数百千兆字节或更大的特大虚拟盘(VMDK),其中大百
分比的签名比较将以匹配为结果。系统可以减少显著百分比的跨WAN发送的远程签名比较。
由于在远程签名比较的数量上的减少,所以系统也减少了总体WAN的利用。另外,系统缩短
了跨高延迟WAN环境的远程备份的持续时间。即使是在低延迟LAN环?#25345;校?#31995;统也可以进一
步减少完成远程备份所要求的时间。

在一些实施例中,系统包括检测导致差的性能的使用模式的辨识算法。在辨识这
?#36136;?#29992;模式时,系统应用不同的备份方法,无论是应用不同的专用备份例程还是默认为标
准或常规的备份例程。

根据本公开的一个实施例,提供了一种系统,该系统包括源网络节点和远程网络
节点,每个节点具有处理器和存储指令的存储器,该指令在被处理器执行时使得处理器执
行用于在远程网络节点上生成位于源网络节点上的数据集的远程备份副本的操作,所述操
作包括:

接收把位于所述源网络节点上的所述数据集复制到所述远程网络节点的命令,所
述数据集包括树型结构文件系统中的数据和元数据的签名,其中所述文件系统数据和元数
据作为对象被存储在对象仓库(object store)中,每个对象具有全局唯一的内容衍生签
名;

响应于所述命令,在所述源网络节点上访问所述数据集的先前存储快照的签名和
所述数据集的当前快照的签名,其中所述先前快照包括树型结构文件系统的所述数据和元
数据对象的所述签名的树,并且其中存储在所述源网络节点上的所述先前快照对应于存储
在所述远程网络节点处的先前远程快照;

在所述源网络节点处执行所述先前快照和所述当前快照之间的本地签名比较以
识别在所述先前快照和所述当前快照之间不匹配的一个或多个签名,其中所述本地签名比
较是从所述树的根开始的迭代的自上而下比较(top-down comparison),并且其中不匹配
的签名在所述树中具有不同内容或不同定位中的至少一个;

将不匹配的签名发送到所述远程网络节点;

在所述远程网络节点上执行对于不匹配的签名的搜索;

从所述远程网络节点接收关于不匹配的签名是否存在于所述远程网络节点处的
响应;以及

如果不匹配的签名不存在于所述远程网络节点处,则把与不匹配的签名相关联的
数据发送到所述远程网络节点以供并入当前远程快照内。

在一个实施例中,源网络节点和远程网络节点跨广域网(WAN)进行通信。

在一个实施例中,不匹配的签名跨WAN被异步地发送。

在一个实施例中,不匹配的签名在跨WAN发送之前被批处理。

在一个实施例中,被批处理的签名包括来自树的不同兄弟节点的签名。

根据本公开的另一实施例,提供了一种用于在远程网络节点上生成位于源网络节
点上的数据集的远程备份副本的方法,包括:

接收把位于源网络节点上的数据集复制到远程网络节点的命令,所述数据集包括
树型结构文件系统中的数据和元数据的签名,其中所述文件系统数据和元数据作为对象被
存储在对象仓库中,每个对象具有全局唯一的内容衍生签名;

响应于所述命令,在所述源网络节点上访问所述数据集的先前存储快照的签名和
所述数据集的当前快照的签名,其中所述先前快照包括树型结构文件系统的所述数据和元
数据对象的所述签名的树,并且其中存储在所述源网络节点上的所述先前快照对应于存储
在所述远程网络节点处的先前远程快照;

在所述源网络节点处执行所述先前快照和所述当前快照之间的本地签名比较以
识别在所述先前快照和所述当前快照之间不匹配的一个或多个签名,其中所述本地签名比
较是从所述树的根开始的迭代的自上而下比较,并且其中不匹配的签名在所述树中具有不
同内容或不同定位中的至少一个;

将不匹配的签名发送到所述远程网络节点;

在所述远程网络节点上执行对于不匹配的签名的搜索;

从所述远程网络节点接收关于不匹配的签名是否存在于所述远程网络节点处的
响应;以及

如果不匹配的签名不存在于所述远程网络节点处,则把与不匹配的签名相关联的
数据发送到所述远程网络节点以供并入当前远程快照内。

在一个实施例中,源网络节点和远程网络节点跨广域网(WAN)进行通信。

在一个实施例中,不匹配的签名跨WAN被异步地发送。

在一个实施例中,该方法包括在跨WAN发送之前批处理不匹配的签名。

在一个实施例中,被批处理的签名包括来自树的不同兄弟节点的签名。

根据本公开的另一个实施例,提供了一?#21046;?#20013;存储有指令的非暂时性计算机可读
储存介质,该指令在由处理器执行时使得处理器执行操作,所述操作包括:

接收把位于源网络节点上的数据集复制到远程网络节点的命令,所述数据集包括
树型结构文件系统中的数据和元数据的签名,其中所述文件系统数据和元数据作为对象被
存储在对象仓库中,每个对象具有全局唯一的内容衍生签名;

响应于所述命令,在所述源网络节点上访问所述数据集的先前存储快照的签名和
所述数据集的当前快照的签名,其中所述先前快照包括树型结构文件系统的所述数据和元
数据对象的所述签名的树,并且其中存储在所述源网络节点上的所述先前快照对应于存储
在所述远程网络节点处的先前远程快照;

在所述源网络节点处执行所述先前快照和所述当前快照之间的本地签名比较以
识别在所述先前快照和所述当前快照之间不匹配的一个或多个签名,其中所述本地签名比
较是从所述树的根开始的迭代的自上而下比较,并且其中不匹配的签名在所述树中具有不
同内容或不同定位中的至少一个;

将不匹配的签名发送到所述远程网络节点;

在所述远程网络节点上执行对于不匹配的签名的搜索;

从所述远程网络节点接收关于不匹配的签名是否存在于所述远程网络节点处的
响应;以及

如果不匹配的签名不存在于所述远程网络节点处,则把与不匹配的签名相关联的
数据发送到所述远程网络节点以供并入当前远程快照内。

在一个实施例中,源网络节点和远程网络节点跨广域网(WAN)进行通信。

在一个实施例中,不匹配的签名跨WAN被异步地发送。

在一个实施例中,该非暂时性计算机可读储存介质包括附加的指令,当被处理器
执行时,该附加的指令使得处理器执行包括在跨WAN发送之前批处理不匹配的签名的操作。

在一个实施例中,被批处理的签名包括来自树的不同兄弟节点的签名。

词汇表

下面是在本申请的各?#36136;?#26045;例中使用的术语的词汇表:

HA:高可用性。

蜂巢(Hive):数据集,即,树型结构文件系统的数据和元数据。

远程备份作业(或复制作业):追踪远程备份的控制平面(ControlPlane)作业。

复制任务:针对高延迟链路被优化的并且从源网络节点上的源快照复制大量数据
到远程网络(目标)节点以供远程备份的文件系统线程或线程组。线程或线程组在源节点上
运行。

HA保护备份:具有目标蜂巢的HA对的远程备份。目标蜂巢的HA对分别被称为被动
主要(passive primary)和第三(tertiary)。

附图说明

通过参照与以下附图结合的详?#35813;?#36848;,将更充分地理解本发明,其中:

图1图示用于在本发明的一个实施例中使用的节点的一个实施例的示意性框图;

图2图示数据路径子系统的一个实施例的示意性框图;

图3图示用于在本发明中使用的包括操作系统内核空间的虚拟文件系统的一个实
施例的示意性框图;

图4图示对象仓库的一个实施例的主要组成部分的示意性框图;

图5图示利用具有文件系统所需要的数据结构(诸如文件、?#26607;?#21644;inode(索引节
点)?#25104;?的对象仓库的文件系统的一个实施例的示意性框图;

图6图示现有?#38469;?#36828;程备份系统的示例;

图7图示根据利用本地签名比较的本发明的远程备份系统的实施例;

图8A图示根据本发明的一个实施例的包括用于远程备份的先前快照和新快照的
数据集的示意性框图;

图8B图示用于执行迭代的自上向下签名比较的示例性方法;

图8C图示在图8B中?#22659;?#30340;方法的示例性子例程,该子例程用于把被批处理的签名
发送到远程目标并分析响应;以及

图9图示示例性计算机系统实施例的示意性框图。

具体实施方式

下面详细?#33268;?#26412;公开的各?#36136;?#26045;例。虽然?#33268;哿司?#20307;的实现方式,但是应当理解,
这仅是为?#36865;际?#30340;目的。相关领域的?#38469;?#20154;员将认识到,在不脱离本公开的精神和范围的
情况下,可以使用其他部件和配置。

本公开的附加的特征和优点将在下面的描述中阐述,并且将从该描述中部分地变
得明显,或者可以通过对本文公开的原理的实践而习得。本公开的特征和优点可以借助于
在所附权利要求中特别指出的手段以及组合?#35789;?#29616;和获取。本公开的这些和其它特征将从
下面的描述和所附权利要求中变得更加充分显然,或者可通过对本文阐述的原理的实践而
习得。

应当理解,为?#36865;际?#30340;简单和清楚,在适当的地方,在不同的附图之间重复了附图
标记以指示相应或类似的元素。另外,阐述了许多具体细节以便提供对本文所描述的实施
例的透彻理解。然而,本领域普通?#38469;?#20154;员将理解,可以在没有这些具体细节的情况下实践
本文所描述的实施例。在其他实例中,还没有详?#35813;?#36848;方法、过程和组件,以免模糊相关的
所描述的相关特征。附图未必?#21069;?#27604;例的,并且某些部分的比例可以被扩大以更好地图示
细节和特征。描述不应被认为是限制本文所描述的实施例的范围。

节点系统

图1图示了节点100的一个实施例的示意性框图。节点100可以是具有以软件为中
心的架构的超融合基础设施节点,其紧密地集成计算、储存、联网和虚拟化资源以及其他技
术。例如,节点100可以是市场上可购得的系统,诸如可从位于Westborough MA USA的
SimpliVity公司获得的并入有文件系统的节点100可以
托管多个客户虚拟机(VM)102、104以及106,并且可以被配置为产生虚拟机的本地和远程备
份以及快照。在本发明的实践中,多个这种节点可以被布置在网络中,如?#28388;?#36848;。

为此,节点100可以在管理程序110上方包括虚拟设备108。虚拟设备108可以包括
与控制平面114和数据路径116通信的虚拟文件系统112。控制平面114可以应付在节点100
内的应用和资源之间的数据流。数据路径116可以在虚拟文件系统112和操作系统(OS)118
之间提供适合的I/O接口,并且可以使能诸如数据压缩、去重复和优化的特征。

节点100还可以在管理程序110以下包括多个硬件组件。例如,节点100可以包括储
存装置120,其可以是具有多个硬盘驱动器(HDD)122和/或固态驱动器(SSD)124的RAID储存
装置。节点100还可以包括存储器126(例如,RAM,ROM,闪存等)以及一个或多个处理器128。
最后,节点100可以包括无线和/或有线网络接口组件130以使能与其它节点的通信。

参照图2,数据路径116被进一步分解。如所示的那样,数据路径116包括复制管理
器200,其被配置为使用签名比较来执行远程备份,如参照图7所详?#35813;?#36848;的那样。数据路径
116还包括与控制平面114通信的文件系统202。文件系统202诸如通过实例化文件系统组
件、维护?#26607;?#21644;那些?#26607;?#20869;的文件等来负责管理数据路径116内的文件系统组件。文件系统
202还确定节点的I/O处理能力,并通过将数据写从主要节点(例如,节点100)镜像到次级节
点?#35789;迪指?#21487;用性。

文件系统202进一步为数据路径116内的各种组件提供同步和异步数据传送接口
二者。如参照图3~图4详细?#33268;?#30340;那样,对象仓库204和储存管理器206负责数据路径116和
I/O子系统208之间的数据对象I/O操作。

虚拟文件系统

现在参照图3,?#22659;?#30340;是图示用于在本发明中使用的虚拟文件系统的一个实施例
的示意性框图,该虚拟文件系统包括操作系统内核空间,如在2013年7月2日授权给
Beaverson等人的美国专利No.8,478,799中所描述的那样,该专利的公开通过引用被整体
并入本文中。如所示的那样,各种储存组件可以被包括在操作系统内核301中。尽管从Linux
环?#25345;?#32472;制,但是该图可以应用于诸如以及其他Unix类操作系
统的其他操作系统。

?#22659;?#20102;304式文件系统的示例,其中可以不失一般性地是
任何数量的文件系统(诸如ResierFs、Exts、btrfs以及zfs)中的任何一个。虚拟文件系统
(VFS)层303被用来抽出文件系统的许多共同特征,并且向用户空间300和其他组件提供一
致的接口360。VFS 303可以具有明确定义的“下边缘”接口350a、350b,任何文件系统可以使
用该接口来被VFS 303层辨别出。在实践中,通常?#34892;?#22810;文件系统在并行地工作。在该示例
中,文件系统304和(命名空间)文件系统307可以并行地运行。

文件系统一般位于由块驱动器305实现的块储存抽象的顶部。块储存可以在逻辑
单元号LUN本地储存装置309上,或者它可以在使用iSCSI协议的远程LUN上。块驱动器305还
可以在操作系统中具有明确定义的接口,诸如连接到对象仓库308的接口356a、连接到DICE
库310的接口356b以及连接到304的接口356c。

在该实施例中,文件系统包括堆叠在对象仓库308的顶部的(命
名空间)文件系统307(例如,如在授权给Beaverson等人的美国专利No.8,478,799中所描述
的那样)。在文件系统307和对象仓库308之间的接口352可以是诸如ANSI
T-10对象标准的各种工?#24403;?#20934;对象接口中的任一个,或可以是基于文件
系统307和/或对象仓库308要求的非标准对象接口。

对象仓库308可以被分区使?#36152;?#29992;功能的库(摘要、索引、压缩,?#29992;?DICE)库310)
被抽出,并且可以通过接口353被连接到DICE库310。库310可以完全用软件实现,或者利用
各种硬件加速313?#38469;?其中一个被?#22659;?。如果使用硬件加速器313,则该加速器可以具有
两大类的服务:一类用于计算密集型操作311(压缩、?#29992;堋?#25351;纹识别),另一类用于诸如索引
的存储密集型操作312。硬件实现方式可以具有一类或另一类或两者。

对象仓库308创建可以位于原始LUN、磁盘上的分区或大文件之上的对象容器。它
还可以使用诸如iSCSI或其他远程访问块协议(FCoE是另一个示例)的协议,沿着接口355经
由网络堆栈306来引用容器。网络文件系统(NFS)302位于网络堆栈306的顶部(经由接口
354),并且NFS被连接到VFS 303。网络堆栈306经由接口360被连接到LUN 309,并经由接口
359被连接到云310。

参照图4,对象仓库308被进一步分解。对象仓库308包含二进制不透明对象,其示
例是P 401,Q 402和R 403。对象可以具有不同的大小,尽管在优选实现方式中,它们是2的
幂。对象驻留在容器中的某个偏移处,偏移可以是字节偏移或者以最小对象大小为模的偏
移(即,如果最小对象是512字节,则偏移将乘以512以得到字节偏移)

每个对象具有名称,这里称为签名或指纹,其是对象的整个内容的?#29992;?#25688;要(散
列)。例如,在图4中,由H(p)、H(q)以及H(r)指示对象名称(签名)。以这种方式,可以包括数
据和/或元数据的每个对象可以具有从其数据的内容衍生出的全局唯一签名。

索引结构404保持追踪(?#25104;?对象名称、对象位置以及对象引用。在该去重复文件
系统和对象仓库中,每个唯一数据或元数据对象的单个副本可以被存储,由其签名来标识。
对象的引用在每次写对象时递增。换句话说,虽然OmniStack文件系统307可以生成它认为
的相同对象的许多副本,然而对象仓库308仅存储一个,但保持跟踪命名空间实际上认为它
有多少副本。这样做,对于系统来说,去重复是自然的。

对象仓库308可以具有几个接口类352a-d。读、写、?#22659;?#25509;口352a执行所声明的功
能。在这种情境下,对象?#22659;?#23454;际上是对象引用计数的减少。只有当引用计数走到0时,才会
释放对于对象仓库内的对象的储存。索引操作352b使能按名称枚举对象、引用计数调整以
及按名称查找对象。对象仓库308具有事务语义(ACID属性),并且事务边界通过事务操作
352c?#36824;?#29702;。除了列出待定的事务以外,这还包括启动、提交以及中止事务。供应接口352d
使能创建、?#22659;?#21512;并、拆分以及聚合对象仓库。

索引404是其主键为对象名称(签名)的?#25104;洹?#22312;系统中对于每个对象都有索引条
目。每个条目包含:

a)对象的内容的签名。签名由内容的?#29992;?#25688;要(散列)生成。

b)指示对象被引用了多少次的引用计数。引用计数可以使用饱和运算来节省空
间。例如,它可以仅使用8位来追踪引用:引用计数可以被增加和递减,但是如果它等于或超
过255,则计数“饱和?#20445;?#24182;且不允许进一步递减。因为对象具有引用计数,所以只要有同样的
对象,对于系统来说,去重复是自然的。

c)物理定位符。如果对象在物理磁盘上,则这可以是逻辑块号LBN。如果对象由托
管提供商(例如,Amazon S3)托管,则其可以是对云对象的引用。

d)用于各?#36136;?#29992;的标?#23613;?#19968;个标志指示对象是否被存储压缩,另一个指示对象是
否被?#29992;堋?#20854;他标志是可用的,但没有被分配给特定使用。

分配?#25104;?20是用于在对象容器406上的分配块的位图。对象容器406是可随机寻
址的永久性储存抽象。示例包括跨广域网(WAN)(即,在诸如大于60英里的距离的大地理距
离上?#30001;?#30340;电信网络或计算机网络)的原始LUN、文件、磁盘上的分区或iSCSI装置。对象容
器406可以具有几个组件407-411(未按比例?#22659;?。除了存在于已知偏移处的容器描述符块
407之外,其他组件的顺序并不重要。对象索引408可具有容器驻留部分或索引404的部分,
或两者,诸如B树或另一树型结构。分配?#25104;?20也可以部分地在磁盘上和在索引404中。可
以利用?#26114;艏际?#26469;完成在两者之间的迁移。

当对象仓库被修改时,事务日志411被保留在永久性储存装置上。日志追踪所有对
象活动,包括读、写、?#22659;?#24341;用调整等?#21462;?#26085;志被按照时间顺序保留,并且周期性地滚动到
主索引408中。在搜索主索引之前,对象活动必须首先“命中?#27604;罩尽?#27599;个日志条目包括操作
类型352a、352b、352c、352d、指纹、引用计数、事务ID或时期数量(epoch number)以及池位
置。日志条目在结构上与索引条目相似,但添加了事务ID。

全局对象命名使得对象仓库能够四处移动对象,同?#27604;?#28982;维持一致的命名和访
问。移动对象的原因包括:

a)为了性能原因,在物理磁盘上移动相关对象以使其彼此接近。

b)跨?#25910;?#36793;界复制对象。这可以跨两个分开的本地磁盘、一个本地磁盘和一个远
程磁盘、或任何多个上述磁盘。复制还可以给予读性能益处。复制还可以包括诸如利用擦除
代码来拆分对象。

c)?#36828;?#35937;的后台操作,诸如压缩、解压缩、?#29992;堋?#35299;密。

d)根据对象的使用?#24503;?#25110;预期使用?#24503;识?#31227;动对象。

图5图示一起被分组到数据结构中的一组对象的一个实施例的示意性框图,该数
据结构(本文中被称为“hnode”)可以被专门化为文件系统所需要的其他数据结构,诸如文
件、?#26607;?#21644;imap。如本文所提及的,hnode是将内容绑定在一起的数据结构,诸如文件。有时
内容可以非常大(许多GB),不适于连续地在磁盘或永久性介质上。将内容解体,并作为离散
单元存储。在传统文件系统的情况下,这将是磁盘上的块。在本公开中,这些是对象名称(签
名)。hnode在?#25104;?#32467;构中保留所有对象名称的列表。线性列表是这种?#25104;?#32467;构的一个示例,
但是更复杂的间接表也是可以的。

hnode包括标识对象的内容的对象名称(签名)。因此,hnode本身具有明确定义的
全局唯一的名称或签名(其内容的散列)。

如图5所示,hnode 500是可随机寻址的内容序列,与文件相似。如何诠释内容取决
于情境。hnode可以被进一步专门化为文件、?#26607;?#21644;inode?#25104;?以下进一步?#33268;?#30340;imap)。在
面向对象编程的说法中,类文件、?#26607;?#21644;inode?#25104;?imap)是从基类hnode衍生出的。

文件504可以是瘦包装器,其使得hnode显现为可以被打开、关闭、读、写等等的正
常文件。?#26607;?05是hnode 500的另一种诠释。?#26607;?05是文件系统inode号(整
数)到文件名称(?#22336;?#20018;)的?#25104;?01。?#25104;?#21487;以采取各?#20013;问劍?#21253;括但不限于线性列表、B树、
散列?#25104;洹?#20854;他树型结构?#21462;?#22914;果?#25104;?01完全在存储器中,则可以将该?#25104;?#20018;行化和解串
行化。

imap(“inode?#25104;洹?502将文件系统inode号(来?#38405;柯?05)翻译成对象摘要(即,
作为对象内容的散列的“摘要?#20445;?#19982;本文中的“签名”相同)。对象可以表示hnode(并且因此,
通过扩展,表示文件、?#26607;?#25110;其他imap)、诸如超级块的结构、或诸如与虚拟机相关联的数据
的其他数据。对于已知的对象,imap 502可以具有预留的位置,诸如索引0、索引1等?#21462;?#31034;例
包括先前的imap(一个或多个)、文件系统超级块等?#21462;?br />

一般地,imap 502是inode号和对象签名(摘要)之间的?#25104;?转换)。这使命名空间
文件系统能够适应(利用)典型文件系统的inode号。通过使用该间接表,inode号可以保持
不变,但是相关联的对象名称(签名)可以随着对应于inode号的文件数据和元数据改变而
改变。由于imap本身是对象,该名称也将随着文件系统被修改而改变。在该实施例中,文件
系统的所有数据和元数据都是对象,每个都具有全局唯一的内容衍生签名,并且每个文件
系统?#26607;?#26159;对于包括文件构造(即,文件的?#26607;?的对象的签名的树。

与传统文件系统相似,在imap的情况下,文件系统树的根可以在已知的inode号处
(参见imap 502中的针对摘要(根)的索引2)。以这种方式,在时间t处的imap的签名基本上
表示文件系统在时间t处的完整“快照”。增加此签名下的每个可见对象的引用计数会锁定
快照,并?#19968;?#38459;止它被?#22659;?#32780;不论其他文件系统活动如何。

一旦创建了快照签名后,可以继续在文件系统(可写的快照)上工作,或者将其本
地存储?#28304;?#24314;备份供将来使用。快照签名还可以被发送到、并存储于位于不同的对象仓库
上的另一个系统(在远程网络节点上)处,?#28304;?#24314;远程备份。如果对象仓库不能解决特定签
名的读请求,只要它知道其他对象仓库,则它可以将请求转发到那些其他对象仓库。因此,
快照的签名可以移动到其对象仓库可能不完全托管所有的快照的数据(对象)的系统,但是
经由刚刚描述的机制,快照的签名仍然是完全一致和可用的。

已经公开了可以在本发明中利用的计算系统和文件储存系统的各种组件,本公开
现在提供使用签名比较来创建远程备份的更详细的描述。

现有?#38469;?#36828;程备份系统

图6图示了用于执行远程复制的已知系统600和方法。在系统600中,控制平面可以
启动复制作业,该复制作业基本上在源网络节点602上的文件系统中产生复制任务线程或
线程组。在复制任务开始之前,控制平面可以准备源网络节点602以及一个或多个远程目标
网络节点,诸如目标节点604、606。在源节点602上,控制平面可?#28304;?#24320;蜂巢(数据集)607作
为主要。由此,系统600可以停顿和汇总(rollup)数据集607。控制平面然后可以采取数据集
607的快照,以产生作为主要而打开的数据集697的新快照主要608。新快照608被视为源蜂
?#19981;?#28304;数据集,并且包括用于远程备份的与新快照相关联的数据和元数据对象的签名树。
在目标节点604上,控制平面可?#28304;?#24320;空的被动主要蜂巢(数据集)610作为主要。控制平面
还可以将数据集610添加为关于源数据集608的远程备份的接收者。在目标节点606上,控制
平面可?#28304;?#24320;空的第三蜂巢(数据集)612作为次级,并且可以将数据集612添加为关于数据
集610的次级副本。

一旦控制平面已经建立了节点602、604和606,与新快照608相关联的签名在WAN
614上被发送到目标节点604。与新快照608相关联的签名也从目标节点604被发送到目标节
点606(例如,在LAN、WAN?#31995;?。然后,目标节点604可以搜索现有数据616以确定签名中的哪
些(如果有的话)存在于目标节点604上。相似地,在一些情况下,目标节点606可以搜索现有
数据618以确定签名中的哪些(如果有的话)存在于目标节点606上。

在完成搜索操作之后,目标节点604可以向源节点602发送标识出不存在于目标节
点604和/或目标节点606上的签名的响应。然后,源节点602可以在WAN 614上发送与不存在
的签名相关联的数据到目标节点604。然后,所发送的数据可以被并入到数据集610、612中
?#28304;?#24314;新快照608的远程备份(一个或多个)。一旦完成复制任务,控制平面会关闭数据集
608、610以及612。

具有本地签名比较的远程备份系统

图7图示了根据本发明的一个实施例的使用签名比较来创建远程备份的系统700。
与图6的现有?#38469;?#30340;系统和方法相比,这?#20013;?#30340;系统和方法在时间和网络资源的利用方面
明显更?#34892;А?br />

在系统700中,控制平面可以响应于执行远程备份的请求而启动复制作业。启动复
制作业基本上在本地源网络节点702上的文件系统中产生复制任务线程或线程组。在复制
任务开始之前,控制平面可以准备源网络节点702和一个或多个远程目标网络节点,诸如目
标节点704、706。在源节点702上,控制平面可?#28304;?#24320;蜂巢(数据集)707作为主要。由此,系统
700可以停顿和汇总数据集707。然后,控制平面可以采取数据集707的快照,以产生作为主
要而打开的数据集707的新快照主要708。新快照708被视为源蜂?#19981;?#28304;数据集,并包括用于
远程备份的与新快照相关联的数据和元数据对象的签名树。

控制平面还把先前快照主要720打开为主要。一旦打开,系统700可以确定先前快
照主要720是否包括最新的远程备份的快照(即,先前快照)及其相关联的数据、元数据、签
名?#21462;?#22914;果它不包括(例如,先前快照不存在),则系统700回退到用于远程备份操作的常规
复制作业(例如,图6)。

在目标节点704上,控制平面可?#28304;?#24320;空的被动主要蜂巢(数据集)710作为主要。
控制平面还打开具有最新备份(即,对应于先前快照720的备份)的根签名的蜂巢(数据集)
722(被称为先前快照被动主要722)作为主要。控制平面可以添加数据集710作为关于新快
照708的远程备份的接收者。在目标节点706上,控制平面可?#28304;?#24320;空的第三蜂巢(数据集)
712作为次级。控制平面还打开具有最新远程备份的根签名的蜂巢(数据集)724(被称为先
前快照第三724)作为次级,并且可以将数据集712添加到被动主要数据集的副本集作为次
级。数据集707、708、710、712、720、722和724中的每一个包括树型结构文件系统的数据和元
数据的签名。文件系统数据和元数据作为对象被存储在对象仓库中,每个对象具有全局唯
一的内容衍生签名,如先前所述。

在设置源节点和目标节点之后,系统700验证先前快照722、724的根签名与先前快
照720的根签名匹配。当最新的远程备份存在于先前快照720中时,基于之前的复制操作,其
数据应已经存在于在目标节点704、706上的先前快照722、724中。因此,源节点702可以首先
在新快照数据集708和先前快照720之间本地执行签名比较。只有那些本地不匹配的签名比
较需要跨WAN 714被发送到远程目标704(以及第三目标706)。然后,远程目标可?#36828;?#31614;名进
行本地检查,因为来自其他数据集的签名可能已经存在(被存储)于远程节点上。

接下来,系统700通过首先比较新快照708的元数据签名与先前快照720的元数据
签名来同步元数据。该比较从根签名开始并以迭代方式(例如,使用深度优先?#38469;酢?#23485;度优
先?#38469;?#25110;其组合)沿树结构向下移动。对于每个不匹配的签名,系统700可以在WAN 714上向
目标节点704、706发送签名元数据。

由此,系统700检查在新快照708上的蜂巢的子树高度是否匹配先前备份720的蜂
巢的子树高度。如果不匹配,则系统700回退到用于该特定文件的常规复制作业(例如,图
6)。否则,从根签名开始并以自上而下的迭代方式进行,系统700本地比较新快照708的签名
与先前快照720的签名。以下参考图8A、8B和8C而更详细地描述这种比较过程。如果签名本
地匹配,则系统跳过该签名,因为相应的文件数据和/或元数据在目标节点704、706上必然
匹配。如本文所叙述的那样,如果签名在数据集树内具有相同内容(例如,名称)以及定位,
则认为签名匹配。如果签名本地不匹配(即,不同的内容或定位),则系统700可以在WAN 714
上发送用于在目标节点704、706处进行比较的签名内容和定位,以查看来自其他数据集的
数据和/或元数据是否已经远程地存在。

当向目标节点704、706发送签名以进行比较时,一种方法是在单个网络消息中仅
发送属于相同树节点的(一个或多个)签名(从源节点到目标节点),因此在数据集树上逐个
节点地进行处理。因此,属于不同兄弟树节点的签名将在分开的网络消息中被发送。这可能
造成例如在一个网络消息中发送非常少量的签名(例如,一个)。因为与被发送的签名的相
对小的大小相比大的每个消息的开销,并且因为大量的具有长的往返时间的消息,特别是
跨WAN的消息,这种方法可能更低效。

因此,在一个实施例中,系统700可以批处理单个消息中的许多签名(甚至属于不
同兄弟树节点的签名)。在这样做时,系统700将消息的发送与数据集树的逐节点处理解耦。
要发送的签名可以被缓冲,然后取决于多少签名可以纳入缓冲器中而被打包并在一个网络
消息中发送。系统700可以异步地发送经批处理的签名到目标节点以进行比较。

一旦在目标节点704处接收到签名,就可以将它们从目标节点704发送到第三目标
节点706(例如经LAN,WAN等)。这样做允许远程备份提供高可用性。系统700已经确定没有签
名匹配(在相同树位置处)远程地存在于(一个或多个)目标处,因为它已经本地匹配。因此,
目标节点704、706可以搜索现有数据716、718以确定签名是否存在(被存储)于远程节点处。
如果在目标节点704、706中的任一个上发现签名,则系统700完成处理该签名,因为相应的
文件数据在目标节点上是可用的。否则,该签名没有被远程地存储,并且目标节点704可以
向源节点702发送标识出该签名不存在于目标节点704、706上的响应。在一些情况下,目标
节点704可以批处理对源节点702的响应。如果远程不存在的签名对应于元数据签名,则系
统700可以继续比较其数据集树子签名。如果它对应于文件数据签名,则系统700可以批处
理与签名相关联的数据以发送到目标节点704。系统可以异步地发送经批处理的数据到目
标节点704,目标节点704在一些情况下可以将数据传送到目标节点706。所发送的数据可以
被并入到目标节点704、706处的远程备份(即,数据集710、712)中。

本发明在其中(与先前的快照的)大量签名比较将得到匹配的结果的远程备份方
面是特别有益的。在这种情况下,系统700减少在WAN 714上的流量,并?#19968;?#21487;以由于利用大
量的本地签名匹配来避免高延迟而减少备份时间。额外的签名比较的?#38750;行?#26524;将取决于在
源节点702上的数据集元数据读以及其他因素。

初步测试表明,具有大量随机写(诸如来自IoMeter)的虚拟机磁盘(VMDK)的备份
与优选使用情况相一致。一个示例是使用用可去重复(dedupable)可压缩数据进行的
IoMeter64K随机写的备份。每个备份之前都有20分钟的写。第一次备份时,在远程数据仓库
(目标节点)上没有数据。此场景展示了有多少签名比较在远程数据?#34892;?#19978;匹配。下表图示
了与先前方法相比,当前公开系统的潜在益处。

表1:使用用可去重复可压缩数据进行的IoMeter 64K随机写的备份


备份1
备份2
所处理信号
37,949,424
31,016,232
所匹配信号
30,616,946
29,634,442
匹配百分比
80.0%,
95.5%
时间
01:04:00
00:14:00
大小
440GB
440GB
所发送
37.9GB
1GB

作为非限制性示例,以下是用于实现当前公开系统的一部分的示例接口:

void FileSystemManager::replicatePeer(const HiveId&hiveId,const
NodeId&target,const RebuildComplete&finished,const HiveId&prevBackupHiveId=
NULL_GUID);

如果prevBackupHiveId是NULL_GUID,则系统可?#36828;?#20110;整个远程备份操作按照常
规方式来执行文件系统复制。否则,如果提供(本地存储)了prevBackupHiveId(快照),则系
统可以尝试使用先前备份快照来执行本地签名比较。在调用该API之前,在源节点上,先前
的备份快照和数据集必须已由控制平面作为主要打开,并且必须在复制期间保?#36136;?#25171;开
的。?#36865;猓?#30446;标数据集(例如,被动主要数据集和第三数据集)应已经被控制平面设置为与先
前备份快照相同的根签名。否则,文件系统复制将回退到用于远程备份操作的常规复制作
业。可以修改API以在没有提供数据集或快照时首先检查所理解或假定的默认先前备份数
据集或快照。

文件系统假定在复制期间在先前备份数据集上没有并发I/O,与关于源数据集的
假定相似。文件系统可以允许控制平面从相同快照运行多个复制。对先前备份快照或数据
集的任何写都可能导致将不正确的数据备份到目标数据集。

在一个实施例中,系统可以在源节点上保持最新的远程备份的快照,并确保后续
远程备份去往相同的目标节点对。在源节点上,系统应打开最新的远程备份快照或数据集
(如果一个存在的话),并将蜂巢ID传递(或以其他方式指示)给svtfs::
FileSystemManager::replicatePeer API。在复制期间,此数据集应保?#36136;?#25171;开的,并且文
件系统假定没有对其的并发I/O,或至少没?#34892;础?#22312;目标被动主要节点和目标三级节点上,
系统打开一个新的空数据集,将数据集的根签名设置为最新的远程备份的根签名(在源上
调用svtfs::FileSystemManager::replicatePeer API之前)。

图8A图示了示例性数据集800,其包括与关联于最新的远程备份(即,先前快照)的
数据和元数据对象对应的签名树。另外,图8A?#22659;?#25968;据集802,其包括与关联于旨在用于远
程备份的新快照的数据和元数据对象对应的签名树。如所示的那样,数据集800、802内的每
个签名形成在各自树中的单独节点。例如,签名“1”和“10”分别在数据集800、802的最高层
级(被指示为层级1(根))处形成根树节点804和818。从根节点804、818分支出的是位于数据
集800、802的中间层级(被指示为层级2)处的多个子树节点(即,节点806、808、820以及
822)。最后,从节点806、808、820以及822中的每一个分支出的是位于数据集800、802的底层
级(被指示为层级3)处的多个子树节点(即,节点810、812、814、816、824、826、828以及830)。
因为节点810、812、814、816、824、826、828以及830没有进一步的元数据子节点(即,它?#21069;?br />括它们各自的树的底部),所以它们被称为叶树节点。

为了确定新快照和先前快照之间的差异,可以执行先前快照的签名和当前快照的
签名之间的迭代的自上向下签名比较,如图8中所图示的那样。在图8B中描述的方法不旨在
是限制性的,并且可替代实施例可以在执行签名比较时使用深度优先?#38469;酢?#23485;度优先?#38469;?br />或其组合。为了清楚说明,相关于被配置为实践该方法的系统(例如,系统700)并参照在图8
中所示的数据集800、802来描述图8B中所描述的方法。

该方法开始于在步骤850中将新快照的根树节点签名附加到需要被比较的树节点
签名的列表。例如,数据集802中的根树节点818的签名(“10”)可以被附加到需要被比较的
树节点签名的列表。接下来,在步骤852处,系统(例如,系统700)可?#28304;有?#35201;被比较的树节
点签名的列表中移除第一项,并且可以执行新快照的树节点签名和先前快照的对应的子树
节点签名之间的本地比较。例如,在数据集802中的根树节点818的签名(“10”)可以被从列
表中移除,并且可以在本地(例如,在系统700中的源702上)与在数据集800中的根树节点
804的签名(“1”)进行比较。

基于本地比较,系统700可以确定新快照中的签名的内容和定位二者是否匹配先
前快照的签名的内容和定位二者(步骤854)。如果签名匹配,则系统700可以确定对于该签
名(或其子签名,如果有的话)不需要进一步的比较,并且可以前进到步骤860而不用将签名
发送到远程目标。例如,因为在数据集802中的子树节点820的签名(“2”)在树中的内容以及
定位两方面?#21152;?#25968;据集800中的子树节点806的签名(“2”)匹配,所以系统可以确定在节点
820中的该签名(“2”)以及在叶节点824和826中的签名(“4”)和(“5”)不需要被发送到远程
目标(例如,目标节点704、706)。如果在步骤854中签名不匹配,则系统700可以在步骤856中
批处理签名以发送到远程目标(例如,系统700中的目标节点704、706)。

在批处理要发送到远程目标的签名之后,系统700可以确定批处理是否已满(步骤
858)。如果批处理具有用于至少再多一个签名的空间,则系统700可以前进到步骤860。否
则,如果批处理是满的,则系统700可以移动到图8C中图示的子例程中,并且可以把经批处
理的签名(同步地或异步地)发送到远程目标(步骤864)。在步骤866处,系统700可?#28304;?#36828;程
目标接收标识所发送的签名在远程目标处的状态(即,签名是否存在于远程目标上)的响
应。由此,系统700可以选择在响应中被标识的签名以供评估(步骤868),并且可以确定该响
应是否将所选择的签名标识为存在(步骤870)。如果响应指示所选签名远程地存在,则系统
确定其不需要向远程目标发送与该签名相关联的数据,并且可以前进到步骤878。否则,如
果所选择的签名没有远程地存在,则系统700可以在步骤872中确定与所选择的签名相关联
的树节点是否处于叶层级(例如,在图8A中的层级3)。如果所选择的签名的树节点处于叶级
别,则系统700可以将与该签名相关联的数据发送到远程网络节点以并入到远程快照内(步
骤874),并且可以继续到步骤878。如果所选择的签名不对应于叶节点,则系统700可以将与
所选择的签名相关联的子树节点的(一个或多个)签名附加到需要被比较的签名的列表(步
骤876)。由此,系统700可以前进到步骤878。在步骤878处,系统700可以确定其是否已经评
估了来?#38405;?#26631;节点的响应中所标识的所有签名。如果不是,则系统700可返回到步骤868以
选择新签名并重复上述过程。否则,系统700可以行进到步骤860。

返回来参照图8B,在步骤860处,系统700可以确定需要被比较的树节点签名的列
表是否为空。如果列表为空,则系统700可以指示比较完成(步骤862)。否则,如果列表不为
空,则系统700可以返回到步骤852,并且可以重复该比较过程,直?#36739;?#32479;700确定新快照和
先前快照之间的签名比较完成。

计算机系统架构

参照图9,示例性系统和/或计算装置900包括处理单元(CPU或处理器)920和系统
总线910,系统总线910耦接各种系统组件,系统组件包括系统存储器930,诸如对于处理器
920的只读存储器(ROM)940和随机存取存储器RAM)950。系统900可以包括与处理器920直接
连接、紧密靠近或集成为处理器920的一部分的高速存储器的高速缓存922。系统900将来自
存储器930和/或储存装置960的数据复制给高速缓存922以供处理器920快速访问。以这种
方式,高速缓存提供了避免处理器920在等待数据时的延时的性能提升。这些和其他模块可
以控制或被配置为控制处理器920执行各种操作或动作。其他系统存储器930对于使用也是
可用的。存储器930可以包括具有不同性能特性的多种不同类型的存储器。可以理解,本公
开可以在具有多于一个处理器920的计算装置900上或在联网在一起的计算装置的组或群
集上操作,以提供更大的处理能力。处理器920可以包括任何通用处理器和硬件模块或软件
模块,诸如存储在储存装置960中的模块1 962,模块2 964和模块3 966,其被配置为控制处
理器920以及软件指令被并入处理器中的专用处理器。处理器920可以?#21069;?#21547;多个核或处理
器、总线、存储器控制器、高速缓存等的自给式计算系统。多核处理器可以是对称的或非对
称的。处理器920可以包括多个处理器,诸如在不同插槽中具有多个物理上分开的处理器的
系统,或者在单个物理芯片上具有多个处理器核的系统。相似地,处理器920可以包括位于
多个分开的计算装置?#26800;?#26159;诸如经由通信网络而一起工作的多个分布式处理器。多个处理
器或处理器核可以共享诸如存储器930或高速缓存922的资源,或者可以使用独立资源来操
作。处理器920可以包括状态机、专用集成电路(ASIC)或包括现场可编程门阵列的可编程门
阵列(PGA)中的一个或多个。

系统总线910可以?#21069;?#25324;存储器总线或存储器控制器、外围总线以及使用各种总
线架构中的任一种的本地总线的几种类型的总线结构中的任一种。存储在ROM 940等中的
基本输入/输出(BIOS)可以提供帮助在计算装置900内的元件之间传送信息(诸如在启动期
间)的基本例程。计算装置900还包括储存装置960或计算机可读储存介质,诸如硬盘驱动
器、磁盘驱动器、光盘驱动器、磁带驱动器、固态驱动器、RAM驱动器、可移动储存装置,廉价
磁盘冗余阵列(RAID)、混合储存装置?#21462;?#20648;存装置960可以包括用于控制处理器920的软件
模块962、964、966。系统900可以包括其他硬件或软件模块。储存装置960通过驱动接口连接
?#36739;?#32479;总线910。驱动器和相关联的计算机可读储存装置为计算装置900提供计算机可读指
令、数据结构、程序模块以及其他数据的?#19988;资?#24615;储存。在一个方面,执行特定功能的硬件
模块包括存储在与必要的硬件组件(诸如处理器920、总线910、显示器970等)连接的?#34892;?#35745;
算机可读储存装置中的用于实施特定功能的软件组件。在另一方面,系统可以使用处理器
和计算机可读储存装?#32654;?#23384;储指令,当指令被处理器执行时,使得处理器执行操作、方法或
其他特定动作。可以取决于装置的类型(诸如装置900是小型装置、手?#36136;?#35745;算装置、台式计
算机还是计算机服务器)来修改基本组件以及恰当的变化。当处理器920执行指令以执行
“操作”时,处理器920可以直接执行操作和/或促进、引导另一个装置或组件或者与另一个
装置或组件合作来执行操作。

尽管本文描述的示例性实施例采用硬盘960,但是也可以在示例性操作环?#25345;?#20351;
用可以存储可由计算机访问的数据的其他类型的计算机可读储存装置,诸如磁带?#23567;?#38378;存
卡、数字多功能盘(DVD)、卡盘、随机存取存储器(RAM)950、只读存储器(ROM)940、包含比特
流的电缆?#21462;S行?#35745;算机可读储存介质、计算机可读储存装置或计算机可读存储器装置明
确地排除了诸如暂态波、能量、载波信号、电磁波和信号本身的介质。

为了使能与计算装置900的用户交互,输入装置990表示任何数量的输入机构,诸
如用于语音的麦克风、用于?#36136;?#25110;图?#38382;?#20837;的触敏屏幕、键盘、鼠标,运动输入,语音等?#21462;?br />输出装置970还可以是本领域?#38469;?#20154;?#24065;?#30693;的许多输出机构中的一个或多个。在一些实例
中,多模?#36739;?#32479;使用户能够提供多种类型的输入以和计算装置900通信。通信接口980一般
支配和管理用户输入和系统输出。对于在任何特定硬件布置上的操作没有限制,因此所描
绘的基本硬件可以容易地被随着被开发而改进的硬件或固件布置替代。

为了清楚说明,示例性系统实施例被呈现为包括单独的功能块,其包括被标记为
“处理器”或处理器920的功能块。这些块表示的功能可以通过使用共享或专用的硬件来提
供,硬件包括但不限于能够执行软件和硬件的硬件,诸如专用来作为在通用处理器上执行
的软件的等同物来操作的处理器920。例如,图9中呈现的一个或多个处理器的功能可以由
单个共享处理器或多个处理器提供。(术语“处理器”的使用不应该被领会为专有地指能够
执行软件的硬件)。示例性实施例可以包括微处理器和/或数?#20013;?#21495;处理器(DSP)硬件、用于
存储执行以下描述的操作的软件的只读存储器(ROM)940,以及用于存储结果的随机存取存
储器(RAM)950。还可以提供超大规模集成(VLSI)硬件实施例以及与通用DSP电路组合的定
制VLSI电路。

各?#36136;?#26045;例的逻辑操作被实现为:(1)在通用计算机内的可编程电路上运行的计
算机实现的步骤、操作或过程的序列;(2)在专用可编程电路上运行的计算机实现的步骤、
操作或过程的序列;和/或(3)可编程电?#32442;?#30340;互连机器模块或程序引擎。在图9中?#22659;?#30340;系
统900可以实践所叙述的方法的所有或部分,可以是所叙述的系统的一部分,和/或可以根
据在所叙述的?#34892;?#35745;算机可读储存装置中的指令进行操作。这种逻辑操作可以被实现为模
块,其被配置为控制处理器920根据模块的编程来执行特定功能。例如,图9图示3个模块,即
Mod1 962、Mod2 964和Mod3 966,它们是被配置为控制处理器920的模块。这些模块可以被
存储在储存装置960上并在运行时被加载到RAM 950或存储器930中,或者可以被存储在其
他计算机可读储存装置位置中。

示例计算装置900的一个或多个部分,高达并包括整个计算装置900,可以被虚拟
化。例如,虚拟处理器可以是软件对象,其根据特定指令集来执行,甚至在与虚拟处理器具
有相同类型的物理处理器不可用时也如此。虚拟化层或虚拟“主机”可以通过将虚拟化操作
转化为实际操作来使能一个或多个不同的计算装置或装置类型的虚拟组件。然而,最终每
个类型的虚拟化硬件由一些底层的物理硬件实现或执行。因此,虚拟化计算层可以在物理
计算层之上操作。虚拟化计算层可以包括虚拟机、覆盖网络、管理程序、虚拟交换机以及任
何其他虚拟化应用中的一个或多个。

处理器920可以包括本文所公开的所有类型的处理器,包括虚拟处理器。然而,当
提及虚拟处理器时,处理器920包括与在虚拟化层中执行虚拟处理器相关联的软件组件,以
及执行虚拟化层所需要的底层硬件。系统900可以包括接收存储在计算机可读储存装置中
的指令的物理或虚拟处理器920,所述指令使得处理器920执行某些操作。当提及虚拟处理
器920时,系统还包括执行虚拟处理器920的底层物理硬件。

在本公开的范围内的实施例还可以包括用于携带或在其上存储计算机可执行指
令或数据结构的?#34892;?#21644;/或非暂时性计算机可读储存装置。这种?#34892;?#35745;算机可读储存装置
可以是可由通用或专用计算机访问的任何可用装置,包括如上所述的任何专用处理器的功
能设计。作为示例,而非限制,这种?#34892;?#35745;算机可读装置可以包括RAM、ROM、EEPROM、CD-ROM
或其他光盘储存装置、磁盘储存装置或其他磁储存装置,或者可以被用于以计算机可执行
指令、数据结构或处理器芯片设计的?#38382;?#26469;携带或存储期望的程序代码的任何其他装置。
当经由网络或另一通信连接(或者硬连线、无线或者其组合)向计算机提供信息或指令时,
计算机把该连接适当地视为计算机可读介质。因此,任何这种连接被适当地称为计算机可
读介质。以上的组合也应当被包括在计算机可读储存装置的范围内。

计算机可执行指令包括:例如使得通用计算机、专用计算机或专用处理装置执行
某个功能或某组功能的指令和数据。计算机可执行指令还包括由在独立或网络环?#25345;?#30340;计
算机执行的程序模块。一般地,程序模块包括在执行特定任务或实现特定抽象数据类型的
专用处理器等的设计中固有的例程、程序、组件、数据结构、对象和功能。计算机可执行指
令、相关联的数据结构和程序模块表示用于执行本文公开的方法的步骤的程序代码装置的
示例。这种可执行指令或相关联的数据结构的特定序列表示用于实现在这种步骤中描述的
功能的相应动作的示例。

本公开的其他实施例可以在具?#34892;?#22810;类型的计算机系统配置(包括个人计算机、
手持装置、多处理器系统、基于微处理器或可编程的消费电子产品、网络PC、小型计算机、大
型计算机等)的网络计算环?#25345;?#23454;践。实施例还可以在分布式计算环?#25345;?#23454;践,其中任务由
通过通信网络链接(或者通过硬连线链路、无线链路或者通过其组合)的本地和远程处理装
?#32654;?#25191;行。在分布式计算环?#25345;校?#31243;序模块可以位于本地和远程存储器储存装置二者中。

上述各?#36136;?#26045;例仅以示例的方式被提供,而不应被领会为限制本公开的范围。例
如,本文的原理一般适用于语音对话系统,并且可以用于其任何应用。可以在不用遵循本文
所图示和描述的示例实施例和应用的情况下并且在不脱离本公开的精神和范围的情况下,
对本文所描述的原理做出各?#20013;?#25913;和改变。叙述了组的“至少一个”的权利要求语言指示该
组的一个?#31245;?#25110;该组的多个?#31245;?#28385;足该权利要求。

关于本文
本文标题:用于优化的签名比较和数据复制的系统和方法.pdf
链接地址:http://www.pqiex.tw/p-6091865.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 股票指数怎么计算的 股票指数期货是为适应人们管理股市风险 股票行情601299 股票行情大盘走势软件 股票配资软件 一阳指炒股软件 股票融资100万一天多少利息 股票涨跌谁控制 在线股票行情 国际股票指数纳入标准