写时拷贝重定向的制作方法

文档序号:14203653阅读:608来源:国知局
写时拷贝重定向的制作方法

本发明涉及计算机存储系统领域,更特别地,涉及提供时间点(point-in-time)拷贝功能的高级功能存储系统。



背景技术:

在计算机存储系统领域,对于被称之为“高级功能”的功能存在越来越多的需求。这种功能超越了常规存储控制器系统的简单输入/输出(i/o)功能。高级功能在本领域是公知的,其依赖于元数据的控制,其中元数据用于保持关于存储在系统中的真实或“用户”数据的状态数据。可采用高级功能的操作使得各种动作能够迅速地应用到数据的虚拟图像上,同时使真实数据可供用户应用来使用。其中一种这种公知的高级功能是时间点拷贝。时间点拷贝的一个例子是ibm以及flashcopy是国际商业机器公司在世界范围内许多国家注册的商标。

时间点拷贝是在各种存储设备上支持的特征,其允许对整个逻辑卷或数据集做出近乎瞬时的时间点拷贝。时间点功能使人能够生成数据的全卷拷贝,这些拷贝即刻就可用于读、写访问。该拷贝可以与在计算环境中可用的标准备份工具一起,在磁带上创建备份拷贝。

“快照”是通用的行业术语,指示记录存储设备在任何给定时刻的状态并保存该快照以用作在存储设备发生故障的情况下恢复存储设备的指导的能力。快照主要创建数据的时间点拷贝。典型地,快照拷贝是瞬时完成的,可供诸如数据保护、数据分析和报告以及数据复制应用的其他应用来使用。数据的原始拷贝继续不间断地可供这些应用使用,而快照拷贝则用于对数据执行其他功能。快照是依赖于主要磁盘的时间点拷贝。快照例如可以采用写时拷贝(copy-on-write)过程来实现,其中,在对主要磁盘上的一个区域进行写操作时,将在主要磁盘上的该区域中当前存在的数据写到备份磁盘。这样,备份磁盘将包含在主要磁盘上已经被覆盖的数据,而不是主要磁盘的完整拷贝。这种类型的备份拷贝典型地导致一个精简配置的卷,从而减少占用的存储空间。一系列快照拷贝可以被级联在一起,代表各个时间的主要磁盘。然而,快照拷贝典型地仍然依赖于主要磁盘来重组主要磁盘的一个完整拷贝。因此,快照是目标磁盘仅仅保持呈现源磁盘的时间点拷贝所必需的已改变数据的时间点拷贝。只有在源磁盘上有改变时,数据才被拷贝到目标磁盘。为了呈现时间点拷贝,目标磁盘通常总是依赖于源磁盘上的一些数据。

相反,“克隆”是独立于主要磁盘的时间点拷贝。克隆例如可以通过执行后台拷贝过程以及执行写时拷贝过程来创建,后台拷贝过程将磁盘区域顺序拷贝到备份磁盘,写时拷贝过程立即拷贝由于写操作将要被覆盖但还未由后台拷贝过程处理的任何主要磁盘区域。克隆典型地用在需要拷贝并且对拷贝的输入/输出(i/o)无论如何不能影响对主要卷的i/o的时候。克隆还可以用在拷贝不受源磁盘的可用性影响的时候。克隆还可以用在级联中。

因此,克隆是pit拷贝,其中,在启动时间点拷贝时,目标磁盘将持有在源磁盘上的数据的完整拷贝。在从源磁盘到目标磁盘的数据拷贝完成时,目标磁盘独立于源磁盘。



技术实现要素:

根据本发明的第一个方面,提供了用于管理时间点拷贝级联中的存储卷的系统,其中,该级联包括源卷、快照时间点拷贝卷以及克隆时间点拷贝卷,其中,快照时间点拷贝卷是源卷的快照拷贝,克隆时间点拷贝卷是快照时间点拷贝卷的克隆拷贝,其中,每个卷具有主机部分,该系统包括:交换组件,用于将源卷的主机部分与快照卷的主机部分交换;i/o组件,响应于要用第二数据值覆盖源组件的细粒(grain)中的第一数据值的i/o请求,用于:将第二数据值写到快照时间点拷贝卷的对应细粒中;以及,响应于克隆时间点拷贝卷的对应细粒不包括第一数据值,将第一数据值拷贝到克隆时间点拷贝卷的对应细粒。

根据本发明的另一个方面,提供了一种用于管理时间点拷贝级联中的存储卷的方法,其中,该级联包括源卷、快照时间点拷贝卷以及克隆时间点拷贝卷,其中,快照时间点拷贝卷是源卷的快照拷贝,克隆时间点拷贝卷是快照时间点拷贝卷的克隆拷贝,其中,每个卷具有主机部分,该方法包括:将源卷的主机部分与快照卷的主机部分交换;响应于要用第二数据值覆盖源组件的细粒中的第一数据值的i/o请求:将第二数据值写到快照时间点拷贝卷的对应细粒中;以及,响应于克隆时间点拷贝卷的对应细粒不包括第一数据值,将第一数据值拷贝到克隆时间点拷贝卷的对应细粒。

根据本发明的另一个方面,提供了一种用于管理时间点拷贝级联中的存储卷的计算机程序产品,其中,该级联包括源卷、快照时间点拷贝卷以及克隆时间点拷贝卷,其中,快照时间点拷贝卷是源卷的快照拷贝,克隆时间点拷贝卷是快照时间点拷贝卷的克隆拷贝,其中,每个卷具有主机部分,该计算机程序产品包括可由处理电路读取的计算机可读存储介质,其中存储有由该处理电路执行的用于执行本发明的步骤的方法的指令。

根据本发明的另一个方面,提供了一种计算机程序,其存储在计算机可读介质上,可装载到数字计算机的内部存储器中,其包括软件代码部分,当该程序在计算机上运行时,该软件代码部分用于执行本发明的步骤。

附图说明

下面将参考如下图所示的优选实施例以示例的方式描述本发明:

图1显示了根据现有技术的、并且可以实施本发明的优选实施例的采用存储控制器和两个存储磁盘的备份过程;

图2显示了根据现有技术的、并且可以实施本发明的优选实施例的、由时间点拷贝映射链接的三个存储卷的时间点拷贝级联的一个例子;

图3a-3e显示了根据现有技术的、并且可以实施本发明的优选实施例的时间点拷贝映射;

图4显示了根据现有技术的、并且可以实施本发明的优选实施例的示例性映射级联;

图5a、5b、5c显示了在将数据写到拷贝级联中使用的关系;

图6显示了用于写到时间点拷贝级联中的源卷g的方法;

图7显示了源磁盘的初始数据;

图8显示了根据本发明的优选实施例的方法中使用的映射,其中分别显示了vdisks和pdisks;

图9显示了写系统的组件;

图10显示了根据现有技术的、并且可以实施本发明的优选实施例的通用计算设备形式的云计算节点中的计算机系统/服务器;

图11显示了根据现有技术的、并且可以实施本发明的优选实施例的例示性云计算环境;

图12显示了根据现有技术的、并且可以实施本发明的优选实施例的、由图11的云计算环境提供的一组功能抽象层;以及

图13显示了根据现有技术的、并且可以实施本发明的优选实施例的、作为能够执行这里所描述的计算操作的计算机系统的一个简化例子的信息处理系统。

具体实施方式

还可以采用级联实现的时间点拷贝,其中,目标磁盘之后成为下一个时间点拷贝的源磁盘,反之亦然。在美国专利7,386,695b2中详细描述了存储卷的级联配置,在这里将其全文引用作为参考,其中,描述了实现在以目标i/o为代价的情况下优化源的写的时间点拷贝功能的算法。其优点是允许从一单个源创建无限制的时间点拷贝映像,同时限制为额外的读和写维护时间点拷贝所需要的额外的i/o。

美国专利us7,386,695b2(fuente,carlosf.“具有多个拷贝目标的存储系统(storagesystemwithmultiplecopytargeting)”,2008年6月10日)(在这里将其全文引用作为参考)公开了可与主计算机装置以及多个受控的存储装置协作的存储控制器,其包括:主机写组件,可将数据目标写在多个受控存储装置中的一个中的源数据映像;第一拷贝组件,响应于第一元数据状态,可控制数据对象到在多个受控存储装置中的一个中的第一目标数据映像的拷贝;第二存储拷贝组件,响应于第二元数据状态,可执行如下之一:控制数据对象到在多个受控存储装置中的一个中的第二目标数据映像的拷贝;以及,使得第一拷贝组件执行第二目标数据映像到第一目标数据映像的拷贝。

美国专利us8,688,937b2(agombar,johnp.等,“用于优化包含增量映射的快照拷贝级联中的映射清洗的方法(methodforoptimizingcleaningofmapsinflashcopycascadescontainingincrementalmaps)”,2014年4月1日)(在这里将其全文引用作为参考)公开了一种用于优化时间点拷贝级联中的映射清洗的方法,其包括确定映射中的目标磁盘是否包含来自级联中的上游磁盘的、对下游磁盘不可用的数据,并检测下游磁盘是否具有该数据的拷贝。

美国专利us8,793,453b2(agombar,j.p.等,“多级联备份过程(multiplecascadedbackupprocess)”,2014年7月29日)(在这里将其全文引用作为参考)公开了对备份过程的处理。一个指令采用多个备份过程中的一个,启动从源卷到目标卷的新的备份。

美国专利us8,868,860b2(beeken,c.“级联拷贝环境下的恢复(restoreincascadedcopyenvironment)”,2014年10月21日)在这里将其全文引用作为参考)公开了多个备份过程的处理,其包括:检测一个限定的存储卷呈现在存储卷的第一级联中;检测该限定的存储卷呈现在存储卷的第二级联中;接收对于存储卷的第一级联中的最后一个存储卷的数据写;以及,在存储卷的第二级联中的限定的存储卷上执行清洗数据写,其中,该清洗数据写对应于所接收的数据写。

在启动时间点拷贝操作时,在源卷和目标卷之间创建时间点关系。这样,时间点关系即为时间点源卷和时间点目标卷的“映射“。该映射使得源卷的时间点拷贝可被拷贝到相关联的目标卷。时间点关系自该时间点操作被启动时在该卷对之间存在,直到存储单元将所有数据从源卷拷贝到了目标卷,或者直到该时间点关系被删除。此外,级联的时间点配置是,一个映射的源磁盘是另一个映射的目标磁盘。例如,源磁盘a和目标磁盘b可以定义一个映射,源磁盘b和目标磁盘c可以定义另一个映射。该级联可以包括三个磁盘a、b和c以及两个映射。一旦进行了拷贝,这些拷贝可以立即为读和写访问所用。

当数据被物理拷贝时,后台过程将轨道(或细粒)从源卷拷贝到目标卷。完成后台拷贝所花的时间量例如取决于:所拷贝的数据量;在存储系统上正在进行的后台拷贝过程以及正在进行的其他活动的个数,以及其他因素。

在时间点操作从源卷拷贝数据到目标卷时,该源卷可能同时参与到一个以上的时间点关系中(称之为多关系时间点)。也就是说,多关系时间点功能允许源卷同时具有多个目标卷。如果卷上的一个轨道不是现有时间点关系的目标轨道,则其可能成为一个新的时间点关系中的目标。

因此,例如,如果需要同一数据的多个拷贝,则一旦确立了一个时间点卷,该多关系时间点功能就允许单个源卷被多次拷贝到不同的目标卷。例如,假设采用一个时间点将卷a拷贝到卷b。只要建立该时间点关系,卷a可以被拷贝到卷c。一旦建立该关系,卷a可以被拷贝到卷d,以此类推。另外,单个卷内的多个会话也是可能的。

级联可用于实现单个数据源的多个时间点拷贝。例如,对于数据源p以及在时间t1、t2和t3取得的p的时间点拷贝,在时间t1采用数据对象t1取得一个时间点拷贝,产生级联:p→t1。然后,在时间t2采用数据对象t2取得第二时间点拷贝,产生级联:p→t2→t1。实际上,t1是作为t2的拷贝而建立的,其在此刻与p是相同的,t2是p的拷贝。由t2所保存的、描述其与p的不同的位图也正确地描述了其与t1的不同。对p的更新仅需要从p拷贝到t2的拷贝操作。相反,对t2的更新需要两个拷贝操作:从p到t2,以及从t2到t1。这是因为,对一个链的中间部分的更新,会要求对该中间部分的两侧进行拷贝。在t3增加第三备份t3产生级联:p→t3→t2→t1。

该技术具有很多益处。然而,其也引入了在传统的多目标实现中不存在的数据目标之间的依赖性。这个目标依赖性的副作用是,在时间点拷贝停止或者完成时,需要“清洗”目标。例如,如果时间点拷贝p→t2被停止,则一般要先把t2上的、t1所需要的任何数据都从t2拷贝到t1,然后才能从级联中移除目标t2。在许多情况下这不是问题,因为用户可能希望t1保持p在时间t1的完整拷贝,意味着备份过程p→t1是克隆。然而,如果p→t1的本意仅仅是产生p在时间t1的一个快照,从t2向t1的额外拷贝会引起用户问题。进一步地,如果数据目标t1是精简配置的(也称为空间高效的),由上述行为所导致的问题会导致对t1不必要的存储分配。在一些应用中,这会降低用户维护快照和克隆以及管理其备份的能力。

已经有一些已有技术,试图减少在清洗时从一个卷拷贝到另一个卷、例如从t2到t1的数据量,并取得不同程度的成功。然而,许多这样的解决方案会极大地增加用于跟踪各种数据目标的内容的元数据的量。

在采用级联方法实现时,多目标时间点拷贝在拷贝的数量方面提供了很大的可缩放性,同时,还向用户提供对拷贝进行拷贝的能力。然而,在采用级联方法实现时的多目标时间点也引入了所不希望的概念,即在能从级联中移除之前必须“清洗”时间点映射。清洗过程确保级联中没有磁盘依赖于被移除的映射的目标磁盘。清洗过程会花费相当大量的时间来完成。

另外,时间点可以利用空间高效的卷。时间点空间高效(se)特征通过仅在其实际从源卷向目标卷拷贝轨道(或细粒)时才使用目标卷上的空间,在“根据需要”的基础上分配存储空间。在没有空间高效卷的情况下,即使不在那里数据拷贝,时间点功能也要求目标卷上的所有空间被分配和可用。然而,在采用空间高效卷的情况下,时间点功能仅仅使用对在时间点关系的有效期期间被改变的数据进行写所需那么多的轨道(或细粒),因此空间的分配是在“根据需要”的基础上进行的。因为空间高效的时间点卷不要求目标卷与源卷具有完全相同的大小,时间点se特征增加了更高效使用系统存储的可能性。

在卷创建过程期间可以为目标卷定义空间高效属性。可以从已经创建的空间高效存储的任何扩展池(extentpool)创建空间高效卷。只要空间高效源卷和目标卷已经创建并且可用,则在创建时间点关系时可以选择。

这样,如上所述,时间点se特征增加了更高效使用系统存储的可能性。然而,将多目标时间点与空间高效卷相结合为清洗过程增加了另一个问题。即,考虑客户具有日常备份拷贝的场景,其中,客户例如每天对这个备份作出一个新的空间高效备份。级联和多目标时间点和空间高效卷允许这个设置。并且,考虑到为了减少完成日常备份所花费的时间,作出增量的时间点映射。在这种场景下,清洗过程的问题是,清洗过程需要将所有数据从日常备份拷贝到最新的空间高效卷。然而,由于日常备份是完全的拷贝,这将需要分配整个空间高效拷贝。这样,对于这种场景,空间有效卷的利用被级联的清洗方法所“打破”。

现有技术解决方案显示出如何在成本与拷贝数量无关的情况下执行单个卷的多个时间点拷贝。允许相关的时间点拷贝链接起来。这样的算法优化了标准的写时拷贝算法,但其仍然需要row实现并不需要的额外的i/o。这个i/o以维护最新时间点映像所要求的分离写(splitwrite)的形式出现。

提供这样一个算法将是有利的,该算法既提供在多个存储池之间提供时间点拷贝映像的现有技术解决方案的灵活性,也提供在存储都在一个池中的情况下用于快照的row算法的写i/o(writei/o)的高效性。

一些存储控制器允许用户为一给定源配置一个以上的目标。这可以有很多应用。例如,可以对每个目标运行不同的实验。或者,可以在不同时间(例如,一周中的不同日子)针对不同的目标,以及或许出于从一些数据中断、例如可能由病毒引起的数据中断恢复的目的,允许对磁盘的历史访问。

图1显示了采用存储控制器8和两个存储磁盘10、12的备份过程。磁盘10和12可以形成更大磁盘阵列的一部分,还可以形成企业存储解决方案的一部分。磁盘10和12例如可以是与商业网站有关的存储解决方案的一部分。如果在任何时间需要对vdisk1的内容作出备份,则可以从存储卷控制器8向磁盘10发送一个时间点拷贝指令,其中定义了源盘10(vdisk1)以及作为时间点拷贝的目标的目标磁盘12(vdisk2)。时间点拷贝指令创建特定vdisk、即源磁盘10的映像的时间点拷贝。

在图1的实施例中,第一时间点拷贝指令的源磁盘10是vdisk110,目标磁盘12是vdisk212。时间点拷贝指令启动时间点拷贝过程,创建从源磁盘10到目标磁盘12的映射14。这个映射在图1中标记为映射1。vdisk1在该特定时间点的映像,现在在vdisk2上可用。这就创建了vdisk1上的数据的备份,也允许在vdisk1的数据上运行测试和其他管理任务,而不会伴随有丢失任何原始数据的危险,因为原始数据是保存在原始源磁盘上的。

在作出时间点拷贝时,其在两个磁盘10和12之间创建了如映射14所限定的链接。现在就可以在后台把数据从一处拷贝到另一处,额外的要求是:对于vdisk2(作为目标磁盘12)的任何访问,都会立即导致vdisk1的映像的相关部分被拷贝,并且,对于vdisk1的、将导致由该磁盘10存储的映像发生改变的任何访问,也将导致在发生改变前尚未改变的数据被立即拷贝到目标磁盘12。这样,尽管可能只是在上述情况下才把数据实际从一处拷贝到另一处,而在外部用户看来,vdisk2存储着vdisk1的时间点拷贝,。

作为诸如时间点拷贝功能的备份过程的目标卷的存储卷也可以作为进一步的备份过程的源卷,从而创建存储卷的级联。

图2显示了由时间点拷贝映射14链接的三个存储卷10、12和16的时间点拷贝级联的一个例子。“上游”卷是朝向采用当前的磁盘b12作为参考的主要卷的一个卷,“下游”卷是远离采用当前的磁盘b12作为参考主要卷的一个卷。例如:磁盘a10是磁盘b12的上游;磁盘c16是磁盘b12的下游。每个映射14限定了从源卷到目标卷的备份过程。磁盘b提供磁盘a10的备份,磁盘c16也通过磁盘b12提供了磁盘a10的备份。链接不同存储卷的时间点拷贝功能14可以在不同时间启动,创建由各个存储卷保存的映像的不同的时间点拷贝,或者可以同时启动。

在时间点拷贝级联a→b→c中,如图2所示,a10、b12和c16是级联的磁盘,箭头是时间点拷贝映射,用[a,b]代表从磁盘a0到磁盘b12的时间点拷贝映射,则级联具有映射[a,b]和(b,c)。在级联的这个实现中,根据相应的时间点拷贝功能,到磁盘a10的任何新的数据写会导致到磁盘b12的写(这里称为“拷贝写(copywrite)”),这是维护磁盘b12上的映像所需要的。这个到磁盘b12的写会导致对磁盘b12的进一步的读(这里常常称为“清洗读”(cleanread)),随后是到磁盘c16的另一个拷贝写。以这种方式,对级联中的第一存储卷10的单个写会导致整个级联中的数个i/o清洗操作。

在创建级联时,将新的映射和新的存储卷插入到级联中,而不是添加到级联的末尾。在如图2所示的级联中,启动的第一备份过程是a→c。然后,在备份过程a→b启动时,新的目标存储卷b12被有效“插入”到现有的源存储卷a10和现有的目标存储卷c16之间。这个“插入”仅仅是图示目标磁盘c16将从磁盘b12而不是磁盘a10接收数据写的事实的逻辑构造。这是级联实现区别于常规安排的地方,其中常规安排具有两个独立的来自磁盘a10的映射。

可以操作存储控制器8,使得磁盘和映射被安排为使得克隆和快照被分到不同的依赖链或级联。如下面将更加详细地描述的,将克隆和快照分到不同级联中的一个特征是减少或消除由拷贝操作终止所导致的清洗操作。

图3a-3e显示了根据现有技术的、并且可以实施本发明的优选实施例的时间点拷贝映射。例如,在本描述的上下文中,图3a的映射1作为克隆启动,后面的映射2作为快照启动。对于源卷p、用于保持目标映像的克隆卷c1和快照卷s1所产生的图结构将在图3a中显示。该结构是一个依赖图。

在图3a所示的图中,对磁盘p的数据写将要求对c1和/或s1的写时拷贝(copyonwrites),以便在各个备份过程的目标磁盘上维护这些映像。如果存储卷控制器8启动作为快照的映射3,所获得的依赖图如图3b所示。在级联中,新磁盘以及对该磁盘的映射可以放在源盘p的附近,这样映射3的新目标磁盘s2就放在级联p→s2→s1中,其中两个映射、映射3和映射2都是快照。在分离的级联p→c1中,映射1是克隆。

后续的作为p的快照或者克隆的备份过程延长了克隆和/或快照链的长度,而不会增加离开p的边的个数,也不会增加与对p的写相关联的清洗操作i/o。图3b的图可以扩展到包括更多的快照和克隆。为了维护级联类型的分离,如果特定备份类型(克隆或快照)存在级联,则为所识别出的备份过程类型向现有的级联增加目标存储卷,或者,如果所识别出的备份过程类型不存在级联,则启动一个新的级联,其包含目标存储卷和源存储卷。这样,从特定源磁盘取得的克隆和快照不会出现在源自该特定源磁盘的同一个级联中。

图3c显示了在进行了进一步的备份c2之后存储卷的逻辑安排。如果存储卷控制器8启动作为克隆的映射4,所获得的依赖图如图3c所示。在级联中,新磁盘以及对该磁盘的映射放在源盘p的附近,这样映射4的新目标磁盘c2就放在级联p→c2→c1中,其中两个映射、映射4和映射1都是克隆。在分离的级联p→s2→s1中,映射3和映射2都是快照。

图3d显示了在进行了进一步的克隆和快照备份c3和s3之后存储卷的逻辑安排。存储卷控制器8启动作为克隆的映射6以及作为快照的映射7,所获得的依赖图如图3d所示。在级联中,新磁盘以及对该磁盘的映射放在源盘p的附近,这样映射6的新目标磁盘c3就放在级联p→c3→c2→c1中(图3d),其中映射6、映射4和映射1这三个映射,每个都是克隆。映射7的新目标磁盘s3就放在级联p→s3→s2→s1中(图3d),其中映射7、映射3和映射2这三个映射都是快照。

只要快照相对于其他快照的顺序正确以及克隆相对于其他克隆的顺序正确,不同类型的备份过程的顺序可以是s1,s2,s3,c1,c2,c3的任何排列。例如,启动顺序可以是s1,c1,s2,s3,c2,c3。如图3d所示,这些级联可以认为是以根节点p形成的树。

对于具有多目标时间点拷贝的各个时间点拷贝功能,对于依赖图中的磁盘的写会导致读、分离写以及客户机写,以便维护磁盘中的其他映像。例如,对上面的依赖图中的p的客户机(或主机)写会导致1)读,即对p的读,如果在所写入的位置s3或c3所需要的数据是在p上的话,2)分离写,即a)从p读出的数据到s3的写,如果s3依赖于p的话,以及b)从p读出的数据到c3的写,如果c3依赖于p的话(该动作可以与第二个动作并行执行),以及3)客户机写,即向p的客户机写自身。对于到p的每次写的这些清洗操作的结果是,从这些备份启动开始,卷s3和c3每个都独立于任何所改变的细粒。

将克隆和快照分离成不同的级联的一个特征是有助于终止不必要的备份,以减少或消除与停止本身相关联的清洗。例如,在图3d的依赖图中,如果映射4停止,存储卷控制器8会“清洗”从c3到c1的数据。这不会被认为是一个增加的清洗操作,因为c1也是克隆,数据本来就是要拷贝到其上。快照s3、s2、s1不受影响。

相反,当快照被停止时,由于其与克隆级联相分离,目标快照磁盘的所有快照和克隆都可以容易地停止,该停止导致没有额外的清洗。进一步地,当克隆被停止时,目标克隆磁盘的所有快照可能也被停止。之所以可以采取该方法是因为快照典型地依赖于其源。因此,如果快照的克隆源被摧毁,依赖于该源的快照很可能也没有或几乎没有用处。这样,通过将克隆和快照分离到不同的级联,可以减少或者消除额外的清洗操作。

如果现在发现例如磁盘p已损坏并且管理员希望从现有磁盘、例如磁盘s1恢复磁盘p,则创建并启动映射8,s1→p,其产生级联s1→p(图3e)。为该恢复操作采用分离的级联将产生三个分离的级联。例如,从s1恢复p将产生级联p→s3→s2→s1、p→c3→c2→c1(图3d)以及s1→p(图3e)。下面将参考图4、5a、5b、5c、5d描述磁盘p的恢复。

系统还允许磁盘在同一个级联或分离的级联中存在多次。例如,s3、s2和s1是为p的快照创建的。s1包含用户的原始数据,而s3和s2包含进一步的快照,在其上运行了两个不同的模拟。用户可能决定在s2上的模拟的结果是有用的,决定从s2恢复p。系统允许用户启动一个新的映射s2→p,同时仍然维护在s1中的原始数据的未修改的备份。

然而,磁盘出现在级联中的次数越多,在源自主机的i/o可以完成回到主机之前,时间点拷贝级别所需要的i/o操作(清洗i/o)则越多。或者,为了反转一个映射,管理员可以简单地以相反方向创建和启动一个映射14。

图4显示了根据现有技术的、并且可以实施本发明的优选实施例的示例性映射级联。更具体地,图4显示了两个磁盘405和410的示意图。如图4所示,磁盘的上部表明数据例如从各个磁盘被呈现(present)给主机。呈现给主机的磁盘被称为“vdisk”。vdisk是在存储虚拟化中所采用的术语,表示虚拟逻辑盘或卷,主机计算机或主机计算机应用可以用其执行i/o操作。图4还显示了磁盘的下部,其表明实际包含在各个磁盘上的数据。磁盘的示意图的下部被称为“pdisk”。pdisk是直接连接到物理存储的对象。本领域技术人员将会理解,pdisk本身可以是位于独立磁盘冗余阵列(raid)上的虚拟卷。本领域技术人员还将理解,存储控制器8在虚拟级别管理拷贝,但对逻辑磁盘的读和写确实会分别导致对物理磁盘的读和写。这样,磁盘1405向用户呈现数据的四个细粒(或轨道)a、b、c、d,实际具有存储在磁盘1405上的这些细粒a、b、c、d。相反,磁盘2410向用户呈现数据的四个细粒a、f、c、d。然而,如磁盘2410的下部所示,磁盘2410实际在其上仅存储有细粒二和四(分别为f和d),并依赖于存储在磁盘1405上的数据向主机呈现细粒a和c。虽然第四个细粒(d)在磁盘1405上也可用,但例如由于之前数据d重写到磁盘1405上,因此细粒d也存储在磁盘2410上。

如图4进一步所示,映射2420是磁盘1405和磁盘2410之间的增量映射。即,映射2420包括分离位图(分离)422和差分位图(差分)424。根据本发明的实施例,分离位图422用于在时间点过程中跟踪数据的位置。更具体地,分离位图422中的“0”表明该数据位于源磁盘中,分离位图422中的“1”表明该数据位于目标磁盘中。进一步地,差分位图424用于在时间点拷贝过程中跟踪源磁盘和目标磁盘、例如虚拟磁盘之间的差别。更具体地,差分位图424中的“0”表明位于源磁盘的数据与位于目标磁盘的数据之间没有差别,差分位图424中的“1”表明位于源磁盘的数据与位于目标磁盘的数据之间存在差别。

这样,参考图4的例子,映射2420的分离位图422表明细粒a和c位于源磁盘(磁盘1405)上,细粒f和d位于目标磁盘(磁盘2410)上。此外,映射2的420的差别位图424表明源磁盘(磁盘1405)和目标磁盘(磁盘2410)的第一、第三、第四细粒之间没有差别。也就是说,第一、第三和第四细粒、即a、c和d在源磁盘和目标磁盘之间保持相同。然而,映射2的420的差别位图424表明源磁盘(磁盘1405)和目标磁盘(磁盘2410)的第二细粒存在差别。也就是说,如图4所示,第二细粒从磁盘1405上的b变成了磁盘2410上的f。因此,指针425显示出,目标磁盘410基于分离位图420的内容参考源磁盘405而不是磁盘2410的物理内容。有利的是,根据现有技术,位图422、424的使用允许存储控制器8管理对存储磁盘卷的虚拟和物理拷贝的访问,包括在从系统增加或删除拷贝时对数据内容进行管理。当从链中删除一个拷贝时,基于位图422、424的内容,可以将代表数据更新的内容“清洗”到剩余链中的另一个拷贝。

图5a、5b、5c显示了在将数据写到拷贝级联时所使用的关系。

在实现时间点解决方案时,使用了两种重要的算法,写时重定向(redirect-on-write,row)和写时拷贝(copy-on-write,cow)。这两种算法的细节可以从很多可公开获取的来源中找到。

图5a显示了处于初始状态的拷贝级联。源磁盘g505的主机视图(vdisk)有四个细粒,具有数据a、b、c、d。这些数据物理存储在物理磁盘gp520上。vdisk细粒通过链接550、552与物理磁盘gp520中对应的细粒相关。源磁盘g505具有克隆或快照时间点拷贝510。最初,克隆或快照时间点拷贝510在物理磁盘s1p/c1p525中没有单独的物理数据,而是指向物理存储位置gp520以供数据访问。例如,s1/c1510的第一细粒通过链接554指向gp520的第一细粒。

图5b显示了其中源磁盘g505具有克隆时间点拷贝c1511以及在数据通过任何后台拷贝过程拷贝到c1511之前的拷贝级联。图5b显示了在已经采用cow算法将数据“e”写到g505的第一细粒之后的拷贝级联。一旦接收到对g505的第一细粒的写i/o操作,链接554被重定向到以新链接555指向物理磁盘c1p527的第一细粒。之前已经在gp520的第一细粒中的数据“a”被写入528到物理磁盘c1p527的第一细粒。数据“e”写入529到gp520的第一细粒。典型地,gp520在第一存储池540中,c1p527在第二存储池545中。或者,gp520和c1p527在相同的存储池540、545中。g505呈现给主机的数据是(e,b,c,d);c1511呈现给主机的数据是(a,b,c,d)。gp520包含g505的实时数据。cow算法在克隆时间点拷贝的情况下是有利的,因为即使c1p527在第二存储池545中,也可以容易地跟踪克隆数据。或者,物理存储c1p527可以容易地移到第二存储池545。cow算法为跟踪数据位置所用的元数据,一般比相应的row的更少。

图5c显示了其中源磁盘g505具有快照时间点拷贝s1513的拷贝级联。图5c显示了在已经采用row算法将数据“e”写入到g505的第一细粒之后的拷贝级联。一旦接收到对g505的第一细粒的写i/o操作,链接552被以新链接553重定向到指向物理磁盘s1p537的第一细粒。数据“e”写入538到s1p537的第一细粒。典型地,gp520和s1p537在相同的存储池547中。g505呈现给主机的数据是(e,b,c,d);c1511呈现给主机的数据是(a,b,c,d)。g505的实时数据包含在gp520和s1p537中。row算法在快照时间点拷贝的情况下是有利的,因为只需要一次写,而不必先将已有数据拷贝到时间点拷贝。在row配置中,跟踪数据虽然更难,但在单个存储池中也是可控的。

row和cow对于实施者以及最终对于所产生的产品的用户都具有优势和劣势。row在写i/o额外开销方面会更加高效,因为新的写数据是写入到一个新的区域,而不是在运用写数据之前必须移动已有的数据。并且,许多高级功能、诸如反转/恢复在row环境下也更加简单。row相比于cow的一个劣势是,所有映像的数据通常必须来自于一单个存储池。这意味着row对于时间点拷贝的快照版本常常是最优的。而克隆和备份情况常常要求时间点拷贝放在单独的存储池中,这使得cow成为更好的算法。

row算法不具有cow的双重写惩罚。对原始卷的新的写被重定向到为快照留出的另一个位置。重定向写的优点是只发生一次写,而写时复制发生两次写(一次是将原始数据拷贝到存储空间,另一次是拷贝已更改的数据)。使用row时,原始拷贝包含时间点数据,即快照,而更改的数据驻留在快照存储上。当快照被删除时,来自快照存储的数据必须被调整回原始卷。此外,由于创建了多个快照,对原始数据的访问、对快照和原始卷中的数据的跟踪以及快照删除时的调整更加复杂。快照依赖于数据的原始拷贝,并且原始数据集可能很快变成碎片。

实际上,对于克隆时间点拷贝使用cow和对于快照时间点拷贝使用row的混合配置引入了其自身的复杂性,因此,典型地,一个算法被用于cow的两种时间点拷贝类型。对另一种类型降低的复杂性平衡了对一种类型增加的复杂性。

有利的是,本发明引入了将row和cow算法组合成新的算法以供创建快照时使用的方式。当在一个存储池中操作时,这种新算法具有row的写i/o优点,同时使用允许在需要时使用多个存储层的cow算法。

图6显示了用于写到时间点拷贝级联中的源卷g的方法,其应该结合图7、8和9来阅读。图7显示了源盘g的初始数据。图8显示了根据本发明优选实施例的方法中使用的映射,其中描绘了相应的vdisk和pdisk。图9显示了写系统900的组件,在优选实施例中,写系统900是存储控制器8的组件。在替代实施例中,恢复系统900与存储控制器8分开提供。

有利地,本发明通过从用于存储数据的物理设备分离数据的主机视图来工作。也就是说,卷是由呈现给主机系统的vdisk和用来存放数据的实际存储器的pdisk组成的。

图7显示了源磁盘g705的初始数据。g755呈现给主机的数据包括数据[a,b]。存储在物理磁盘gp757上的数据也包括数据[a,b]。物理源磁盘gp757具有两个数据细粒,第一细粒中的数据“a”,指定为“gp-0”,第二细粒中的数据“b”,指定为“gp-1”。本领域技术人员将会理解,磁盘本身可以是例如包含在raid阵列内的逻辑磁盘。

该方法在步骤601开始。在步骤605,拷贝组件905拷贝源卷705以创建快照时间点拷贝765。快照时间点拷贝765包括主机视图(vdisk)s1759和物理磁盘s1p761。在步骤710,映射组件910将这些卷映射到拷贝级联以提供映射8-1805。

在步骤615,交换组件906确定时间点拷贝卷765是否是快照时间点拷贝卷765。如映射8-2810所示,由于时间点拷贝卷765是快照时间点拷贝卷765,在步骤620,交换组件906交换890两个vdisk视图,头g755和s1759。映射组件910映射交换890以提供映射8-2a810。在映射8-2b820中更详细地描绘了映射8-2a810。由于对于s1p761的内容没有进行写,所以s1p761的内容链接到与gp757相同的存储位置。g755呈现给主机的数据是[a,b];并且s1759呈现给的主机的数据是[a,b]。在这种状态下,i/o的主机视图不变,s1765是g705的时间点拷贝卷映像。到g705的写i/o将为该i/o分配新的空间,因此与标准row算法的i/o性能相匹配。由于g705和s1765都是从同一个存储池提供的,所以从用户的管理角度看,卷的基本特征不变。

在步骤625,i/o组件915接收将数据“c”写入到g755的第一细粒的写请求。映射组件910映射该写以创建映射8-4825。由于头g755和s1759已经被交换,对g705的写指向s1p-0。在步骤630,i/o组件使用cow算法来确定是否需要首先写入另一个细粒位置。在映射8-4825的配置中,不存在下游拷贝卷,因此在步骤640将数据“c”写入s1p-0。该方法在步骤699结束。

有利地,在不改变在写入点处使用的cow算法的情况下,在快照时间点拷贝的情况下已经实现了row行为。

在一个替代实施例中,快照时间点拷贝765已经存在。在步骤605,拷贝组件905拷贝快照时间点拷贝卷765以创建克隆时间点拷贝770。克隆时间点拷贝770包括主机视图(vdisk)c1772和物理磁盘c1p774。在步骤710,映射组件910将这些卷映射到一个拷贝级联中,以提供映射8-5a834。在步骤615,交换组件906确定时间点拷贝卷770是否为快照时间点拷贝卷770。然而,时间点拷贝卷770不是快照时间点拷贝卷770,则在步骤615处进行到“否”出口,换句话说,不进行步骤620。因为没有对s1p761的内容进行写,也没有对c1p774进行写,c1p774的内容链接到与s1p761相同的存储位置,随后又链接到与gp757相同的存储位置。g755呈现给主机的数据是[a,b];s1759呈现给主机的数据是[a,b];并且c1772呈现给主机的数据也是[a,b]。

在步骤625,i/o组件915接收写数据“c”到g755的第一细粒的写请求。映射组件910映射该写以创建映射8-5b836。当头g755和s1759已经交换时,对g705的写指向s1p-0。在步骤630,i/o组件使用cow算法来确定是否需要首先写入另一个细粒位置。在映射8-5b836的配置中存在下游拷贝卷,因此,从出口“是”进到步骤635。在步骤635,将数据“a”从gp-0拷贝838到c10p-0。然后在步骤640,将数据“c”写839到s1p-0。该方法在步骤699结束。有利的是,在不改变在写入点处使用的cow算法的情况下,在克隆时间点拷贝的情况下已经实现了cow行为。

在又一个替代实施例中,快照时间点拷贝765已经存在。在步骤605,拷贝组件905拷贝g/s1p时间点拷贝卷765以创建新的快照时间点拷贝。新的快照时间点拷贝包括主机视图(vdisk)s2773和物理磁盘s2p777。在步骤615,交换组件906确定新的时间点拷贝卷是否是快照时间点拷贝卷。由于新的时间点拷贝卷是快照时间点拷贝卷,因此在步骤615选择“是”出口。在步骤620,交换组件906交换两个vdisk视图,头g755和s2773。映射组件910映射交换以提供映射8-6841。因为没有对s1p761或s2p777的内容进行写.s2p777的内容链接到与gp757相同的存储位置。g755呈现给主机的数据是[a,b],s2759呈现给主机的数据是[a,b];并且s2773呈现给主机的数据是[a,b]。在此状态下,i/o的主机视图保持不变,s2是g705的时间点拷贝卷映像。到g705的写i/o将为该i/o分配新空间,因此与标准row算法的i/o性能相匹配。由于g705、s1765和s2都是从同一个存储池提供的,所以从用户的管理角度来看,卷的基本特性是不变的。i/o处理可以继续使用步骤625、630、640。该方法在步骤699结束。

对于本领域技术人员显而易见的是,可以进行更多的快照时间点拷贝,其中生产卷g705总是以row方式处理i/o。

有利地,vdisk部分处理主机i/o和时间点拷贝处理,而pdisk部分存储数据。有利地,根据本发明的优选实施例,在由主机呈现并由时间点拷贝算法管理的逻辑映像与用于保存数据的物理存储之间引入分离。每个存储卷包括“vdisk”部分和“pdisk”部分。vdisk部分被视为“主机”部分。vdisk部分处理主机i/o和时间点处理,并且pdisk存储数据。有利地,系统可以总是按照用户的请求前滚恢复操作,并在后台整理被丢弃的恢复。

参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各方面。将理解的是,流程图和/或框图中的每个框以及流程图和/或框图中的框的组合可以通过计算机程序指令来实现。

这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机的处理器执行的指令或其他可编程数据处理设备,创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。

在替代实施例中,可以在云计算环境中实现本发明。事先可以理解的是,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其他类型的计算环境来实现。

云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。

特征包括:

按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。

广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理pda)对云的使用。

资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。

迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。

可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。

服务模型如下:

软件即服务(saas):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。

平台即服务(paas):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。

基础架构即服务(iaas):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。

部署模型如下:

私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。

共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。

公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。

混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。

云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。

现在参考图10,其中显示了云计算节点的一个例子。云计算节点1000仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点1000能够被用来实现和/或执行以上所述的任何功能。

云计算节点1000具有计算机系统/服务器1012,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知的适于与计算机系统/服务器1012一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。

计算机系统/服务器1012可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器1012可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

如图10所示,云计算节点1000中的计算机系统/服务器1012以根据现有技术的、并且可以实施本发明的优选实施例的通用计算设备的形式表现。计算机系统/服务器1012的组件可以包括但不限于:一个或者多个处理器或者处理单元1016,系统存储器1028,连接不同系统组件(包括系统存储器1028和处理单元1016)的总线1018。总线1018表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机系统/服务器1012典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器1012访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器1028可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)1030和/或高速缓存存储器1032。计算机系统/服务器1012可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统1034可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线1018相连。存储器1028可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

具有一组(至少一个)程序模块1042的程序/实用工具1040,可以存储在存储器1028中,这样的程序模块1042包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块1042通常执行本发明所描述的实施例中的功能和/或方法。

计算机系统/服务器1012也可以与一个或多个外部设备1014(例如键盘、指向设备、显示器1024等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器1012交互的设备通信,和/或与使得该计算机系统/服务器1012能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1022进行。并且,计算机系统/服务器1012还可以通过网络适配器1020与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1020通过总线1018与计算机系统/服务器1012的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器1012一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

图11显示了根据现有技术的、并且可以实施本发明的优选实施例的例示性云计算环境1150。如图所示,云计算环境1150包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点1110,本地计算设备例如可以是个人数字助理(pda)或移动电话1154a,台式电脑1154b、笔记本电脑1154c和/或汽车计算机系统1154n。云计算节点1110之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点1110进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境1150提供的基础架构即服务(iaas)、平台即服务(paas)和/或软件即服务(saas)。应当理解,图11显示的各类计算设备1154a-n仅仅是示意性的,云计算节点1110以及云计算环境1150可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。

图12显示了根据现有技术的、并且可以实施本发明的优选实施例的、由图11的云计算环境1150提供的一组功能抽象层。首先应当理解,图12所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图所示,提供下列层和对应功能:

硬件和软件层121包括硬件和软件组件。硬件组件的例子包括:主机1202,一个例子是系统;基于risc(精简指令集计算机)体系结构的服务器1204,一个例子是ibm系统;ibm系统1206;ibm系统1208;存储设备1210;网络和网络组件1212。软件组件的例子包括:网络应用服务器软件1214,一个例子是ibm应用服务器软件;以及数据库软件68,一个例子是ibm数据库软件1216。ibm、zseries、pseries、xseries、bladecenter、i2、analystsnotebook、tivoli,、netcoo、websphere和db2是国际商业机器公司在世界范围内多个地区注册的商标。

虚拟层123提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器1222、虚拟存储1224、虚拟网络1226(包括虚拟私有网络)、虚拟应用和操作系统1228,以及虚拟客户端1230。

在一个示例中,管理层125可以提供下述功能:资源供应功能1242:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能1244:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能1246:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能1248:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(sla)计划和履行功能1250:为根据sla预测的对云计算资源未来需求提供预先安排和供应。

工作负载层127提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航1262;软件开发及生命周期管理1264;虚拟教室的教学提供1266;数据分析处理1268;交易处理1270;以及本发明优选实施例的恢复系统900处理1272。或者,可以在管理层125处执行恢复系统900处理1252。

图13描绘了根据现有技术的、并且可以实现本发明的优选实施例的信息处理系统1300,其是能够执行这里描述的计算操作的计算机系统的简化示例。信息处理系统1300包括耦合到处理器接口总线1312的一个或多个处理器1310。处理器接口总线1312将处理器1310连接到也被称为存储器控制器中枢(mch)的北桥1315。北桥1315连接到系统存储器1320,并提供处理器1310访问系统存储器的手段。图形控制器1325也连接到北桥1315。在一个实施例中,pciexpress总线1318将北桥1315连接到图形控制器1325。图形控制器1325连接到显示装置1330,例如计算机监视器。北桥1315和南桥1335使用总线1319彼此连接。在一个实施例中,总线是在北桥1315和南桥1335之间的每个方向上高速传输数据的直接媒体接口(dmi)总线。在另一个实施例中,外设组件互连(pci)总线连接北桥和南桥。南桥1335(也被称为i/o控制器集线器(ich))是通常实现以比由北桥提供的能力更慢的速度运行的能力的芯片。南桥1335通常提供用于连接各种组件的各种总线。这些总线包括例如pci和pciexpress总线、isa总线、系统管理总线(smbus或smb)和/或低引脚数(lpc)总线1392。lpc总线通常连接低带宽设备,例如引导rom1396和“传统”i/o设备(使用“超级i/o”芯片)。“传统”i/o设备1398可以包括例如串行和并行端口、键盘、鼠标和/或软盘控制器。lpc总线还将南桥1335连接到可信平台模块(tpm)1395。通常包括在南桥1335中的其它组件包括直接存储器存取(dma)控制器、可编程中断控制器(pic)和存储设备控制器,其使用总线1384将南桥1335传输到非易失性存储设备1385、例如硬盘驱动器。

expresscard1355是将热插拔设备连接到信息处理系统的插槽。expresscard1355支持pciexpress和usb连接,因为它使用通用串行总线(usb)和pciexpress总线连接到南桥1335。南桥1335包括usb控制器1340,usb控制器1340向连接到usb的设备提供usb连接。这些设备包括网络摄像机(摄像机)1350、红外(ir)接收器1348、键盘和触控板1344以及提供无线个人区域网络(pan)的蓝牙设备1346。usb控制器1340还向其他各种usb连接的设备1342(诸如鼠标,可移动非易失性存储设备1345,调制解调器,网卡,isdn连接器,传真机,打印机,usb集线器以及许多其他类型的usb连接的设备)提供usb连接。尽管可移除非易失性存储设备1345被示出为usb连接设备,但是可移除非易失性存储设备1345可以使用不同的接口(诸如火线接口等)来连接。

无线局域网(lan)设备1375经由pci或pciexpress总线1372连接到南桥1335。lan设备1375通常实现空中调制技术的ieee.802.11标准之一,其全部使用相同的协议在信息处理系统1300和另一个计算机系统或设备之间进行无线通信。光存储设备1390使用串行ata(sata)总线1388连接到南桥1335。串行ata适配器和设备通过高速串行链路进行通信。串行ata总线还将南桥1335连接到其他形式的存储设备,例如硬盘驱动器。诸如声卡的音频电路1360经由总线1358连接到南桥1335。音频电路1360还提供诸如音频输入和光学数字音频输入端口1362、光学数字输出和耳机插孔1364、内部扬声器1366和内部麦克风1368等功能。以太网控制器1370使用诸如pci或pciexpress总线的总线连接到南桥1335。以太网控制器1370将信息处理系统1300连接到诸如局域网(lan)、因特网以及其他公共和专用计算机网络的计算机网络。

虽然图13示出了一个信息处理系统1300,但是信息处理系统可以采取许多形式。例如,信息处理系统可以采用台式机、服务器、便携式计算机、膝上型计算机、笔记本或其他形式的计算机或数据处理系统的形式。另外,信息处理系统可以采取诸如个人数字助理(pda)、游戏设备、atm机、便携式电话设备、通信设备或包括处理器和存储器的其他设备的其他形式。图13中所示并且在此描述以提供安全功能的可信平台模块(tpm1395)仅仅是硬件安全模块(hsm)的一个示例。因此,本文描述和要求保护的tpm包括任何类型的hsm,包括但不限于符合可信计算组(tcg)标准并且题为“可信平台模块(tpm)规范版本1.2”的硬件安全设备。tpm是一个硬件安全子系统,其可以并入任何数量的如图13所示的信息处理系统。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。java和所有基于java的商标和徽标是oracle和/或其附属公司的商标或注册商标。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。在一个替代实施例中,本发明可以在存储在介质中的计算机程序(或应用)中实现,其连接到硬件以解决问题。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

为了避免疑义,如本说明书和权利要求书中使用的术语“包括”不应被解释为意味着“仅由......组成”。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1