在数据保护系统中提供警告合成的方法、系统和装置的制作方法

文档序号:6647150阅读:127来源:国知局
专利名称:在数据保护系统中提供警告合成的方法、系统和装置的制作方法
技术领域
本发明一般涉及数据保护和数据保护系统,尤其涉及用于控制数据的保护和恢复的系统、方法和装置。
背景技术
一般而言,大规模计算机系统常常包含若干计算设备和大量数据。在这样一个系统中,计算设备常常可以被添加或移除。同样,现有计算设备也常常通过添加共享、交换存储组(Exchange Storage Group)、数据库、卷和对存储在计算设备上数据的其它改变来改变。对于利用这种计算机系统的组织,通常存在对保护存储在该系统上的数据的需求,这经常通过创建数据的备份来进行。
然而,负责保护系统的个人常常不被通知对该系统的添加和/或改变,而因此不知道需要保护的新资源。例如,如果一个新的计算设备,诸如服务器,被添加到系统中,且未向负责保护该系统的个人通知这一添加,则新计算设备上的数据和该新计算设备都处在未保护中。
对于允许个人在系统内逻辑层而不是物理层上操作的系统,这个问题不断增长。尽管个人在逻辑层上操作,但保护一般是在物理层上确定的。在这样一种环境中,当逻辑层上的操作要求改变备份过程时会发生问题。例如,如果逻辑路径\\history\public\tools指向服务器history1上的共享,并决定移动\\history\public\tools来指向服务器history2上的不同共享上,如果未向负责保护的个人通知这一改变,则旧的共享可能被继续保护而新共享仍是未保护的。
当单个逻辑路径可代表一组物理选择时,问题也会增加,这些物理选择包含底层数据的同步复制。例如,\\history\docs可指向history1和history2两者之上同样的共享;只有同样的底层文件夹之一应由系统保护。
导致未能保护大型系统上资料的一般原因是负责保护的个人必须手动标识要保护的资源和数据并手动配置保护。当系统变化时,除非他们知道变化,否则数据和资源会成为未保护的。此外,对于归档数据备份到物理介质,人们必须手动确定要使用什么介质用于保护,及何时/如何轮换介质。对于大型系统,手动标识变化、配置保护和维护归档是复杂的,而改变是困难的。对保护的这一手动标识、配置和修改常常导致遗漏了需要保护的数据和资源,并导致与保护本身有关的问题。
当问题发生时,一般人们必须能够确定具体层上的问题,并具有如何解决该问题的知识,而没有被提供来自保护系统本身的信息。
因而,需要一种系统、方法和装置,用于自动化计算机系统的保护、标识对系统的改变何时发生、当发生有关保护的问题时向用户提供指导、以及使人们能够通过在逻辑名字空间中工作来创建保护。

发明内容
依照本发明的一个方面,提供了一种用于向用户通知数据保护系统的状态的方法。该方法监视数据保护系统的活动,并确定是否存在与数据保护系统有关的任何潜在问题。如果确定不存在与数据保护系统有关的任何潜在问题,则向用户提供关于该数据保护系统的状态的信息报告。然而,如果确定存在与数据保护系统有关的潜在问题,则确定该潜在问题的严重性并基于所确定的严重性对该问题分类。该分类用于向用户生成关于该潜在问题的适当报告。
提供了一种用于诊断存储位置处的数据的方法。该方法包括诊断位于存储位置处的数据的副本,并诊断该数据副本的时间版本。基于该诊断,确定是否检测到错误或警告。如果检测到任一个,则提供具有建议的解决方案的响应。
依照本发明的一个方面,提供了一种用于诊断数据副本的方法。确定副本是否有效,如果是,则确定确认作业当前是否正在运行。如果确认作业失败,则向用户报告适当的响应。
依照本发明的另一方面,在具有产生位置、存储位置以及用于在产生位置和存储位置之间传输数据的通信信道的数据保护系统中,提供了一种用于诊断存储位置处的副本的生成的方法,该副本具有产生位置处的数据的改变。该方法包括通过计算失败的数量以及失败的原因,确定在一段时间内复制过程是否运作良好。在计算之后,取决于复制的模式、失败的计数以及失败的原因提供一警告。
依照本发明的另一方面,在具有产生位置、存储位置以及用于在产生位置和存储位置之间传输数据的通信路径的数据保护系统中,提供了一种用于诊断时间版本的方法。该方法确定最旧的预期时间版本是否可用,如果是,则计算在一段预定时间内丢失的时间版本的数量。在计算之后,取决于该段预定时间内丢失的时间版本的百分比,提供一报告。
依照本发明的由一方面,在具有产生位置、存储位置以及用于在产生位置和存储位置之间传输数据的通信路径的数据保护系统中,提供了一种用于诊断数据从存储位置到产生位置的恢复的方法。该方法包括确定恢复作业是否失败,如果是,则获得失败的原因并报告标识失败的错误。另外,在报告中也包括了解决该失败的建议。


通过参考以下详细描述,同时结合附图,在更好地理解的同时,本发明的前述诸方面及许多伴随优点将变得更显而易见,这些附图是图1A-2是依照本发明的实施例用于管理数据的保护和恢复的数据保护系统的框图;图3是依照本发明的实施例描述位于产生位置的可保护对象的初始选择和保护的数据保护系统的流程图;图4依照本发明的实施例示出了在用于用户交互和选择的用户界面上发布和显示的多个名字空间和名字空间元素的框图;图5依照本发明的实施例示出了名字空间元素和可保护对象之间的映射;图6依照本发明的实施例示出了用于将名字空间类型和名字空间元素类型相关联的方案的框图;图7依照本发明俄实施例示出了用于将逻辑名字空间元素映射到物理可保护对象的方案的框图;图8依照本发明的实施例示出了包含可由数据保护系统保护的可保护对象的产生位置的框图;图9A-9B是依照本发明的实施例在产生位置处的可保护对象和将可保护对象组合成保护组的框图;图10依照本发明的实施例示出了包含选择的名字空间元素、经映射的保护对象和保护组的属性的保护组的框图;图11是依照本发明的实施例配置用于保护保护组的计划的配置例程的框图;图12依照本发明的实施例示出了更详细地描述保护组的创建的保护组创建例程;图13依照本发明的实施例示出了用于检测包含在两个或多个保护组中的数据源的重叠的重叠检测例程;图14是依照本发明的实施例的数据保护系统的流程图,示出了用于恢复受保护对象的恢复过程的流程;图15是依照本发明的实施例示出可包含在存储位置的可恢复对象的更详细视图的框图;图16依照本发明的实施例示出了用于从存储位置恢复保护对象的恢复例程;图17-23A及24依照本发明的实施例示出了用于创建和利用自动发现组的流程图;图23B依照本发明的实施例示出用于解决受保护名字空间元素的重映射的重映射解决例程;图25依照本发明的实施例示出了用于最初发现顶层名字空间元素和可保护对象之间的映射的初始发现例程的流程图;图26依照本发明的实施例示出了用于发现名字空间和名字空间元素以及位于产生位置的可保护对象之间的映射的已调度发现例程的流程图;图27是依照本发明的实施例的自动发现组创建例程的流程图;图28和29依照本发明的实施例示出了自动发现组更新例程的流程图;图30依照本发明的实施例示出了用于将保护意图转换为用于保护一组数据的计划的流程图;图31和32依照本发明的实施例示出了用于将保护意图转换成用于保护位于产生位置的物理对象的详细计划的意图转换例程的流程图;图33是依照本发明的实施例用于为保护组创建保护计划的保护计划创建例程的流程图;图34是依照本发明的实施例用于执行准备计划的准备计划执行例程的流程图;图35是依照本发明的实施例用于确认位于存储位置的数据的副本的确认例程的流程图;图36是依照本发明的实施例用于确认位于存储位置的对象的副本的已调度确认例程的流程图;图37是依照本发明的实施例示出用于存储位置的存储部分和/或整个存储位置的状态转移的方框图;图38是依照本发明的实施例示出用于在前次意图转换例程期间发生的中断之后重启意图转换例程的重启例程的流程图;图39是依照本发明的实施例示出用于生成归档数据的计划的归档保护计划创建例程;图40是表格,依照本发明的实施例示出了可用于生成归档方案的不同世代的例子;图41是依照本发明的实施例用于为归档数据分配介质的流例程;图42依照本发明的实施例示出了数据保护系统的方框图;图43-44依照本发明的实施例示出了由数据保护系统执行的数据传送监视例程的流程图;图45依照本发明的实施例示出了数据保护系统重启从产生位置到存储位置的变化记录的传输的流程图;图46和47依照本发明的实施例示出了用于确认复制品的确认例程的流程图;图48A是依照本发明实施例用于处理由产生位置接收的命令的命令处理例程的流程图;图48B是依照本发明的实施例用于将变化记录从产生位置传输到存储位置的传输数据例程的流程图;图48C是依照本发明的实施例用于确认数据的确认例程的流程图;图49A是依照本发明的实施例用于处理由存储位置接收的命令的命令处理例程的流程图;图49B是依照本发明的实施例用于在存储位置接收记录的接收记录例程的流程图;图49C是依照本发明的实施例用于将变化记录应用于存储位置处的复制品的应用变化记录例程的流程图;图50是依照本发明的实施例包含多项任务的作业的框图;图51是依照本发明的实施例示出任务的监视和补充作业的创建的流程图;图52是依照本发明的实施例示出补充作业例程的流程图,该例程用于标识任务失败并且如果该任务是关键的则创建补充作业;图53是依照本发明的实施例示出用于诊断与副本和时间版本相关联的问题以及用于如果检测到问题则生成关于建议的修正的报告的流程图;
图54-56依照本发明的实施例示出了描述用于诊断与数据保护系统中数据副本有关的潜在问题的副本诊断例程的流程图;图57-58依照本发明的实施例示出了描述用于诊断与由数据保护系统生成的时间版本有关的潜在问题的时间版本诊断例程的流程图;以及图59是依照本发明的实施例描述用于诊断与数据保护系统中信息的恢复有关的潜在问题的恢复诊断例程的流程图。
具体实施例方式
图1A是依照本发明的实施例用于管理数据的保护和恢复的数据保护系统的框图。在此描述的数据保护系统100的实施例为诸如系统管理员等用户提供容易地管理数据的保护与恢复的能力。通常,数据管理和保护对于在产生位置103主动产生和修改的数据是期望的。保护该数据并将它作为数据的复制品或副本存储在存储位置105。存储位置可以在远离产生位置的位置和/或与产生位置同一个位置。此外,存储位置可包括不同存储形式的多个位置。例如,数据的复制品可以在一个位置处维护,而该数据的归档可在第二个位置处维护。因而,存储位置一般描述可存储和保护数据的位置的任何组合和/或类型。
如将在这里描述的,数据保护系统100包括数据保护器101,它与产生位置103和存储位置105通信以监视产生位置103和存储位置105之间数据的保护和流动。如图1A所示的数据保护器101可存在于诸如服务器等单个计算设备上,或者分布在多台计算设备上。数据保护器101部署位于数据保护系统100内不同计算设备上的代理,诸如产生位置103和/或存储位置105,并与其通信,以便能够进行多设备间的数据保护的分布式控制与管理。由数据保护系统100提供的数据保护类型的例子包括,但不限于,用时间版本的复制、在诸如磁带或盘之类的可移动介质上的传统归档以及复制和归档两者的组合。可以理解,保护的任何其它形式和/或组合都可用于本发明实施例,并且复制、时间版本和归档都是简单的例子。
图1B示出数据保护系统100的另一实施例。具体地,数据保护器110可部分或全部驻留在产生位置111。在这样一个实施例中,数据保护器110提供在它自己与产生位置111之间以及在它自己与存储位置113之间的通信。
图1C还示出依照本发明的实施例用于保护和恢复数据的数据保护系统100的又一实施例。如图1C所示,数据保护器120可部分或全部驻留在存储位置123上。在这样一个实施例中,数据保护器120提供它自己与存储位置123之间以及它自己与产生位置121之间的通信。
图2是依照本发明的实施例用于保护和恢复数据的数据保护系统200的另一框图。数据保护系统200示出多个产生位置,诸如产生位置1 203、产生位置2 205、一直到产生位置N 207,可与数据保护器201交互,以存储源自产生位置的数据的复制品和/或时间版本。数据保护器2 201与产生位置203、205、207通信,并为驻留在诸如存储位置A 209、存储位置B 211和存储位置X 213等的相应存储位置的数据提供保护。这里所述的实施例可用于任意数量的数据产生位置和存储位置及其组合。
如将要理解的及示于图1A-2,任何类型的数据保护系统的配置都可按照本发明实施例用于保护和恢复数据。
总的来说,在此所述的数据保护系统实施例为数据保护系统的用户提供在高层指定在产生位置的什么数据是重要的以及用户想要如何保护该数据的能力。具体地,在此所述的系统为用户提供逻辑地标识他们想要保护特定产生位置的什么数据和他们想要如何保护它们的能力。数据保护系统将该逻辑标识转换成一系列被调度和执行来保护数据的的“作业(job)”。如下所述,作业包括保护由用户标识的数据所需的详细信息。例如,作业可执行复制、确认、时间版本管理、归档和介质管理等等。
为了向用户提供在逻辑层选择数据的能力,数据保护系统向用户提供以“名字空间”和“名字空间元素”形式存储在产生位置的数据的的逻辑表示。如在此所述的名字空间是应用程序的逻辑表示。例如,可在数据保护系统内表示为名字空间的应用程序包括但不限于,分布式文件系统(“DFS”)、本地文件系统、诸如共享点(Sharepoint)和交换名字空间(Exchange Namespace)等web应用程序名字空间。如将意识到的,示例性应用程序的列表仅为了说明,而不是要以任何方式来限制本发明。数据保护系统可使用任何类型的应用程序并被标识为名字空间。
如在此所述的名字空间元素是诸如数据等物理对象的逻辑表示,并且是组成名字空间的主要实体。例如,名字空间元素可以是但不限于,DFS链接、服务器、共享、卷、文件夹或交换存储组。一般而言,交换存储组是一个共同日志的数据库集合。如相关领域的技术人员将意识到的,可使用名字空间元素来表示任何类型的物理对象或物理对象集合。
为保护数据,用户在逻辑名字空间中搜索或导航并且选择一个或多个名字空间元素。所选择的名字空间元素与一个现有的“保护组”相关联或者用于创建一个新的保护组。当名字空间元素与一个保护组相关联时,与该名字空间元素相关联的物理对象(数据)也变成该保护组的一部分。如在此所述的保护组是名字空间元素以及应用了相同保护规则的相关联保护对象的逻辑组合。
每个名字空间元素用于定位一或多个物理对象(数据),在此称为“可保护对象”,可将它们添加到保护组。一旦被定位,可选择可保护对象来保护。当选择一个可保护对象用于保护时,所选择的可保护对象变成作为保护组一部分的“可保护对象”。如在此所述的可保护对象是可保护的物理信息/数据。例如,可保护对象可以是但不限于,文件夹、文件、电子邮箱、数据库、网站等等。如在此所述的保护对象是已经被标识和选择用于保护的可保护对象。
除了创建保护组之外,用户可以在高层指定他们想要何时(多久一次)和保护该保护组以及保护该组多长时间。另外,用户可指定他们想要保留该保护组的副本和归档多长时间。这类高层指定可跨越所有保护活动,如复制、归档、介质管理和它们的任何组合。基于用户提供的指定,创建用于保护保护组的对象的详细计划。
为恢复数据,向用户提供在逻辑名字空间中搜索或导航以定位用户要想恢复的数据的能力。随后可使用到要恢复的数据的逻辑路径来定位一个或多个可恢复对象,如下所述。每个可恢复对象表示保护对象或其一部分的版本。
图3是依照本发明的实施例的数据保护系统300的流程图,描述了位于产生位置的可保护对象的初始选择和保护。如图3所示,数据保护系统300将代理部署到产生位置305,以允许发现位于产生位置305的可保护对象并且标识相应于那些可保护对象的名字空间和名字空间元素。发布那些名字空间和名字空间元素以供用户交互并在用户界面303上显示。
例如,图4依照本发明实施例示出了在用户界面303上发布和显示以供用户交互和选择的多个名字空间和名字空间元素的框图。如相关领域的技术人员将意识到的,图4的说明只是示例性的,并且本发明的实施例可显示任何其它配置。例如,显示可包括卷但没有共享。
显示400示出了DFS ROOT(DFS根)名字空间401和SERVERS(服务器)名字空间403。DFS ROOT名字空间401包括两个名字空间元素405、407,两者都是DFS根。在DFS ROOT名字空间401之下标识的名字空间元素是\\ABCD\PUBLIC405和\\EFG\PRIVATE 407。另外,SERVERS名字空间403包括若干名字空间元素409、411、413、415、421、423、425。那些名字空间元素也可包括若干另外的名字空间元素。例如,SERVER1(服务器1)409包括若干名字空间元素类型,诸如SHARES(共享)名字空间元素类型411。同样,SHARES名字空间元素类型411包括SHARE1(共享1)名字空间元素413和SHARE2(共享2)名字空间元素415。另外,SHARES(共享)名字空间元素411、SHARE1(共享1)名字空间元素413和SHARE2(共享2)名字空间元素415都是可保护对象的逻辑表示。
用户可通过选择展开或折叠框,诸如展开框417来与名字空间和名字空间元素的显示400交互。另外,用户可通过选择诸如选择框419等选择框来选择一个或多个名字空间元素用于保护。在另一实施例中,除了能够选择名字空间元素用于保护之外,用户还能选择名字空间用于保护。
回来参考图3,在用户界面303上表示名字空间和名字空间元素的显示400时,用户选择用户想要数据保护系统300保护哪个名字空间元素。另外,用户可提供“保护意图”用于所选择的名字空间元素。如在此所述的保护意图是如何保护所选择的数据的高层描述。例如,用户可指示通过每晚备份对象一次并且在一年内维护每周的副本来保护所选择的名字空间元素。所选择的名字空间元素和相关联的保护意图从用户界面303传送到数据保护器301。
数据保护器301使用所选择的名字空间元素和保护意图,创建由所选择的名字空间元素标识的可保护对象的保护组。在选择时,可保护对象变成保护对象。保护组包括所选择的名字空间元素、相关联的保护对象的标识、以及有关如何保护保护对象的详细计划。另外,数据保护器301创建至少一个自动发现组,如下所述。在一个实施例中,数据保护器301也可创建已保存搜索例程,如下所述。
保护组的创建是通过将所选择的逻辑对象(名字空间元素)映射到位于产生位置的合适的可保护对象来完成的。随后添加所标识的可保护对象作为保护组的成员并且变成保护对象。可将可保护对象添加到现有的保护组或者可形成一个新的保护组。另外,保护意图用于创建保护保护组的组计划。组计划包括但不限于,资源计划、准备计划和保护计划,下面详细地描述每个计划。组计划和组内的计划是由一个或多个作业和调度参数组成的。在资源计划的情况下,标识要分配资源的数量。分配的资源可包括但不限于,复制品的磁盘空间、诸如磁盘或磁带等归档的可移动介质、复制品和可移动介质两者的组合等等。调度参数标识何时要执行作业。
在生成保护组、保护数据的计划、自动发现组和已保存搜索之后,数据保护器301准备产生位置305和存储位置307用于保护。具体地,数据保护器部署代理,它们能够将数据从产生位置305传递和传送到存储位置307。一旦已经为保护准备了产生位置和存储位置,保护就开始,并且将用于保护对象的数据副本从产生位置305传送到存储位置307。如下所述,所传送的数据副本可作为复制品、归档副本、或者任何其它类型的数据保护来维护。
如下面更详细地讨论的,在为保护准备存储位置307时,数据保护器301分配必需的资源(通过资源计划),用于按用户所请求的存储物理对象的副本。为开始保护,启动一个作业,以创建所选择的存储在产生位置305的可保护对象的初始副本、发送副本、并且在存储位置307存储副本。如果副本是复制品,则通过执行确认作业来确认它以保证它的准确性。如果副本被归档到可移动介质,则初始副本是所选择可保护对象的完整备份。在生成初始副本之后,数据保护器301创建作业以周期性地更新副本,或者创建附加的副本(归档的情况也是如此),它具有已经对位于产生位置305的信息作出的改变。
为标识存储在产生位置305、与所选择的名字空间元素相关联的可保护对象,数据保护器301将逻辑对象(名字空间元素)映射到物理对象(可保护对象)。再次参考图4,显示了两个名字空间,DFS ROOTS 401和SERVERS名字空间403,其每一个具有多个名字空间元素。用户可选择一个或多个名字空间元素。在一个实施例中,当选择一个名字空间元素时,也默认地选择了所有被包含的名字空间元素。使用图4作为一个例子,如果用户选择SERVER 1409上的STORAGE GROUP1(存储组1)421,则DATABASE A(数据库A)和DATABASE B(数据库B)也被自动选择。用户可取消选择一个或多个名字空间元素。
每个名字空间元素映射到位于产生位置305的一个或多个可保护对象。例如,名字空间元素\\ABCD\PUBLIC 405映射到多个可保护对象。参考图5,名字空间元素\\ABCD\PUBLIC 505映射到位于产生位置305的三个可保护对象。具体地,名字空间元素\\ABCD\PUBLIC 505映射到在服务器1上的D\folder 507、服务器2上的D\folder 509和服务器3上的F\511。每个可保护对象507、509、511位于产生位置305。
为了使数据保护器能够搜索和导航名字空间,以及从诸如名字空间元素505等逻辑对象映射到物理对象,创建将名字空间和名字空间元素相关联的方案。方案是应用程序名字空间的组成部分的抽象表示,其中可能的名字空间包括但不限于分布式文件系统和交换。
图6依照本发明的一个实施例示出了一个这样的方案的框图,该方案用于将名字空间的类型和名字空间元素的类型相关联,表示卷方案。该方案被表示为一个有向图,其中图中的节点表示应用程序名字空间内的名字空间元素的类型,而链接表示名字空间元素之间的包含和连接关系。名字空间元素类型之间的包含关系和连接关系表示可以将那些类型的实例相关的所有可能方式。参考图6,包含关系被示为单箭头线,而连接关系被示为双箭头线。例如,“DFS root”类型的名字空间元素603可表示到“共享”类型的名字空间元素609的连接617,而共享609可表示到卷611的连接619,或者到文件夹615的连接。
一种包含关系是名字空间元素之间直接的父/子关系,其中父节点在逻辑上包括子节点。例如,域601包含(623)服务器607,并包含(625)DFS根603。服务器607包含(627)共享609并包含(629)卷611。卷611包含(631)文件夹615并包含(633)固定点613。文件夹615可包含其它文件夹并包含文件(未示出)。
一种连接关系是源/目标关系,其中源名字空间元素是目标名字空间元素的逻辑同义词,这意味着源和目标路径表示两个不同的名字空间中相同的基础对象。连接关系可以是一对多关系。即,单个源名字空间元素可具有多个目标名字空间元素,在这种情况下,目标表示可替换的位置,从这些位置检索由源表示的基础数据。例如,DFS根603可映射(617)到作为目标的多个共享609。连接关系也可以是多对一的,连接的目标可具有其它名字空间元素中的多个逻辑名字。例如,文件夹615可以具有许多映射(621)到文件夹615的共享609。
另外,多个逻辑名字空间元素可映射到同一可保护对象。例如,SHARE1名字空间元素513映射到服务器1上的E\PRIVATE 515。同样,SHARE2名字空间元素517也可映射到服务器1上的E\PRIVATE 515。
图7依照本发明的一个实施例示出了用于逻辑名字空间元素映射到物理可保护对象的方案的框图。具体地,方案700示出域ABCD 701具有与DFS根(公共)703和三个服务器705的包含关系。同样,DFS根(公共)703具有与三个DFS DFS链接707(包括链接1 707A、链接2 707B和链接3 707C)的包含关系。链接1 707A、链接2 707B和链接3 707C的每一个包括到共享711的连接关系。具体地,链接1 707A包括到\\server1\share的连接,链接2 707B包括到\\server2\share的连接,以及链接3 707C包括到\\server3\share的连接。\\server1\share、\\server2\share、\\server3\share的每一个是不同于DFS名字空间的名字空间中的逻辑对象。这是通过遍历DFS链接707和共享711之间的连接719来示出的。具体地,\\server1\share、\\server2\share和\\server3\share在UNC服务器名字空间中。参考共享711,为完成\\ABCF\PUBLIC的映射,确定每个共享要映射到什么内容。如上所述,共享可以映射到卷713和/或文件夹717。因而,继续该例,确定逻辑对象\\server1\share映射到服务器1上的物理对象D\folder;\\server2\share映射到服务器2上的D\folder;以及\\server3\share映射到服务器3上的F\。服务器1上的D\folder、服务器2上的D\folder和服务器3上的F\是由逻辑对象\\ABCD\PUBLIC 505表示的三个物理可保护对象。
如图7的例子所示,利用方案600(图6),可以确定,从逻辑名字空间元素到存储在由该名字空间元素表示的产生位置上的物理对象的映射关系。从方案600中的每个点,可以知道,从该点可搜索什么关系以链接到映射的下一部分。
数据保护器的名字空间遍历能力可应用于任何类型的应用程序,用于浏览、搜索和从逻辑名字空间和名字空间元素映射到存储在产生位置的物理对象。例如,通过用户界面,用户可指定搜索参数,包括通配符,而且数据保护系统可以查询现有的名字空间和名字空间元素列表并提供适当的结果。用户界面将传递搜索请求到数据保护器,并且数据保护器将结果发回用户界面。数据保护器支持一般操作以在名字空间之间“搜索”、“导航”和“映射”,其中可以在一个方案中捕捉每个应用程序名字空间的特定结构。为扩展数据保护器以支持新的应用程序,随后,仅需要提供一个模块,以在该名字空间上执行基本操作来遍历包含关系和连接,并提供方案,它描述如何将那些操作组成到较大的“搜索”、“导航”和“映射”操作。
本发明的实施例同样也可用于没有数据保护的应用程序。例如,可产生存储报告,它说明如何跨一个产生位置或者跨一个产生位置内的一组服务器来使用存储。在这样一个实施例中,用户可以配置一个报告来显示在DFS根之下所有大于100MB的文件。
产生位置包括若干可保护的不同类型对象。例如,图8依照本发明的一个实施例示出了包含可由数据保护系统保护的可保护对象的产生位置800的框图。包括在产生位置800中的是三个服务器801、803和805。每个服务器可以是它自己的计算设备,或者表现为单个服务器的计算设备组。每个服务器可以在一个中心位置,或者在地理位置上是分散的。
包括在诸如服务器-1 801等服务器中的是一个或多个“数据源”。如在此使用的数据源是由数据保护器操作的应用程序数据的高层抽象。数据源将它的物理数据揭示为一个或多个可保护对象,并且数据源本身可以是可保护对象。数据源包含在单个服务器内,而服务器可包含一个或多个数据源。例如,服务器-1 801包括两个数据源,数据源1(DS1)807和数据源2(DS2)821。
同样,数据源1 807包含六个可保护对象809、811、813、815、817和819。类似地,数据源2 821包含两个可保护对象823和825。除了包含可保护对象的数据源之外,数据源本身可以是可保护对象。而且,可保护对象可包含其它可保护对象。例如,数据源3 835包含八个可保护对象827、829、831、833、837、839、841、843。可保护对象837包含可保护对象839,后者包含可保护对象841和843。
服务器-3 805包含四个数据源,数据源4(DS4)845、数据源5(DS5)851、数据源6(DS6)857和数据源7(DS7)859。四个数据源845,851,857和859的每一个都可以是可保护对象。包含在数据源4 845内的是两个可保护对象847和849。数据源5 851包含两个可保护对象853和855,数据源6 857不包含可保护对象,数据源7 859包含两个可保护对象861和863。
每个可保护对象是一个特定的可保护对象类型,它允许数据保护系统在不同等级的粒度上揭示每个数据源中的可保护对象。例如,数据保护系统可将交换存储组数据源整体地揭示为一个可保护对象,具有存储组的保护对象类型。也可将同一存储组数据源划分成多个可保护对象,每个可保护对象具有数据库的可保护对象类型。对于同一可保护对象,甚至可存在两或多个不同可保护对象类型。例如,数据保护系统可在块级将卷揭示为一种可保护对象类型的可保护对象,并且在文件级将它揭示为另一种可保护对象类型的可保护对象。
数据源的例子包括但不限于操作系统、系统卷、交换存储组、SQL数据库等等。用于服务器的可保护对象类型的例子包括但不限于,系统保护文件和操作系统数据存储,诸如注册表和现用目录。文件系统卷可保护对象类型包括但不限于目录和文件。文件系统卷实体可由链接到目标名字空间元素的文件共享或DFS来定位。用于交换存储组的可保护对象类型包括但不限于数据库和邮箱。
如上所述,每个可选择的名字空间元素映射到一个或多个可保护对象,诸如可保护对象801-863(图8)。每个可保护对象是一种可保护对象类型,并且每个可保护对象在单个数据源内。另外,每个数据源在一个产生位置的单个服务器内。
再次参考用户选择名字空间元素\\ABCD\PUBLIC 405(图4)并且继续将名字空间元素映射到可保护对象的例子,如参考图5和7所描述的,将依照本发明的一个实施例参考图9A-9B描述将那些可保护对象及其关联映射到保护组中。
从用户的观点,保护组的成员是由用户已经选择的名字空间元素定义的并且添加到保护组,以及作为自动发现组(下面描述)的结果添加的可保护对象。另外,数据保护系统将允许用户查看在保护组中每个名字空间元素映射到哪个保护对象以及那些保护对象每一个的状态。
回来参考前面的例子,名字空间元素\\ABCD\PUBLIC 405映射到三个可保护对象服务器1上的D\Folder 507、服务器2上的D\Folder 509和服务器3上的F\511。接着通过参考图7描述的映射,并且参考图9A,服务器1上的D\Folder 507指包含在服务器1 901上的数据源D\907内的文件夹909。服务器2上的D\folder509指包含在服务器2 903上的数据源D\935内的文件夹927。最后,服务器3上的F\511指向服务器3 905上的数据源F\951。参考图9B,名字空间元素\\ABCD\PUBLIC 505的选择映射到参考图9A描述的保护对象,并且那些对象与保护组930相关联。如上所述,包含在所选择的保护对象中的可保护对象可自动地包括在保护组中。例如,部分地映射到服务器3 905上的F\951的\\ABCD\PUBLIC 505包括另外的可保护对象953和955,因为它们包含在服务器3905上的保护对象F\951内。如在图9B中所示,保护组930可包含位于不同服务器,诸如服务器1 901、服务器2 903和服务器3 905上的保护对象。
图10依照本发明的一个实施例示出了包含所选择的名字空间元素的保护组、所映射的保护对象和保护组的属性的框图。具体地,保护组1030包含名字空间元素\\ABCD\PUBLIC 1005,相对于前面的例子描述的每个所映射的保护对象,以及包含在所选择的保护对象内的保护对象。具体地,保护组1030包括保护对象服务器1上的D\folder 1009、服务器1上的D\folder 1027。另外,保护组1030包括服务器3上的保护对象F\1051,以及包含在保护对象服务器3上的F\1051内的两个保护对象1053、1055。
每个保护组,诸如保护组1030,包括一个组计划1040,它可包括时间表1041、空间分配规则1043等。组计划包括作业和用于保护组的其它信息。为了操作简单,保护组收集保护对象。在保护组中的所有保护对象共享从同一保护意图集合生成的同一组计划。
总之,保护组包括一个或多个保护名字空间元素。每个保护名字空间元素定位一个或多个可保护对象。保护对象进而定位在数据源上。数据源可以是至多一个保护组的成员。在保护期间,周期性地重新评估保护组映射以标识新发现的可保护对象(它们应该潜在地包括在保护组本身之中),并且检测到保护对象的逻辑路径方面的变化。下面描述的这个周期性评估是使用自动发现组完成的。
现在参考图11,12,13,16,23B,25,26,27,28,29,30,31,32,33,34,35,36,38,39,41,48A,48B,48C,49A,49B,49C,52,53,54,55,56,57,58和59,描述由本发明各实施例实现的不同例程。相关领域的技术人员将意识到,可在如服务器等单个计算设备或者分布在许多计算设备上来实现这些例程。图11,12,13,16,23B,25,26,27,28,29,30,31,32,33,34,35,36,38,39,41,48A,48B,48C,49A,49B,49C,52,53,54,55,56,57,58和59示出了用于执行特定功能的块。在另一实施例中,可使用更多或更少的块。在本发明的一个实施例中,一个块可单独或组合地表示软件程序、软件对象、软件功能、软件子例程、软件方法、软件实例、代码片断、硬件操作或者用户操作。
图11是依照本发明一个实施例配置用于保护保护组的计划的配置例程的流程图。配置例程1100在块1101开始,并且在块1103,例程从与用户界面交互的用户获得名字空间元素的选择和保护意图。如将在下面描述的,用户可选择多个名字空间元素用于保护。所提供的保护意图应用于所有选择的元素。在块1105,所选择的名字空间元素被映射到适当的可保护对象。
在判定块1107,判定是否已经选择另外的名字空间元素要与先前选择的名字空间元素包括在一起。如果在判定块1107判定已经选择了另外的名字空间元素,则例程返回,以在块1103获得所选择的名字空间元素。然而,如果在判定块1107判定没有另外的名字空间元素,则在块1109,数据保护器为所选择的名字空间元素生成一个保护组,它将用于保护在块1105映射的相关联的可保护对象。添加到保护组的可保护对象变成保护对象。
在块1111,基于由用户在块1103提供的保护意图生成用于保护的组计划。用于保护的组计划可包括保护的频率和所希望的保护类型。保护类型的例子包括,但不限于“后台保护”、“备份保护”和归档保护。后台保护指保护接近于连续(例如,每小时、一天24小时、一周七天地更新副本)的保护类型。备份保护指调度保护在特定时间发生(例如,每晚一次)的保护类型。组计划应用于保护组的所有保护对象。下面详细地描述组计划的生成并称之为“意图转换”(图31-34)。
在块1113,准备包括保护对象的产生位置和将存储对象副本的存储位置用于保护。例如,数据保护器生成存储在存储位置的数据初始副本并且确认准确性。在保护已经进行之后,如由块1115所示的,并且已经复制和存储与所选择的名字空间元素相关联的保护对象之后,例程在块1117结束。
图12依照本发明一个实施例示出了保护组创建例程,它更详细地描述了在块1109(图11)引用的保护组的创建。保护组创建例程1200在块1201开始,并且在块1203接收要进行保护的名字空间元素的选择。另外,还接收用于所选择名字空间元素的保护意图。在判定块1205,判定所接收的名字空间元素是否要添加到一个新保护组或者是否要将它们包括在一个现有的保护组内。如果判定不要将名字空间元素添加到新的保护组,则在块1207获得要将名字空间元素包括在哪个现有的保护组中的选择。
在块1209,解决与名字空间元素相关的数据源的重叠,如在下面将更详细地描述的(图13)。最后,在块1211,更新现有的保护组以包括附加的名字空间元素和相关联的可保护对象。另外,用户可具有改变用于保护组的组计划的选项。
回来参考判定块1205,如果判定要将所接收的名字空间元素添加到新的保护组,则在块1213解决与那些名字空间元素相关联的数据源的任何重叠。在块1215,接收新保护组的名字。在一个例子中,新保护组的名字可由用户通过用户界面提供。或者,保护组的名字可自动地由数据保护系统本身生成。在块1217,取决于先前向数据保护系统提供的保护意图,为保护组创建组计划。在块1219,创建保护组的例程结束。
图13依照本发明一个实施例示出了对应于块1209和1213(图12)的重叠检测例程,用于检测包含在两个或多个保护组中的数据源的重叠。重叠检测例程1300在块1301开始,并且在判定块1303,判定与所选择的名字空间元素相关联的任何可保护对象的包含数据源当前是否包含在另一个保护组(现有保护组)中。如果判定没有包含与所选择的名字空间元素相关联的可保护对象的数据源包含在现有保护组中,则例程在块1313结束,并且将控制返回到适当的例程,如保护组创建例程1200(图12)。
然而,如果判定包含与所选择的名字空间元素相关联的可保护对象的数据源包含在一个现有的保护组中(即重叠),则在判定块1305-1307,确定如何解决所检测到的重叠。在本发明的一个实际实施例中,重叠的解决取决于用户的确定。例如,如果检测到重叠,则可向用户提供从当前保护组中排除重叠的数据源的可保护对象(“冲突的可保护对象”)的选项(1305),或者从现有保护组中移除包含导致重叠的冲突的可保护对象的数据源并将它添加到当前的保护组(1307)。在一个替换的实施例中,可由用户提供一个全局策略用于解决重叠,用于通过重叠检测例程1300来进行。在又一实施例中,添加一个可保护对象到将引起重叠的保护组的尝试将导致故障。
在判定块1305,确定是否要将冲突的可保护对象从目前要将它添加到的保护组(当前的保护组)中排除。如果在判定块1305确定要将冲突的可保护对象从当前的保护组中排除,则从当前的保护组中移除该可保护对象,但保留在引起冲突的现有保护组中,并且重叠检测例程将控制返回到启动例程,如由块1313例示的。
如果在判定块1305确定不要将冲突的可保护对象从当前的保护组中排除,则例程在判定块判定是否要将可保护对象的数据源和包含在该数据源内的所有保护对象从现有的保护组中移除,并且,将被移除的数据源、被移除的保护对象和冲突的可保护对象添加到当前的保护组。如果从现有的保护组移除数据源和包含的保护对象并且添加到当前的保护组,则例程在块1313结束,将控制返回到它来自的适当例程。
如果在判定块1307确定不要从现有的保护组中移除冲突的可保护对象的数据源和所有包含的保护对象并且添加到当前的保护组,则重叠保护例程1300生成一个重叠故障,如由块1311例示的,并且在块1313结束。
与用户能够通过选择表示那些可保护对象的名字空间元素来保护存储在产生位置上的物理对象(可保护对象)相似,用户也可通过选择表示要被恢复的物理对象的名字空间元素来恢复物理对象(可恢复对象)。图14是依照本发明的一个实施例的数据保护系统的一个流程图,它示出了用于恢复保护对象的恢复过程。为恢复对象,用户选择一个或多个表示要恢复的保护对象的名字空间元素。数据保护器1401响应于接收名字空间元素的选择,随后查询存储位置1403以标识与由用户提供的所选择的名字空间元素相关联的可恢复对象的时间版本。在一个替换的实施例中,不必查询存储位置1403来标识时间版本。例如,为从归档恢复,数据保护器1401可通过搜索包含标识可用的时间版本的信息的目录或数据库来标识时间版本。合成所标识的时间版本并作为可恢复数据的时间点提供给用户。
用户选择一个要恢复的时间点并且提供该时间点的恢复意图。恢复意图的例子在下面更详细地讨论。在从用户收到关于要恢复什么及相应的恢复意图时,创建一个恢复计划并且由数据保护器1401执行,并且恢复位于存储位置1403的适当的可恢复对象并发送到产生位置1405。
图15是依照本发明一个实施例示出可包含在存储位置1403上的可恢复对象的更详细视图的框图。通常,恢复将被损坏或丢失的保护对象(或其部分)带回到先前的时间版本。时间版本可以是离散的或接近连续的。离散的时间版本由保护对象的持续时间点完整副本生成。离散时间版本的恢复可只要求保护对象的恢复或者可在恢复之后要求附加的恢复处理。接近连续的时间版本是由与保护对象相关联的日志的持续时间点副本生成的。恢复通过日志的滚进(roll forward)应用进行。在本发明的一个实施例中,滚进可在包含在日志内的任何时间点停止。
如在此所述的可恢复对象表示恢复保护对象的可能性。每个可恢复对象可以从一个或多个恢复源生成。恢复源可定位在与复制品相关联的、复制品内的、归档磁带上的或者磁盘上的归档副本的时间版本上。
现在参考图15,保护对象1509可包含一个或多个可恢复对象1511、1513、1515、1517、1519、1521。通常,可恢复对象可比保护对象更精细。例如,保护对象可以是文件夹,诸如服务器1上的D\folder 1509。保护对象1509可包含多个可恢复对象。例如,保护对象服务器1上的D\folder 1509可包含六个可恢复对象,包括文件1 1511、文件2 1513、文件3 1515、文件4 1517、文件5 1519和文件6 1521。另外,保护对象1509也是可恢复对象。
保护对象和保护方法的最初选择常常确定可用的可恢复对象和/或恢复所需的工作。例如,如果保护对象是包含邮箱的数据库的交换存储组,则在该存储组内的所有数据库可隐含地被保护。完整的存储组或者一个或多个数据库可被恢复并且因而是可恢复对象。如果保护仅由归档执行(下面描述)并且没有复制,则邮箱恢复可能是非常耗时的(昂贵的)。如果保护是由复制以及归档执行的,则从复制品恢复邮箱可以是非常快的(便宜的)。
如果保护对象是存储组的数据库,则可不整个地保护存储组而只保护包含在所选择的数据库内的邮箱。然而,如果保护对象是邮箱,则没有相关联的数据库或存储组的隐含保护。如果仅通过归档而不通过复制执行保护,则归档不可能有能力恢复除所选择的邮箱之外的任何内容。可供替换地,如果已知邮箱被认为是作为不同的保护组的一部分复制的数据库的一部分,则邮箱恢复可从其它保护组的复制品而不是从归档介质进行。
图16是依照本发明的一个实施例示出从存储位置恢复保护对象的恢复例程。恢复例程1600在块1601开始,并且在块1603从与显示在用户界面上的名字空间元素接口的用户接收名字空间元素的选择。用户也可提供恢复意图用于要恢复的数据。在块1605,接收要恢复数据的特定时间点的选择。在本发明的一个实施例中,用户提供要进行恢复的时间点。在另一个实施例中,可标识所选择的名字空间元素的时间版本并提供给用户用于选择。
在块1607,确定是否已经选择另外的元素用于恢复。如果确定已经选择了另外的元素用于恢复,则例程返回至块1603并且接收那些另外的要恢复的名字空间元素的选择。然而,如果确定没有另外的元素要恢复,则在块1609使用上述映射方案和接收的恢复意图将可恢复对象映射到位于存储位置的适当的恢复源。
在标识必要的恢复源后,在块1611创建恢复计划。恢复计划包括从适当的恢复源合成可恢复对象版本中要求的时间点的过程。在块1613,执行计划并且恢复所标识的可恢复对象。在块1615,恢复例程结束。
如上面提到的,除了创建保护组之外,数据保护系统还生成自动发现组和已保存搜索条件。自动发现组和已保存搜索条件提供一种自动化装置来向用户通知产生位置的改变。例如,改变可包括如服务器等计算设备、交换存储组、数据库、卷和共享的添加或删除,以及在名字空间元素和可保护对象之间映射方面的改变。为用户提供产生位置改变的通知使用户能够采取适当的动作来保护需要保护的新数据,并且在已经重新定位或移除数据时调整它们的保护策略。
自动发现组是一种机制,用于描述什么内容应该作为查询而不是作为一组离散的物理资源来保护。例如,假定组织将所有文件服务器命名为\\FILESRV*,诸如\\FILESRV1、\\FILESRV2等等。该组织的用户可以创建一个自动发现组,它周期性地搜索在任何名为\\FILESRV*的服务器上的所有共享。自动发现组将找到所有这样的共享并允许用户或者选择或者拒绝任何位于这些共享或者与这些共享相关联的可保护对象的保护。另外,在本发明的一个实施例中,自动发现组可周期性地重新评估并且向用户通知任何新的共享,并且给用户或者批准或者拒绝那些新共享的保护的机会。而且,重新评估标识任何已经被移除的现有共享并且给用户提供移除的通知。
自动发现组还可由数据保护器用于跟踪名字空间元素与可保护对象之间的映射。再次参考上面的例子,假定用户保护路径\\ABCD\PUBLIC。数据保护系统自动地生成包含名字\\ABCD\PUBLIC和到如服务器1上的D\folder、服务器2上的D\folder和服务器3上的F\folder等其保护对象的映射的自动发现组。如果在将来\\ABCD\PUBLIC被改变成指向不同的文件夹,或者在同一服务器上或者在不同服务器上,则数据保护器将这种改变通知给用户,并且给用户调整保护的机会。
图17-24依照本发明一个实施例示出了创建和使用自动发现组的流程图。为了说明图17-24,假定数据保护系统刚好已经安装在需要保护的包含若干服务器的工作空间(示为产生位置1703)上。
在初始化数据保护系统1700时,数据保护器1701查询产生位置1703以标识代表包含在产生位置内的可保护对象的名字空间和名字空间元素。数据保护器1701通过用户界面1705以用于用户交互和选择的名字空间及包含的名字空间元素的形式向用户发布名字空间和名字空间元素。
与用户界面1705交互的用户可选择用于保护的一个或多个名字空间元素,如\\ABCD\PUBLIC名字空间元素1707。除了选择用于保护的名字空间元素之外,用户提供标识用户想要如何保护相关联的可保护对象的保护意图。所选择的名字空间元素和保护意图的指示返回给数据保护器1701。
现在参考图18,数据保护器1701将名字空间元素的选择映射到位于产生位置1703的可保护对象。例如,基于名字空间元素\\ABCD\PUBLIC 1707的选择,数据保护器使用如上所述的名字空间方案将该名字空间元素映射到可保护对象。该映射标识名字空间元素\\ABCD\PUBLIC 1707映射到服务器1上的可保护对象D\folder1709和服务器2上的可保护对象D\folder 1711。在另一实施例中,在初始发现名字空间元素期间,元素可在那时被映射到相应的可保护对象。
数据保护器1701创建包含所选择的名字空间元素的保护组、要变成保护对象的可保护对象的标识、自动发现组1713和自动发现组表1715。如讨论的,基于用户提供的意图,保护组还包括组计划,它描述要如何实际地保护保护组。自动发现组1713包括名字空间搜索参数,诸如\\ABCD\PUBLIC\*,以及该名字空间元素到保护对象服务器1上的D\folder和服务器2上的D\folder的当前映射。创建包含用于所选择的名字空间元素的名字空间搜索参数的自动发现组1713为数据保护器提供随后搜索对匹配名字空间搜索参数的产生位置的添加、删除和重新映射的能力。将任何这样的改变通过警报向用户报告,因为它们可能与保护有关系。可用各种形式向用户提供警报。例如,可通过用户界面、电子邮件、页面、声音消息等提供警报。
除了创建自动发现组1713之外,数据保护器1701创建自动发现组表1715,它包括当前映射到保护对象的标识和有关那些保护对象的信息。具体地,信息包括映射到保护对象是否匹配包含在自动发现组1713中的自动发现组参数,如在匹配列1717所指示的;保护对象目前是否为待决的用户动作,如由待决列1719指示的;被映射的保护对象目前是否在组计划的保护之下,如由在计划中保护(“PP”)列1721来指示的;以及被映射的对象目前是否由用户保护,如由受用户保护(“PU”)列1731来指示的。如下所述,对象可受到用户保护但没有受到数据保护系统保护。例如,用户可指示它们想要保护一个特定的对象,从而使该对象受到用户保护,然而,该对象在已经为该保护对象完成意图转换之后才会变成受计划保护。
依照本发明一个实施例,在创建保护组、自动发现组、组计划和自动发现组表、数据保护系统之后,数据保护系统为保护准备产生位置和存储位置。在已经为保护准备了这些位置(例如资源计划)之后,执行用于创建所选择的可保护对象的初始副本的初始步骤(准备计划),并且随后保护开始(保护计划)。
在保护了所选择保护对象之后的某个预定的时间,数据保护系统运行自动发现组并且重新映射产生位置1703。例如,自动发现组可被调度为每晚运行一次。在晚上或者在产生位置的活动少的某个时间运行自动发现组,减少了施加在产生位置上的负载总量。
返回到参考图17-24描述的例子,为了说明的目的,运行自动发现组,并且自动发现组结果1723(图19)标识只有匹配自动发现组搜索参数\\ABCD\PUBLIC\*的可保护对象是保护对象服务器2上的D\folder。数据保护器1701将自动发现组结果1723与自动发现组表1715比较。在本例中,它标识保护对象服务器1上的D\folder不再匹配自动发现组搜索参数。服务器1上的D\folder可因各种原因不再匹配搜索参数。例如,服务器1上的D\folder可不再存在,或者服务器1上的D\folder不再在\ABCD\PUBLIC之下被映射。
在比较之后,更新表1715以指示保护对象服务器1上的D\folder没有在结果中返回,并且因此不再匹配自动发现组搜索参数,如在匹配列1717中由“N”所示的。另外,为保护对象服务器1上的D\folder更新自动发现组表1715,以指示用户交互目前对于该保护对象是待决的,如在列1719中由“Y”所示的。用户交互目前是待决的,因为该保护对象不再匹配自动发现组参数。服务器1上的D\folder保持被标记为在计划之下保护和受到用户保护,如在PP列1721和PU列1731中由Y所示的。
还更新自动发现组表1715以指示服务器2上的D\folder匹配于自动发现组搜索参数并且保持在计划中和受用户保护,如分别在列1721和1731中由“Y”所示的。最后,存在对于保护对象服务器2上的D\folder没有用户动作是待决的指示,因为它确实匹配并且受到保护,如在待决列1719中由“N”例示。
现在参考图20,在自动发现组已经运行之后第二天上午,自动发现组表已经被更新并且生成了警报,用户访问数据保护系统,并且从数据保护系统向用户提供了一个通知,保护对象服务器1上的D\folder不再匹配自动发现组搜索参数。
作为响应,数据保护系统从用户接收从保护组中移除该保护对象的指示。数据保护器1701更新自动发现组,从而从保护组中移除服务器1上的D\folder的映射并更新自动发现组表1715。具体地,将服务器1上的D\folder标记为不再受用户保护,如由PU列1731中的“N”所示,并且标记为不再待决,如由列1719中的“N”所示。在这一点上,服务器1上的D\folder保持由计划保护,因为还没有重新运行意图转换以从保护组中移除服务器1上的D\folder。
对象在自动发现表1715中维护并且被标记为不受用户保护,因此通过自动发现例程的后续执行来标识,它将不向用户呈现为待决的批准,因为已经将它从保护中排除了。由于对象不再受用户保护,因此它变成可保护对象。
图21继续先前的例子,并且在用户已经指示它们不再想要保护服务器1上的D\folder之后的某个时间点执行意图转换。在意图转换执行之后,更新组计划并且从保护组中移除服务器1上的D\folder。即使服务器1上的D\folder不再受保护组保护,保护组的现有时间版本也保持存储在存储位置,并且可用于将服务器1上的D\folder恢复至不再由计划保护的点。在意图转换完成后,更新自动发现组表1715。具体地,服务器1上的D\folder被标记为不受计划保护,如在PP列1721中由“N”所示的。
在意图转换已经完成之后的某个时间点,自动发现组再次执行,查询产生位置1703并且将自动发现组搜索参数重新映射到位于产生位置1703的对象。在完成自动发现组搜索参数的映射之后,提供自动发现组结果1725并且包括一个指示,即搜索参数映射到可保护对象服务器2上的D\folder和新的可保护对象服务器2上的E\folder。再次,数据保护器1701将结果与自动发现组表1715比较。该比较指示,保护对象服务器2上的D\folder再次匹配自动发现组搜索参数,因此不是待决的用户动作,并且保持受用户和组计划两者的保护。另外,新的可保护对象服务器2上的E\folder目前未受组计划保护,如由PP列1721中“N”所示的;目前未受用户保护,如由PU列1731中“N”所示的;并且是目前待决的用户动作,如由待决列1719中“Y”所示的。在完成比较后,更新自动发现组表1715以标识新的映射和所有对象的状态。
可保护对象服务器2上的E\folder目前未受计划和受用户保护,因为它是由自动发现组新标识的。数据保护系统1701生成提供给用户的警报,指示新的可保护对象已经被添加到与保护组中的保护对象相似的产生位置。生成警报,是因为用户可能对作为保护组的一部分另外保护新标识的可保护对象感兴趣。
在图22中,用户已经收到警报并且提供应答以开始对由自动发现组自动标识的新标识的可保护对象的保护。可保护对象服务器2上的E\folder也被添加到保护组并且因而变成可保护对象。同样,数据保护器1701将一个指示添加到自动发现组表1715,即对象服务器2上的E\folder不再是待决的用户动作、受用户保护、但在这点上还没有受计划保护。
图23A继续上面的例子,在由用户指示将新标识的可保护对象添加到保护组之后的某个时间,意图转换执行并且服务器2上的E\folder变成受计划保护。在完成意图转换之后,更新自动发现组日志1715以指示服务器2上的E\folder现在受计划保护,如由PP列1721中“Y”所示的。
在意图转换已经完成之后的某个时间,数据保护器1701再次运行自动发现组例程,并且将自动发现组搜索参数\\ABCD\PUBLIC\*重新映射到位于产生位置1703的对象。在完成自动发现组例程后,数据保护器已经标识了服务器2上的D\folder和服务器3上的E\folder的映射1729。那些结果用于比较和更新自动发现组表1715以指示保护对象服务器2上的D\folder再次匹配自动发现组搜索参数、不是待决的用户动作、保持受数据保护系统保护、并且保持受用户保护。另外,指示先前的保护对象服务器2上的E\folder没有被自动发现例程标识,但保持受用户和保护计划保护,并且因此是待决的用户动作。最后,新的可保护对象服务器3上的E\folder的添加被标识为匹配自动发现组搜索参数,然而,目前不受用户或保护计划保护,因为它是被新标识的,并且因此是待决的用户动作。在自动发现表更新后,数据保护器1701生成一个警报,它包括先前的保护对象服务器2上的E\folder不再匹配自动发现组搜索参数,以及服务器3上的E\folder已经被添加到产生位置并且匹配自动发现组搜索参数的标识。这个警报可向用户指示,保护对象服务器2上的E\folder已经移动到服务器3上的E\folder。在没有自动发现这样一个改变的情况下,用户可能一直在继续保护旧对象并且没有为新对象提供保护。
图23B依照本发明的一个实施例示出了用于解决保护名字空间元素,如在图23A中检测到的名字空间元素的重新映射的重映射解决例程。当判定已经移动了一个名字空间元素时,重映射解决例程2300运行。例如,先前被映射到服务器2上的E\folder的\\ABCD\PUBLIC\LINK3可能已经被重映射到服务器3上的E\folder。
重映射解决例程2300在块2301开始。在块2303,评估自动发现组,并且确定保护名字空间元素已经从一个可保护对象重映射到另一个可保护对象。在判定块2305-2309,确定如何解决重映射。
具体地,在判定块2305确定是否应当排他地保护新映射。如果确定新映射应当排他地保护,则在块2311将旧映射标记为不受用户保护,并且将新映射标记为受用户保护。然而,如果确定新映射不应该排他地保护,则在判定块2307确定旧映射是否应该排他地保护。如果旧映射要排他地保护,则在块2311将旧映射标记为受用户保护,并且将新映射标记为不受保护。然而,如果在判定块2307确定旧映射不应该排他地保护,则在判定块2309确定两个映射是否都应该保护。
如果在判定块2309确定两个映射都应该保护,则在块2311,两个映射都被标记为受用户保护。然而,如果确定两个映射都不要保护,则在块2311,两个映射都标记为不受用户保护。
在块2313,执行意图转换例程,如在此所述。在完成意图转换后,更新保护对象,使得对于旧保护对象和新保护对象两者,在计划中受保护的标志包含与受用户保护标志相同的值。在块2315,例程结束。
如本例的先前部分一样,图24示出向用户提供警报,标识通过先前运行自动发现组例程检测到的改变。用户选择更新自动发现组搜索参数的映射,以包括新标识的可保护对象服务器3上的E\folder,并且移除旧保护对象服务器2上的E\folder的映射(块2305,图23B)。数据保护系统1701,响应于从用户接收更新映射的指示,更新保护组以包括新保护对象。另外,数据保护器1701更新自动发现组表1715以标识服务器2上的E\folder不再受用户保护,但在这一点上保持受计划保护,并且指示保护对象服务器3上的E\folder的新映射受用户保护但还没有受计划保护。
在用户已经指示改变之后的某个时间,执行意图转换,从而使服务器2上的E\folder从受组计划保护中移除,并且添加服务器3上的E\folder为受组计划保护。如将意识到的,可在用户指示保护组中的改变(或者对象的添加或者对象的移除)之后的任何时间点执行意图转换。例如,可在用户已经指示对保护组的改变之后立即执行意图转换,或者在若干天之后执行。另外,自动发现组例程和意图转换可彼此独立。自动发现组例程可在用户指示对保护组的改变和意图转换执行之间执行多次。在这一情况下,在自动发现组的刷新之后,即使对组计划的实际改变还没有发生,也不为正在改变的对象生成警报,因为已经为用户提供指令。
图25依照本发明的一个实施例示出了初始发现例程的流程图,它初始地发现顶层名字空间元素与可保护对象之间的映射。初始发现例程2500在块2501开始,并且在块2503标识产生位置的所有可易于发现的对象的名字空间和名字空间元素。可易于发现的对象是产生位置的顶层对象。例如,可容易地发现顶层对象,如DFS根、服务器、交换服务器和STS服务器的名字空间和名字空间元素。在块2505,所发现的产生位置的顶层名字空间和名字空间元素持久地存储在数据保护器的存储器(例如数据库)中。在块2507,初始发现例程2500结束。
图26依照本发明的一个实施例示出了已调度发现例程的流程图,它发现名字空间和名字空间元素与位于产生位置的可保护对象之间的映射。具体地,已调度发现例程2600开始于块2601,并且在块2603,初始发现例程2500(图25)执行并且标识产生位置的顶层名字空间元素。如上所述,所存储的顶层名字空间元素的副本可由数据保护系统用于允许用户通过产生位置导航和/或搜索产生位置的特定部分而不必在搜索时重新发现产生位置,从而增加搜索和导航时间并且移除产生位置的负载。
在判定块2605,判定是否存在任何要执行的现存的已保存搜索(下面讨论)。如果在判定块2605确定存在要执行的已保存搜索,则在块2607执行那些已保存搜索。然而,如果在判定块2605确定没有现有的已保存搜索,则在判定块2609判定是否存在任何要更新的现有自动发现组。如果在判定块2609确定有要更新的现有自动发现组,则在块2611更新那些自动发现组,如先前参考图17-24的例子描述的。例程在块2617结束。
图27是依照本发明的一个实施例的自动发现组创建例程的流程图。自动发现组创建例程2700开始于块2701,并且在块2703,接收用户想要保护的名字空间元素的选择。除了接收名字空间元素的选择之外,还接收与那些名字空间元素相关联的可保护对象。在块2705,解决与那些名字空间元素相关联的数据源的任何重叠。重叠解决是在上面参考图13讨论的。
在解决了任何重叠之后,在块2707,创建标识所选择的名字空间元素的自动发现组列表。另外,生成查询参数并且将它包括在自动发现组中,用于标识与所选择的名字空间元素相似的其它名字空间元素。查询参数可按照物理资源(例如,服务器1上的所有卷)、在名字空间上的某个查询(例如,DFS ROOT\products之下的所有共享)、或者某个组合(例如,名为\\FILESRV*的服务器上的所有共享)来表示。另外,查询参数可基于预先存在的名字空间元素的某个属性。
在每个情况下,数据保护系统跟踪自动发现组的成员资格并且向用户通知对该组的改变。在块2709,自动发现组和所选择的名字空间元素列表被添加到保护组。如上所述,保护组可以是现有的保护组或者为所选择的名字空间元素新创建的保护组。在块2711,自动发现组创建例程结束。
如上所述参考图27创建的自动发现组是描述潜在地应该作为查询而不是一组离散的物理资源来保护的对象的一种方法。一旦检测到改变,用户可批准或者拒绝对保护与该自动发现组相关联的和/或是保护组一部分的对象的计划的改变。例如,如果自动发现组包括服务器\\FILESRV*上的所有共享的搜索参数,并且得到一个带有十个新共享的新服务器\\FILESRV10,则用户具有批准或者拒绝保护每个新共享的选项。
如上所述,数据保护系统跟踪对报告给用户的自动发现组改变的应答。例如,如果用户拒绝对新标识的可保护对象的保护,则如果该可保护对象随后从产生位置移除,那么随后不会有通知发给用户。具体地,一旦用户指示他们不想保护一个可保护对象并且想要自动地忽略所有未来的通知,就为该可保护对象设置一个被排除标志。在一个实施例中,拒绝一个对象一次不会自动地设置被排除标志。另外,可跟踪一个对象被拒绝的次数并且在预定的拒绝数(例如五)之后将该对象标记为被排除。随后对被排除对象的标识将不向用户警告。
数据保护系统自动地为每个用户想要保护的名字空间元素创建和配置自动发现组。例如,如果用户保护服务器\\FILESRV1上的share1,则数据保护系统配置一个自动发现组,它包括\\FILESRV1\share1到物理资源(例如,\\FILESRV1上卷X上的文件夹1)的映射。如果\\FILESRV1\share1消失或者从该共享到物理资源的映射被改变,则向用户通知该改变,并且给用户关于如何进行的若干选项(图23B)。例如,假定\\FILESRV1\share1现在映射到卷Y上的文件夹1。用户具有继续保护X\folder1、停止保护X\folder1并开始保护Y\folder1或者保护两个对象的选项。这样,将对正试图保护的名字空间元素和实际上正在保护的物理对象的任何改变通知给用户。
图28和29依照本发明的一个实施例示出了自动发现组更新例程的流程图。自动发现组更新例程2800开始于块2801,并且在块2803,从自动发现组结果选择一个可保护对象。在执行自动发现组映射序列(标识该自动发现组映射到或者先前映射到的每个可保护对象)之后,生成自动发现组结果。在判定块2805,判定所选择的可保护对象目前是否受用户保护。
如果在判定块2805确定所选择的可保护对象目前不受用户保护,则在判定块2807确定所选择的可保护对象目前是否在等待用户的批准。如果一个可保护对象先前已经被标识并且通过警报向用户报告,并且用户还没有标识该对象是否应该被添加到保护组,则它目前正在等待用户批准以被添加到保护组。如参考图17-24讨论的,可通过在自动发现组表中将待决列设置为“Y”来将对象标识为等待批准。如果在判定块2807确定可保护对象不在等待批准,则在判定块2809判定所选择的可保护对象是否已经从保护中排除。如上所述,可保护对象可按照来自用户的标识从保护中排除,该标识表示它不想让该可保护对象得到保护,也不想得到对该可保护对象的改变的通知。这样一个标识是通过在自动发现组表内将该对象标记为由用户排除来标识的。
如果在判定块2809确定所选择的可保护对象目前没有从保护中排除,则在块2811生成一个警报,它标识新的可保护对象并且请求用户批准将该可保护对象添加到保护组,和/或生成明确地将该可保护对象从保护组中排除的响应。在块2813,可保护对象被标记为待决用户批准、不受用户保护、而且不受计划保护。
如果确定所选择的可保护对象为目前正受用户保护(块2805);等待用户的保护批准(2807);或者从保护中排除(2809);则在判定块2815判定是否存在被标识为自动发现组结果的其它可保护对象。如果在判定块2815确定有其它可保护对象,则例程返回到块2803,并且继续处理每个标识为自动发现组结果的其它可保护对象。然而,如果在判定块2815确定没有其它的可保护对象被标识为自动发现组结果,则在块2815(图29)标识自动发现组的现有保护对象。
在判定块2818,确定现有保护对象是否被标记为受用户保护。如果确定现有保护对象没有被标记为受用户保护,则例程进行到判定块2821。然而,如果确定现有保护对象受用户保护,则在判定块2819判定现有保护对象是否包括在由自动发现组执行所生成的结果中。如果在判定块2819确定现有保护对象包括在新生成的自动发现组结果中,则在判定块2821确定是否存在自动发现组的另外的现有保护对象。如果在判定块2821确定存在自动发现组的另外的现有保护对象,则例程返回到块2817并继续。如果在判定块2821确定自动发现组没有另外的现有保护对象,则例程在块2827结束。
回来参考判定块2819,如果确定所标识的保护对象没有包括在新生成的自动发现组结果中,则在判定块2822,通过检查待决标志来判定先前是否已经向用户发送了警报以向用户通知改变。如果确定先前没有发送过警报,则通过警报向用户报告改变,该警报标识到受用户保护对象的映射不再存在,如由块2823所示的。在块2825,该保护对象被标记为待决从保护组中移除、不匹配自动发现组搜索参数、但目前受用户保护。从保护组中移除保护对象不会从存储位置移除该保护对象的任何实际副本。如相关领域的技术人员将意识到的,待决移除和待决批准可作为单个待决状态来跟踪。如上所述,跟踪对象是否匹配自动发现组搜索参数标识出对象是否要被移除或添加。
当对象由自动发现例程标识时,除了跟踪对象是否是待决的用户动作、是否受计划保护、是否受用户保护和是否匹配自动发现搜索参数之外,在对象第一次被标识并且添加到自动发现组表中时,还记录标识它的日期和时间。另外,当存在于自动发现组表中的一个保护对象不再被自动发现组例程标识时,还记录它消失的日期和时间。
除了数据保护系统在响应于用户选择名字空间元素时自动创建自动发现组之外,数据保护系统还自动创建已保存搜索。在另一个实施例中,可在安装数据保护系统时生成已保存搜索。在又一个实施例中,已保存搜索也可由用户创建。
已保存搜索用于在诸如服务器等产生位置的分段出现或消失时通知用户。例如,利用已保存搜索向数据保护系统提供了向用户通知新服务器、新DFS根、不再存在的服务器、不再存在的DFS根、新STS服务器、不再存在的STS服务器等的能力。与每个已保存搜索相关联的是在同一已保存搜索的先前评估期间已经定位的名字空间元素的列表。已保存搜索包括表示搜索起点的名字空间元素,以及一组描述要返回的所包含的名字空间元素的搜索准则。不像自动发现组,已保存搜索在名字空间元素而不是在可保护对象上操作。例如,可创建已保存搜索条件以标识属于一个公司的市场部的所有服务器。这通常不在一个有效的自动发现组中。然而,像自动发现组一样,已保存搜索维护标识匹配搜索参数的名字空间元素的已保存搜索结果表。
对于匹配搜索的名字空间元素,维持其状态。例如,为每个名字空间元素维护第一次被标识和最后一次见到的时间信息。该信息也可用于检测改变。当名字空间元素第一次被已保存搜索条件标识时,标识该标识的日期的时间标记被持久维护,并且当该名字空间元素从产生位置移除时,标识最后一次见到该名字空间元素的日期和时间的时间标记也被持久维护。在一个实际的实施例中,只要检测到产生位置中的改变就提供警报给用户。例如,对产生位置添加名字空间元素和/或移除名字空间元素将生成标识产生位置的这一改变的警报给用户。在一个实施例中,响应于用户标识要保护服务器上的一个共享,创建用于该服务器上所有共享的已保存搜索。相似地,在保护服务器上的一个卷时,创建用于该服务器上所有卷的已保存搜索。基于对该服务器的改变(例如,在适当时添加共享或卷),将通知用户这一改变。
自动发现组和已保存搜索条件的结果也用于提高数据保护器的导航和搜索功能的性能。自动发现组和已保存搜索可在周期性基础上将它们的结果高速缓存在持久存储中,因此在导航和搜索结果不频繁改变的情况下,或者在某种程度的过时是可接受的情况下,数据保护器可使用这些高速缓存的结果来向用户启动的导航和搜索提供较快速的响应性。
由用户提供保护意图以描述他们想要如何保护一个保护组(例如,复制品、归档、两者)和他们想要在时间上有多久能够恢复(持续时间)。例如,用户可能想要每晚为一组选择的数据生成该数据的复制品—存储在可移动介质上存储位置处的副本,每周更新该副本一次,并且在可移动介质上最多保留四个副本。另外,用户可指定它们想要能够恢复至少一个月之久的信息。
在存储位置的保护数据,例如,复制品、归档或两者,要求为数据的副本分配资源,以及处理本身所需要的任何资源。另外,要求许多作业以使那些资源进入使用时所要求的状态,并且必需有正在进行的作业来维护保护的准确性。使用用于保护数据的作业将在下面更详细地描述。手动设置资源和作业会是单调乏味的并且是易出错的。另外,只要一组正被保护的对象改变,例如,响应于自动发现组检测到的改变,则资源和作业可能需要改变。不要求用户手动指定具体的资源和作业,而是用户可仅通过名字空间元素的选择来指定什么内容要保护并提供保护意图。随后使用该信息来生成组计划,用于维护所选择数据的保护。在一个实施例中,组计划包括三个部分资源计划、准备计划和保护计划。
资源计划包括获得允许保护所需要资源的所必需的作业的列表。准备计划包括设置所标识数据的保护所需要的一次性作业的列表。例如,一次性作业是数据的初始复制以及从产生位置传送到存储位置。保护计划包括维护保护数据的准确性和完整性所要求的正在进行的作业的列表。
从用户标识的保护意图转换到用于保护对象的具体计划在此称为和描述为“意图转换”。在本发明的一个实际的实施例中,意图转换在保护组和为该保护组提供的保护意图上操作。保护意图表示为逻辑表示并且可陈述为目标。目标可标识所希望的保护等级(粒度)、如何保护数据、要保护数据多久、以什么频率保护数据等等。例如,用户可标识这样的保护意图“不要失去超过30分钟的任何执行文件共享;保留所有内容一年”。来自保护意图的动词用作将意图转换成用于保护对象的具体计划的动作。参考前面的例子,该意图的相应动作是“每30分钟复制卷和文件夹”、“每周归档”和“以一年的介质保持力非现场储存”。
在本发明的一个实施例中,标识保护意图的保护模板可由用户选择并且用于生成用于保护所选择保护组的计划。保护模板包含一个或多个原型作业定义,包括适当的动词和默认的属性。保护模板还包括默认的原型时间表。例如,“每小时复制,在白天创建三个时间版本,每晚归档,不加密传送,在存储位置不加密”是默认的原型时间表。用户具有覆盖和显式改变保护模板的能力。例如,用户可改变以前的保护模板来创建每小时复制,白天仅一个时间版本,每周归档,不加密传送,不在存储位置加密。如在所提到的默认原型时间表中标识的“不加密传送”标识了在将数据从产生位置发送到存储位置时不需要加密数据。或者,在产生位置与存储位置之间传输数据时可加密数据。“不在存储位置加密”标识了存储在存储位置的数据,无论是复制品还是归档的,都不必加密。或者,可加密存储的数据。例如,被归档到诸如磁带等可移动介质的产生位置的副本可被加密。另外,作为复制品存储的副本也可或者可供替换地被加密。如相关领域的技术人员将意识到的,任何加密技术可由本发明的实施例使用,来加密用于传输和用于存储的数据。
图30依照本发明的一个实施例示出了将保护意图转换成用于保护一组数据的计划的流程图。通过用户界面3003与数据保护系统交互的用户选择要保护的名字空间元素的列表。将对要保护的名字空间元素的选择传送到数据保护器3001,并且作为响应,数据保护器通过用户界面3003向用户提供默认的保护意图。具体地,数据保护器在收到所选择的名字空间元素后,标识与所选择的名字空间元素相关联的可保护对象并且标识提供给用户的保护意图的默认列表。
用户响应于接收默认的保护意图,与用户界面3003交互,并且修改或选择适当的默认保护意图。数据保护器3001接收选择或修改,并且存储这些意图并为对象创建一个保护组。这些意图可用任何格式来存储,包括但不限于,二进制、可扩展标记语言(XML)或数据库表。数据保护器3001将任何修改应用于默认的保护意图并且使用修改的保护意图来创建用于保护保护组的具体计划,计划也可用任何格式来存储,包括但不限于二进制、XML或数据库表。
与创建用于保护保护组的具体计划相似,数据保护器具有创建在给出规定恢复意图、恢复参数和对要恢复的名字空间元素的选择的情况下用于所选择的可恢复对象的恢复计划的能力。为创建恢复计划,数据保护器确定必需的恢复资源并适当地排列它们的顺序。另外,数据保护器确定恢复目标,它是标识要在何处恢复数据的物理路径。
可指定若干不同的恢复意图来控制恢复如何进行。例如,覆写意图控制如果当试图将一个文件恢复到产生位置时,确定该文件已经存在于该产生位置,则会发生什么。可提供若干替换计划,包括但不限于,总是覆写、从不覆写、使用两者中最近的。可指定的另一个恢复意图是应该如何设置被恢复对象的安全性。例如,可指定被恢复对象的安全性继承父对象的安全性(例如,被恢复到一个文件夹的文件的安全性将接收与该文件夹相同的安全性)。一个替换的模型是将被恢复对象的安全性精确地恢复到在它被备份时的安全性。意图也可指定被恢复对象是否要在传输期间和/或在被存储时被加密。
图31和32依照本发明的一个实施例示出了意图转换例程的流程图,用于将保护意图转换成用于保护位于产生位置的物理对象的具体计划。意图转换例程3200开始于块3201,并且在块3203接收对要保护的名字空间元素的选择和要应用于所选择的名字空间元素的保护意图。如上所述,名字空间元素被映射到位于产生位置的可保护对象。另外,如上所述,名字空间元素的选择和相关联的可保护对象由数据保护系统编译成要应用保护意图的保护组。在块3205,该保护组被标记为“在转换中”。将保护组标记为“在转换中”防止用户对该保护组作出任何改变,直到意图转换成功结束或者失败,回卷它已经作出的任何改变。
在块3207,计算足以向所选择的保护组提供保护所必需的资源需求。资源需求是通过确定保护组需要什么改变来标识的。保护组可能需要的改变的例子包括但不限于,要添加到保护组的新数据源、要从保护组移除的数据源、用于通过添加或者移除保护对象来改变的保护组的数据源、要添加或收回的资源(例如,向复制品添加或删除磁盘空间、向归档添加或删除可移动介质)、为保护组调整的保护目标或时间表、或者第一次添加的新保护组。另外,必需的资源大小是通过标识位于将被复制和存储在存储位置的产生位置的保护对象的大小以及已经指定的特定保护方法和保护意图来确定的。
在块3209,生成并执行资源计划以分配为保护组提供保护所必需的资源。资源计划确定必需的资源并且包括获得那些资源所必需的所有作业。例如,这类作业可包括分配磁盘空间、增加现有的存储空间、分配磁带介质、分配磁带库变换器和驱动器、向空闲介质池请求磁带等等。包括在资源计划中的作业依赖于用户所希望的保护类型。例如,对于复制,作业包括为复制品和时间版本分配磁盘资源,并且有可能为日志区域分配资源。执行与在块3209生成的资源计划相关联的作业,并且分配用于保护组的必需资源。
在分配了资源之后,在块3211,数据保护系统创建一个检查点。在另一个实施例中,资源计划可只包括分配那些资源所必需的作业的创建,并且实际上不包括那些作业的执行。与资源计划相关联的作业的执行可作为准备计划的一部分来调度和执行。在这样一个实施例中,在意图转换完成后才生成检查点。因而,如果意图转换没有完成,则它必须从开头重新开始。如下面参考块3209所述,在资源分配之后创建检查点提供了一个已知点,如果例程没有成功完成,则意图转换例程可在该已知点重新开始。
由于有可能在资源分配作业的执行期间要分配部分但不是全部资源(例如,在分配了一部分物理资源但还没有分配其它资源之后系统崩溃),因此在本发明的一个实施例中包括一个清除例程,以清除在意图转换例程的不完整运行中没有完全分配的资源。这个清除例程是通过将系统的资源分配设计成以某种方式工作来完成的。在一个实际的实施例中,在每一数据源的基础上分配资源,并且要么为一个给定数据源分配所必需的所有资源,要么什么也不分配。如果分配部分但非全部资源并且分配作业被中断,则创建刷新作业以清除从资源分配计划的分配作业的上次运行中部分地分配的任何资源。一旦清除例程清除了任何部分地分配的资源,则数据保护系统可以在需要时重新分配资源。对于已经成功地分配了资源的那些新保护对象,意图转换可继续。
回来参考图31,在块3211,在成功完成块3209的资源分配后,生成一个检查点。在分配了资源之后创建检查点为数据保护系统提供了解决如果意图转换例程3200在分配了资源之后但在结束之前被中断则可能生成的任何问题的能力。例如,如果系统在意图转换例程结束前但在添加了第一检查点之后崩溃,如由块3211例示,则在重新启动后,数据保护系统标识意图转换例程被中断,并且定位在资源分配之后添加的检查点。通过标识检查点,可使用先前分配的资源,并且意图转换例程3200可以从该检查点继续而不必完全重新启动和重新分配资源。意图转换例程被中断之后的重新启动将参考图38更详细地描述。
在判定块3213,意图转换例程3200判定是否存在当前与保护组相关联的任何现有的作业和/或任务。如果在判定块3213确定存在与保护组相关联的现有作业和/或任务,则在块3215注册那些作业和任务,并且终止任何活动的作业,如由块3217所示的。如果保护组正在被修改,则用于该保护组的作业和任务可预先存在,而不是第一次创建。
如果在判定块3213确定没有用于保护组的现有作业和/或任务,或者在块3217现有作业和/或任务终止后,意图转换例程3200在3219创建和调度保护计划。如将在下面更详细地描述的,保护计划包括随着时间过去维护位于存储位置的保护组的副本的准确性所必需的作业的列表。另外,意图转换例程3200在块3211创建和调度准备计划。如在下面将更详细地描述的,准备计划包括一次性作业的列表,用于将产生位置和存储位置设置在一个状态中,使得与保护计划相关联的作业可被执行并且保护组的保护准确性可达到。例如,如果这是第一次创建保护组并且要将它存储在复制品上,则将不存在与驻留在该复制品上的保护组相关联的数据副本。因而,与准备计划相关联的作业之一可以是保护对象的副本的创建和在复制品上存储该副本。
现在参考图32,在块3225,意图转换例程3200创建上述已保存搜索和自动发现组。如上所述,那些自动发现组和已保存搜索是作为已调度发现例程的一部分执行的。
在创建了用于资源计划、准备计划、保护计划、已保存搜索和自动发现组的作业之后,在块3227,将指示作业的创建完成的第二检查点添加到数据保护系统。如上面指出并在下面更详细讨论的,该检查点可由数据保护系统用于从意图转换例程3200期间发生的中断中恢复。例如,如果意图转换例程3200在创建了一个检查点之后中断,如由块3227例示,则在重启期间,数据保护系统标识意图转换例程3200在进行中,并且定位指示已经创建了计划和作业的检查点。在标识了检查点后,意图转换例程3200可从该检查点继续和完成。
在块3229,新保护的对象和已经从保护中移除的先前的保护对象的状态被更新,以反映它们被包括在保护计划中和排除在保护计划之外。在块3209,标记为具有资源分配错误的保护对象被返回到“待决状态”。在块3231,删除所有检查点并且将保护组标记为“不在转换中”。如果已经移除了所有保护对象,则可删除保护组。在块3233,意图转换例程3200结束。
图33是依照本发明的一个实施例的保护计划创建例程的流程图,用于创建用于保护组的保护计划。保护计划创建例程3300更详细地描述上面参考块3219(图31)引用的保护计划的创建和调度。保护计划创建例程3300开始于3301,并且在块3303,创建和调度用于保护组的复制作业。复制作业是将已经对产生位置的一个或多个可保护对象发生的改变复制到存储在存储位置的对应的一或多个可保护对象的副本的作业。例如,如果在白天用户修改了位于产生位置的保护对象,在执行复制作业后,那些改变被复制、传送到存储位置,并且更新该副本以包括那些改变。
在块3305,保护计划创建例程3300创建和调度时间版本作业。时间版本作业是被调度为在存储位置执行数据的实际版本化的作业。时间版本的创建是相关领域的技术人员已知的,并且在此不详细描述。
在块3307,创建和调度确认例程。当被执行时,该作业执行如下参考图35详细描述的确认例程。在块3309,保护计划创建例程3300结束。
图34是依照本发明的一个实施例执行准备计划的准备计划执行例程的流程图。准备计划执行例程3400开始于3401,并且在块3403,确定是否需要其它资源来保护保护组。如上所述,生成资源计划,用于确定保护存储位置处的保护组所必需的资源。在一个实施例中,那些资源可在资源计划期间在准备计划的创建和执行之前分配。
如果在判定块3403确定需要资源,则在块3405执行在资源计划中为分配那些资源所创建的作业并且分配资源。
在块3405分配资源之后,或者如果在块3403确定保护组的保护不需要其它资源,则在块3407,创建与保护组相关联的物理对象的初始副本,传送到存储位置,并且存储在先前分配的资源上。一旦在存储位置创建和存储了保护组的初始副本用于复制,就在块3409用位于产生位置的实际物理对象来确认该副本。将在下面参考图35讨论确认。
在判定块3411,确定是否有任何保护对象已经从保护组移除。如果在块3411确定有保护对象已经从保护组移除,则在块3413,准备计划包括停止监视那些对象的作业并且那些对象仍然是可保护对象。由于监视消耗资源,因此在不再需要它时这些作业停止监视。在块3415,准备计划执行例程3400结束。
如上面提到的,可使用更多或更少的块来执行在此描述的例程。例如,当通过介质负载完成复制时,准备计划3400不创建数据的初始副本(块3407)。同样,当副本用于归档时,准备计划3400不创建数据的初始副本(块3407)。
图35是依照本发明的一个实施例的确认例程的流程图,用于确认处于存储位置的数据副本。确认例程3500开始于块3501,并且在块3503,确认例程3500获得位于产生位置的物理对象的确认参数。如相关领域的技术人员将意识到的,确认参数可以是位于产生位置的物理对象的校验和。或者,确认参数可以是在产生位置的物理对象的最后修改时间,或者位于产生位置的物理对象的大小。通常,确认参数可以是位于产生位置的物理对象的任何类型的标识。
在块3505,确认例程3500获得位于存储位置的确认参数。与产生位置的对象的确认参数相似,存储位置的确认参数可以是校验和、最后一次修改时间、文件大小等等。
在块3507,比较在块3503获得的产生位置处的保护对象的确认参数和在块3505获得的对象的确认参数,以确认位于存储位置的对象与位于产生位置的保护对象相匹配。在判定块3509,确定在块3507比较的参数是否匹配。如果在块3509确定参数不匹配,则在块3513,确认例程3500重新从产生位置复制不匹配的保护对象,并代替位于存储位置的对象以及进行到判定块3511。
然而,如果在判定块3509确定参数匹配,则在判定块3511确定是否存在还没有为保护组确认的其它数据。如果确定存在还没有为保护组确认的位于存储位置的其它数据,则确认例程返回到块3503并且继续进行。或者,如果在判定块3511确定没有其它数据,则确认存储位置,并且确认例程在3515结束,从而确认位于存储位置的对象与保护对象相匹配。
除了确认例程作为在意图转换期间准备计划的一部分执行以确认副本的准确性之外,确认例程可被调度为随后重新确认物理对象的保护的准确性。而且,可调度和执行确认例程以将位于存储位置的对象副本设置到一个确认状态中。如果系统崩溃或者如果一些其它类型的未调度的改变发生,位于存储位置的物理对象的副本可处在无效状态中。例如,如果改变日志(下面讨论)因在存储位置应用那些改变的故障而溢出,则复制品可变成无效。
图36是依照本发明的一个实施例的已调度确认例程的流程图,用于确认位于存储位置的对象副本。已调度确认例程3600开始于3601,并且在块3603,例程标识位于要确认的存储位置的保护组的对象副本。在判定块3605,确定所标识的副本是处在有效状态还是无效状态中。如果在判定块3605确定所标识的副本处在无效状态中,则在块3607,已调度确认例程3600执行参考图35描述的确认例程3500。
然而,如果在判定块3605确定该副本处在有效状态中,则在判定块3609确定是否存在需要确认其有效性的任何位于存储位置的保护组的其它副本。如果在判定块3609确定存在需要确认其有效性的其它副本,则己调度确认例程3600返回到块3603,并且标识要确认的其它副本并继续该过程。然而,如果在判定块3609确定没有位于存储位置的其它副本要确认,则已调度确认例程3600结束,如由块3611例示。
图37依照本发明的一个实施例示出了复制品的状态转移的框图。在资源分配期间分配存储位置的一部分之前,复制品处在未分配的状态中。在意图转换为保护组分配资源之后,复制品转移到已分配状态。内容(保护组的副本)随后必须传送和存储在存储位置。传送和存储可以使用磁盘到磁盘初始化(由数据保护系统自动地)、由自动化介质负载、或者由管理员手动(例如,由手动介质负载)来完成。如果完成磁盘到磁盘初始化,则意图转换自动创建初始复制作业。初始复制作业在执行后,将复制品设置在无效状态中。如果使用介质负载初始化副本,则用户指示介质负载何时结束,并且在该点将复制品设置在无效状态中。
一旦复制品处在无效状态中,则要运行的确认作业必须将它放置在有效状态中。如上讨论,确认作业证实在存储位置的副本与在产生位置的保护对象相匹配。
除了复制品处在已分配状态3703、无效状态3705或者有效状态3711之外,复制品可转移到故障状态3713。例如,随着时间过去,为用于一个特定保护组的复制品分配的物理介质可能发生故障,从而将该复制品放置在故障状态中。从故障状态3713,数据保护系统通过与用户交互,判定所复制的信息是否需要继续被保护。如果保护组要继续保护,则重新分配资源,从而将复制品转移回已分配状态3703。如果从故障状态3713确定与该复制品相关联的信息不再需要保护,则复制品可转移到被毁状态3707,并且用于保护组的复制品将不再由数据保护系统执行。
复制品也可临时转移到故障状态3713。例如,磁盘可能因为某个硬件问题临时断开或不可用,并且随后再次变成可用。在这一情况下,在盘再次变成可用后,复制品可返回到有效状态3711或无效状态3705。
响应于用户指示不再想要保护保护组,到达被毁状态3707。复制品可从任何其它状态转移到被毁状态3707。例如,如果复制品处在无效状态3705,则用户可指示不再想要保护复制在复制品上的保护对象,从而将复制品转移到被毁状态3707。将复制品放置在被毁状态中向数据保护系统指示用户结束保护复制在复制品上的保护对象,并且如硬盘等物理介质可返回到空闲介质池并且可分配给其它保护组。
在本发明的一个实施例中,当用户指示不再想要继续保护复制在复制品上的保护对象,则复制品可转移到停止状态3709,由此复制品及其时间版本被维护一段有限时间。在已经指示不再保护信息之后维护信息为用户提供恢复该信息直到它停止保护时的能力。
图38依照本发明的一个实施例示出了重新启动例程的流程图,用于在先前的意图转换例程期间发生中断之后重新启动意图转换例程。重新启动例程3800开始于块3801,并且在判定块3803,例程判定保护组目前是否在意图转换中。如果在判定块3803判定保护组在意图转换中,则在判定块3805确定是否已经为在意图转换中的保护组分配了所有资源。如果在判定块3805确定还没有分配所有资源,则解除分配在重新启动之前分配的任何资源,如由块3806例示。在解除分配任何先前分配的资源之后,在判定块3807判定在意图转换中的保护组是否是新保护组。如果在判定块3807确定保护组不是新保护组,则在块3808,例程使已经添加到现有保护组的新对象返回到待决状态。具体地,新对象返回到不受用户保护并且是待决的用户动作。
在块3809,现有保护组被标记为不在转换中,并且在块3817,例程结束。现有组返回到不在转换中,并且新对象返回到待决状态,这使数据保护系统返回到其在尝试的转换之前的状态。具体地,新对象必须再次添加到一个现有保护组,并且现有保护组的对象继续受保护,因为它们在意图转换例程的初始尝试之前是受保护的。
回来参考判定块3807,如果确定在意图转换中的保护组在发生中断时是新保护组,则在块3811,新保护组的所有保护对象返回到待决状态(即,不受用户保护并且是待决的用户动作),并且例程在块3817结束。除了使对象返回到待决状态之外,保护组也可被删除,因为在组内没有保护对象。
回来参考判定块3805,如果确定在中断之前分配了所有资源,则在块3813,标识由尝试的意图转换例程生成的最后一个检查点。如上讨论,在意图转换例程中在两个不同点生成检查点。具体地,在分配资源之后生成检查点,并且在创建和更新保护计划之后且在创建准备计划之后再次生成检查点。一旦在块3813标识了最后一个检查点,则从最后一个检查点重新启动意图转换例程,如由块3815所示的,并且过程在块3817结束。
有若干方法可在存储位置保护物理对象。例如,可在如服务器等计算设备上维护复制品,归档副本可存储在如磁带或其它可移动介质等物理介质上。作为保护意图或高层目标(被转换成一组计划)的一部分,提供用户希望的保护类型,如上所讨论的。对于在磁带或其它可移动介质上的数据归档,数据保护通过创建“数据集(dataset)”工作,数据集通过一个或多个物理介质块包含特定时间点上保护组的数据表示或者相对于时间点的改变。数据集是与一个或多个保护对象相关联的一个或多个归档路径的结果。另外,每个数据集可包含一个或多个恢复源,因为多个恢复源可作用于一个恢复,多个数据集也有必要作用于一个恢复。
不像其中介质是管理的主要对象的其它备份应用程序,依照本发明的实施例,管理数据集和数据集与介质的关联,而非介质本身。
归档被设计为长时间(在周、月或年的等级上)维护数据。归档的介质一般被非现场保存以针对如地震或火灾之类影响整个产生位置的灾难来保护。归档的介质也可被现场保存,用于从较小故障中恢复,包括服务器或磁盘的丢失或用户错误。另外,对于那些使用复制和归档两者的实施例,归档的介质可与复制品一起在存储位置、在产生位置或者在一单独位置保存。
图39依照本发明的一个实施例示出了归档保护计划创建例程,用于生成用于归档数据的计划。归档保护计划创建例程3900开始于块3901,并且在块3903,例程接收数据保护种类。数据保护种类是由用户标识的,它关于用户想要现场、非现场还是既现场又非现场来归档它们的数据。除了接收数据保护种类之外,在块3905,例程接收数据保护持续时间。数据保护的持续时间是由用户提供的高层意图,关于他们想要能够恢复在过去多长时间的保护信息。这些意图可被陈述为关于用户想要能够恢复什么的目标。
例如,提供“我想要能够恢复直到七年的数据”的意图将转换成一个归档计划,它将允许用户能够恢复七年前存在于产生位置的信息的数据。数据保护持续时间可以是年、月、周或日。如由块3907例示,归档保护计划创建例程3900还接收调度意向,诸如用户想要在何时让归档数据的动作发生。在另一实施例中,也可接收数据保护格式。数据保护格式包括但不限于,完全备份、差异备份和增量备份。如在此使用的完全备份是将所有保护对象复制到存储位置的备份。在此使用的差异备份是将自从最后一次完全备份起修改过的保护对象的备份复制到存储位置。如在此使用的增量备份是只复制自某个先前备份(完全、差异或增量)起修改过的保护对象。如在此讨论的,差异和增量备份通常称为“部分备份”,并且其目的是标识任一个。用户也可指定应该从产生位置处的原始数据创建归档还是应该从存储位置处的副本创建归档。
基于数据保护种类和保护持续时间,归档保护计划创建例程3900确定一个默认的归档方案,它满足由用户指定的高层要求。在一个实际的实施例中,存在四个不同类型的方案用于归档数据。第一个方案,称为曾祖父、祖父、父、子(GGFS),它提供现场维护四周的每年完全备份,和非现场维护某个年数的副本;现场维护四周的每月完全备份,和非现场维护一年的副本;现场维护四周的每周完全备份,和非现场维护四周的副本;以及,现场维护两周的每日差异备份。在另一实施例中,取决于在块3903标识的保护种类,只维护现场或非现场副本。在另一个实施例中,基于在块3903标识的保护种类,现场副本本身可在一段时间后被传送和被非现场维护。另一个方案在此被称为祖父、父、子(GFS)方案。GFS方案提供现场维护四周的每月完全备份和非现场维护一年的副本;现场维护四周的每周完全备份和非现场维护四周的副本;以及现场维护两周的每日差异备份。
另一个归档方案在此称为父、子(FS)方案。FS方案提供现场维护四周的每周完全备份和非现场维护四周的副本,以及现场维护两周的每日差异备份。另一个归档方案在此称为子(S)方案。S方案提供现场维护一周的每日完全备份和非现场维护一周的副本。最后,一个特别的例程也是可用的,它提供在正常的保护方案之外取得的备份。这可以是被现场维护或非现场的没有期限的完全备份。
本领域的技术人员将意识到,默认的归档方案可由用户在任何层上修改,并且也可提供附加/替换的默认归档方案。例如,种类(现场,非现场)、持续时间(月,年)和格式(完全,差异,增量)都可修改。另外,用户可指定对归档方案的调度控制。例如,用户可指示方案开始的一周的某一天、在生成归档的一天的某个时间、方案是在公司日历还是在每月日历上操作等等。
回来参考图39,向用户提供默认的归档方案,并且给用户覆盖所提供的方案的任何部分的能力。在判定块3911,确定用户是否已经向确定的归档方案提供了任何覆盖。如果在判定块3911确定用户已经提供了覆盖,则在块3913修改归档方案以包括那些覆盖。覆盖可提供给备份方案的任何部分,并且可在范围内改变。例如,覆盖可包括备份格式(完全,差异,增量)、要维护的现场副本的数量、要维护的非现场副本的数量、非现场副本的保持时间、是否禁止S层、由备份生成的数据集是否应该验证和何时验证、归档是应该在产生位置、存储位置还是其它地方进行、一周的起始日、工作日的数量等等。由于各种原因可能希望禁止S层。例如,如果用户已经实现了归档和复制两者,则用户可确定省去每日归档保护(S层)且依赖于复制来处理所有现场恢复要求。
一旦在块3909确定归档方案已经被接受或者如在块3913所示的被修改,则在块3915,归档计划创建例程3900生成通过归档保护数据所必需的计划。如上讨论,保护数据所必需的计划可包括资源计划、准备计划和保护计划。最后,在如由块3915所示地生成了计划之后,归档保护计划创建例程3900在块3917结束。
图40是依照本发明的一个实施例示出可用于生成归档方案的不同世代的例子的表格。表4000标识具有增量备份模式的子世代4001,它维护一个现场副本两周,该副本一周五天(例如,周一至周五)发生并且不维护非现场副本。父世代4003维护的一个以完全备份模式保留四周的现场副本,和一个每周执行一次(例如周六)的完全备份,除了在每个月有一周不执行(例如每个月的最后一个周六)。同样,父世代4003维护一个非现场副本四周。祖父世代4005具有维护一个现场副本四周的完全备份模式,该副本每月生成一次(例如,在每个月的最后一个周六),除了每年有一个月不执行(例如,每年的最后一个周六)。另外,祖父世代4005维护一个非现场副本12个月。最后,曾祖父世代4007具有维护一个保留四周的现场副本的完全备份模式,该副本每年生成一次(例如,每年的最后一个周六)。另外,曾祖父世代4007维护一个非现场副本七年。
作为对按照公司日历(月的最后一个周六,年的最后一个周六等)调度的替换计划,调度可按照物理日历完成。例如,可调度作业在月的最后一天、年的最后一天、月的第一天发生。那些天可能是或者不是周六。如相关领域的技术人员将意识到的,任何类型的调度和/或日程安排可由本发明的实施例使用,并且使用公司日历或物理日历只是作为例子提供的。调度的另一方面是指定执行作业的时间段的能力。调度一个用于执行作业的时间段允许用户能够标识可执行作业的特定时间。另外,数据保护系统可在保护系统看到作业没有按照指定的时间完成时提供事前警告。或者,当一个作业没有在调度的执行时间段内完成时,可自动终止它,并且有可能重新调度它。
如相关领域的技术人员将意识到的,可修改诸如子4001、父4003、祖父4005和曾祖父4007这样的世代,以使用参考图40所述的保护计划上的不同的变化。唯一的要求是父世代是子世代的相同集合或超集。例如,如果父世代是完全备份,则子世代可以是完全、差异或增量备份。另外,现场或非现场维护的副本数量可以是从零到用户希望的任何数字的任何组合。生成副本的保持时间和频率也可按用户所希望的调整。
除了创建长期保护数据的归档方案之外,数据保护系统提供介质的正在进行中的分配、轮换、跳过(非现场存储)和收回。因而,按照本发明的一个实施例,与每个保护组相关联的是介质池。介质池既是介质的容器,也是一个对象,在其上放置各种意图以便控制介质的分配和重复利用。如将参考图41更详细地描述的,存在若干类型的意图用于控制介质分配,诸如协同定位(co-location)意图。可依照本发明实施例使用的协同定位意图的例子是作业配置意图、子配置意图和父/子配置意图。作业配置意图试图使用相同的介质用于相同作业内的任务。在一个作业具有多个任务并且来自那些任务的数据被安装在单个介质块上时,这减少了介质的安装/拆卸数量。子配置意图控制介质如何用于GGFS、GFS、FS或S归档方案任一个的子作业。如果指定了子配置意图,则一个循环(诸如周循环)的第一个子作业将在一个新的介质块上开始,但所有后续的子作业将试图添加到同一介质块,除非不可行或者没有包含足够的空间。使用父/子配置意图将使每周的完全和后续的每日差异和增量备份存储在同一介质块上。
图41是依照本发明的一个实施例用于在指定了作业配置意图和子配置意图的每一个时为归档数据分配介质的流程图。如将意识到的,可为分配用于归档的介质指定配置意图的其它组合,并且参考图41描述的例程只是一个例子。只要需要介质时,就执行介质分配例程4100。介质分配例程4100开始于块4101,并且在判定块4102判定是否已经指定作业配置。如果确定作业配置还没有指定,则介质分配例程进行到判定块4111,并且如下继续。然而,如果在判定块4102确定已经指定了作业配置,则在判定块4103确定试图分配介质的任务是否来自替换作业。替换作业是替换一个没有成功完成的先前作业的作业。如果在判定块4103确定任务来自替换作业,则在块4105,例程试图分配在原来没有成功完成的作业中使用和分配的同一物理介质。
然而,如果在块4103确定任务不是来自替换作业,则在判定块4107确定关于任务是否来自作业的第一个任务。如果确定任务不是来自作业的第一个任务,则在块4109,介质分配例程4100试图分配已经为同一作业的先前任务所分配的介质。
然而,如果在判定块4107确定任务不是来自作业的第一个任务,则在判定块4111确定被保护的数据集是否为第一个子数据集。如果确定数据集是第二或后面的子数据集,则在判定块4118判定是否指定了FS配置意图或S配置意图。如果指定了FS配置意图,则在块4113,介质分配例程4100试图分配由同一循环的父数据集使用的介质。在此所述的循环是用于归档集的已调度长度的时间(诸如日或周)。然而,如果在判定块4112确定没有指定FS配置意图,则例程进行至下面描述的判定块4115。
如果在判定块4111确定数据集不是子数据集或者不是循环的第一个子数据集,则在判定块4114判定数据集是否是第二或后面的子数据集。如果确定数据集是第二或后面的子数据集,则在判定块4118判定是否指定了FS配置意图或S配置意图。如果指定了FS配置意图或S配置意图,则在块4116,介质分配例程4100尝试分配由同一循环的上一个子数据集使用的介质。然而,如果在判定块4118确定既没有指定FS配置意图也没有指定S配置意图,则例程进行至下面描述的块4115。
然而,如果在判定块4114确定数据集不是第二或后面的数据集,则在判定块4115确定来自同一世代的可重复利用介质是否可用。例如,如果一个数据集是父数据集,则确定其它父数据集是否被包含在可用介质上。如果在判定块4115确定存在可用的、来自在同一世代的可重复利用介质,则在块4117,介质分配例程4100选择最旧的、可从同一世代得到的可重复利用的介质,并且试图分配该介质。
如果在判定块4115确定不能从同一世代得到介质,或者如果在判定块4127确定块4105、4109、4113、4117所尝试的分配没有成功完成,则在判定块4119确定在空闲池中是否存在任何介质。如果在判定块4119确定在池中存在介质,则在块4121,介质分配例程4100从池中获得空闲介质并且使用该介质用于分配。
最后,如果在判定块4119确定在池中没有空闲介质用于特定保护组,则介质分配例程4100在块4123试图获得附加的介质。附加的介质可通过向用户通知保护池需要附加介质或者查询现有的空闲介质池来获得。空闲介质池包含不与其它保护组相关联的介质。如果在空闲介质池中没有空闲介质可用,则通知用户需要附加的空闲介质添加到存储位置并且将它分配给空闲介质池。介质分配例程4100在分配了附加介质之后结束,或者如果不能分配附加介质它就失败,如由块4125例示。
除了参考图41描述的意图,可使用另外的意图来控制介质池的活动。例如,用户可指定最大限度意图,它指定可在介质池中维护的介质块的最大数量。使用最大限度意图防止将介质不必要地添加(或者由用户或者自动地)到池而超过最大限度。同样,最大每日限度意图可用于控制在24小时内分配给特定池的空闲介质项的数量。使用最大限度和最大每日限度防止从空闲池将介质不必要或者意外地分配到一个特定的池。
也可指定最低阈值意图用于归档保护的介质分配。最低阈值意图指定在空闲介质池中应该可用于分配到各种介质池的介质块最低数量。如果空闲介质的数量落到低于最低数量,则通知用户,需要添加介质到存储位置并且分配给空闲介质池。也可指定介质擦除意图,它控制任何可重复利用的介质是否需要在重新使用或释放到空闲介质池用于重新分配之前擦除。
从产生位置复制或拷贝保护对象到存储位置在一对安装在各个位置的代理之前发生。这对代理的动作是由数据保护器控制的。例如,对于复制,在产生位置安装克隆代理,并且在存储位置安装复制代理。克隆代理和复制代理的动作由数据保护器控制。另外,数据移动器用作代理对之间的管道。数据移动器保证代理之间的相互认证并且可选地执行数据加密、解密、压缩或解压。而且,数据移动器包括节流控制器,以限制由数据保护系统在数据传输期间消耗的网络带宽。
图42依照本发明的一个实施例示出了数据保护系统的框图。数据保护系统4200包括数据保护器4201,用于管理数据从产生位置4203到存储位置4205的传送。如上面提到的,对于复制,产生位置4203包括克隆代理4207和数据移动器部分4209A,用于控制从产生位置4203到存储位置4205的数据流。同样,存储位置4205包括复制代理4211和数据移动器的第二部分4209B,用于从产生位置4203获得信息。产生位置4203、存储位置4205和数据保护器4201之间的交互用于将数据从产生位置4203传送到存储位置4205,并且用于通过与数据保护器4201的通信来验证该数据传送的有效性。
数据从经由数据移动器4209A的产生位置4203通过通信信道4213发送到经由4209B的存储位置4205。数据保护系统包括监视数据从产生位置4203到存储位置4205的传送的能力,并且如果这样的通信信道发生故障,则具有恢复进行被中断的数据传送的能力。为了能够恢复进行数据的传送,与从头开始相反,需要周期性地跟踪和保存数据传送的状态。这是通过数据保护器4201监视数据从产生位置4203到存储位置4205的传送来完成的。
数据以数据块或记录的形式通过通信信道4213传送。在这样一个传输系统中,部分数据由产生位置4203维护,而部分数据由存储位置4205维护。如果通信信道发生故障,则数据传送中断并且传输状态会失去同步。例如,产生位置4203已经发送的记录数可能不同于存储位置4205成功接收的记录数。为解决这个问题,数据保护器4201通过在停止或开始数据传送时单独地指示产生位置4203和存储位置4205,来监视和控制数据传输过程。
为了数据的保护,位于产生位置4203的克隆代理4207经由数据移动器4209将数据传送到位于存储位置4205的复制代理4211。为了创建位于产生位置的保护对象的复制品或副本,该数据作为数据记录通过数据信道4213发送。克隆代理和复制代理将数据传送状态作为在此称为记录检查点的特殊数据块发送给数据保护器4201。记录检查点由数据保护器4201接收并存储在数据库中。另外,数据保护器4201发送指令/命令到克隆代理和复制代理。
通常有两种类型的数据记录由产生位置的克隆代理4207通过数据信道4213发送。第一种类型的数据记录表示已经对位于产生位置的保护对象作出的改变。第二种类型的数据记录包括关于保护对象数据的信息(元数据)。包含元数据的记录是由数据保护系统生成的。如下所述,元数据用于确认发送和存储在存储位置的数据副本,并且可以是例如数据的校验和。
在从克隆代理的改变日志(图43-47)发送到复制代理的溢出日志(图43-47)的时候,通过将特殊的数据标记(记录检查点)插入到数据记录流中来传递从产生位置4203的数据传送的状态。在一个实际的实施例中,在由产生位置的数据移动器4209A发送的时候,将记录检查点添加到数据流的末尾。在另一实施例中,记录检查点可添加到改变日志并且作为一个数据项连同数据流一起发送。在由存储位置的数据移动器4209B接收数据流时,数据和任何记录检查点存储在溢出日志中。
当复制代理4211在数据流中遇到这类记录检查点时,它将这些记录检查点转发到数据保护器4201。另外,复制代理也生成它自己的记录检查点并且将它们转发到数据保护器4201。包含在由克隆代理4207和复制代理4211生成的记录检查点中的信息由数据保护器在发送开始或停止操作的命令时使用。
当数据保护器4201接收任何记录检查点时,它自动地将它们存储在数据库中,从而使数据保护系统对通信故障、过程和系统重新启动有恢复能力。
在本发明的一个实际实施例中,克隆代理4207生成两种类型的检查点,在此称为“C类检查点”和“A类检查点”。C类检查点表示从克隆代理4207发送到复制代理4211的数据记录状态。A类检查点表示在生成元数据记录的整个过程中的位置。
复制代理4211生成一类记录检查点,在此称为“B类检查点”。
C类和B类检查点是数据检查点。它们用于恢复数据从克隆代理4207到复制代理4211的传输,并且用于恢复复制代理4211上接收的数据记录的应用。A类检查点是元数据检查点。它们用于监视在生成元数据的克隆代理4207上长期运行的过程。生成A类检查点减少在数据传输中断的情况下对这一长期运行过程要重复的工作总量。
更具体地,C类检查点包含指向克隆代理4207系统和复制代理4211系统上的数据记录中的位置的指针。C类检查点由克隆代理4207生成并且转发到复制代理4211。复制代理4211用在它的溢出日志中最后接收的记录的指针更新C类检查点。
B类检查点包含指向由在存储位置4205的复制代理4211应用的数据记录的指针。当数据保护器4201接收B类检查点时,该检查点向数据保护器4201标识在B类检查点之前的所有数据块已经应用于存储在存储位置的数据的复制品。
A类检查点指示在生成元数据的同时由克隆代理4207处理的保护数据的总量。在由复制代理接收A类检查点时,如果必要,复制代理添加它自己的元数据,并且将A类检查点转发到数据保护器。当数据保护器接收A类检查点时,意味着在包含在该检查点中的位置之前,完成了元数据生成。在一个实施例中,可顺序地引用A类检查点(例如,顺序编号的),以使数据保护系统能够判定是否丢失A类检查点。如果丢失A类检查点,则将重新启动确认,因为存在差异列表的元素丢失的可能性。如下讨论,差异列表包括标识在复制品处没有匹配的保护对象。那些对象是通过将在产生位置生成的元数据与在存储位置生成的元数据进行比较来标识的。
除了上面提到的三个检查点类型之外,数据保护器4201可以生成特殊的标记权标,并且将它发送到位于产生位置4203的克隆代理以将它插入到数据记录流中。这个权标随后由克隆代理4207通过数据信道4213发送到复制代理4211。在接收后,复制代理4211将该权标发送回数据保护器4201。标记权标的目的是要在恢复元数据生成之前清除来自任何数据通信传输的所有A类检查点。通过系统传递所有A类检查点,发送已经由克隆代理4207生成的元数据,并且只有在这之后才能恢复元数据生成。这样做的好处是它防止数据记录传输日志溢出(如果元数据生成过程比克隆代理4207能够发送的速度快得多),并且它避免多次生成相同的元数据,因为数据保护器4201在接收标记权标之前看见所有元数据。
图43-44依照本发明的一个实施例示出了由数据保护系统执行的数据传送监视例程的流程图。如上讨论,响应于用户或者另一个人对保护数据作出的单独改变,或者在调度的作业执行时间,启动产生位置4303与存储位置4305之间的数据传送。响应于用户对保护数据所作的改变,产生位置4303将保护数据的改变的记录记录到改变日志4307。例如,R1,R2,R3,R4,R5和R6是由产生位置4303处的克隆代理记录到改变日志的各个改变记录。包含在改变日志4307中的记录周期性地由数据移动器从改变日志4307中拉出,一起组合成批并发送到存储位置4305。另外,克隆代理生成一个C类检查点,它包含指向被发送的最后一个记录的改变日志4307中的位置的指针,并且将该C类检查点添加到传输批的末尾。例如,克隆代理可从改变日志4307中拉出记录R1,R2和R3,将这些记录一起组合成批并且将该批发送到存储位置4305。生成的C类检查点4311包含指向R3在改变日志4307中位置的指针,在本例中是改变日志位置4。C类检查点被添加到发送到存储位置4305的批的末尾。
尽管上例示出了可生成C类检查点并随数据的每个传输批一起发送,但在另一实施例中,C类检查点可基于要发送的数据总量生成。在这一实施例中,C类检查点可以只在数据总量超过一个预定的最小传输大小时生成。在另一个实施例中,C类检查点的生成和传输可取决于自前一C类检查点生成和发送起的时间。而且,C类检查点的生成和传输可在预定数量的数据传输处生成和发送。例如,C类检查点可在每当第五个数据传输时生成和发送。而且,本发明的实施例可使用用于生成和发送检查点的技术的任何组合。例如,如果数据超过最低大小或者在每当第五次传输时,可生成C类检查点。
位于存储位置4305的复制代理通过数据移动器接收发送的记录和C类检查点,并且在溢出日志4313中存储发送的记录和C类检查点。另外,在收到C类检查点4311后,存储位置4305的复制代理添加指向该C类检查点的第二个指针,它标识该C类检查点在溢出日志4313中的位置,在这种情况下被添加到C类检查点4311的指针是指向溢出日志位置106的指针。因而,C类检查点4313包含指向改变日志4307的最后一个传输位置的位置和溢出日志4313中该C类检查点的位置两者的指针。随后由复制代理将C类检查点4313转发到数据保护器4301。数据保护器4301在数据库中记录该C类检查点。在另一实施例中,C类检查点不存储在溢出日志中,并且代之以由复制代理添加一个指向C类检查点的指针,它标识用批发送的最后一个改变记录,并且将C类检查点转发到数据保护器4301。
现在参考图44,数据保护器4301在从存储位置4305收到C类检查点时将C类检查点存储在数据保护器的数据库中,并且发送C类检查点确认到产生位置4303。产生位置4303对C类检查点确认的接收向产生位置标识,在该C类检查点之前发送的所有记录都已经由存储位置4305接收,并且那些发送的记录可从改变日志4307中清除。
除了接收记录并将那些记录存储在溢出日志4313中之外,位于存储位置4305的复制代理开始将接收的记录应用于位于存储位置4305的数据复制品。在一个预定点,复制代理生成一个B类检查点,它包括一个指向溢出日志4313内被应用于复制数据4317的最后一个记录的位置的指针。预定点可基于例如但不限于,经处理的数据总量、自最后一个B类检查点起的时间、或者两者的组合。例如,复制代理可从溢出日志4313位置103应用R1、从溢出日志4313位置104应用R2、并且在将R2应用于复制品数据4317之后生成一个B类检查点,它包含指向溢出日志位置104的引用。所生成的B类检查点4319由存储位置4305上的复制代理转发到数据保护器4301。数据保护器4301将B类检查点存储在数据库中,以使记录能够在数据传送被中断的情况下使用。
另外,响应于从存储位置4305接收B类检查点,数据保护器4301将B类检查点存储在它的数据库中,并且将B类检查点确认发送回存储位置4305。由存储位置4305对B类检查点的接收向存储位置4305标识,数据保护器已经记录了应用于复制品数据4317的记录的最后位置,并且那些记录可从溢出日志4313中清除。
传送记录并将那些记录应用于在存储位置的复制品数据的过程,以及检查点的循环确认了从产生位置4303到存储位置4305的记录传输准确性,并且向数据保护器4301提供可在发生故障时用于重新启动数据传输。
图45依照本发明的一个实施例示出了数据保护系统重新启动改变记录从产生位置4303到存储位置4305的传输的流程图。为了说明的目的,假定系统正在从产生位置4303传送到存储位置4305,并且由于某种原因传输被中断,并且系统正在恢复该传输。
为恢复数据传输,数据保护器4301参考存在于数据保护器4301的数据库中的最后一个记录的C类和B类检查点,来标识产生位置4303和存储位置4305的重新启动位置。例如,参考所记录的B类检查点B2,数据保护器4301确定在溢出日志4313中所应用的最后一个记录的位置是位置107。因而,数据保护器4301生成一个被发送到存储位置4305的命令,指示存储位置4305的复制代理开始应用来自溢出日志位置108的记录,并且在溢出日志位置111之后(即,溢出日志位置112)存储下一个接收到数据记录。复制代理开始存储接收记录的位置(112)是通过参考记录在数据保护器4301的数据库中的最后一个C类检查点来标识的。在本例中,数据保护器4301参考C类检查点C3来标识,由存储位置4305接收的最后一个已知的C类检查点位于溢出日志位置111。
同样,数据保护器4301参考最后一个收到的C类检查点C3,标识产生位置4303发送的最后一个记录(它知道已由存储位置4305成功接收)定位在改变日志位置9。因而,数据保护器4301生成一个发送给产生位置4303的命令,它指示位于产生位置4303的克隆代理从记录10开始将记录发送到存储位置4305。
总的来说,为了有效地恢复数据记录的传输,数据保护器4301生成和发送三个命令。生成开始发送记录命令,并且将它发送到产生位置4303,它标识在改变日志4307中的传输起始点。发送开始应用记录命令到存储位置4305,它标识在溢出日志4313中要恢复应用的位置。还生成第三个命令,即开始存储接收记录命令,并发送到存储位置4305,它标识在溢出日志4313中关于要存储的新接收记录的位置。
参考诸如B类和C类这样的检查点并且生成开始应用记录命令、开始发送记录命令和开始存储接收记录命令,使数据保护系统能够通过从数据传送内已知的检查点重新开始重新同步它本身,因而不必从头开始数据传输并且不丢失任何数据。
除了如上所述监视改变记录从产生位置4303到存储位置4305的传输之外,数据保护系统具有确认位于存储位置4305的复制品数据4317的完整性的能力。在本发明的一个实际实施例中,数据的确认是通过从产生位置4303发送要与在存储位置4305的记录比较的确认记录来完成的。
图46和47依照本发明的一个实施例示出了用于确认复制品4317的确认例程。为了开始确认例程,数据保护系统器4301生成要发给产生位置4303的开始确认命令。响应于接收开始确认命令,在产生位置4303的克隆代理开始生成位于产生位置4303的每个保护对象的元数据。该元数据作为一个记录添加到改变日志4307,并且连同改变记录一起发送。记录和元数据如上讨论地从改变日志4307发送到存储位置4305。在收到改变记录后,位于存储位置4305的复制代理如上讨论地将该记录应用于复制品数据4317。在应用如V1等元数据记录后,位于存储位置4305的复制代理计算复制品数据4317相同部分的元数据。比较两个元数据项,以确认复制品数据该部分的有效性和完整性。如果元数据不匹配,则复制代理生成一个差异列表,它标识在复制品4317处不匹配的保护对象。
如相关领域的技术人员将意识到的,使用元数据将复制品数据与保护对象比较可通过生成要比较数据的校验和和/或通过比较如最后改变时间等数据的任何其它标识标记来完成。
在如V1和V2等一组元数据记录已经被包括在改变日志4307中之后的预定时间点,位于产生位置4303的克隆代理生成要作为记录添加到改变日志4307的A类检查点。如A1等A类检查点连同改变记录和元数据记录一起通过数据信道发送到存储位置4305。
在由位于存储位置4305的复制代理收到A类检查点后,复制代理将A类检查点,以及已经作为比较元数据的结果所生成的任何差异列表转发到数据保护器4301。如在图46中例示的,A类检查点可在溢出日志中维护,直到它被清除。或者,在收到A类检查点后,可连同差异列表一起转发它并且不存储在溢出日志中。
数据保护器4301接收A类检查点和差异列表,并且将A类检查点和差异列表记录在数据库中。差异列表被转发到产生位置,且重新复制所标识的保护对象并且重新发送到存储位置。响应于接收差异列表,所标识的保护对象的重新复制和重新传输可发生,或者可被调度在某个以后的时间点(例如,在完成复制品的确认之后)发生。
A类检查点在其本身内包括一个对其计算元数据的特定保护对象的标识。例如,如果为位于服务器1的C\生成元数据,并且生成元数据的最后一个保护对象是服务器1上的C\file50,则A类检查点将包含到服务器1上的C\file50的引用。该信息由数据保护器4301存储在数据库中,因此,在数据传输中断的情况下,它将具有一个引用点,从该点重新开始确认。
图47依照本发明的一个实施例示出了一个流程图,它描述由数据保护系统生成的确认例程的重新开始,以在特定时间点确认被中断时重新开始确认。为了本讨论的目的,假定数据传输已经被中断并且现在要恢复。当重新进行数据传输时,数据保护器4301生成和发送标记权标,在图47中被示为Ap。标记权标是由数据保护器4301生成的唯一权标,在数据确认恢复进行之前,它通过系统循环以从系统清除所有元数据和A类检查点。
标记Ap从数据保护器4301发送到产生位置4303,并且由位于产生位置4303的克隆代理将它包括在改变日志4307中。在产生位置4303收到标记权标Ap,克隆代理添加标记Ap到改变日志4307并且随后将标记Ap发送到存储位置4305。在存储位置4305收到标记权标Ap后,位于存储位置4305的复制代理将标记权标Ap转发回数据保护器4301。
在数据保护器4301收到标记权标Ap后,数据保护器4301变成知道先前已经生成的所有元数据已经从产生位置4303发送到存储位置4305。参考类A检查点的数据库,数据保护器4301标识被发送的最后一个A类检查点,并且准备一个重新启动命令,它包括产生位置要重新开始数据确认的位置。数据保护器4301将重新确认命令和要恢复数据确认的点的标识发送到产生位置4303。
例如,参考图47,数据保护器4301从它的数据库标识在先前的确认例程期间计算元数据的最后一个保护对象是在服务器1上的C\file1003。因而,数据保护器4301知道已经为一直到服务器1的卷C上的file1003的所有文件生成和发送了元数据,因而生成一个重新启动确认命令以指示产生位置4303重新启动服务器1上C\file1003之后的元数据生成。
图48A是依照本发明的一个实施例的命令处理例程的流程图,用于处理由产生位置接收的命令。命令处理例程4800开始于4801,并且在判定块4803确定所接收的命令是否是“开始传输”命令。如上讨论,命令是由数据保护器为控制部署在整个数据保护系统上的代理而生成的。如果在判定块4803判定所接收的命令是“开始传输”命令,则在块4805标识一个开始传输点。开始传输点可包括在“开始传输”命令中。开始传输点标识改变日志内的一个位置,从它开始数据传输。
另外,在块4807标识一个结束传输点。结束传输点可用各种方法来确定。例如,可通过找出包含在改变日志内的最后一个记录并将它用作结束传输点,通过确定数据传输的最大尺寸并且标识日志内达到该尺寸的点来标识一个结束传输点。在标识开始和结束传输点后,在块4809,命令处理例程4800将控制传递给数据传输流程(图48B)。
回来参考判定块4803,如果确定所接收的命令不是“开始传输”命令,则在判定块4811确定所接收的命令是否是“开始确认”命令。如果在判定块4811确定命令是“开始确认”命令,则在块4183,在产生位置处标识一个关于开始确认的位置。如对于传输的开始和结束点一样,该位置可包含在开始确认命令内或者单独地获得该位置。在标识产生位置内开始确认的位置后,命令处理例程4800将控制传递给确认例程(图48C),如由块4815例示。
如果在判定块4811确定所接收的命令不是“开始确认”命令,则在判定块4817判定所接收的命令是否是C类检查点确认。如果是C类检查点确认,则包含在改变日志中在已经被确认的C类检查点之前发送的记录从改变日志中清除,如由块4819例示,并且例程在块4821结束。然而,如果在判定块4817确定所接收的检查点不是C类检查点确认,则所接收的命令是标记权标Ap。在块4823将标记权标Ap放置在改变日志中,并且例程在块4825结束。
图48B是依照本发明的一个实施例传输数据例程的流程图,用于将改变记录从产生位置发送到存储位置。传输数据例程开始于块4831,并且在块4833,将从改变日志获得的一组改变记录一起组合成批用于传输。记录的批可以是任何数量的记录。创建记录批可响应于到达改变日志的最大尺寸、在一个改变发生后、在预定的时间点发生。如相关领域的技术人员将意识到的,所提供的生成记录批的定时和记录批的尺寸只是一些例子,并且本发明的实施例可使用任何定时和尺寸用于创建记录批。例如,记录批可以只包括一个记录,并且可在每次对数据保护系统发生改变时创建。
在块4835,从产生位置发送记录批。除了发送记录批之外,还生成一个C类检查点并且添加到记录批的末尾,作为记录批的一部分发送。如上讨论,C类检查点包含指向包括在记录批中最后一个改变记录在改变日志内的位置的指针。在判定块4837,确定在改变日志内是否还有其它记录。如果在判定块4837确定存在其它记录,则传输数据例程4830将控制返回到块4833,并且例程继续。然而,如果在判定块4837确定没有更多记录要发送,则例程结束,如由块4839例示。
图48C是依照本发明的一个实施例用于确认数据的确认例程的流程图。确认例程4840开始于4841,并且在判定块4843判定在产生位置是否存在需要进行确认的任何对象。如果在判定块4843确定没有其它对象要确认,则例程结束,如由块4844所示的。然而,如果确定有其它对象要确认,则在块4845生成对象的元数据。具体地,生成元数据的第一个对象对应于在命令处理例程4800(图48A)的块4813标识的起始位置的对象。在生成元数据后,以元数据记录的形式(V)将该元数据添加到改变日志。
在判定块4847,确定是否要生成一个A类检查点并将它添加到改变日志。如上讨论,A类检查点表示在生成和发送元数据记录的整个过程中的位置,并且可用于重新开始数据确认。另外,A类检查点可包括顺序标记,因此可判定所发送的A类检查点是否没有收到。如果在判定块4847确定要生成一个A类检查点,则在块4849生成检查点并将它作为一个记录添加到改变日志,它将被组成批并且与包含在改变日志内的其它记录一起发送。在将A类检查点添加到改变日志后,确认例程4840将控制返回到判定块4843并且例程继续。然而,如果在判定块4847确定不要生成A类检查点,则确认例程4840返回到判定块4843并继续。
图49A是依照本发明的一个实施例的命令处理例程的流程图,用于处理由存储位置接收的命令。命令处理例程4900开始于块4901,并且在判定块4903,确定所接收的命令是否是“开始接收”命令。“开始接收”命令是使存储位置开始接收从产生位置发送的记录的指令。如果在判定块4903确定命令是“开始接收”命令,则在块4905标识溢出日志内用于存储所接收的记录的起始点。溢出日志内位置的标识可通过接收包含在“开始接收”命令内或者作为一个单独指令的位置来确定。在标识了溢出日志内用于开始存储所接收记录的起始位置后,命令处理例程4900将控制传递到接收记录例程(图49B),如由块4907例示。
回来参考判定块4903,如果确定所接收的命令不是“开始接收”命令,则在判定块4909判定所接收的命令是否是“开始应用”命令。如果所接收的命令是开始应用命令,则在块4911标识溢出日志内开始应用记录的起始位置。与开始接收记录位置一样,溢出日志内的标识可通过包括在“开始应用”命令内或者作为单独命令来接收或者通过其它方法标识的位置来标识。在标识了溢出日志内开始应用的起始位置后,命令处理例程4900将控制传递给应用改变记录例程(图49C)。
如果在判定块4909确定命令不是“开始应用”命令,则命令是B类检查点确认,并且在块4915,包含在溢出日志内在发送所确认的B类检查点之前已经应用于存储位置处的副本的所有记录从日志中清除。在块4917例程结束。
图49B是依照本发明的一个实施例接收记录例程的流程图,用于在存储位置处接收记录。接收记录例程4920开始于块4921,并且在块4923接收下一个进入的块。如上讨论,记录的传输可使用包括但不限于有线或无线等的任何传输介质来完成。在判定块4925,判定所接收的记录是否是C类检查点。如果是C类检查点,则将C类检查点的溢出日志位置添加到C类检查点,并且将C类检查点转发到数据保护器,如由块4927所示的。然而,如果在判定块4925确定记录不是C类检查点,则在判定块4929判定记录是否是标记权标Ap。如果记录是标记权标,则在块4931将标记权标转发到数据保护器。
如果在判定块4929确定记录不是标记权标,则在判定块4935判定记录是否是A类检查点。如果在判定块4935判定记录是A类检查点,则在块4937将A类检查点和差异列表转发到数据保护器。如果在判定块4935判定记录不是A类检查点,或者在将记录转发到数据保护器(块4927,4931,4937)之后,将所接收的记录添加到溢出日志,如由块4939例示。在判定块4941,判定是否还有已经接收的其它记录。如果有其它记录,则接收记录例程4920返回到块4923,并且例程继续。如果没有其它记录,则例程在块4943结束。
图49C是依照本发明的一个实施例应用改变记录例程的流程图,用于将改变记录应用于存储位置的复制品。应用记录例程4950开始于块4951,并且在块4953从溢出日志获得一个记录。在判定块4955判定所获得的记录是否包含关于保护对象的元数据。如果确定记录包含元数据,则在块4957将元数据与存储在复制品上的相应对象进行比较。如上讨论,元数据可以是任何形式的对象标识,诸如最后的改变时间、大小、计算的校验和等等。在判定块4959,在比较元数据后,判定元数据是否不同。如果所比较的元数据不同,则在块4961将比较了元数据的对象标识添加到差异列表。在将所标识的对象添加到差异列表(块4961)后,或者如果在判定块4949确定元数据没有不同,则应用改变记录例程4950继续到判定块4965并且继续。返回到判定块4955,如果确定记录不是元数据,则记录是改变记录,并且将它应用于复制品,如由块4963例示。
在判定块4965,判定是否应该生成B类检查点。如上讨论,B类检查点的生成可基于任何形式的准则来创建。例如,在每次应用了一个改变记录之后、在预定的时间段之后等等,可生成B类检查点。如果在判定块4965确定应该生成B类检查点,则在判定块4967判定差异列表是否为空。如果确定差异列表不为空,则在块4969,例程4950等待接收A类检查点。如果差异列表不为空,则等待A类检查点,这保证如果系统重新启动,在差异列表之外没有生成的元数据记录丢失。在发送B类检查点之前接收A类检查点,这保证当发送差异列表时不再需要所有用于生成该差异列表的元数据记录。如果在判定块4967确定差异列表为空,或者在块4969收到A类检查点后,生成并发送一个B类检查点,如由块4971所示的。
回来参考判定块4965,如果确定不要生成B类检查点,或者在发送B类检查点(块4971)之后,在判定块4973判定在溢出日志中是否存在还没有应用于复制品的其它记录。如果存在其它记录,则应用改变记录例程4950返回到块4953并且继续。然而,如果在判定块4973确定没有其它记录要应用,则例程结束,如由块4975所示的。
本发明的各实施例提供使用任何类型的备份技术来保护产生位置处的数据的能力,诸如用时间版本化和/或将数据归档到可移动介质的复制。在本发明的一个实施例中,保护产生位置处数据的能力是通过使用分布式控件和协调由位于数据保护系统不同部分的代理执行的动作来完成的。例如,代理可位于产生位置、存储位置和/或数据保护器位置。这些活动被为称为作业,一般在调度的基础上运行。因为作业经常涉及与远程代理通信,所以它们一般是异步的,并且要用很长时间来完成。作业是已调度的活动单元,它可以一次性也可以在周期性的基础上运行。作业由一个或多个任务组成。任务可以串行或并行地运行。另外,作业在任何任务失败时失败,或者任务无论完成还是失败,作业都可继续执行所有任务。
对于数据保护,作业被组织成为保护组的所有成员执行给定的活动。数据保护通过组织包含用于为特定作业执行适当活动的任务的作业来进行。例如,保护或恢复计划包括一个或多个作业,并且调度那些作业。在本发明的一个实际实施例中,作业可认为是四个不同类型之一保护、恢复、发现和内务处理。保护作业执行数据保护活动,诸如复制、时间版本管理、归档或数据集升级。每个保护任务与一个保护组相关联。发现作业执行从复制品、数据集、归档或其组合的数据恢复。每个恢复任务与一个恢复源相关联。诸如初始发现例程(图25)和已调度发现例程(图26)等发现作业发现在数据保护器外部的实体。执行发现,用于搜索、导航、自动发现组刷新或已保存搜索,以及保护组成员资格判定。内务处理作业执行数据保护系统维护所必需的活动。内务处理作业包括代理安装版本调查、摘要跟踪的创建、介质迁移、以及数据保护系统数据库无用信息收集。
数据保护系统的每个作业是由作业管理器监视的。作业管理器监视整个作业进程,从与那些作业有关的数据保护器数据库读取信息,并且将从那些作业接收的信息写到它所维护的数据保护器数据库的特定部分。对于作业管理器维护的数据库的部分,它是数据保护系统中可将信息写至数据库的该部分的唯一管理器。
图50是依照本发明的一个实施例包含多个任务的作业的框图。如上面提到的,作业5000包括一个或多个任务,诸如任务1 5001,任务2 5002,直到任何数目的任务,如由任务N 5003所示的。作业的每个任务是由任务执行器5005、5007执行和管理的。任务执行器5005在执行诸如任务2 5002等任务时可生成一个或多个命令,这些命令由分布在整个数据保护系统上的不同代理执行。例如,任务执行器5005可为任务2 5002生成三个不同命令,每个命令由不同代理完成。任务2 5002的第一个命令可由代理A 5009执行,第二个命令由代理B 5011执行,第三个命令由代理C 5013执行。取决于任务类型和作业类型,代理5009-5013可串行或并行地执行命令。
作业属性应用于作业的所有任务。一个作业的特定任务也可具有特定属性。用于保护作业的作业和任务属性是由意图转换作为创建组计划的作业的一部分来确定的。在本发明的一个实际的实施例中,所有作业都有下列属性在成功/失败时的动作,以及并行或者只是串行地执行。另外,任何涉及数据移动的作业可具有下列属性加密、压缩、节流和配置意图。
每个任务执行器5005、5007可作为由一个共同的引擎执行的有限状态机(FSM)而生成,该引擎响应于输入使FSM在不同状态中转移,持久维护状态,并且执行重新启动逻辑。例如,任务执行器可基于来自先前发给代理的命令的应答转移。使用共同引擎使所有FSM的设计能够遵循共同设计方法,并且不同的FSM能够共享同一共同块(诸如轮询以判定一个代理是否继续有效并且从一个代理获得状态)。
一般地,任务执行器发命令给代理,并且基于那些命令的成功或失败和从那些命令提供的响应转移到等待状态之内和之外。另外,任务执行器5005、5007可在执行一个任务期间特定的时间量已经过去之后,响应于取消请求(例如,来自用户的取消请求,因一个作业超过分配给该作业的最大时间引起的内部取消请求),或者响应于基于数据库状态生成的内部消息而转移。在每次转移时,任务执行器通过任务持久维护其进展。持久维护的进展点可存储在数据保护器数据库中。通过任务持久维护的进展点为数据保护系统提供在遇到意料不到的终止(诸如掉电)时的稳健性。在重新启动后,任务执行器可以参考持久维护的点并且标识适当的任务状态并立即从该点失败,并且执行必要的任何清除。
例如,对于用于复制的数据传输作业,如上讨论,任务执行器发出命令到适当的代理,用于执行作业的每个任务。包括在那些命令中的是发到克隆代理的开始改变记录传输的命令。同样,任务执行器发出命令到复制代理,以开始接收和应用记录。在代理在执行那些命令时,任务执行器开始定时器并且转移到等待状态。在每个转移(发出命令,开始等待)时,任务执行器持久维护任务的进展点。任务执行器可接收的响应可以是检查点、超时事件、取消请求等等。在接收响应时,任务执行器按照响应转移,并且持久维护任务中该点。这个过程继续,直到任务或者成功或者失败而结束。
如果超时事件发生,则任务执行器5005也可轮询每个代理以判定这些代理是否还继续有效并且有可能获得有关由该代理执行的命令的进程。除持久维护转移点从而增加稳健性之外,设计长期运行的活动使得它们可以从中间点、检查点重新启动,因此所有工作在失败时不会丢失。例如,再参考图43至47,在数据传输和确认期间创建检查点。那些检查点由复制管理器获得并且存储在数据保护数据库中。如上参考图43-47讨论的,在从失败重新启动后,可评估那些检查点,并且可从由检查点标识的点恢复数据传输和确认。
除了运行任务以完成之外,在本发明的一个实施例中,任务执行器5005、5007向作业管理器通知任务的完成以及任务的完成是成功还是失败。作业管理器维护它自己的踪迹,给出关于作业中所有任务的概要信息。例如,作业踪迹可包含成功完成的任务数。作业管理器还将从任务执行器接收的信息持久维护在数据保护器数据库的任务踪迹中。另外,任务执行器也可维护它自己的任务踪迹,具有与任务有关的任务执行器特定信息。任务踪迹可包括在任务期间遇到的任何错误以及与对数据保护系统的用户有用的任务有关的统计资料。任务类型专用的跟踪由与该特定任务相关联的管理器接收和维护。任务类型专用的跟踪可包括任务专用信息,诸如移动数据所用的总时间、完成任务的总时间、传送的数据总量等等。在重新启动数据保护系统后,任务踪迹可用于标识在失败时导致的错误路径。另外,任务可维护任务私有元数据。该私有元数据可用于在重新启动时清除失败的任务并且用于在任务完成(成功或失败)时创建任务踪迹。而且,任务执行器5005、5007也可管理与任务相关联的元数据。
在失败的情况下,在重新启动后,作业进行非常简单的清除。它们没有重新调度它们自己或者执行复杂的恢复动作。相反,失败作业的任务只是更新任何物理对象状态并且失败。失败记录在任务踪迹和作业踪迹中。对于保证迅速且自动化的恢复行为足够重要的任务,数据保护系统通过健康管理器可创建用于从任务失败的点完成作业或者在由任务生成的最后一个检查点完成的补充作业。健康管理器使用任务踪迹以及在数据库中各种对象的状态来实现更复杂的恢复机制,以使数据保护能够进行。
对于认为是关键的任务,诸如复制,健康管理器可监视那些任务。在一个实施例中,健康供应者由健康管理器实例化。关键任务在失败时引起失败事件。健康供应者监视那些事件,并且判定是否需要执行任何恢复。如果恢复是必需的,则创建和调度补充作业以恢复一个或多个失败的任务。另外,在系统启动时,健康管理器启动健康供应者。每个健康供应者作出另外和独立的确定,即在系统先前终止时已经运行的失败任务的恢复是否是必需的。如果恢复是必需的,则创建和调度补充作业。在失败作业内单个任务失败时,或者在来自失败作业的所有未完成任务包括那些从未启动的任务时,补充作业可包含单个任务。
图51是依照本发明的一个实施例示出任务的监视和补充作业的创建的流程图。如上所述,在数据保护系统内的每个动作是以具有若干任务的作业形式组织的。数据保护器5101可创建作业,诸如在产生位置5103处的保护对象的复制,该作业要被传送和存储在存储位置5105,作为执行一个或多个任务的结果。该作业是由数据保护器5101启动的,并且该作业的每个任务是由一个或多个任务执行器执行的。例如,对于复制作业,任务执行器发出命令到若干代理,其中之一可位于产生位置5103,并且其中之一可位于存储位置5105。那些任务被执行而且目前在进展中,并且为了本例的目的,作业被中断并且随后恢复。作业中断可因如掉电等系统故障而发生。在恢复时,数据保护器5101标识在系统故障之前正在进行的作业任务。在标识正在进行的作业任务后,数据保护器5101发出重新开始任务的命令。在重新开始任务后,任务执行器使任务失败,并且为失败的任务执行简单的清除。如果任务是关键的,通知适当的健康供应者。
补充作业是在先前作业停止处捡起的作业。补充作业包括在先前作业中失败的任务或者在先前作业中没有开始的任务。例如,如果失败的作业是复制作业,则健康供应者标识复制作业的什么任务没有成功完成,并且创建一个包括未完成任务和该作业的所有其它未完成任务的补充作业。如果响应于接收失败的任务生成补充作业,则健康管理器标识失败的任务,并且创建一个包含该任务以及有可能要与该作业串行或并行地执行的任何其它任务的作业。在生成补充作业后,健康管理器调度执行补充作业。该补充作业随后按所调度的进行,好象是它自己的作业,并且执行该补充作业的任务。另外,因为补充作业被调度为它自己的作业,所以从作业管理器的观点来看,被视为任何其它作业,并且作业管理器可能不知道它是补充作业。
图52依照本发明的一个实施例示出了补充作业例程的流程图,用于标识任务失败并在该任务是关键时创建补充作业。补充作业例程5200可由数据保护系统执行,或者在本发明的一个实际实施例中,它可以由健康管理器执行。
补充作业例程5200开始于块5201,并且在块5203接收任务失败。如上讨论,如果任务被中断,则在重新启动后,任务执行器重新启动并且使先前运行的任务失败,发出任务失败通知。任务执行器执行该失败任务的清除。
在判定块5205,补充作业例程5200判定失败的任务是否是关键的。在另一实施例中,用户可指定要将什么任务视为关键的。如果在判定块5205确定失败的任务是关键的,则在块5207,标识未完成的任务和任何相关联的任务。在块5209,补充作业例程5200为每个未完成任务创建补充作业,并且在块5211调度该补充作业。
回来参考判定块5205,如果确定失败的任务不是关键的,则补充作业例程结束,如由块5213所示。如果一个任务是执行多次的例程作业的一部分,则可将任务标识为非关键的。例如,如果复制作业被调度为每小时执行,则用于后台复制的复制作业可被视为非关键作业。因而,因为复制作业将按照所调度的再次进行,所以数据保护系统可确定复制作业的任务不是关键的。
除了判定是否应该调度补充作业之外,数据保护器响应于任务失败,通过作业管理器判定包含失败的任务的作业是应该继续还是失败。如果失败的任务是已经确定将使作业失败的任务,则作业管理器使相关联作业失败。即使任务被认为是关键的(因而需要补充作业),它也可能不要求该作业失败。同样,非关键任务的失败可导致作业失败。例如,当作业包括从多个数据源的复制时,复制任务(关键任务)之一的失败不会导致作业的失败。
如上面提到的,数据保护系统包括控制数据保护系统的特定部分的管理器。例如,数据保护系统可包括但不限于复制管理器、配置管理器、健康管理器、概要管理器、作业管理器、介质管理器、归档管理器等等。每个管理器维护数据保护器数据库的特定部分。数据库的每个部分由一组只可以由相应管理器写的表组成。那些表可由任何管理器和其它外部应用程序来读,但由于相应的管理器是可以将数据写到表中的唯一管理器,所有并发控制和同步逻辑是管理器拥有的。除了监视任务和作业之外,健康管理器也可监视其它管理器。健康管理器被配置为响应于与管理器相关联的任何任务的失败并且可以检查对应于管理器的状态来确定需要什么恢复动作。
另外,管理器也可包含一个或多个实现管理器功能的任务执行器。例如,复制管理器可包含所有与复制品相关联的任务执行器,包括但不限于复制任务执行器、时间版本化任务执行器和从时间版本恢复任务执行器。
对于数据保护系统的物理对象(例如,复制品、介质、磁盘、库、驱动器),维护一个状态模型。每个状态模型描述该对象可处的状态以及在状态之间允许的转移。例如,图37依照本发明的实施例示出了用于复制品的状态模型。该状态模型描述一个对象的生命周期,并且指示需要执行什么活动以使对象从一个状态转移到另一个状态。例如,当复制品处在无效状态3705时(图37),基于该状态,数据保护系统知道应该执行确认作业以将复制品放置在有效状态3711中。对象的状态常常是健康供应者的输入。
维护状态模型维护了可由健康供应者用于恢复并且因而简化错误处理的已知状态。另外,通过监视对象状态,向用户提供数据保护系统如何处理任何错误条件。
数据保护系统还监视由数据保护系统的部分生成的事件,并且为用户提供有关数据保护系统本身的整个状态的报告。或者,报告可提供关于数据保护系统内不同物理对象的特定信息。例如,如果在产生位置的服务器不可用,则可生成报告错误,将问题通知给用户并且提供建议的解决方案。
事件由数据保护系统检查,并且基于该检查,生成有关检查事件的报告。报告被分类成三种类别之一信息、警告或错误。总的来说,如果报告是错误报告,则它标识用户动作是必需的。如果报告是警告报告,则它标识没有直接的用户动作是必需的,但如果警告没有自动地或者由用户解决,则可变成必需的。最后,如果报告是信息报告,则它通知用户不要求用户动作,并且提供有关数据保护系统的信息。如本领域的技术人员将意识到的,除了或者代替信息、警告和错误三种形式之外,可以用任何形式提供报告。
通过检查由数据保护系统的不同部分生成的事件来创建报告。基于那些事件,数据保护系统编译有关事件和数据保护系统的该部分状态的报告。因而不向用户提供由数据保护系统生成的所有事件,并且代之以提供已经被分类成信息报告、警告报告或错误报告中任一报告的报告。所提供的报告在必要时可包括针对由数据保护系统检测到的问题的建议的解决方案。无论任务在最后的作业上是否失败,均可生成报告。例如,如下所示,即使最一个复制作业成功(块5409),如果用于维护在存储位置的副本的磁盘空间超过预定的阈值(块5411),则生成数据保护系统分类为警告的事件,并且将警告报告提供给用户(块5413),通知用户它们想要分配更多的磁盘空间。
报告类型(信息,警告,错误)可通过分析数据保护系统的特定部分来确定。例如,参考时间版本诊断例程5700(图57),计算在预定时间段内丢失的时间版本的数量和总的持续时间(块5725),并且基于在那些时间段内丢失时间版本的百分比来确定关于报告分类(警告,错误)的决定。
另外,在有些情况下,可执行一系列测试以确定包括在报告中建议。例如,在副本诊断例程5400中,如果确定副本不是有效的(5403),并且确认作业失败(5445),则数据保护系统开始通过一系列测试(判定块5447、5451、5455、5459)来确定哪一建议的解决方案应该包括在为用户生成的错误报告中。在恢复诊断例程5900中例示相似的例子(图59)。具体地说,如果确定一个作业失败(5911),则数据保护系统通过一系列测试(判定块5917、5921、5925、5929)确定哪一建议的解决方案应该包括在错误报告中。
图53依照本发明的一个实施例示出了用于诊断与数据的副本相关联的问题和用于如果检测到问题则生成具有建议修正的报告的流程图。如上面提到的,报告可分类成三种状态之一错误、警告和信息。
诊断例程5300开始于块5301,并且在块5303,例程执行副本诊断例程,如参考图54-56详细描述的。除了执行副本诊断例程5303之外,诊断例程5300执行时间版本诊断例程,如参考图55-58描述的。最后,诊断例程5300判定是否存在已经由数据保护系统发出的任何其它警告。
在判定块5309,确定是否在副本诊断例程、时间版本诊断例程之中任何一个检测到任何错误,或者是否存在由其它警告提供的任何错误。如果在判定块5309确定已经检测到错误,则在判定块5311生成描述该错误的错误报告,并且向用户提供解决所报告错误要采取的建议步骤。然而,如果在判定块5309确定没有检测到错误,则在判定块5313确定是否存在从副本诊断例程、时间版本诊断例程之中任何一个生成的任何警告,或者是否存在由其它警告提供的任何警告。如果在判定块5313确定检测到警告,则在块5315生成警告报告,描述对用户的警告并且向用户提供解决该警告可执行的可能步骤。最后,如果在判定块5313确定没有检测到警告,则在判定块5317生成信息报告,通知用户数据保护系统没有问题并且正在按用户要求保护信息。
通过块5303、5305和5307的每个例程以及随后确定这些例程(判定块5309、5313)的最严重问题,可将任何可能的问题提供为单个报告。例如,如果标识了一个错误,则可提供错误和建议的解决方案,并且停止任何警告或信息报告,直到更严重的问题(即错误)解决。
图54依照本发明的一个实施例示出了描述副本诊断例程细节的流程图,用于诊断与在数据保护系统中复制数据有关的可能问题。副本诊断例程可用于任何类型的存储,诸如复制品存储、归档或复制品与归档两者。如下面更详细地描述的,副本诊断例程5400判定最后的复制任务成功还是失败。如果最后的复制任务失败,则基于复制模式是后台还是备份来遵循不同路径(块5417)。由于一天运行一次并且失败的任务比每小时运行的任务失败更重要,因此基于那些失败生成不同报告。例如,如果模式是后台的并且任务失败,则如果失败数还没有超过预定的下限,可给用户提供信息报告。或者,对于后台模式,可不为被调度为经常运行的任务生成报告,因为该任务的后续执行可自动地解决问题。相反,如果复制模式是备份的并且任务失败,则向用户提供警告报告或者错误报告。
副本诊断例程5400开始于块5401,并且在判定块5403确定副本是否有效。如果在判定块5403确定副本是有效的,则在判定块5405确定复制作业目前是否在运行。如果在判定块5405确定复制作业正在运行,则在块5407,数据保护系统生成一个信息报告,标识副本的最后状态,并且向用户提供复制作业目前在运行的指示。
然而,如果在判定块5405判定复制作业目前没有在运行,则在判定块5409确定最后一个复制作业是否成功。如果在判定块5409确定最后一个复制作业成功,则在判定块5411确定是否从最后一个复制作业生成磁盘利用率阈值警告。响应于数据保护系统生成磁盘利用率阈值警告,标识目前正存储副本的存储位置部分变得可用磁盘空间较少。例如,只要在复制品上的盘磁空间变得较少,或者当执行归档到磁盘而不是磁带介质时,以及或者在池中的介质变得较少或者在空闲池中的介质变得较少,可生成磁盘利用率阈值警告。这个阈值等级是预定或预设的大小值,在达到该值时生成阈值警告。
如果在判定块5411确定已经生成了磁盘利用率阈值警告,则在块5413生成一个警告报告,指示在存储位置的磁盘利用率已经超过预定的阈值,并且提供可分配给副本的附加磁盘空间。在另一实施例中,除了生成警告报告向用户通知阈值警告之外,数据保护系统也可通过确认目前用于副本的磁盘空间状态来检查警告是否仍是适用的。
如果在判定块5411确定没有生成磁盘利用率阈值警告,则在块5415向用户提供一个信息报告,指示没有与数据保护系统的这个部分相关联的问题。
再参考判定块5409,如果确定最后的复制任务没有成功,则在判定块5417确定保护模式是否为后台模式。如在此所述,保护的后台模式是数据保护系统的操作模式,其中复制接近于连续的。例如,每小时、一天24小时、一周七天。或者,复制的模式可以是备份模式。保护的备份模式是复制相对不太频繁的操作模式。例如,归档和/或复制可每晚发生。
如果在判定块5417确定复制模式是后台的,则在块5419计算先前失败的复制作业的数量。在判定块5421,确定在块5419计算的失败复制作业的数量已经超过预定的下限。如果在判定块5421确定先前失败的复制作业数量还没有超过预定的下限,则在块5422生成一个信息报告,通知用户数据保护系统目前按期望的操作。计算失败复制作业的数量并且将它与限制比较以确定是否生成报告,为数据保护系统提供解决问题的机会而不必通知用户。例如,如果复制作业每小时生成并且如果丢失了一个,则如果复制作业成功完成,数据保护系统可在下一小时解决这个问题。
然而,如果在判定块5421确定先前失败的复制作业的数量已经超过预定的下限,则在判定块5423确定先前失败的复制作业数量已经超过第二上限。如果确定先前失败的复制作业数量还没有超过预定的上限,则在块5424生成警告报告,通知用户已经失败的复制作业的数量。警告报告还通知用户,失败的复制作业的数量没有达到预定的上限(关键性数量),并且目前不要求用户的动作。
如果在判定块5417确定保护模式不是后台模式,即它是备份模式,或者在在判定块5423确定失败的复制任务的数量超过预定的上限,则副本诊断例程5400获得最后任务失败的原因,如由块5425所示的(图55)。在本发明的一个实施例中,复制作业的失败原因可从由包含在复制作业本身内的任务生成的任务踪迹获得。如上所述,任务踪迹包括关于任务本身的元数据,任务在做什么,任务所完成的,或者任务为什么失败。
在判定块5427,确定失败原因是否为用户取消先前的复制作业。如果在判定块5427确定复制作业因用户取消该作业而失败,则忽略复制失败的通知。然而,如果在判定块5427确定先前失败的复制是因不同于用户取消的原因,则在判定块5431确定先前失败的复制作业是否因为数据保护系统不能联系产生位置。不能联系产生位置可由若干不同类型的外部事件,如网络中断、电源问题或者产生服务器目前因维护或其它操作而关闭所导致。
如果在判定块5431确定失败的最后一个复制作业是因为数据保护系统不能联系产生位置,则在块5433生成报告,向用户标识先前的复制作业没有成功完成并且向用户提供建议,让他们检查网络和/或产生位置,力图确定数据保护系统为什么不能联系产生位置。
如果在判定块5431确定先前的失败不是因为数据保护系统不能联系产生位置而发生的,则在判定块5435确定先前的失败是否因为数据保护系统不能联系执行复制的代理。如果确定失败因不能联系进行执行的代理而发生,则生成警告报告,通知用户错误并且向用户提供建议,检查代理安装和/或如果必要重新安装代理,如由块5437所示的。
然而,如果确定先前的失败不是因为用户取消(块5427)、不能联系产生位置(块5431)或者不能联系代理(块5435),则问题是未知的并且生成错误报告,通知用户数据保护系统不能确定失败的原因并且向用户提供建议,检查网络连接和复制涉及的代理。
回来参考图54,如果在判定块5403确定使用副本诊断例程5400执行诊断的副本不是有效的,则在判定块5437(图56)确定正在诊断的副本是否是无效的(即,处在图37的无效状态)。如果在判定块5437确定正在诊断的副本是无效的,则在块5439,副本诊断例程通知用户,数据源的副本未初始化。在另一实施例中,在块5439可向用户提供报告,标识正在诊断的用于特定数据源的副本未被初始化,并且询问用户是否想要生成初始化作业。
如果在判定块5437确定副本是无效的,则在判定块5441确定确认作业目前是否在正在诊断的副本上运行。如果在判定块5441确定确认作业目前正在为正在诊断的特定副本运行,则在块5443生成警告报告,通知用户正在诊断的副本目前正在由确认作业确认并且目前不需要动作。
如果在判定块5441确定确认作业不在运行,则在判定块5445,副本诊断例程5400判定先前的确认作业是否运行并且失败。如果在判定块5445确定确认作业运行并且失败,则在判定块5447确定失败是否是由用户取消确认作业的结果。如果在判定块5445确定先前运行的确认作业没有失败,或者先前运行的确认作业失败并且失败是用户取消的结果,则在块5449生成错误报告,通知用户失败并且建议用户运行确认作业。或者,确认作业可自动运行。
然而,如果在判定块5447确定失败的先前运行的确认作业不是因用户取消的原因而失败的,则在块5449从与先前确认作业相关联的任务踪迹获得该失败的原因。使用在块5449获得的失败的原因,副本诊断例程5400在判定块5451判定失败的先前运行确认作业是因为可用于副本的存储位置总量满了。如果在判定块5451确定在存储位置用于副本的空间满了,则在块5453报告错误,通知用户存储位置满并且向用户提供建议,为副本的存储分配更多的磁盘空间。分配更多的磁盘空间可包括为复制品添加额外的磁盘空间。
如果在判定块5451确定失败不是空间不足的结果,则在块5455确定失败是否是数据保护系统根本不能到达存储位置的结果。如果在判定块5455确定数据保护系统不能到达存储位置以便确认副本,则生成错误报告。错误报告通知用户存储位置是不可访问的,并且建议用户检查数据保护系统与存储位置之间的通信、与目标卷的通信、以及存储位置本身的完整性。
如果在判定块5455确定失败不是存储位置不可访问的结果,则在判定块5459确定在产生位置是否存在改变日志溢出。日志溢出可因在产生位置的改变日志中排队了太多的改变和/或在存储位置的溢出日志变满所致。如果生成改变日志和确认记录比将它们发送到存储位置或在存储位置处理的速度快,则这可能发生。如果在判定块5459确定失败是日志溢出的结果,则生成错误报告,通知用户日志溢出并且指示日志已经溢出,并且建议适当地重新调整日志的大小,如由块5461所示。
最后,如果副本诊断例程5400在判定块5459确定失败不是日志溢出的结果,则在块5463生成错误报告,通知用户失败并且建议用户对产生服务器、数据保护器和存储服务器检查可能的通信问题或其它可能问题,并且如果失败继续,则重新初始化数据保护系统。
诊断保护问题的另一个实例是时间版本的诊断。在图53中(块5305)描述的整个诊断例程提到该时间版本诊断例程并将参考图57作更详细地描述。
图57依照本发明的一个实施例示出了描述时间版本诊断例程的流程图,用于诊断与由数据保护系统生成的时间版本有关的可能问题。时间版本诊断例程5700开始于5701,并且在判定块5703确定创建时间版本的副本是否处在有效状态中。如果在判定块5703确定生成时间版本的副本处在有效状态,则在判定块5705确定该副本的最后时间版本是否成功。如果在判定块5705确定副本的最后时间版本没有成功,则在判定块5707从与时间版本作业的任务相关联的任务踪迹获得时间版本作业的失败原因。
在判定块5709生成错误报告,提供解释并且建议用户要再次取一个时间版本。在另一实施例中,除了生成提供解释的报告之外,数据保护系统可自动调度一个时间版本作业,用于取随后的时间版本。
回来参考判定块5703,如果确定要取的时间版本的副本不处在有效状态,则时间版本诊断例程5700如上所述参考图56所示的块继续。
如果在判定块5705确定有效副本的最后一个时间版本作业成功,则在判定块5711确定一个时间版本是否是实际要取的时间版本。如果在判定块5711确定时间版本不是实际要取的,则在判定块5713确定是否存在复制作业失败。如果在判定块5713确定存在复制作业失败,则时间版本诊断例程5700如上所述参考图55所示和描述的块继续。
然而,如果在判定块5711确定没有时间版本要取,则在判定块5713确定没有复制作业失败,这向数据保护系统标识没有关于副本的活动并且因此不需要时间版本。另外,因为副本和/或时间版本没有问题,所以在块5715生成信息报告,通知用户没有关于副本的活动并且因此没有时间版本要取。
回来参考判定块5711,如果确定执行了时间版本作业并且取得时间版本,则确定如果恢复是必需的则最旧的预期的时间版本是否可用,如由判定块5721所示(图58)。判定最旧的预期的时间版本是否可用确认了是否满足持续时间意图。例如,如果持续时间是要能够恢复至少一年以上的信息,并且最旧的预期的时间版本(一年之久)可用,确认满足该持续时间意图。如果在判定块5721确定最旧的预期的时间版本不能用于恢复,则生成错误报告,通知用户最旧的预期的时间版本不可用,并且它的最可能原因是因为缺少磁盘空间。错误报告还向用户提供建议,为时间版本分配更多的磁盘空间,如由块5723所示。
如果在判定块5721确定最旧的预期的时间版本可用,则在块5725,时间版本诊断例程5700计算在预定的时间段内丢失副本的数量,并且计算在总的保持时间内丢失副本的总数。计算丢失时间版本的预定时间段可以是比总保持时间少的任何预定的时间长度,诸如一周、两周、一个月等。总保持时间是由用户在设置保护意图中在标识用户想要能够恢复保护对象的总时间长度时标识的。计算丢失副本的数量确认是否满足频率意图。
在判定块5727确定在块5725计算丢失副本的预定时间段内是否有超过0%的时间版本丢失。如果在判定块5727确定没有时间版本丢失,则在判定块5729确定在总保持时间内是否不超过50%的时间版本丢失。如果在判定块5729确定在总时间段内丢失时间版本的数量小于50%,则生成信息报告,通知用户目前不存在与数据保护系统的时间版本部分有关的问题,如由块5731所示。如上讨论,通过不立即报告问题,数据保护系统有解决任何问题的机会而不需要用户卷入。例如,如果确定在总时间段内丢失副本的数量是10%,但未来的复制作业成功完成,则这个百分比将随着时间过去减少,而不必向用户警告。
然而,如果在块5729确定在总时间段内超过50%的时间版本丢失,则生成警告报告,标识目前丢失的时间版本的百分比,并且建议除了继续监视丢失时间版本的百分比之外不需要其它动作,如由块5733例示。
如果在判定块5727确定在预定的时间段内有些时间版本丢失,则在判定块5735确定在该预定时间段内丢失的时间版本数是否在0%与20%之间。如果在判定块5735确定在预定时间段内丢失的副本数在0%和20%之前,则在判定块5737确定在总保持时间段内丢失的时间版本数是否小于50%。如果在判定块5737确定总保持时间段丢失的时间版本数小于50%,则在块5739生成一警告报告,提供时间版本丢失百分比,并且建议除了监视丢失时间版本百分比之外不要求其它动作。
然而,如果在块5737确定在总保持时间段内丢失的时间版本的百分比大于50%,则在块5741生成错误报告,通知用户丢失的时间版本的百分比。另外,在块5741生成的错误报告通知用户,没有按预期执行保护,并且建议用户检查所标识的保护参数并且为产生位置和存储位置的磁盘设置进行检查。
回来参考判定块5735,如果确定在预定时间段内丢失的时间版本的百分比不在0%与20%之间,则在判定块5743确定在总保持时间段内丢失的时间版本数量是否小于50%。如果在判定块5743确定在整个保持时间段内丢失的时间版本的总数小于50%,则在块5745生成错误报告,通知用户没有按预期执行保护,为用户提供在总保持时间段内丢失的时间版本的总百分比,并且建议用户检查副本本身的完整性并且检查保护时间表。最后,如果在判定块5743确定在总保持时间段内丢失的时间版本的数量大于50%,则生成错误报告,通知用户保护一贯很差,并且建议用户检查保护和在产生位置和存储位置两者进行磁盘设置检查,如由块5747所示。
尽管在上述时间版本诊断例程5700的讨论中使用了特定的百分比,但相关领域的技术人员将意识到,本发明实施例可使用任何预定的百分比,并且在此提供的百分比只是为了说明目的。
图59是依照本发明的一个实施例描述恢复诊断例程的流程图,用于诊断与在数据保护系统中恢复信息有关的可能问题。恢复诊断例程5900开始于块5901,并且在判定块5903确定恢复作业目前是否正在运行。如果在判定块5903确定恢复作业目前正在运行,则在判定块5905,恢复诊断例程5900判定是否已经从与运行的恢复作业相关联的任务生成了任何警告。如果在确定块5905判定没有与运行的恢复作业相关联的任务生成的警告,则生成信息报告,通知用户数据保护系统没有与恢复有关的问题存在。如果在判定块5905确定从与目前运行的作业相关联的任务生成了警告,则在块5909生成警告报告,通知用户目前运行的恢复作业已经生成了一个或多个警告,并且通知用户那些警告,和提供解决那些警告的建议方法(如果需要任何解决方案的话)。例如,目前运行的作业可生成一个警告,指示由于目前被打开了而不能恢复一个文件。
如果在判定块5903确定没有恢复作业目前正在运行,则在判定块5911确定最近的恢复作业(例如,在最近的七十二个小时内执行的恢复作业)未能完成。如果在判定块5911确定没有最近的恢复作业未能完成,即全部成功完成或者没有执行恢复作业,则在块5913生成一个报告,通知用户没有与数据保护系统的恢复部分相关联的问题。
如果在判定块5911确定最近运行的恢复作业失败,则在块5915从与该作业相关联的任务踪迹获得该作业失败的原因。如上所述,用于与一个特定作业相关联的任务的任务踪迹包含关于任务本身的信息,如果任务失败则包括任务为什么失败。
在判定块5917,使用在块5915获得的失败原因,确定恢复作业的失败是否是数据保护系统不能联系要恢复数据的产生位置的结果。如果在判定块5917确定恢复作业失败的原因是数据保护系统不能联系产生位置,则在块5919生成错误报告,通知用户最后的恢复作业失败的原因,并且建议用户检查在产生位置的网络连接和检查在产生位置上的代理,以保证代理正确地操作。如上面参考副本诊断例程(图54-56)所述,不能联系如产生位置等位置,可以是如网络中断、电源问题等若干外部事件,或产生位置因维护或其它操作而离线的结果。
如果在判定块5917确定恢复作业失败的原因不是数据保护系统不能联系产生位置的结果,则在判定块5921判定恢复作业失败的原因是否是在产生位置上的目标不可用。在产生位置上的目标可以是要记录被恢复数据的产生位置的物理位置。如果在判定块5921确定目标不可用,则生成错误报告,如在块5923所示,通知用户恢复作业失败的原因,并且建议用户对产生服务器上的物理位置检查可能的问题。
如果在判定块5921确定恢复作业失败不是在产生位置上的目标不可用的结果,则在判定块5925判定恢复作业失败的原因是否是恢复作业的任务不能从存储位置读。如果确定恢复作业的任务不能从存储位置读,则在块5927生成错误报告,通知用户恢复作业失败的原因,并且提供一个建议,让用户检查在存储位置处的盘和/或介质。
如果在判定块5925确定恢复作业失败的原因不是任务不能从存储位置读的结果,则在判定块5929确定在要恢复被恢复数据的产生位置目前是否满。如果在判定块5929确定磁盘满,则在块5931生成错误报告,通知用户在恢复位置的磁盘没有足够的空间用于恢复所请求的数据,并且建议用户将数据恢复到另一个位置或者增加产生位置处的磁盘空间。
最后,如果在判定块5929确定恢复作业失败不是在产生位置处的磁盘满的结果,则生成一个报告通知用户,在先前的恢复作业中已经发生了一个未知的错误,并且建议用户重新运行恢复作业。
尽管已经例示和描述了本发明的较佳实施例,但应意识到,可以在不脱离本发明的精神和范围的情况下在这些实施例中作出各种改变。
权利要求
1.一种用于向用户通知数据保护系统的状态的方法,包括监视所述数据保护系统的活动;确定是否存在与所述数据保护系统有关的任何潜在问题;如果确定不存在与所述数据保护系统有关的任何潜在问题,则向用户提供关于所述数据保护系统的状态的信息报告;如果确定存在与所述数据保护系统有关的潜在问题,则确定所述潜在问题的严重性;基于所述问题的严重性对所述潜在问题分类;以及向用户提供对应于所述潜在问题的分类的报告。
2.如权利要求1所述的方法,其特征在于,如果所述问题的严重性要求进行用户交互,则所述潜在问题被分类为错误。
3.如权利要求2所述的方法,其特征在于,所述报告向用户通知所述潜在问题,并向用户提供对所述潜在问题的建议的解决方案。
4.如权利要求1所述的方法,其特征在于,如果所述问题的严重性不要求进行用户交互,则所述潜在问题被分类为警告。
5.如权利要求4所述的方法,其特征在于,所述报告向用户通知所述潜在问题,并向用户提供对所述潜在问题的建议的解决方案,或通知用户当前不需要任何动作。
6.如权利要求1所述的方法,其特征在于,所述信息报告通知用户所述数据保护系统正如预期的那样运作。
7.如权利要求1所述的方法,其特征在于,还包括监视所述潜在问题以发现变化;以及响应于变化,基于所述变化改变所述问题的严重性。
8.如权利要求1所述的方法,其特征在于,所述报告是基于一段时间内对失败的数目的计算而生成的。
9.如权利要求1所述的方法,其特征在于,所述报告是基于跨所述数据保护系统的多个位置对失败的数目的计算而生成的。
10.一种用于诊断存储位置的数据的方法,包括诊断位于所述存储位置的数据的副本;诊断所述数据副本的时间版本;确定是否检测到错误;如果响应于检测到错误,报告所述错误并提供建议的解决方案;确定是否检测到警告;以及如果响应于检测到警告,报告所述警告并提供建议的解决方案。
11.如权利要求10所述的方法,其特征在于,诊断副本包括确定所述副本是否有效。
12.如权利要求10所述的方法,其特征在于,诊断副本包括确定复制作业当前是否正在运行。
13.如权利要求10所述的方法,其特征在于,诊断副本包括确定最后一个复制作业是否成功地完成。
14.如权利要求10所述的方法,其特征在于,诊断数据的副本包括诊断所述数据副本的复制失败。
15.如权利要求10所述的方法,其特征在于,诊断副本包括计算失败的复制作业的数目。
16.如权利要求10所述的方法,其特征在于,诊断副本包括确定是否达到阈值。
17.如权利要求10所述的方法,其特征在于,诊断时间版本包括确定所述副本是否有效。
18.如权利要求10所述的方法,其特征在于,诊断时间版本包括确定最后一个时间版本是否成功地完成。
19.如权利要求10所述的方法,其特征在于,诊断时间版本包括确定是否采取了时间版本。
20.如权利要求10所述的方法,其特征杂鱼,诊断时间版本包括确定最旧的预期时间版本是否可用。
21.如权利要求10所述的方法,其特征在于,诊断时间版本包括确定预定时间段内丢失的时间版本的百分比。
22.如权利要求10所述的方法,其特征在于,诊断时间版本包括确定总时间段内丢失的时间版本的百分比。
23.一种用于诊断数据副本的方法,包括确定所述副本是否无效;响应于确定所述副本无效,确定确认作业当前是否正在运行;确定确认作业是否失败;以及报告适当的响应。
24.如权利要求23所述的方法,其特征在于,如果确定确认作业正在运行,则所述适当的响应是警告。
25.如权利要求23所述的方法,其特征在于,如果确定确认作业失败,则所述适当的响应是错误。
26.如权利要求23所述的方法,其特征在于,还包括确定对所述副本是否有足够的空间;以及响应于确定对所述副本没有足够的空间,提供错误报告以及建议的解决方案。
27.如权利要求23所述的方法,其特征在于,还包括确定所述目标是否不可达到;以及响应于确定所述目标不可达到,报告错误并提供建议的解决方案。
28.如权利要求23所述的方法,其特征在于,还包括确定所述副本是否依赖于监视;响应于确定所述副本依赖于监视,确定所述监视中是否有中断;以及响应于确定所述监视中有中断,报告错误并提供建议的解决方案。
29.如权利要求23所述的方法,其特征在于,还包括确定复制作业是否正在运行;以及响应于确定复制作业正在运行,提供数据源的最后状态并指示作业正在运行。
30.如权利要求23所述的方法,其特征在于,还包括确定最后一次复制是否成功;以及响应于确定最后一次复制成功,确定是否达到阈值。
31.在具有产生位置、存储位置和用于在所述产生位置和存储位置之间传输数据的通信路径的数据保护系统中,一种用于诊断时间版本的方法,所述方法包括确定最旧的预期时间版本是否可用;响应于确定最旧的预期时间版本可用,计算预定时间段内丢失的时间版本的数目;以及根据所述预定时间段内丢失的时间版本的百分比报告响应。
32.如权利要求31所述的方法,其特征在于,还包括计算总时间段内丢失的时间版本的数目;以及根据所述总时间段内丢失的时间版本的数目报告响应。
33.如权利要求31所述的方法,其特征在于,所述响应是警告。
34.如权利要求31所述的方法,其特征在于,所述响应是错误。
35.如权利要求31所述的方法,其特征在于,还包括确定前一时间版本是否成功。
36.如权利要求31所述的方法,其特征在于,还包括确定是否采取了时间版本。
37.在具有产生位置、存储位置以及用于在所述产生位置和所述存储位置之间传输数据的通信路径的数据保护系统中,一种用于诊断从所述存储位置到所述产生位置的数据恢复的方法,所述方法包括确定一恢复作业是否失败;响应于确定所述恢复作业失败,获取失败的原因;报告标识所述失败的错误;以及提供建议以解决所述失败。
38.如权利要求37所述的方法,其特征在于,所述失败是产生位置不可访问。
39.如权利要求37所述的方法,其特征在于,所述失败是目标位置不可访问。
40.如权利要求37所述的方法,其特征在于,所述失败是磁盘满。
41.如权利要求37所述的方法,其特征在于,还包括确定恢复作业是否正在进行中。
42.如权利要求37所述的方法,其特征在于,还包括响应于确定恢复作业正在进行中,确定是否报告了警告;以及根据是否报告了警告提供响应。
全文摘要
一种用于诊断与数据源的保护及其恢复有关的问题的方法。该方法包括诊断位于存储位置处的数据的副本以及诊断该数据副本的时间版本。基于该诊断,确定是否检测到错误或警告。如果检测到任一个,则用建议的解决方案来提供响应。
文档编号G06F11/00GK1760790SQ200510103680
公开日2006年4月19日 申请日期2005年9月9日 优先权日2004年9月9日
发明者B·T·伯科威茨, C·V·英根, K·S·阿南德, M·唐加拉斯南, P·M·库卡尼, S·哈卡里思南, S·斯里尼瓦桑, W·T·谢尔顿, Y·Z·拉史卡里 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1