确定用于作业复制在存储装置上存储的对象的时间表的制作方法

文档序号:6498097阅读:207来源:国知局
确定用于作业复制在存储装置上存储的对象的时间表的制作方法
【专利摘要】一种技术包括排队复制在存储装置上存储的对象数据的作业。对于至少一个所述作业,所述技术包括至少部分地基于完成所述作业的失败尝试的数量选择性地调整所述作业何时出现在时间表中。
【专利说明】确定用于作业复制在存储装置上存储的对象的时间表

【背景技术】
[0001] 典型的计算机网络可以具有备份和恢复系统,以用于在数据变成被损坏、被盖写、 受到病毒攻击等的情形下把网络上的数据(例如,被包含在一个或多个文件中的数据)复原 到先前状态的目的。备份和恢复系统典型地包括大容量存储设备,诸如,磁带驱动器和/或 硬盘驱动器;以及所述系统可以包括物理和/或虚拟的可移除存储设备。
[0002] 例如,备份和恢复系统可以在磁带上存储备份数据,并且在把备份数据转移到给 定磁带之后,磁带可以被从其带驱动器中移除,并且被存储在安全位置中,诸如,在防火保 险箱中。可替代地,备份和恢复系统可以是基于虚拟带库的系统,所述系统模仿并取代物理 磁带驱动器系统。以这种方式,在基于虚拟带库的系统的情形下,虚拟盒式磁带(而不是磁 带)存储所述备份数据。

【专利附图】

【附图说明】
[0003] 图1是依据示例实现方式的包括备份和恢复系统的计算机网络的示意图。
[0004] 图2是依据示例实现方式的由图1的备份和恢复系统使用的对象存储的图示说 明。
[0005] 图3是依据示例实现方式的在备份会话期间创建的对象存储中的对象的图示说 明。
[0006] 图4是依据示例实现方式的描绘了复制备份数据的技术的流程图。
[0007] 图5是依据示例实现方式的描绘了访问在图1的备份和恢复系统上存储的基于对 象的备份数据并且控制复制备份数据的操作的至少一个方面的技术的流程图。
[0008] 图6是依据示例实现方式的描绘了由图1的备份应用使用来调整由备份和恢复系 统对数据的复制的技术的流程图。
[0009] 图7是依据示例实现方式的描绘了由图1的备份应用使用以搜索和/或分组在备 份和恢复系统上存储的数据对象的技术的流程图。
[0010] 图8是依据示例实现方式的描绘了调度复制作业的技术的流程图。
[0011] 图9是依据示例实现方式的描绘了设置复制作业以其被尝试的速率的技术的流 程图。
[0012] 图10是依据示例实现方式的描绘了把作业预期地标记为失败的技术的流程图。
[0013] 图11是依据示例实现方式的描绘了调整状态请求查询的计时的技术的流程图。
[0014] 图12是依据示例实现方式的描绘了调整用于客户端重新提交状态请求查询的时 间的技术的流程图。

【具体实施方式】
[0015] 图1描绘了包括备份和恢复系统4以及所述系统4的一个或多个客户端90的示 例计算机网络5,所述客户端90生成在所述系统4上存储的备份数据(在备份会话期间)。 备份数据可以包括众多类型的数据,诸如,应用导出的数据、系统状态信息、应用、文件、配 置数据等。通常,给定客户端90可以在恢复会话期间访问备份和恢复系统4,以把所选择的 数据复原到特定先前状态以及可能地把客户端复原到特定先前状态。作为非限制性示例, (一个或多个)客户端90通常可以是未在图1中图示的网络服务器。
[0016] 依据不例实现方式,备份和恢复系统4包括存储用于(一个或多个)客户端90的备 份数据的主存储装置20,以及存储这个备份数据的副本的辅助存储装置100。以这种方式, 出于这种添加备份安全的附加层的目的,主存储装置20可以偶尔复制在主存储装置20上 存储的备份数据,以产生由辅助存储装置100存储的对应复制的备份数据。
[0017] 依赖特定的实现方式,主存储装置20和辅助存储装置100可以位于相同的设施, 并且共享本地连接(例如,局域网(LAN)连接),或可以被布置在不同的位置并且被(例如,经 由广域网(WAN)连接)远程地连接。在图1中所描绘的示例中,主存储装置20使用通信链 路88与辅助存储装置100通信。通信链路88表示一种或多种类型的网络结构(S卩,WAN连 接、LAN连接无线连接、互联网连接等)。
[0018] (一个或多个)客户端90使用通信链路96(诸如,一个或多个总线或其它快速互连) 与主存储装置20通信。通信链路96表示一种或多种类型的网络结构(S卩,WAN连接、LAN连 接无线连接、互联网连接等)。通常,(一个或多个)客户端90可以使用一个或多个协议(诸 如,串行附连小型计算机系统接口(SCSI)总线协议、并行SCSI协议、通用串行总线(USB)协 议、光纤通道协议、以太网协议等)与主存储装置20通信。
[0019] 依赖特定实现方式,通信链路96可以与相对高的带宽(例如,LAN连接)、相对低的 带宽(例如,WAN连接)或中间带宽相关联。此外,依赖于特定实现方式,给定客户端90可以 位于主存储装置20的相同设施处,或者可以位于与主存储装置20相比不同的位置处。一 个客户端90相对于主存储装置20可以是本地的,另一个客户端90可以被相对于主存储装 置远程地安置等。因此,许多变化被考虑到,其在所附权利要求的范围内。
[0020] 依据一些实现方式,主存储装置20、辅助存储装置100以及(一个或多个)客户端 90是"物理机器",或者由机器可执行指令(S卩,"软件")和硬件组成的实际机器。尽管主存 储装置20、辅助存储装置100以及(一个或多个)客户端90中的每一个在图1中被描绘为 包含在框内,但特定物理机器可以是分布式机器,分布式机器具有提供分布式和并行处理 系统的多个节点。
[0021] 依据一些实现方式,物理机器可以位于一个机柜(或机架)内;或可替代地,物理机 器可以位于多个机柜(或机架)中。
[0022] 给定客户端90可以包括硬件92,诸如,一个或多个中央处理单元(CPU)93,以及存 储机器可执行指令93、应用数据、配置数据等的存储器94。通常,存储器94是非临时性存 储器,其可以包括半导体存储设备、磁性存储设备、光学存储设备等。客户端90可以包括各 种其它硬件部件,诸如,下列各项中的一个或多个:大容量存储驱动器;采用通信链路96通 信的网络接口卡;显示器;输入设备(诸如,鼠标和键盘等)。
[0023] 给定的客户端90可以包括机器可执行指令91,当其由客户端90的(一个或多个) CPU 93执行时,形成备份应用97。通常,所述备份应用97执行关于备份和复原用于客户端 90的数据的各种功能。作为示例的非穷举列表,由备份应用97执行的所述功能可以包括下 列各项中的一个或多个:生成备份数据;把备份数据传送到主存储装置20 ;访问主存储装 置20上的备份数据;搜索和组织主存储装置20上备份数据的存储;读取、写入和修改所述 备份数据的属性;监控和控制至少部分地由主存储装置20执行以把备份数据复制到辅助 存储装置100上的复制操作的一个或多个方面;执行给定复制操作的一个或多个功能;在 恢复会话期间复原客户端20上的数据或系统状态等。
[0024] 依据在此公开的示例性实现方式,客户端90可以包括一组机器可执行指令,当其 由客户端90的(一个或多个)CPU 93执行时,形成应用编程接口(API) 98以用于访问备份 和恢复系统4。通常,API 98由备份应用97用来与主存储装置20通信,以用于执行应用97 的以上所述的功能中的一个的目的。
[0025] 依据实现方式,所述客户端90可以包括形成用于备份应用97的适配器的一组机 器可执行指令,所述适配器把由备份应用97发出的命令和请求转变成对应的API命令/请 求,并且反之亦然。
[0026] 给定客户端90可以包括其它各种的其它组机器可执行指令,当其由客户端90的 (一个或多个)CPU 93执行时执行其它功能。作为示例,给定客户端90可以包含机器可执行 指令,以用于形成操作系统;虚拟机管理程序;控制备份/复原操作的图形用户接口(GUI); 设备驱动器等的目的。因此,许多变化被考虑到,其在所附权利要求的范围内。
[0027] 作为物理机器,主存储装置20还包含硬件60和机器可执行指令68。例如,主存 储装置20的硬件60可以包括一个或多个CPU 62 ;存储机器可执行指令、应用数据、配置数 据、备份相关数据等的非临时性存储器80 (由半导体存储设备、磁性存储设备、光学存储设 备等形成的存储器);以及存储备份相关数据、应用数据、配置数据等的一个或多个随机访 问驱动器63 (光学驱动器、固态驱动器、磁性存储驱动器等);一个或多个顺序访问的大容量 存储设备(例如,带驱动器);网络接口卡等。
[0028] 又作为图1中所描绘的,当机器可执行指令68由主存储装置20的一个或多个CPU 62执行时,形成用于所述装置20的各种软件实体,诸如,在此所描述的下述各项中的一个 或多个:引擎70、资源管理器74、存储管理器76、去重复引擎73和带附连引擎75。
[0029] 与主存储装置20相似,辅助存储装置100也是物理机器,其包含硬件(诸如,存储 器120);-个或多个CPU ;大容量存储驱动器;网络接口卡等。此外,辅助存储装置100还 包含机器可执行指令来形成各种应用、设备驱动器、操作系统、控制复制操作的部件等。
[0030] 依据在此公开的实现方式,备份和恢复系统4管理作为"对象"的备份数据(例如, 当与依照基于文件的系统管理作为文件的备份数据相比较时)。如可以由本领域的技术人 员认识到的,"对象"是以性质(诸如,身份、状态和行为)为特征的实体;并且通常,所述对象 可以通过执行机器可执行指令来操控。特别地,在此公开的对象的性质可以由备份应用97 创建、修改、检索以及一般访问。依据一些实现方式,对象可以具有操作系统定义的最大尺 寸。
[0031] 在备份和恢复系统4中存储的对象可以在数据容器或"对象存储"中被组织。通 常,依据示例性实现方式,对象存储具有非层次的或"平坦"的地址空间,使得在给定对象存 储中存储的对象不以目录类型组织来布置。
[0032] 对于图1中所描绘的示例,主存储装置20以一个或多个对象86的形式存储备份 数据,所述对象86被组织或布置成一个或多个对象存储84。此外,对于在图1中所描绘的 示例,对象86和对象存储84被描绘为被存储在存储器80中,尽管底层数据可以被存储在 主存储装置20的一个或多个大容量存储驱动器中。
[0033] 辅助存储装置100以一个或多个复制对象126的形式存储复制的备份数据,所述 复制对象126被组织或布置在一个或多个对象存储124中。换言之,复制对象126从在主 存储装置20上存储的对象86得出。此外,对于图1中所描绘的示例,对象126和对象存储 124被描绘为被存储在存储器120中,尽管底层数据可以被存储在辅助存储装置100的一个 或多个大容量存储驱动器中。
[0034] 在给定的备份会话期间,给定客户端90的备份应用97通过通信链路96访问主存 储装置20,以创建、修改(例如,增补)或盖写一个或多个备份对象86,以用于存储或更新主 存储装置20上的备份数据的目的。同样地,在给定复原会话期间,给定客户端90的备份应 用97可以访问主存储装置20来检索一个或多个备份对象86。依据一些实现方式,主存储 装置20上的对象86可以被从在辅助存储装置100上存储的对应的复制对象126复原。
[0035] 出于从给定对象86读取或写入给定对象86的目的,备份应用97打开对象86并 且然后寻找所打开对象86的给定位置来读取/写入字节的集合。此外,因为存储在对象86 中的数据可以被压缩(如在此进一步公开的),所以读取/写入数据可以包括在不首先解压 缩(或再水化)的情形下读取/写入所述数据;或可替代地,所述读取/写入可以涉及首先 再水化所述数据。
[0036] 通常,API 98把对象存储84和对象86的呈现提供到备份应用97,这允许备份应 用97搜索对象86、修改对象86、创建对象86、删除对象86、检索关于某些对象86的信息、更 新关于某些对象86的信息等。结合图1参考图2,作为更具体的示例,API 98可以把给定 对象存储84呈现给备份应用97,所述给定对象存储84包含N个对象86 (作为示例描绘的 对象86-1…86-N)。通常,对象86可以包含在一个或多个备份会话期间生成的数据,诸如, 备份数据、特定客户端状态的图像、头部数据等。API 98进一步向备份应用97呈现对象元 数据150,所述备份应用97可以访问和/或修改所述元数据150。通常,元数据150与对象 86 -起被存储,并且描述相关联对象86的各种性质,以及存储与对象86相关的增值信息。
[0037] 作为示例,元数据150可以指示用于给定相关联对象86的下列各项中的一个或多 个:对象类型;时间/数据戳;与作业历史相关的状态信息以及对象86与作业历史的关系; 用于相关联对象86的标识符;用于相关联对象86的相关对象存储;关于等同于传统带的 盒式磁带存储器内容的信息;密钥等。作为示例,对象类型可以指增量或完全备份是否被用 于所述对象86 ;标识创建对象86的备份应用97 ;标识与对象86相关联的客户端90 ;数据 类型(作为示例,头部数据、原始备份数据、图像数据)等。
[0038] 对象86的访问和控制经由与主存储装置的引擎70、资源管理器74、存储管理器 76、去重复引擎73和带附连引擎75的交互而发生。依据一些示例性实现方式,引擎70用 作数据路径和控制的通信链路88和96的外部服务端点。更具体地,依据一些实现方式,由 客户端90发出的命令和请求由引擎70处理,并且反之亦然。作为非限制性示例,由引擎70 处理的命令包括如下命令:打开对象、关闭对象、向对象写入数据、盖写对象、读取对象、读 取对象数据、删除对象、修改/写入关于对象的元数据相关信息、读取关于对象的元数据信 息、设置优选和配置参数等。请求例如可以包括状态查询请求(诸如像关于特定复制作业的 状态的请求)。引擎70进一步控制备份和恢复系统4是以低带宽操作模式(以下所描述的) 操作还是以高带宽操作模式(以下所描述的)操作,并且通常控制复制操作以创建/修改辅 助存储装置100上的复制对象126。
[0039] 资源管理器74考虑到资源的约束(例如,可用的物理存储器)管理对象86的锁定 (即,防止一次一个以上的实体的修改)。通常,资源管理器74保持关于对象访问和修改的 一致性,因为对给定对象86的访问可能由一个以上的实体并发地请求。
[0040] 主存储装置20的存储管理器76负责检索给定对象存储84、控制可以创建和删除 对象存储84的实体,控制对对象存储的访问,控制对象存储84如何被管理等。
[0041] 主存储装置20的去重复引擎73控制主存储装置20的哈希和分块操作(以下所描 述的)以用于主存储装置的高带宽操作模式(也是以下所描述的)。去重复引擎73还可以检 查组块是否已经被存储,并且因此判定是否存储数据或参考现有数据。去重复引擎73依据 示例性实现方式针对低和高带宽模式二者执行这个检查。
[0042] 带附连引擎75可以由客户端90访问以用于把一个或多个对象86的复制物理副 本存储在物理带上的目的,所述物理带被插入到耦合到带附连引擎75的物理带驱动器(在 图1中未示出)中。
[0043] 结合图1参考图3,依据示例性实现方式,备份应用97可以在示例性备份会话期间 创建和/或修改给定组的对象86。对于这个示例,对象在主存储装置20上的示例性对象存 储84-1中被创建。对象86的创建/修改通常涉及与引擎70、资源管理器74和存储管理器 76的交互。
[0044] 用于这个示例的对象86包括头部对象86-1,其包含用于特定备份会话的头部信 息。作为非限制性示例,头部对象86-1可以包含如下信息,该信息标识用于备份会话的其 它对象86、标识备份会话、指示压缩是否被使用、标识用于数据对象的特定次序等。用于这 个示例的对象86进一步包括各种数据对象(在图3中被描绘的数据对象86-2…86-P),各 种数据对象对应于备份会话的顺序定序的数据片段,并且其可以(或可以不)被压缩。对于 这个示例,对象86包括图像对象86-P+1,其可以被用作恢复图像,以用于把客户端90复原 到给定状态的目的。
[0045] 注意的是:备份应用97可以随机地访问对象86。因此,不像在物理或虚拟顺序访 问设备(诸如,物理带驱动器或虚拟带驱动器)上所存储的备份数据,备份应用97可以在对 象86期满时选择性地删除与给定备份会话相关联的数据对象86。此外,备份应用97可以 修改给定对象86或把数据增补到对象86,而不管在相同备份会话中被创建/修改的其它数 据对象86的状态。
[0046] 出于生成在辅助存储装置100上存储的复制对象126的目的,备份和恢复系统4 使用数据复制操作(被称为"去重复操作")。所述去重复操作通常减少了否则横跨主存储装 置20和辅助存储装置100之间的通信链路88被传送的数据量。当通信链路88与相对低 的带宽(诸如像,WAN连接)相关联时,这种减少可能特别有益。
[0047] 图4 一般地描绘了依据一些实现方式的示例复制操作200,以用于复制在主存储 装置20上存储的对象86从而产生对应的复制对象126的目的,所述复制对象126被存储 在辅助存储装置1〇〇上的对应的对象存储124中。结合图1参考图4,依据示例性实现方 式,复制操作200包括把源数据(S卩,源对象86的数据)分割(块204)成数据块(被称为"组 块")。以这种方式,分割产生了定序顺序的组块,以作为目的复制对象126的一部分被存储 在辅助存储装置1〇〇上。
[0048] 出于减少通过通信链路88传送的数据量的目的,如果相同的组块(S卩,具有匹配 或相同的字节式样的组块)已经被存储在辅助存储装置100上,则组块不被横跨通信链路 88传送。替代地,对之前存储的组块的参考被存储在其目的对象中的位置处,从而导致数据 压缩。
[0049] 出于确定给定组块是否已经被存储在辅助存储装置100上的目的,组块的签名首 先被传送到辅助存储装置100。更具体地,依据示例性实现方式,加密功能可以被应用于给 定的候选组块,以用于确定(图4的块208)用于所述数据的对应的唯一哈希的目的。所述 哈希然后被传送到辅助存储装置1〇〇 (依照块212)。辅助存储装置100把所接收的哈希与 用于其存储的组块的哈希相比较,以确定候选组块的副本是否被存储在装置1〇〇上,并且 向主存储装置20通知所述确定。
[0050] 如果匹配发生(判定块216),则主存储装置20不把候选组块传送到辅助存储装置 100。替代地,主存储装置20传送对已经被存储的组块的对应参考,以便在其目的对象中 的位置处被使用(依照块220)。否则,如果匹配不发生(依照判定块216),则主存储装置20 横跨通信链路88把候选组块传送到辅助存储装置100 (依照块224)。因此,辅助存储装置 100在对应对象126中存储组块或对组块的参考。
[0051] 如果有另一个组块要处理(判定块228),则控制返回到块208。因此,所述组块以 以上描述的方式被处理直到源数据已被以其压缩的形式复制到辅助存储装置100上。由于 以上所描述的数据去重复操作200所引起的数据减少可以以数据压缩或"去重复"率为特 征。
[0052] 向回参考图1,依据示例性实现方式,对象86的以上所描述的复制可以以备份和 恢复系统4的两个操作模式中的一个被执行:低带宽操作模式;或高带宽操作模式。对于 低带宽操作模式,客户端90执行复制操作的以上所参考的分块和哈希功能。换言之,客户 端90把源数据分割成组块;把加密功能应用到组块以生成对应的哈希;传送所述哈希;以 及随后传送组块或对所述组块的参考(依赖匹配是否发生)。低带宽操作模式在如下情形中 可以是特别有益的:客户端90具有相对高度的处理能力;通信链路96是相对低的带宽链 路(例如,WAN连接);去重复率相对高;或这些因素中的一个或多个的组合促成将由客户端 90执行的分块和哈希。
[0053] 在高带宽操作模式中,分块和哈希功能由主存储装置20来执行。高带宽操作模式 在如下情形中可以是特别有益的:主存储装置20具有相对高度的处理能力;通信链路96 具有相对高的带宽(例如,LAN连接);去重复率相对低;或这些因素中的一个或多个的组合 促成将由主存储装置100执行的分块和哈希。
[0054] 依据一些实现方式,备份应用97可以指定关于低带宽还是高带宽操作模式将被 使用的优选。作为示例,所述优选可以被经由在客户端90和引擎70之间被传送的命令传 送。基于这个优选,引擎70依赖于客户端90 (针对低带宽操作模式)或依赖于去重复引擎 73 (针对高带宽操作模式)来执行分块和哈希功能。
[0055] 结合图1参考图5,总之,依据示例性实现方式,API 98允许备份应用97执行技术 250。依照技术250, API 98向存储装置的客户端提供接口,所述接口允许客户端访问在存 储装置上存储的对象(所述"源对象(依照块254)。客户端可以与存储装置通信(块258) 以控制复制源对象的至少一部分而生成目的对象的操作的至少一个方面。因此,如以上阐 述的,作为示例,依照技术260 (参见图6),备份应用97可以访问(块262)在主存储装置20 上存储的对象86,并且促使用于对象86的元数据(块266)指示关于客户端90或主存储装 置20是否执行用于对象86的去重复的压缩(分块和哈希)的优选。
[0056] 注意的是:复制可以发生在相同存储装置上的不同对象存储之间,或者甚至在给 定对象存储内的两个对象之间的数据。尽管整个对象可以被复制,但给定复制操作可以涉 及复制给定对象的部分,而不是复制整个对象。此外,目的对象可以从来自一个或多个源对 象的一个或多个复制区域被构造;并且目的对象可以被散置有从客户端直接备份到目的对 象的数据的一个或多个区域。因此,许多变化被考虑到,其在所附权利要求的范围内。
[0057] 例如,与基于虚拟带驱动器的系统(其中备份数据被安排在依据带驱动器格式存 储的文件中)相比较,备份和恢复系统4使用对象允许备份数据的相对更丰富的搜索和分 组。更具体地,结合图1参考图7,依照技术270,备份应用97可以访问(块274)在主存储 装置上存储的对象,并且(依照块278)基于相关联的元数据搜索和/或分组搜索对象。
[0058] 依据示例实现方式,复制引擎70包括调度器71,其用于调度复制作业来复制对象 86,从而生成在辅助存储装置100上存储的对应的复制对象126。以这种方式,调度器71存 储(或排队)用于队列72中挂起的复制作业的标识符,以用于把给定对象86中的数据的部 分或全部拷贝到目的对象存储124中的目标对象126的定义位置的目的。注意的是:给定 复制操作可以涉及对象的完整或部分的盖写。
[0059] 依据在此公开的实现方式,调度器71基于多个潜在标准管理队列72中的作业何 时被运行。作为非限制性示例,这些标准可以包括空闲资源的数量/范围;(由客户施加的) 中断窗口;网络连接性;以及源装置和目标装置何时在线并且可用。
[0060] 通常,由于事件(诸如,给定装置下线或另一个可暂停条件发生(例如,网络链路不 可用)),调度器71暂停作业的运行;以及调度器71在这种事件终止时重新开始所述作业。 调度器71进一步在不可恢复错误发生(作为非限制性示例,诸如,目的装置用尽其磁盘空 间、许可不存在、账户不被允许、或客户取消作业)时取消给定作业。
[0061] 通常,调度器71使用在此公开的技术以用于在不招致扫描可能的可运行作业的 相当大量的时间的情形下相对高效地运行作业的目的。以这种方式,依据一些实现方式,在 队列72中存储的作业的数量可以在数百万可能作业的规模上。因此,依据示例实现方式, 在此公开以用于调度作业的技术涉及告知用于调度器71的相对低的开销和等待时间。
[0062] 作为非限制性示例,调度器71确定用于执行作业的时间表,S卩,用于将被运行或 被再次运行的作业中的每一个的时间。依据示例性实现方式,调度器71基于之前的运行尝 试确定在试图运行失败过的复制作业之前等待多久。
[0063] 使用方程1和2,调度器71可以依照技术300 (其在图8中被一般地描绘)调度作 业。依照技术300,调度器71排队(块304)作业以把存储在第一存储装置上的对象复制到 第二存储装置上,并且确定(块308)用于执行所述作业的时间。对于至少一个所述作业,调 度器71至少部分地基于完成作业的失败尝试的数量选择性地调整所述作业何时出现在时 间表中(依照块312)。
[0064] 作为更具体的示例,调度器71可以至少部分地基于在完成所述作业过程中一 个或多个失败尝试的数量调整作业每隔多久被尝试一次(即,调整对于给定作业的"尝试 率")。例如,图9描述了示例技术320,其可以由调度器71依据一些实现方式使用。依据技 术320,调度器71依赖失败尝试的数量逐渐地设置较低的尝试率以用于运行给定作业。对 于这个示例,常数K (判定块322)、N2 (判定块326)和NP (判定块330)是从K到乂单调 增加的,使得&〈队〈乂。初始地,对于给定作业的尝试率可以是相对高的(S卩,可以以相对高 的频率发生)。然而,随着对于给定作业的尝试的数量的增加,对应的尝试率降低。以这种 方式,图9公开了示例性尝试率& (块324)、R2 (块328)和RP (块332),使得RpRpRp。尝 试率&、R2和RP分别对应于失败尝试常数%、N 2和NP。以这种方式,如果失败尝试的数量 小于K (判定块322),则调度器71把对应的尝试率设置(块324)在&,其是相对较高的尝 试率。然而,如果失败尝试增加使得所述尝试高于K并且仍小于N 2,则调度器71 (依照判 定块326)把尝试率设置(块328)在较低的尝试率R2。尝试之间的时间间隔的逐渐后退继 续,因为当失败尝试超过N P (判定块330)时,调度器71把尝试率设置(块334)在最低的尝 试率RP+1。依据示例实现方式,当调度器71检测之前作业的失败出于对于这个作业会是公 共的原因而失败时,调度器71不运行给定作业。
[0065] 更具体地,调度器71基于以上确定的时间表周期性地扫描用于准备运行的复制 作业的队列72 (依照技术320)。在这个方面,依据示例性实现方式,复制作业可以把相对 少数量的存储装置作为目标(即,每个目标存储装置一个以上的作业)。如果在特定扫描期 间,对于特定装置的复制作业被尝试但由于也会影响全部其它作业(其可能在这个扫描中 开始运行到那个存储装置)的原因(作为非限制性示例,磁盘空间全部错误、链路错误、中断 窗口)无法运行,则其它复制作业不被尝试。替代地,调度器71预期地认为这些其它作业对 于公用共享的问题也会失败,并且对应地也把这些作业标记为失败。这种方法避免了尝试 运行不能够运行(至少针对当前的扫描)的作业中的开销。
[0066] 因此,依据示例实现方式,调度器71可以执行在图10中描绘的技术334。依照技 术334,调度器71确定(判定块336)给定复制作业是否已失败,并且如果如此,则确定(判 定块338)促成失败的相同问题是否适用于队列72中的一个或多个其它复制作业。如果如 此,则调度器71把(一个或多个)其它复制作业标记(块340)为失败(例如,在由队列72存 储的状态字段中制作一个或多个对应的条目)。
[0067] 尽管中断窗口对于多个作业是公共的,但依据一些实现方式,由于中断窗口和其 它失败原因引起的失败之间的区别是中断窗口被配置在主存储装置20。因此,主存储装置 20知道中断窗口何时不再施加。依据示例实现方式,队列72存储下一个运行时间以及指示 作业为何不运行的原因的标识符。在下一个扫描时,如果用于给定作业的给定状态标识符 指示上一个作业由于中断窗口不运行,则调度器71把相关联的下一个运行时间复位到"立 即地"并且复位失败尝试的数量,使得如果作业出于不同的原因在将来无法运行,则所述作 业从清白历史开始。
[0068] 向回参考图1,客户端90通常把状态查询提交到主存储装置20,以用于获取与对 应的复制作业相关的状态的目的。为了管理这些状态查询(出于诸如减少网络业务并且减 少调度器71上的开销的目的),调度器71用作作业管理器,其采用请求客户端90在重新检 查所述状态之前等待的对应时间回复来自请求客户端90的给定状态请求查询。
[0069] 通常,依据示例实现方式,调度器71执行在图11中描绘的技术350。依照技术 350,调度器71排队(块354)用以复制在一个或多个存储装置上存储的对象数据的作业。调 度器71从客户端90接收(块358)状态请求查询,并且回复(块362)所述状态请求查询,以 及所述回复指示客户端90提供另一个状态请求查询的时间(S卩,最小等待时间)。
[0070] 在确定状态请求查询时间中,调度器71可以确定给定作业的完成的百分比(被称 为"完成百分比"),如下所述: 完成百分比=原始目标范围大小/(到目前为止拷贝的字节), 方程1 其中"原始目标范围大小"表示对象86的大小,以及"到目前为止拷贝的字节"表示已 被拷贝到辅助存储装置100的字节数。调度器71还可以估计完成时间(被称为"所估计的 完成时间"),阐述如下: 所估计的完成时间=现在的时间+(作业运行时间秒* (100作业完成百分比))/(作 业完成百分比)),方程2 其中"作业运行时间秒"表示作业已运行的当前时间,以及"100作业完成百分比"表 示常数,诸如"100"。
[0071] 在这方面,依据示例实现方式,调度器71响应于给定状态请求查询,采用客户端 90在重新提交状态查询之前等待的时间响应或回复。注意的是:依赖特定实现方式,所述 时间可以是绝对时间或可以是从客户端90在其已提交之前的查询或已从调度器71接收响 应的时间起的相对等待时间间隔。
[0072] 作为示例,图12描绘了技术400,其可以由调度器71使用,以用于针对关于特定复 制作业的所接收的状态请求查询确定一个或多个查询时间(如下面进一步描述的)的目的。 依照技术400,调度器71 (例如,使用方程1)确定(块404)用于所述作业的完成百分比,以 及(例如,使用方程2)估计(块408)用于复制作业的完成时间。通常,如果调度器71确定 (判定块412)复制作业被暂停或挂起(所述作业在队列72中等待再次被运行),则调度器71 拖延关于复制作业的任何更多的状态查询,直到依照技术300被估计的时间。以这种方式, 对于暂停或挂起作业,调度器71把下一个状态查询时间设置(块416)到下一个运行尝试时 间。
[0073] 如果调度器71确定(判定块412)复制作业未被暂停或挂起,则调度器71确定(判 定块420)所述作业当前是否正在运行。如果如此,调度器71拖延任何更多的状态查询,直 到作业进展状态已可测量地改变。更具体地,依据示例实现方式,调度器71可以把状态查 询时间设置(块424)到所测量的进展将发生的所估计时间。例如,依赖特定实现方式,基于 例如由方程1的完成百分比的确定所阐述的给定粒度的改变(例如,1%的改变)、被转移的 固定数量的字节(例如,1吉字节(GB))或这些标准中的任一中的最大的,调度器71可以认 为所述作业进展已可测量地改变。
[0074] 因此,依据一些实现方式,调度器71调整给定客户端90的状态查询,使得客户端 90查询正好频繁到足够来从调度器71接收所指示的状态变化。如果调度器71确定(判定 块420)作业当前未在运行,则调度器71确定(块428)所述作业是否被取消或完成。如果 否,状态请求查询以未标识的作业为目标;以及调度器71采取适当校正的动作。否则,如 果所述作业被取消或完成,则调度器71把查询时间设置(块432)到基于固定时间间隔的时 间。例如,当取消是用于那个作业的最终状态时,调度器71可以把下一个查询时间设置到 最大值(作为示例,5分钟)。
[0075] 给定客户端状态查询许多关于多个复制作业的状态的查询。对于这些请求,调度 器71确定在返回的状态回复中用于每个作业的所建议的下一个查询时间,以及然后把下 一个总查询时间设置成与所确定的查询时间的最短间隔一致。因此,客户端90经由所述回 复具有用于最快速地改变作业状态的最新的信息。因此,依据一些示例实现方式,调度器71 确定(判定块436)状态请求查询是否与多个作业相关联。如果否,则调度器71采用用于单 个复制作业的下一个查询时间回复(块440)。否则,依据示例实现方式,调度器71采用用于 每个作业的查询时间回复(块437),并且进一步采用下一个总查询时间(例如,单独查询时 间中最小的)回复。
[0076] 依据示例实现方式,调度器71可以在由最小值(例如,30秒钟)和最大值(例如,5 分钟)定义的范围内限制或约束下一个查询时间。
[0077] 尽管有限数量的示例已在此被公开,但本领域的技术人员受益于这个公开后将从 其中认识到众多修改和变化。旨在所附的权利要求覆盖所有这种修改和变化。
【权利要求】
1. 一种方法,包括: 排队复制在存储装置上存储的对象数据的作业; 确定用于执行所述作业的时间表;以及 对于所述作业中的至少一个,至少部分地基于完成作业的失败尝试的数量选择性地调 整所述作业何时出现在所述时间表中。
2. 如权利要求1所述的方法,其中选择性地调整包括:基于失败尝试的数量改变用于 执行作业的等待间隔,使得较长的等待间隔对应于较大数量的失败尝试。
3. 如权利要求1所述的方法,其中选择性地调整包括:把失败尝试的数量与失败尝试 的第二时间表相比较,以及至少部分地基于所述比较调节用于执行所述作业的等待间隔。
4. 如权利要求1所述的方法,进一步包括响应于至少一个备份会话把所述作业接收到 队列中,所述备份会话由在耦合到第一存储装置的客户端上执行的备份应用生成。
5. 如权利要求1所述的方法,进一步包括:进一步使时间表基于至少一个作业是否由 于用户施加的复制中断间隔而失败。
6. 如权利要求1所述的方法,进一步包括: 确定所述作业中的给定作业是否已失败并且是否受到与所述其它作业中的至少一个 相关联的失败问题的影响;以及 至少部分地基于所述确定,选择性地把所述其它作业中的至少一个标记为失败。
7. -种设备,包括 队列,用于标识复制在存储装置上存储的对象数据的作业;以及 基于处理器的作业管理器,用于: 接收从客户端到存储装置对所述作业中的至少一个的状态的状态请求查询;以及 响应于所述状态请求查询,指示用于所述客户端提供另一个状态请求的时间。
8. 如权利要求7所述的设备,其中所述作业管理器适合于至少部分地基于所述作业在 其预期被完成的时间而指示所述时间。
9. 如权利要求7所述的设备,其中所述作业管理器适合于至少部分地基于用于所述作 业的下一个运行尝试数据而设置所述时间。
10. 如权利要求7所述的设备,其中所述作业管理器适合于使所述时间基于固定的时 间间隔,并且基于所述作业是否已被取消或完成的确定。
11. 如权利要求7所述的设备,其中所述状态请求与多个作业相关联,并且所述作业管 理器适合于指示用于所述作业中的每一个的时间以及用于客户端提供另一个状态请求的 总时间。
12. -种包括存储指令的计算机可读存储介质的物品,当所述指令由至少一个处理器 执行时,促使所述至少一个处理器来: 排队复制在存储装置上存储的对象数据的作业; 确定用于执行所述作业的时间表;以及 对于所述作业中的至少一个,至少部分地基于完成作业的失败尝试的数量选择性地调 整所述作业何时出现在所述时间表中。
13. 如权利要求12所述的物品,存储介质存储指令,当所述指令由至少一个处理器执 行时,促使所述至少一个处理器来:基于失败尝试的数量改变用于执行作业的等待间隔,使 得较长的等待间隔对应于较大数量的失败尝试。
14. 如权利要求12所述的物品,存储介质存储指令,当所述指令由至少一个处理器执 行时,促使所述至少一个处理器来:把失败尝试的数量与失败尝试的第二时间表相比较,以 及至少部分地基于所述比较调节用于执行所述作业的等待间隔。
15. 如权利要求12所述的物品,存储介质存储指令,当所述指令由至少一个处理器执 行时,促使所述至少一个处理器来:进一步使时间表基于至少一个作业是否由于用户施加 复制中断间隔而失败。
【文档编号】G06F12/16GK104067219SQ201280068688
【公开日】2014年9月24日 申请日期:2012年4月24日 优先权日:2012年3月15日
【发明者】P.T.坎布尔, A.托德, K.钱德拉塞卡兰 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1