本申请交叉引用美国专利申请No.10/937,708[代理人记录号:MSFT-1-22430],题为METHOD,SYSTEM,AND APPARATUS FOR CONFIGURING A DATAPROTECTION SYSTEM(配置数据保护系统的方法、系统和装置),并在2004年9月9日提交,通过引用包括在此;
本申请交叉引用美国专利申请No.10/937,204[代理人记录号:MSFT-1-22560],题为METHOD,SYSTEM,AND APPARATUS FOR CREATING SAVEDSEARCHS AND AUTO DISCOVERY GROUPS FOR A DATA PROTECTION SYSTEM(用于为数据保护系统创建已保存搜索条件和自动发现组的方法、系统和装置),并在2004年9月9日提交,通过引用包括在此;
本申请交叉引用美国专利申请No.10/937,061[代理人记录号:MSFT-1-22799],题为METHOD,SYSTEM,AND APPARATUS FOR TRANSLATING LOGICALINFORMATION REPRESENTATIVE OF PHYSICAL DATA IN A DATA PROTECTIONSYSTEM(用于转换数据保护系统中物理数据的逻辑信息表示的方法、系统和装置),并在2004年9月9日提交,通过引用包括在此;
本申请交叉引用美国专利申请No.10/937,060[代理人记录号:MSFT-1-22904],题为METHOD,SYSTEM,AND APPARATUS FOR PROVIDING RESILIENTDATA TRANSFER IN A DATA PROTECTION SYSTEM(用于提供数据保护系统中的弹性数据传送的方法、系统和装置),并在2004年9月9日提交,通过引用包括在此;
本申请交叉引用美国专利申请No.10/937,218[代理人记录号:MSFT-1-22800],题为METHOD,SYSTEM,AND APPARATUS FOR CREATING ANARCHITECTURAL MODEL FOR GENERATING ROBUST AND EASY TO MANAGE DATAPROTECTION APPLICATIONS IN A DATA PROTECTION SYSTEM(用于为生成稳固且易于管理数据保护系统中数据保护应用而创建体系结构模型的方法、系统和装置),并在2004年9月9日提交,在此通过引用包括在此;以及
本申请交叉引用美国专利申请No.10/937,650[代理人记录号:MSFT-1-22795],题为METHOD,SYSTEM,AND APPARATUS FOR PROVIDING ALERTSYNTHESIS IN A DATA PROTECTION SYSTEM(用于提供数据保护系统中的告警综合的方法、系统和装置),并在2004年9月9日提交,通过引用包括在此。
详细说明
图1A是依照本发明实施例用于管理数据的保护和恢复的数据保护系统的方框图。在此描述的数据保护系统100的实施例为用户如系统管理员提供容易地管理数据的保护与恢复的能力。一般地,数据管理和保护的目标是在产生位置103主动生成和修改的数据。保护该数据并将它作为数据的复制品或副本存储在存储位置105。存储位置可以在远离产生位置的位置和/或与产生位置同一个位置。此外,存储位置可包括不同存储形式的多个位置。例如,数据的复制品可以维护在一个位置而该数据的归档可维护在第二个位置上。因而,存储位置通常描述可存储和保护数据的位置的任何组合和/或类型。
如将在这里描述的,数据保护系统100包括数据保护器101,它与产生位置103和存储位置105通信以监控产生位置103和存储位置105之间数据的保护和流动。数据保护器101,如图1A所示,可存在于单个计算设备如服务器上,或者分布在多台计算设备上。数据保护器101部署并与位于数据保护系统100内不同计算设备上的代理通信,诸如产生位置103和/或存储位置105,以便能够进行多设备间数据保护的分布式控制与管理。由数据保护系统100提供的数据保护类型的例子包括,但不限于,带有时间版本的复制、在诸如磁带或盘之类的可移动介质上的传统归档以及复制和归档两者的组合。要理解,保护的任何其它形式和/或组合都可用于本发明实施例,并且复制、时间版本和归档都是简单的例子。
图1B示出数据保护系统100的可供选择的实施例。具体而言,数据保护器110可部分或全部驻留在产生位置111。在这样一个实施例中,数据保护器11O提供在它自己与产生位置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通信并为驻留在诸如存储位置A209、存储位置B211和存储位置X213等的相应存储位置的数据提供保护。这里所述的实施例可利用任意数量的数据产生位置和存储位置及其组件。
如将要理解的及示于图1A-2,任何类型的数据保护系统的配置都可按照本发明实施例用于保护和恢复数据。
总的来说,在此所述的数据保护系统实施例为数据保护系统的用户提供在高层指定在产生位置的什么数据是重要的以及用户想要如何保护该数据的能力。具体地说,在此所述的系统为用户提供逻辑地标识在特定的产生位置他们想要保护什么数据和他们想要如何保护它们的能力。数据保护系统将该逻辑标识转换成一系列调度和执行的“作业(job)”来保护数据。作业,如下所述,包括保护由用户标识的数据所需的详细信息。例如,一个作业可执行复制、确认、时间版本管理、归档和介质管理等等。
为了给用户提供在逻辑层选择数据的能力,数据保护系统给用户提供以“名字空间(Namespace)”和“名字空间元素(Namespace Element)”形式存储在产生位置的数据的的逻辑表示。如在此所述的名字空间,是应用的逻辑表示。例如,可在数据保护系统内表示为名字空间的应用包括但不限于,分布式文件系统(“DFS”),本地文件系统,网络应用名字空间,诸如共享点(Sharepoint)和交换名字空间(Exchange Namespace)。如将意识到的,示例性应用的列表仅为了说明而不是要以任何方式来限制本发明。数据保护系统可使用任何类型的应用并标识为名字空间。
如在此所述的名字空间元素,是物理对象如数据的逻辑表示,并且是组成名字空间的主要实体。例如,名字空间元素可以是但不限于,DFS链接,服务器,共享,卷,文件夹或交换存储组。一般而言,交换存储组是共享一个共同日志的数据库集合。如相关领域熟练技术人员将意识到的,可使用名字空间元素表示任何类型的物理对象或物理对象集合。
为保护数据,用户在逻辑名字空间中搜索或导航并且选择一或多个名字空间元素。所选择的名字空间元素与一个现有的“保护组(protected group)”相关联或者用于创建一个新的保护组。当名字空间元素与一个保护组相关联时,与该名字空间元素相关联的物理对象(数据)也变成该保护组的一部分。如在此所述的保护组是名字空间元素的逻辑组合并且与应用了相同保护规则的保护对象相关联。
每个名字空间元素用于定位一或多个物理对象(数据),在此称为“可保护对象(protectable object)”,可将它们添加到保护组。一旦定位,可选择可保护对象用于保护。当选择一个可保护对象用于保护时,所选择的可保护对象变成一个是可保护对象一部分的“可保护对象”。如在此所述的可保护对象,是可保护的物理信息/数据。例如,可保护对象可以是但不限于,文件夹,文件,电子邮箱,数据库,网站等等。如在此所述的保护对象(protected object)是已经被标识和选择用于保护的可保护对象。
除了创建保护组之外,用户可以在高层指定他们想要何时(多么频繁)和多长时间保护该保护组。另外,用户可指定它们想要保留该保护组的副本和归档多长时间。这类高层指定可跨越所有保护活动,如复制、归档、介质管理和它们的任何组合。基于用户提供的指定,为保护保护组的对象创建一个具体的计划。
为恢复数据,为用户提供在逻辑名字空间中搜索或导航以定位用户要想恢复的数据。随后可使用到要恢复数据的逻辑路径来定位一或多个可恢复对象,如下所述。每个可恢复对象表示保护对象的一个版本或其一部分。
图3是依照本发明实施例的数据保护系统300的一个流程图,描述位于一产生位置的可保护对象的初始选择和保护。如图3所示,数据保护系统300部署代理至产生位置305以允许发现位于产生位置305的可保护对象并且标识相应于那些可保护对象的名字空间和名字空间元素。为用户交互发布那些名字空间和名字空间元素并显示在用户界面303上。
例如,图4依照本发明实施例例示为用户交互和选择在用户界面303上发布和显示的多个名字空间和名字空间元素的方框图。如相关领域熟练技术人员将意识到的,图4的说明只是示例性的,并且本发明的实施例可显示任何其它配置。例如,显示可包括卷但没有共享。
显示400例示DFS ROOT(DFS根)名字空间401和SERVER(服务器)名字空间403。DFS ROOT(DFS根)名字空间401包括两个名字空间元素405,407,两者都是DFS根。在DFS ROOT(DFS根)名字空间401之下标识的名字空间元素是\\ABCD\PUBLIC 405和\\EFG\PRIVATE 407。另外,SERVER(服务器)名字空间403包括若干名字空间元素409,411,413,415,421,423,425。那些名字空间元素也可包括若干另外的名字空间元素。例如,SERVER(服务器)1 409包括若干名字空间元素类型,诸如SHARE(共享)名字空间元素类型411。同样,SHARE(共享)名字空间元素类型411包括SHARE(共享)1名字空间元素413和SHARE(共享)2名字空间元素415。另外,SHARE(共享)名字空间元素411,SHARE(共享)1名字空间元素413和SHARE(共享)2名字空间元素415都是可保护对象的逻辑表示。
用户可通过选择展开或折叠方框诸如展开方框417来与名字空间和名字空间元素的显示交互。另外,用户可通过选择选择方框如选择方框419来选择一或多个名字空间元素用于保护。在一个替换的实施例中,除了能够选择名字空间元素用于保护之外,用户还能选择名字空间用于保护。
回来参考图3,在用户界面303上表示名字空间和名字空间元素的显示400时,用户选择用户想要数据保护系统300保护哪个名字空间元素。另外,用户可提供“保护意图(protection intent)”用于所选择的名字空间元素。如在此所述的保护意图,是如何保护所选择的数据的高层描述。例如,用户可指示通过每晚备份对象一次并且在一年内维护每周的副本来保护所选择的名字空间元素。所选择的名字空间元素和相关联的保护意图从用户界面303传送到数据保护器301。
数据保护器301使用所选择的名字空间元素和保护意图,创建由所选择的名字空间元素标识的可保护对象的保护组。在选择时,可保护对象变成保护对象。保护组包括所选择的名字空间元素,相关联的保护对象的标识,以及有关如何保护保护对象的具体计划。另外,数据保护器301创建至少一个自动发现组,如下所述。在一个实施例中,数据保护器301也可创建已保存搜索例程,如下所述。
保护组的创建是通过将所选择的逻辑对象(名字空间元素)映射到位于产生位置的合适可保护对象来完成的。随后添加所标识的可保护对象作为保护组的成员并且变成保护对象。可将可保护对象添加到现有的保护组或者可形成一个新的保护组。另外,保护意图用于创建保护保护组的组计划。组计划包括但不限于,资源计划,准备计划,和保护计划,下面详细地描述每个计划。组计划和组内的计划是由一或多个作业和调度参数组成的。在资源计划的情况下,标识要分配资源的数量。分配的资源可包括但不限于,复制品的盘空间,归档的可移动介质,诸如盘或带,复制品和可移动介质两者的组合,等等。调度参数标识何时要执行作业。
在生成保护组、保护数据的计划、自动发现组和已保存搜索条件之后,数据保护器301准备产生位置305和存储位置307用于保护。具体地说,数据保护器部署代理,它们能够将数据从产生位置305通信和传送到存储位置307。一旦已经为保护准备了产生位置和存储位置,保护就开始,并且将用于保护对象的数据副本从产生位置305传送到存储位置307。所传送的数据副本,如下所述,可维护为复制品,归档副本,或者任何其它类型的数据保护。
在为保护准备存储位置307时,如下面更详细地讨论的,数据保护器301分配必需的资源(通过资源计划)用于按用户要求存储物理对象的副本。为开始保护,启动一个作业以创建所选择的存储在产生位置305的可保护对象的初始副本,发送副本,并且在存储位置307存储副本。如果副本是复制品,则通过执行确认作业来确认它来保证它的准确性。如果副本被归档到可移动介质,则初始副本是所选择可保护对象的完整备份。在生成初始副本之后,数据保护器301创建作业以周期性地更新副本,或者创建附加的副本(归档也是如此),它具有已经对位于产生位置305的信息作出的改变。
为标识存储在产生位置305与所选择的名字空间元素相关联的可保护对象,数据保护器301将逻辑对象(名字空间元素)映射到物理对象(可保护对象)。再次参考图4,显示了两个名字空间,DFS ROOT(DFS根)401和SERVER(服务器)名字空间403,各自具有多个名字空间元素。用户可选择一或多个名字空间元素。在一个实施例中,当选择一个名字空间元素时,也默认地选择了所有被包含的名字空间元素。使用图4作为一个例子,如果用户选择SERVER(服务器)1409上的Storage Group(存储组)1421,则DATABASE(数据库)A和DATABASE(数据库)B也被自动地选择。用户可取消选择一或多个名字空间元素。
每个名字空间元素映射到一或多个位于产生位置305的可保护对象。例如,名字空间元素\\ABCD\PUBLIC 405映射到多个可保护对象。参考图5,名字空间元素\\ABCD\PUBLIC 505映射到位于产生位置305的三个可保护对象。具体地说,名字空间元素\\ABCD\PUBLIC 505映射到在server(服务器)1上的D:\folder 507,server(服务器)2上的D:\folder 509,和server(服务器)3上的F:\511。每个可保护对象507、509、511位于产生位置305。
为了使数据保护器搜索和导航名字空间,以及从逻辑对象诸如名字空间元素505映射到物理对象,创建关联名字空间和名字空间元素的方案。方案是应用名字空间组成的抽象表示,其中可能的名字空间包括但不限于分布式文件系统和交换。
图6依照本发明实施例例示一个这样的方案的方框图,它关联名字空间的类型和名字空间元素的类型,表示卷方案。该方案表示为一个有向图,其中在图中的节点表示应用名字空间内的名字空间元素的类型,而链接表示名字空间元素之间的包含和连接关系。名字空间元素类型之间的包含关系和连接关系表示可以关联那些类型的实例的所有可能方式。参考图6,包含关系示为单箭头线而连接关系示为双箭头线。例如,“DFS root(DFS根)”类型的名字空间元素603可表示到“share(共享)”类型的名字空间元素609的连接617,而share(共享)609可表示到volume(卷)611的连接619,或者到folder(文件夹)615的连接。
一种包含关系是名字空间元素之间简单的父/子关系,其中父节点在逻辑上包括子节点。例如,domain(域)601包含623 server(服务器)607,并包含625 DFS ROOT(DFS根)603。server(服务器)607包含627share(共享)609并包含629volume(卷)611。volume(卷)611包含631folder(文件夹)615并包含633mount point(固定点)613。folder(文件夹)615可包含其它文件夹并包含文件(未示出)。
一种连接关系是源/目标关系,其中源名字空间元素是目标名字空间元素的逻辑同义词。连接关系可以是一对多关系。即,单个源名字空间元素可具有多个目标名字空间元素,在这种情况下,目标表示可替换的位置,从这些位置检索由源表示的基础数据。例如,DFS root(DFS根)603可映射617到多个作为目标的share(共享)609。连接关系也可以是多对一--连接的目标可具有其它名字空间元素中的多个逻辑名字。例如,folder(文件夹)615可以具有许多映射621到该folder(文件夹)615的share(共享)609。
另外,多个逻辑名字空间元素可映射到同一可保护对象。例如,SHARE(共享)1名字空间元素513映射到server(服务器)1上的E:\PRIVATE 515。同样,SHARE(共享)2名字空间元素517也可映射到server(服务器)1上的E:\PRIVATE515。
图7依照本发明实施例例示一个方案的方框图,它将逻辑名字空间元素映射到物理可保护对象。具体地说,方案700例示域ABCD701具有与DFS ROOT(DFS根)public(公共)703和三个server(服务器)705的包含关系。同样,DFSROOT(DFS根)public(公共)703具有与三个DFS link(DFS链接)707(包括link(链接)link(链接)l 707A、link(链接)2 707B和link(链接)3 707C)的包含关系。link(链接)l 707A、link(链接)2 707B和l ink(链接)3 707C各自包括一个到share(共享)711的连接关系。具体地说,link(链接)1 707A包括到\\server1\share的连接,link(链接)2 707B包括到\\server2\share的连接,以及link(链接)3 707C包括到\\server3\share的连接。\\server1\share、\\server2\share、\\server3\share各自是不同于DFS名字空间的名字空间中的逻辑对象。这是通过遍历DFS link(DFS链接)707和share(共享)711之间的连接719来示出。具体地说,\\server1\share、\\server2\share和\\server3\share在UNC服务器名字空间中。参考share(共享)711,为完成\\ABCD\PUBLIC的映射,作出关于每个共享要映射到什么内容的决定。如上所述,共享可以映射到volume(卷)713和/或folder(文件夹)717。因而,继续该例,确定逻辑对象\\serverl\share映射到server(服务器)1上的物理对象D:\folder;\\server2\share映射到server(服务器)2上的D:\folder;以及\\server3\share映射到server(服务器)3上的F:\。server(服务器)1上的D:\folder、server(服务器)2上的D:\folder和server(服务器)3上的F:\是由\\ABCD\PUBLIC 505的逻辑对象表示的三个物理可保护对象。
如图7的例子所示,利用方案600(图6),可以确定,从逻辑名字空间元素到存储在由该名字空间元素表示的产生位置上的物理对象的映射关系。从方案600中已知的每个点,可搜索从该点链接到映射的下一部分是什么关系。
数据保护的名字空间遍历能力可应用于任何类型的应用,用于浏览、搜索和从逻辑名字空间和名字空间元素映射到存储在产生位置的物理对象。例如,通过用户界面,用户可指定搜索参数,包括通配符,而且数据保护系统可以查询现有的名字空间和名字空间元素列表并提供适当的结果。用户界面将传递搜索结果到数据保护器,并且数据保护器将发送结果回用户界面。数据保护器支持一般操作以在名字空间之间“搜索”、“导航”和“映射”,其中可以在一个方案中捕捉每个应用名字空间的特定结构。为扩展数据保护器以支持新的应用,随后,仅需要提供一个模块,在该名字空间上执行基本操作以遍历包含关系和连接,并提供方案,它描述如何将那些操作组成到较大的“搜索”、“导航”和“映射”操作中。
本发明的实施例同样也可用于没有数据保护的应用。例如,可生成存储报告,它说明如何跨一个产生位置或者跨一个产生位置内的一组服务器使用存储,在这样一个实施例中,用户可以配置一个报告来显示在一个DFS根之下所有大于100MB的文件。
产生位置包括若干可保护的不同类型对象。例如,图8依照本发明实施例例示包含可由数据保护系统保护的可保护对象的产生位置800的方框图。包括在产生位置800中的是三个服务器801、803和805。每个服务器可以是它自己的计算设备,或者表现为单个服务器的计算设备组。每个服务器可以在一个中心位置,或者在地理位置上是分散的。
包括在服务器诸如server(服务器)-1 801中是一或多个“数据源(datasource)”。如在此使用的数据源,是由数据保护器操作的应用数据的高层抽象。数据源将它的物理数据揭示为一或多个可保护对象并且数据源本身可以是一个可保护对象。数据源包含在单个服务器内,而服务器可包含一或多个数据源。例如,服务器-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)。每个可保护对象是一种可保护对象类型的,并且每个可保护对象在单个数据源内。另外,每个数据源在一个产生位置的单个服务器内。
再参考一次如参考图5-7所述的用户选择名字空间元素\\ABCD\PUBLIC405(图4)并且继续将名字空间元素映射到可保护对象的例子,将依照本发明实施例参考图9A-9B描述将那些可保护对象和关联映射到保护组中。
从用户的观点,保护组的成员是由用户已经选择的名字空间元素定义的并且添加到保护组,以及作为自动发现组(下面描述)的结果添加的可保护对象。另外,数据保护系统将允许用户查看在保护组中每个名字空间元素映射到哪个保护对象以及那些保护对象每一个的状态。
回来参考前面的例子,名字空间元素\\ABCD\PUBLIC 405映射到三个可保护对象:server(服务器)1上的D:\Folder 507,server(服务器)2上的D:\Folder 509,和server(服务器)3上的F:\511。接着通过参考图7描述的映射,并且参考图9A,在server(服务器)1上的D:\Folder 507指向包含在server(服务器)1 901上的数据源D:\907内的folder(文件夹)909。在server(服务器)2上的D:\folder 509指向包含在server(服务器)2 903上的数据源D:\935内的folder(文件夹)927。最后,在server(服务器)3上的F:\511指向server(服务器)3 905上的数据源F:\951。参考图9B,名字空间元素\\ABCD\PUBLIC 505的选择映射到参考图9A描述的保护对象,并且那些对象与保护组930相关联。如上所述,包含在所选择的保护对象中的可保护对象可自动地包括在保护组中。例如,部分地映射到server(服务器)3 905上的F:\951的\\ABCD\PUBLIC 505包括另外的可保护对象953和955,因为它们包含在server(服务器)3 905上的保护对象F:\951内。如在图9B中所示,保护组930可包含位于不同服务器诸如server(服务器)1 901、server(服务器)2 903和server(服务器)3 905上的保护对象。
图10依照本发明实施例例示包含所选择的名字空间元素的保护组、被映射的保护对象和保护组的属性的方框图。具体地说,保护组1030包含名字空间元素\\ABCD\PUBLIC 1005,每个相对于前面的例子描述的被映射的保护对象,和包含在所选择的保护对象内的保护对象。具体地说,保护组1030包括保护对象server(服务器)1上的D:\folder 1009、server(服务器)1上的D:\folder1027。另外,保护组1030包括server(服务器)3上的保护对象F:\1051,以及包含在保护对象server(服务器)3上的F:\1051内的两个保护对象1053、1055。
每个保护组,诸如保护组1030,包括一个组计划1040,它可包括时间表(schedule)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提供的保护意图生成用于保护的组计划。用于保护的组计划可包括保护的频率和所希望的保护类型。保护类型的例子包括,但不限于“后台保护(background protection)”、“备份保护(backupprotection)”和归档保护。后台保护指保护接近于连续的保护类型(例如,每小时、一天24小时、一周七天地更新副本)。备份保护指保护调度在特定时间发生的保护类型(例如,每晚一次)。组计划应用于保护组的所有保护对象。下面详细地描述组计划的生成并称之为“意图转换(intent translation)”(图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上的可恢复对象的更详细视图的方框图。通常,恢复将被损坏或丢失的保护对象(或其部分)带回到先前的时间版本。时间版本可以是离散的或接近连续的。离散的时间版本由保护对象的持续时间点完整副本生成。离散时间版本的恢复可只要求保护对象的恢复或者可在恢复之后要求附加的恢复处理。接近连续的时间版本是由与保护对象相关联的日志的持续时间点副本生成的。恢复通过日志的前卷(rollforward)应用进行。在本发明的一个实施例中,前滚可包含在日志内的任何时间点停止。
如在此所述的可恢复对象,表示恢复保护对象的可能性。每个可恢复对象可以从一或多个恢复资源生成。恢复资源可定位在归档带上或者在盘上的归档副本的复制品内与复制品相关联的时间版本上。
现在参考图15,保护对象1509可包含一或多个可恢复对象1511、1513、1515、1517、1519、1521。通常,可恢复对象可比保护对象更精细。例如,保护对象可以是文件夹,诸如在server(服务器)1上的D:\folder 1509。该保护对象1509可包含多个可恢复对象。例如,保护对象server(服务器)1上的D:\folder 1509可包含六个可恢复对象,包括file(文件)1 1511、file(文件)21513、file(文件)3 1515、file(文件)4 1517、file(文件)5 1519和file(文件)6 1521。另外,保护对象1509也是可恢复对象。
保护对象和保护方法的最初选择常常决定可用的可恢复对象和/或恢复要求的工作。例如,如果保护对象是包含邮箱的数据库的交换存储组,则在该存储组内的所有数据库可隐含地被保护。完整的存储组或者一或多个数据库可被恢复并且因而是可恢复对象。如果保护仅由归档执行(下面描述)并且没有复制,则邮箱恢复可能是非常耗时的(代价大的)。如果保护是由复制以及归档执行的,则从复制品恢复邮箱可以是非常快的(便宜的)。
如果保护对象是存储组的数据库,则可不要整个地保护存储组而只保护包含在所选择的数据库内的邮箱。然而,如果保护对象是邮箱,则没有相关联的数据库或存储组的隐含保护。如果仅通过归档而不通过复制执行保护,则归档不可能有能力恢复除所选择的邮箱之外的任何内容。可供替换地,如果已知邮箱是作为不同的保护组的一部分复制的数据库的一部分,则邮箱恢复可从其它保护组的复制品而不是从归档介质进行。
图16是依照本发明一实施例例示从存储位置恢复保护对象的恢复例程。恢复例程1600在块1601开始,并且在块1603从与显示在用户界面上的名字空间元素接口的用户接收名字空间元素的选择。用户也可提供恢复意图用于要恢复的数据。在块1605,接收要恢复数据的特定时间点的选择。在本发明的一个实施例中,用户提供要进行恢复的时间点。在另一个实施例中,可标识所选择的名字空间元素的时间版本并提供给用户用于选择。
在块1607,判定是否已经选择另外的元素用于恢复。如果判定已经选择了另外的元素用于恢复,则例程返回至块1603并且接收那些另外的要恢复的名字空间元素的选择。然而,如果判定没有另外的元素要恢复,则在块1609使用上述映射方案和接收的恢复意图将可恢复对象映射到位于存储位置的适当的恢复资源。
在标识必要的恢复资源后,在块1611创建恢复计划。恢复计划包括从适当的恢复资源综合可恢复对象版本中要求的时间点的过程。在块1613,执行计划并且恢复所标识的可恢复对象。在块1615,恢复例程结束。
如上面提到的,除了创建保护组之外,数据保护系统还生成自动发现组和已保存搜索条件。自动发现组和已保存搜索条件提供一种自动化方法来通知用户对产生位置的改变。例如,改变可包括计算设备,如服务器、交换存储组、数据库、卷和共享的添加或删除,以及在名字空间元素和可保护对象之间映射方面的改变。为用户提供产生位置改变的通知使用户能够采取适当的动作来保护需要保护的新数据并且在已经重新定位或移除数据时调整它们的保护策略。
自动发现组是一种机制,用于描述什么内容应该作为查询而不是作为物理资源的离散集合来保护。例如,假定组织将所有文件服务器命名为\\FILESRV*,诸如\\FILESRV1、\\FILESRV2等等。该组织的用户可以创建一个自动发现组,周期性地搜索在任何名为\\FILESRV*的服务器上的所有共享。自动发现组将找到所有这样的共享并允许用户或者选择或者拒绝任何位于这些共享或者与这些共享相关联的可保护对象的保护。另外,在本发明的一个实施例中,自动发现组可周期性地重新评估并且通知用户任何新的共享并且给用户机会或者批准或者拒绝那些新共享的保护。而且,重新评估标识任何已经被移除的现有共享并且给用户提供移除的通知。
自动发现组还可由数据保护器用于跟踪名字空间元素与可保护对象之间的映射。再次参考上面的例子,假定用户保护路径\\ABCD\PUBLIC。数据保护系统自动地生成包含名字\\ABCD\PUBLIC和到它的保护对象如server(服务器)1上的D:\folder、server(服务器)2上的D:\folder和server(服务器)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映射到server(服务器)1上的可保护对象D:\folder 1709和在server(服务器)2上的可保护对象D:\folder 1711。在一个替换的实施例中,在初始发现名字空间元素期间,元素可在那时被映射到相应的可保护对象。
数据保护器1701创建包含所选择的名字空间元素的保护组、要变成保护对象的可保护对象的标识、自动发现组1713和自动发现组表1715。如讨论的,基于用户提供的意图,保护组还包括组计划,它描述要如何实际地保护保护组。自动发现组1713包括名字空间搜索参数,诸如\\ABCD\PUBLIC\*,以及该名字空间元素到保护对象server(服务器)1上的D:\folder和server(服务器)2上的D:\folder的当前映射。创建包含用于所选择的名字空间元素的名字空间搜索参数的自动发现组1713为数据保护器提供随后搜索对匹配名字空间搜索参数的产生位置的添加、删除和重新映射的能力。将任何这样的改变通过警报向用户报告,因为它们可能与保护有关系。可用各种形式向用户提供警报。例如,可通过用户界面、电子邮件、页面、声音消息等提供警报。
除了创建自动发现组1713之外,数据保护器1701创建自动发现组表1715,它包括当前映射到保护对象的标识和有关那些保护对象的信息。具体地说,信息包括映射到保护对象是否匹配包含在自动发现组1713中的自动发现组参数,如在匹配列1717指示的,保护对象目前是否为待决的用户动作,如由待决列1719指示的,被映射的保护对象目前是否在组计划的保护之下,如由计划(“PP”)列1721中的受保护来指示,以及被映射的对象目前是否由用户保护,如由用户(“PU”)列1731的受保护来指示。如下所述,对象可受到用户保护但没有受到数据保护系统保护。例如,用户可指示它们想要保护一个特定的对象,从而使该对象受到用户保护,然而,该对象直到已经为该保护对象完成意图转换之后才会变成受计划保护。
依照本发明一实施例,在创建保护组、自动发现组、组计划和自动发现组表、数据保护系统之后,数据保护系统为保护准备产生位置和存储位置。在已经为保护准备了这些位置(例如资源计划)之后,为创建所选择的可保护对象的初始副本执行初始步骤(准备计划),并且随后保护开始(保护计划)。
在保护了所选择保护对象之后的某个预定的时间,数据保护系统运行自动发现组并且重新映射产生位置1703。例如,自动发现组可调度为每晚运行一次。在晚上或者在产生位置的活动少的某个时间运行自动发现组,减少了放置在产生位置上的负载总量。
返回到参考图17-24描述的例子,为了说明的目的,运行自动发现组并且自动发现组结果1723(图19)标识只有匹配自动发现组搜索参数\\ABCD\PUBLIC\*的可保护对象是保护对象server(服务器)2上的D:\folder。数据保护器1701将自动发现组结果1723与自动发现组表1715比较。在本例中,它标识保护对象server(服务器)1上的D:\folder不再匹配自动发现组搜索参数。在server(服务器)1上的D:\folder可因各种原因不再匹配搜索参数。例如,server(服务器)1上的D:\folder可不再存在,或者server(服务器)1上的D:\folder不再在\\ABCD\PUBLIC之下被映射。
在比较之后,更新表1715以指示保护对象server(服务器)1上的D:\folder没有在结果中返回并且因此不再匹配自动发现组搜索参数,如在匹配列1717中由“N”例示的。另外,为保护对象server(服务器)1上的D:\folder更新自动发现组表1715以指示用户交互目前对于该保护对象是待决的,在列1719中由“Y”例示。用户交互目前是待决的,因为该保护对象不再匹配自动发现组参数。server(服务器)1上的D:\folder保持标记为在计划之下保护和受到用户保护,如在PP列1721和PU列1731中由Y例示。
还更新自动发现组表1715以指示server(服务器)2上的D:\folder匹配于自动发现组搜索参数并且保持在计划中和受用户保护,如分别在列1721和1731中由“Y”例示。最后,存在对于保护对象server(服务器)2上的D:\folder没有用户动作是待决的指示,因为它确实匹配并且受到保护,如在待决列1719中由“N”例示。
现在参考图20,在自动发现组已经运行之后第二天上午,自动发现组表已经被更新并且生成了警报,用户访问数据保护系统并且从数据保护系统给用户提供了一个通知,保护对象server(服务器)1上的D:\folder不再匹配自动发现组搜索参数。
在响应时,数据保护系统从用户接收从保护组移除该保护对象的指示。数据保护器1701更新自动发现组,从而从保护组移除server(服务器)1上的D:\folder的映射并更新自动发现组表1715。具体地说,将在server(服务器)1上的D:\folder标记为不再受用户保护,如由PU列1731中的“N”例示,并且标记为不再待决,如由列1719中的“N”例示。在这点上,server(服务器)1上的D:\folder保持由计划保护,因为还没有重新运行意图转换以从保护组移除server(服务器)1上的D:\folder。
对象维护在自动发现表1715并且标记为不受用户保护,因此通过自动发现例程的后续执行来标识,它将不向用户呈现为待决的批准,因为已经将它从保护中排除了。既然对象不再受用户保护,因此它变成可保护对象。
图21继续先前的例子,并且在用户已经指示它们不再想要保护在server(服务器)1上的D:\folder之后的某个时间点执行意图转换。在意图转换执行之后,更新组计划并且从保护组移除server(服务器)1上的D:\folder。即使server(服务器)1上的D:\folder不再受保护组保护,保护组的现有时间版本保持存储在存储位置并且可用于将server(服务器)1上的D:\folder恢复至不再由计划保护的点。在意图转换完成后,更新自动发现组表1715。具体地说,server(服务器)1上的D:\folder标记为不受计划保护,如在PP列1721中由“N”例示。
在意图转换已经完成之后的某个时间点,自动发现组再次执行,查询产生位置1703并且将自动发现组搜索参数重新映射到位于产生位置1703的对象。在完成自动发现组搜索参数的映射之后,提供自动发现组结果1725并且包括一个指示,即搜索参数映射到可保护对象server(服务器)2上的D:\folder和新的可保护对象server(服务器)2上的E:\folder。再次,数据保护器1701将结果与自动发现组表1715比较。该比较指示,保护对象server(服务器)2上的D:\folder再次匹配自动发现组搜索参数,不是待决的用户动作,并且保持受用户和组计划两者的保护。另外,新可保护对象server(服务器)2上的E:\folder目前未受组计划保护,如由PP列1721中“N”例示,目前未受用户保护,如由PU列1731中“N”例示,并且是目前待决的用户动作,如由待决列1719中“Y”例示。在完成比较后,更新自动发现组表1715以标识新的映射和所有对象的状态。
可保护对象server(服务器)2上的E:\folder目前未受计划和受用户保护,因为它是由自动发现组新标识的。数据保护系统1701生成提供给用户的警报,指示新的可保护对象已经添加到与保护组中的保护对象相似的产生位置。生成警报,因为用户可能对作为保护组的一部分补充保护新标识的可保护对象感兴趣。
在图22中,用户已经收到警报并且提供应答以开始对由自动发现组自动标识的新标识的可保护对象的保护。可保护对象server(服务器)2上的E:\folder也被添加到保护组并且因而变成可保护对象。同样,数据保护器1701将一个指示添加到自动发现组表1715,即对象server(服务器)2上的E:\folder不再是待决的用户动作,受用户保护,但在这点上还没有受计划保护。
图23A继续上面的例子,在由用户指示将新标识的可保护对象添加到保护组之后的某个时间,意图转换执行并且server(服务器)2上的E:\folder变成受计划保护。在完成意图转换之后,更新自动发现组日志1715以指示server(服务器)2上的E:\folder现在受计划保护,如由PP列1721中“Y”例示。
在意图转换已经完成之后的某个时间,数据保护器1701再次运行自动发现组例程并且将自动发现组搜索参数\\ABCD\PUBLIC\*重新映射到位于产生位置1703的对象。在完成自动发现组例程后,数据保护器已经标识了server(服务器)2上的D:\folder和server(服务器)3上的E:\folder的映射1729。那些结果用于比较和更新自动发现组表1715以指示保护对象server(服务器)2上的D:\folder再次匹配自动发现组搜索参数,不是待决的用户动作,保持受数据保护系统保护,并且保持受用户保护。另外,指示先前的保护对象server(服务器)2上的E:\folder没有被自动发现例程标识,但保持受用户和保护计划保护,并且因此是待决的用户动作。最后,新的可保护对象server(服务器)3上的E:\folder的添加被标识为匹配自动发现组搜索参数,然而,目前不受用户或保护计划保护,因为它是被新标识的,并且因此是待决的用户动作。在自动发现表更新后,数据保护器1701生成一个警报,它包括先前的保护对象server(服务器)2上的E:\folder不再匹配自动发现组搜索参数的标识,以及server(服务器)3上的E:\folder已经被添加到产生位置并且匹配自动发现组搜索参数。这个警报可向用户指示,保护对象server(服务器)2上的E:\folder已经移动到server(服务器)3上的E:\folder。在没有自动发现这样一个改变的情况下,用户可能一直在继续保护旧对象并且没有为新对象提供保护。
图23B依照本发明一实施例例示用于解决保护名字空间元素如在图23A中检测到的名字空间元素的重新映射的重映射解决例程。当判定已经移动了一个名字空间元素时重映射解决例程2300运行。例如,先前被映射到server(服务器)2上的E:\folder的\\ABCD\PUBLIC\LINK3可能已经被重映射到server(服务器)3上的E:\folder。
重映射解决例程2300在块2301开始。在块2303,评估自动发现组,并且决定保护名字空间元素已经从一个可保护对象重映射到另一个可保护对象。在判定块2305-2309,作出关于如何解决重映射的决定。
具体地说,在判定块2305作出是否应当排他地保护新映射。如果决定新映射应当排他地保护,则在块2311将旧映射标记为不受用户保护,并且将新映射标记为受用户保护。然而,如果决定新映射不应该排他地保护,则在判定块2307作出关于旧映射是否应该排他地保护的决定。如果旧映射要排他地保护,则在块2311将旧映射标记为受用户保护,并且将新映射标记为不保护。然而,如果在判定块2307决定旧映射不应该排他地保护,则在判定块2309决定两个映射是否都应该保护。
如果在判定块2309决定两个映射都应该保护,则在块2311两个映射都标记为受用户保护。然而,如果决定两个映射都不要保护,则在块2311两个映射都标记为不受用户保护。
在块2313,执行意图转换例程,如在此所述。在完成意图转换后,更新保护对象,使得对于旧保护对象和新保护对象两者,在计划中受保护的标志包含与受用户保护标志相同的值。在块2315,例程结束。
图24例示,如本例的先前部分一样,给用户提供警报,标识通过先前运行自动发现组例程检测到的改变。用户选择更新自动发现组搜索参数的映射以包括新标识的可保护对象server(服务器)3上的E:\folder并且移除旧保护对象server(服务器)2上的E:\folder的映射(块2305,图23B)。数据保护系统1701,响应于从用户接收更新映射的指示,更新保护组以包括新保护对象。另外,数据保护器1701更新自动发现组表1715以标识server(服务器)2上的E:\folder不再受用户保护,但在这点上保持受计划保护并且指示保护对象server(服务器)3上的E:\folder的新映射受用户保护但还没有受计划保护。
在用户已经指示改变之后的某个时间,执行意图转换从而使server(服务器)2上的E:\folder从受组计划保护中移除并且添加server(服务器)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,创建标识所选择的名字空间元素的自动发现组列表。另外,生成查询参数并且将它包括在自动发现组中,用于标识与所选择的名字空间元素相似的其它名字空间元素。查询参数可按照物理资源(例如,在server(服务器)1上的所有卷),在名字空间上的某个查询(例如,在DFS ROOT\products之下的所有共享)来表示,或者某个组合(例如,在名为\\FILESRV*的服务器上的所有共享)。另外,查询参数可基于预先存在的名字空间元素的某个属性。
在每个情况下,数据保护系统保持跟踪自动发现组的成员资格并且通知用户对该组的改变。在块2709,自动发现组和所选择的名字空间元素列表被添加到保护组。如上所述,保护组可以是现有的保护组或者为所选择的名字空间元素新创建的保护组。在块2711,自动发现组创建例程结束。
如上所述参考图27创建的自动发现组,是描述潜在地应该作为查询而不是物理资源的离散集合保护的对象的一种方法。一旦检测到改变,用户可或者批准或者拒绝对保护与该自动发现组相关联的和/或是保护组一部分的对象的计划的改变。例如,如果自动发现组包括搜索参数服务器\\FILESRV*上的所有共享并且得到一个带有十个新共享的新服务器\\FILESRV10,则用户具有批准或者拒绝保护每个新共享的选项。
如上所述,数据保护系统跟踪对报告给用户的自动发现组改变的应答。例如,如果用户拒绝对新标识的可保护对象保护,则如果该可保护对象随后从产生位置移除那么随后不会有通知发给用户。具体地说,一旦用户已经指示它们不想保护一个可保护对象并且想要自动地忽略所有未来的通知,就为该可保护对象设置一个被排除标志。在一个实施例中,一旦拒绝一个对象就不自动设置被排除标志。另外,可跟踪一个对象被拒绝的次数并且在预定的拒绝数(例如五)之后将该对象标记为被排除。随后对被排除对象的标识将不向用户警告。
数据保护系统自动地为每个用户想要保护的名字空间元素创建和配置自动发现组。例如,如果用户保护服务器\\FILESRV1上的share(共享)1,则数据保护系统配置一个自动发现组,它包括\\FILESRV1\share1到物理资源(例如,在\\FILESRV1上卷X:上的folder(文件夹)1)的映射。如果\\FILESRV1\share1消失或者从该共享到物理资源的映射被改变,则通知用户该改变并且给用户关于如何进行的若干选项(图23B)。例如,假定\\FILESRV1\share1现在映射到卷Y上的folder(文件夹)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服务器等的能力。与每个已保存搜索条件相关联的是在相同已保存搜索条件的先前评估期间已经定位的名字空间元素的列表。已保存搜索条件包括表示搜索起点的名字空间元素,以及一组描述要返回的所包含的名字空间元素的搜索准则。不像自动发现组,已保存搜索条件在名字空间元素而不是在可保护对象上操作。例如,可创建已保存搜索条件以标识属于一个公司的市场部的所有服务器。这通常不是在一个有效的自动发现组中。然而,像自动发现组一样,已保存搜索条件保持已保存搜索条件结果表来标识匹配搜索参数的名字空间元素。
对于匹配搜索的名字空间元素,维持其状态。例如,为每个名字空间元素维护第一次被标识和最后一次见到的时间信息。该信息也可用于检测改变。一个名字空间元素第一次被已保存搜索条件标识,标识该标识日期的时间标记被持久维护,并且在该名字空间元素从产生位置移除时,标识最后一次见到该名字空间元素的日期和时间的时间标记也被持久维护。在一个实际的实施例中,只要检测到产生位置中的改变就提供警报给用户。例如,对产生位置添加名字空间元素和/或移除名字空间元素将生成标识产生位置的这一改变的警报给用户。在一个实施例中,响应于用户标识要保护一服务器上的一个共享,创建—个用于该服务器上所有共享的已保存搜索条件。相似地,在保护一服务器上的一个卷时,创建一个用于该服务器上所有卷的已保存搜索条件。基于对该服务器的改变(例如,在适当时添加一个共享或卷),将通知用户这一改变。
自动发现组和已保存搜索条件的结果也用于提高数据保护器的导航和搜索功能的性能。自动发现组和已保存搜索条件可在周期性基础上将它们的结果高速缓存在持久存储中,因此在导航和搜索结果不频繁改变的情况下,或者在某种程度的过时是可接受的情况下,数据保护器可使用这些高速缓存的结果来给用户启动的导航和搜索提供较快速的响应性。
由用户提供保护意图以描述他们想要如何保护一个保护组(例如,复制品,归档,两者)和他们想要在时间上有多久能够恢复(持续时间)。例如,用户可能想要每晚为一个选择的组数据生成一个复制品,存储在可移动介质上存储位置处的副本,每周更新该副本一次,并且在可移动介质上最多保留四个副本。另外,用户可指定它们想要能够恢复至少一个月之久的信息。
在存储位置的保护数据,例如,复制品、归档或两者,要求为数据的副本分配资源,以及处理本身所需要的任何资源。另外,要求许多作业以使那些资源进入使用时所要求的状态,并且必需有正在进行的作业来维护保护的准确性。使用用于保护数据的作业将在下面更详细地描述。手工设置资源和作业会是单调乏味的并且是易出错的。另外,只要一组正被保护的对象改变,例如,响应于自动发现组检测到的改变,则资源和作业可能需要改变。不要求用户手工指定具体的资源和作业,而是用户可仅通过名字空间元素的选择来指定什么内容要保护以及提供保护意图。随后使用该信息来生成组计划,用于维护所选择数据的保护。在一个实施例中,组计划包括三个部分:资源计划,准备计划和保护计划。
资源计划包括获得允许保护所需要资源的所必需的作业的列表。准备计划包括设置所标识数据的保护所需要的一次性作业的列表。例如,一个一次性作业是将数据从产生位置初始副本和传送到存储位置。保护计划包括维护保护数据的准确性和完整性所要求的正在进行作业的列表。
从用户标识的保护意图转换到用于保护对象的具体计划在此称为和描述为“意图转换(intent translation)”。在本发明的一个实际的实施例中,意图转换在保护组和为该保护组提供的保护意图上操作。保护意图表示为逻辑表示并且可陈述为目标。目标可标识所希望的保护等级(粒度),如何保护数据,要保护数据多久,以什么频度保护数据等等。例如,用户可标识这样的保护意图:“不要失去超过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标记为具有资源分配错误的保护对象被返回到“待决状态(pending state)”。在块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维护一个非现场副本七年。
如一个按照公司日历(月的最后一个周六,年的最后一个周六,等)调度的替换计划,调度可按照物理日历完成。例如,可调度作业在月的最后一天、年的最后一天、月的第一天发生。那些天可能是或者不是周六。如相关领域熟练技术人员将意识到的,任何类型的调度和/或日程安排(calendaring)可由本发明实施例使用,并且使用公司日历或物理日历只是作为例子提供的。调度的另一方面是指定执行作业的时间段的能力。调度一个用于执行作业的时间段允许用户能够标识可执行作业的特定时间。另外,数据保护系统可在保护系统看到作业没有按照指定的时间完成时提供事前警告。可供替换地,当一个作业没有在调度的执行时间段内完成时,可自动终止它,并且有可能重新调度它。
如相关领域熟练技术人员将意识到的,可修改诸如子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的最后传输位置的位置和溢出日志43 13中该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类检查点。A类检查点如A1连同改变记录和元数据记录一起通过数据信道发送到存储位置4305。
在由位于存储位置4305的复制代理收到A类检查点后,复制代理转送A类检查点并且已经作为比较元数据的结果所生成的任何差异列表转送到数据保护器4301。如在图46中例示的,A类检查点可维护在溢出日志中,直到它被清除。可供替换地,在收到A类检查点后,可连同差异列表一起转送它并且不存储在溢出日志中。
数据保护器4301接收A类检查点和差异列表并且将A类检查点和差异列表记录在数据库中。差异列表被传送到产生位置,重新复制所标识的保护对象并且重新发送到存储位置。响应于接收差异列表,所标识的保护对象重新复制和重新传输可发生,或者可调度在某个以后的时间点(例如,在完成复制品的确认之后)发生。
A类检查点在其本身内包括一个特定保护对象的标识,一直到该对象都已经计算了元数据。例如,如果为位于server(服务器)1的C:\生成的元数据并且生成元数据的最后一个保护对象是server(服务器)1上的C:\file50,则A类检查点将包含到server(服务器)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。数据保护器4301,参考类A检查点的数据库,标识被发送的最后一个A类检查点,并且准备一个重新命令,它包括产生位置要重新开始数据确认的位置。数据保护器4301将重新确认命令和要恢复进行数据确认的点的标识发送到产生位置4303。
例如,参考图47,数据保护器4301从它的数据库标识在先前的确认例程期间计算元数据的最后一个保护对象是在server(服务器)1上的C:\file1003。因而,数据保护器4301知道已经为一直到server(服务器)1的卷C:上的file(文件)1003的所有文件生成和发送了元数据,因而生成一个重新起动确认命令以指示产生位置4303重新起动在server(服务器)1上C:\file 1003之后的元数据生成。
图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可串行或并行地执行命令。
作业属性应用于作业的所有任务。一个作业的特定任务也可具有特定属性。用于保护作业的作业和任务属性是由意图转换作为创建组计划的作业的一部分来确定的。在本发明的一个实际的实施例中,所有作业都有下列属性:在成功/失败时的动作,以及并行或者只是串行地执行。另外,任何涉及数据移动的作业可具有下列属性:加密,压缩,节流和配置意图。
作为由一个共同的引擎执行的有限状态机(FSM)生成每个任务执行器5005、5007,该引擎响应于输入使FSM在不同状态中转移,持久维护状态,并且执行重新起动逻辑。例如,任务执行器可基于来自先前发给一代理的命令的应答转移。使用共同引擎使所有FSM的设计能够遵循共同设计方法并且不同的FSM能够共享相同的共同块(诸如轮询以判定一个代理是否继续有效并且从一个代理获得状态)。
一般地,任务执行器发命令给代理并且转移到等待状态之内和之外,基于那些的成功或失败和从那些命令提供的应答。另外,任务执行器5005、5007可在执行一个任务期间特定的时间量已经过去之后,响应于取消请求(例如,来自用户的取消请求,因一个作业超过分配给该作业的最大时间引起的内部取消请求)或者响应于基于数据库状态生成的内部消息而转移。在每次转移,任务执行器通过任务持久维护其进程。持久维护的进程点可存储在数据保护器数据库中。通过任务持久维护的进程点为数据保护系统提供稳健性,如果遇到意料不到的终止(诸如掉电)。在重新起动后,任务执行器可以参考持久维护的点并且标识适当的任务状态并且立即从该点失败,并且执行必要的任何清除。
例如,用于复制的数据传输作业,如上讨论,任务执行器发出命令到适当的代理用于执行作业的每个任务。包括在那些命令中的是发到克隆代理以开始改变记录传输的命令。同样,任务执行器发出命令到复制代理以开始接收和应用记录。在代理在执行那些命令时,任务执行器开始定时器并且转移到等待状态。在每个转移(发出命令,开始等待)时,任务执行器持久维护任务的进程点。任务执行器可接收的应答可以是检查点,超时事件,取消请求等等。在接收应答时,任务执行器按照应答转移并且持久维护任务中该点。这个过程继续,直到任务或者成功或者失败而结束。
如果超时事件发生,则任务执行器5005也可轮询每个代理以判定这些代理是否还继续有效并且有可能获得有关由该代理执行的命令的进程。除持久维护转移点从而增加稳健性,设计长时间运行的行为使得它们可以从中间点、检查点重新起动,因此所有工作在失败时不会丢失。例如,再参考图43至47,在数据传输和确认期间创建检查点。那些检查点由复制管理器获得并且存储在数据保护数据库中。如上参考图43-47讨论的,在从失败重新起动后,可评估那些检查点并且可从由检查点标识的点恢复进行数据传输和确认。
除了运行任务以完成,任务执行器5005、5007,在本发明的一个实施例中,在任务完成时通知作业管理器以及任务是成功还是失败完成的。作业管理器维护它自己的踪迹,给出关于作业中所有任务的概要信息。例如,作业踪迹可包含成功完成的任务数。作业管理器还将从任务执行器接收的信息持久维护在数据保护器数据库的任务踪迹中。另外,任务执行器也可维护它自己的任务踪迹,具有与任务有关的任务执行器特定信息。任务踪迹可包括在任务期间遇到的任何错误以及与对数据保护系统的用户有用的任务有关的统计资料。任务类型特定的跟踪由与该特定任务相关联的管理器接收和维护。任务类型特定的跟踪可包括任务特定信息,诸如移动数据所用的总时间,完成任务的总时间,传送的数据总量,等等。在重新起动数据保护系统后,任务踪迹可用于标识在失败时导致的错误路径。另外,任务可维护任务私有元数据。该私有元数据可用于在重新起动时清除失败的任务并且用于在任务完成(成功或失败)时创建任务踪迹。而且,任务执行器5005、5007也可管理与任务相关联的元数据。
在失败的情况下,在重新起动后,作业进行非常简单的清除。它们没有重新调度它们自己或者执行复杂的恢复动作。相反,失败作业的任务只是更新任何物理对象状态并且失败。失败记录在任务踪迹和作业踪迹中。对于保证迅速且自动化的恢复行为足够重要的任务,数据保护系统通过健康管理器可创建用于从任务失败的点完成作业或者在由任务生成的最后一个检查点完成的补充作业。健康管理器使用任务试验以及在数据库中各种对象的状态来实现更复杂的恢复机制以使数据保护能够进行。
对于认为是关键性的任务,诸如复制,健康管理器可监视那些任务。在一个实施例中,健康供应者由健康管理器实例化。关键任务在失败时引起失败事件。健康供应者监视那些事件并且判定是需要执行任何恢复。如果恢复是必需的,则创建和调度补充作业以恢复一或多个失败的任务。另外,在系统起动时健康管理器起动健康供应者。每个健康供应者作出另外和独立的确定,即已经在系统先前终止时运行的失败任务的恢复是否是必需的。如果恢复是必需的,则创建和调度补充作业。在失败作业内单个任务失败时或者在来自失败作业的所有未完成任务包括那些从未起动的任务时,补充作业可包含单个任务。
图51是依照本发明一实施例例示任务的监视和补充作业的创建的流程图。如上所述,在数据保护系统内的每个动作是以具有若干任务的作业形式组织的。数据保护器5101可创建作业,诸如在产生位置5103处的保护对象的复制,它要被传送和存储在存储位置5105作为执行一或多个任务的结果。该作业是由数据保护器5101启动的,并且该作业的每个任务是由一或多个任务执行器执行的。例如,对于一个复制作业,任务执行器发出命令到若干代理,其中之一可位于产生位置5103,并且其中之一可位于存储位置5105。那些任务被执行而且目前在进程中,并且为了本例的目的,作业被中断并且随后恢复。作业中断可因系统故障如掉电而发生。在恢复时,数据保护器5101标识在系统故障之前正在进行的作业任务。在标识正在进行的作业任务后,数据保护器5101发出重新开始任务的命令。在重新开始任务后,任务执行器使任务失败并且为失败的任务执行简单的清除。如果任务是关键的,通知合适的健康供应者。
补充作业是在先前作业停止处恢复(pick up)的作业。补充作业包括在先前作业中失败的任务或者在先前作业中没有开始的任务。例如,如果失败的作业是复制作业,健康供应者标识复制作业的什么任务没有成功完成并且创建一个包括未完成任务和该作业的所有其它未完成任务的补充作业。如果响应于接收失败的任务生成补充作业,则健康管理器标识失败的任务并且创建一个包含该任务的作业并且有可能要与该作业串行或并行地执行的任何其它任务的作业。在生成补充作业后,健康管理器调度执行补充作业。该补充作业随后按调度的进行,好象是它自己的作业,并且执行该补充作业的任务。另外,因为补充作业调度为它自己的作业,所以从作业管理器的观点来看,被视为任何其它作业并且作业管理器可不知道它是补充作业。
图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确定恢复作业失败不是在产生位置处的盘满了的结果,则生成一个报告通知用户,在先前的恢复作业中已经发生了一个未知的错误,并且建议用户重新运行恢复作业。
尽管已经例示和描述了本发明的较佳实施例,但应意识到,可以在不脱离本发明的精神和范围的情况下在这些实施例中作出各种改变。