首页> 中国专利> 用于优化包含增量映射表的闪速拷贝级联中的映射表的清理的方法

用于优化包含增量映射表的闪速拷贝级联中的映射表的清理的方法

摘要

一种在具有计算机可执行代码的计算机基础设施中实现的方法,该计算机可执行代码具有在计算机可读存储介质上有形地实现的编程指令。这些编程指令可用于确定映射表的目标盘是否包含闪速拷贝级联中的下游盘不能从上游盘获得的数据并检测下游盘是否具有所述数据的拷贝。另外,所述编程指令可用于在所述映射表的目标盘包含下游盘不能从上游盘获得的数据并且下游盘不具有所述数据的拷贝的情况下把所述数据从目标盘复制到下游盘。另外,所述编程指令可用于在所述映射表的目标盘不包含下游盘不能从上游盘获得的数据或者下游盘具有所述数据的拷贝的情况下避免把所述数据从目标盘复制到下游盘。此外,所述编程指令可用于从闪速拷贝级联去除所述映射表。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-04-16

    授权

    授权

  • 2011-11-16

    实质审查的生效 IPC(主分类):G06F11/14 申请日:20091007

    实质审查的生效

  • 2011-09-07

    公开

    公开

说明书

技术领域

本发明一般涉及闪速拷贝级联(cascade),更具体地讲,涉及一种用于优化包含增量映射表(incremental map)的闪速拷贝级联中的映射表的清理的方法。

背景技术

(闪速拷贝)是多种存储装置上支持的特征,它允许制作整个逻辑卷或数据集的几乎瞬间时间点拷贝。(闪速拷贝是国际商业机器公司在美国、其它国家或者这两者的注册商标。)因此,闪速拷贝功能使得能够进行数据的时间点全卷拷贝,并且该拷贝立即可用于读或写访问。该拷贝可以与计算环境中可用的标准备份工具一起使用以在磁带上创建备份拷贝。

此外,闪速拷贝在目标卷上创建源卷的时间点拷贝。当启动闪速拷贝操作时,在源卷和目标卷之间创建闪速拷贝关系。因此,闪速拷贝关系是闪速拷贝源卷和闪速拷贝目标卷之间的“映射”。该映射允许把源卷的时间点拷贝复制到关联的目标卷。从闪速拷贝操作启动的时间直到存储单元把所有数据从源卷复制到目标卷或者直到闪速拷贝关系被删除,在这个卷对之间存在闪速拷贝关系。此外,级联的闪速拷贝结构是这样的结构:一个映射表的源盘是另一映射表的目标盘。例如,可能存在用源盘A和目标盘B定义的一个映射表以及用源盘B和目标盘C定义的另一映射表。该级联将包括这三个盘A、B和C以及这两个映射表。一旦制作了拷贝,则这些拷贝立即可用于读和写访问。

当以物理方式复制数据时,后台进程把轨道(或颗粒(grain))从源卷复制到目标卷。完成后台复制所花费的时间量例如取决于:正被复制的数据的量;在存储系统上正在发生的后台复制进程和正在发生的其它活动的数量;以及其它因素。

当闪速拷贝操作把数据从源卷复制到目标卷时,该源卷能够同时被包括在超过一个闪速拷贝关系中(称为多重关系闪速拷贝)。也就是说,多重关系闪速拷贝功能允许源卷同时具有多个目标。如果卷上的轨道不是现有闪速拷贝关系的目标轨道,则它能够变为新的闪速拷贝关系中的目标。

因此,例如,如果需要相同数据的多个拷贝,则该多重关系闪速拷贝功能允许一建立闪速拷贝卷就把单个源卷多次(例如,多达十二次)复制到不同目标卷。例如,假设闪速拷贝用于把卷A复制到卷B。一建立该闪速拷贝关系,就可以把卷A复制到卷C。一旦建立了该关系,则可以把卷A复制到卷D,等等。另外,在单个卷内可以有多个会话。

当使用级联方法实现多目标闪速拷贝时,多目标闪速拷贝在拷贝的数量方面提供很大的可伸缩性,同时也为用户提供了制作拷贝的拷贝的能力。然而,当使用级联方法实现多目标闪速拷贝时,多目标闪速拷贝也引入了不希望的概念:在从级联去除闪速拷贝映射表之前,必须“清理(clean)”闪速拷贝映射表。该清理处理确保级联中的任何盘不依赖于正被去除的映射表的目标盘。完成该清理处理会花费大量的时间。

另外,闪速拷贝可使用空间高效卷。闪速拷贝空间高效(SE)特征仅在实际从源卷向目标卷复制轨道(或颗粒)时通过使用目标卷上的空间在“按需”的基础上分配存储空间。如果没有空间高效卷,则闪速拷贝功能要求目标卷上的所有空间被分配并可用,即使没有数据被复制到那里。然而,如果有空间高效卷,则闪速拷贝仅使用写在闪速拷贝关系的生存期期间改变的数据所需的数量的轨道(或颗粒),因此空间的分配是在“按需”的基础上进行的。因为空间高效闪速拷贝卷不要求与源卷具有正好相同尺寸的目标卷,所以闪速拷贝SE特征提高了系统存储的更有效使用的潜力。

可以在卷创建处理中为目标卷定义空间高效属性。能够从已经创建了空间高效存储的任何扩展区池创建空间高效卷。只要空间高效源卷和目标卷已被创建并且可用,它们就能够在创建闪速拷贝关系时被选择。

因此,如上所述,闪速拷贝SE特征提高了系统存储的更有效使用的潜力。然而,组合多目标闪速拷贝和空间高效卷,将会为清理处理增加另一问题。即,考虑顾客具有每日备份拷贝的情况,其中例如每天该顾客制作这个备份的新的空间高效拷贝。级联和多目标闪速拷贝以及空间高效卷能够实现该设置。此外,考虑到为了减少完成每日备份所花费的时间,使闪速拷贝映射表为增量式。在这种情形下的清理处理的问题在于:清理处理将需要把所有数据从每日备份复制到最新的空间高效拷贝。然而,由于每日拷贝是完整的拷贝,所以这将需要分配整个空间高效拷贝。因此,对于该情形,空间高效卷的使用会被级联的清理方法“破坏”。

因此,现有技术需要克服上述缺点和限制。

发明内容

因此,在第一方面,本发明提供了一种在计算机可读存储介质上有形地包含计算机可执行代码的计算机基础设施中实现的方法,所述计算机可读存储介质具有用于执行以下操作的编程指令:确定映射表的目标盘是否包含下游盘不能从闪速拷贝级联中的上游盘获得的数据;检测所述下游盘是否具有所述数据的拷贝;如果所述映射表的所述目标盘包含所述下游盘不能从所述上游盘获得的数据并且所述下游盘不具有所述数据的拷贝,则把所述数据从所述目标盘复制到所述下游盘;如果所述映射表的所述目标盘不包含所述下游盘不能从所述上游盘获得的数据或者所述下游盘具有所述数据的拷贝,则避免把所述数据从所述目标盘复制到所述下游盘;以及从所述闪速拷贝级联去除所述映射表。

该方法还可以包括:当执行把所述数据从所述目标盘复制到所述下游盘时,更新下游映射表以反映从所述下游盘到新的源盘的映射。优选地,所述映射表是增量映射表。优选地,所述增量映射表包括:分割位映射值,指示所述目标盘是否包含特定颗粒的数据的实际拷贝或者依赖于包含所述特定颗粒的数据的源盘;以及差异位映射值,指示所述目标盘的所述特定颗粒上包含的数据是否不同于所述源盘的相应颗粒上包含的数据。优选地,所述特定颗粒的分割位映射值为零且所述特定颗粒的差异位映射值为零指示:所述映射表的目标盘不包含所述下游盘不能从所述上游盘获得的所述特定颗粒的数据。优选地,所述特定颗粒的分割位映射值为零且所述特定颗粒的差异位映射值为1指示:所述映射表的目标盘不包含所述下游盘不能从所述上游盘获得的所述特定颗粒的数据。该方法还可以包括:在所述特定颗粒的分割位映射值为1且所述特定颗粒的差异位映射值为零的情况下,使用上游映射表的位映射值确定是否需要复制。优选地,如果上游映射表的分割位映射值对于相应颗粒为1并且上游映射表的差异位映射值对于该相应颗粒为1,则把所述特定颗粒复制到所述下游盘。优选地,所述特定颗粒的分割位映射值为1且所述特定颗粒的差异位映射值为1指示:所述映射表的目标盘包含所述下游盘不能从另一上游盘获得的所述特定颗粒的数据。优选地,所述下游盘是空间高效盘。该方法还可以包括:在所述空间高效盘上分配最小必要数量的颗粒。该方法还可以包括:如果在去除所述映射表之后现在在所述另一上游盘上能获得所述空间高效盘上的特定颗粒,则在所述空间高效盘上解除空间分配并更新下游映射表。优选地,服务提供商执行以下操作中的至少一个:创建、维护、部署和支持执行这些步骤的计算机基础设施。优选地,这些步骤由服务提供商在订阅、广告和/或费用的基础上提供。

在第二方面,提供了一种系统,包括:位映射工具,用于执行以下操作:检测闪速拷贝级联中的映射表的位映射值;基于所述检测确定是否需要闪速拷贝清理处理,如果需要,则执行闪速拷贝清理处理;当执行闪速拷贝清理处理时,修改闪速拷贝级联中的下游映射表的位映射值;以及从所述闪速拷贝级联去除所述映射表。优选地,所述映射表是增量映射表,该增量映射表包括:分割位映射值,指示目标盘是否包含特定颗粒的数据的实际拷贝或者依赖于包含所述特定颗粒的数据的源盘;以及差异位映射值,指示所述目标盘的所述特定颗粒上包含的数据是否不同于所述源盘的相应颗粒上包含的数据。优选地,当位映射工具检测到所述特定颗粒的分割位映射值为零且所述特定颗粒的差异位映射值为零时,位映射工具确定对于所述特定颗粒不需要闪速拷贝清理处理;如果位映射工具检测到所述特定颗粒的分割位映射值为零且所述特定颗粒的差异位映射值为1,则位映射工具确定对于所述特定颗粒不需要闪速拷贝清理处理;如果位映射工具检测到所述特定颗粒的分割位映射值为1且所述特定颗粒的差异位映射值为零,则位映射工具使用上游映射表的位映射值确定是否需要进行复制;并且如果位映射工具检测到所述特定颗粒的分割位映射值为1且所述特定颗粒的差异位映射值为1,则位映射工具确定对于所述特定颗粒需要闪速拷贝清理处理。优选地,所述下游盘是空间高效盘,并且所述位映射工具在所述空间高效盘上分配最小必要数量的颗粒。

在第三方面,提供了一种包括计算机程序代码的计算机程序,所述计算机程序代码当被载入到计算机系统中并在计算机系统上执行时使所述计算机系统执行根据第一方面的方法的所有步骤。

该计算机程序可实现为包括计算机可用存储介质的计算机程序产品的形式,所述计算机可用存储介质中实现有可读程序代码,该计算机程序产品包括用于执行以下操作的至少一个部件:确定映射表的目标盘是否包含下游盘不能从闪速拷贝级联中的上游盘获得的数据;检测所述下游盘是否具有所述数据的拷贝;如果所述映射表的所述目标盘包含所述下游盘不能从所述上游盘获得的数据并且所述下游盘不具有所述数据的拷贝,则把所述数据从所述目标盘复制到所述下游盘;如果所述映射表的所述目标盘不包含所述下游盘不能从所述上游盘获得的数据或者所述下游盘具有所述数据的拷贝,则避免把所述数据从所述目标盘复制到所述下游盘;以及从所述级联去除所述映射表。

本发明的各方面可实现为一种方法,该方法包括提供可用于执行以下操作的计算机基础设施:确定映射表的目标盘是否包含下游盘不能从闪速拷贝级联中的上游盘获得的数据;检测所述下游盘是否具有所述数据的拷贝;如果所述映射表的所述目标盘包含所述下游盘不能从所述上游盘获得的数据并且所述下游盘不具有所述数据的拷贝,则把所述数据从所述目标盘复制到所述下游盘;如果所述映射表的所述目标盘不包含所述下游盘不能从所述上游盘获得的数据或者所述下游盘具有所述数据的拷贝,则避免把所述数据从所述目标盘复制到所述下游盘;如果执行了把所述数据从所述目标盘复制到所述下游盘,则更新下游映射表以反映从所述下游盘到新的源盘的映射;从所述闪速拷贝级联去除所述映射表。

在本发明的第一实施例中,一种方法实现于在计算机可读存储介质上有形地实现了计算机可执行代码的计算机基础设施中,所述计算机可读存储介质具有编程指令。这些编程指令可用于确定映射表的目标盘是否包含下游盘不能从闪速拷贝级联中的上游盘获得的数据并检测所述下游盘是否具有所述数据的拷贝。另外,所述编程指令可用于如果所述映射表的所述目标盘包含所述下游盘不能从所述上游盘获得的数据并且所述下游盘不具有所述数据的拷贝,则把所述数据从所述目标盘复制到所述下游盘。另外,所述编程指令可用于如果所述映射表的所述目标盘不包含所述下游盘不能从所述上游盘获得的数据或者所述下游盘具有所述数据的拷贝,则避免把所述数据从所述目标盘复制到所述下游盘。此外,所述编程指令可用于从所述闪速拷贝级联去除所述映射表。

在本发明的另一实施例中,一种系统包括:位映射工具,用于执行以下操作:检测闪速拷贝级联中的映射表的位映射值;基于所述检测确定是否需要闪速拷贝清理处理,如果需要,则执行闪速拷贝清理处理。另外,位映射工具可用于当执行闪速拷贝清理处理时修改闪速拷贝级联中的下游映射表的位映射值。另外,位映射工具可用于从所述闪速拷贝级联去除所述映射表。

在本发明的另一实施例中,提供了一种包括计算机可用存储介质的计算机程序产品,所述计算机可用存储介质中实现有可读程序代码。该计算机程序产品包括可用于执行以下操作的至少一个部件:确定映射表的目标盘是否包含下游盘不能从级联中的上游盘获得的数据并检测所述下游盘是否具有所述数据的拷贝。另外,所述至少一个部件可用于如果所述映射表的所述目标盘包含所述下游盘不能从所述上游盘获得的数据并且所述下游盘不具有所述数据的拷贝,则把所述数据从所述目标盘复制到所述下游盘。另外,至少一个部件可用于如果所述映射表的所述目标盘不包含所述下游盘不能从所述上游盘获得的数据或者所述下游盘具有所述数据的拷贝,则避免把所述数据从所述目标盘复制到所述下游盘。此外,至少一个部件可用于从所述级联去除所述映射表。

在本发明的另一实施例中,一种方法包括提供可用于执行以下操作的计算机基础设施:确定映射表的目标盘是否包含下游盘不能从闪速拷贝级联中的上游盘获得的数据并检测所述下游盘是否具有所述数据的拷贝。另外,所述计算机基础设施可用于如果所述映射表的所述目标盘包含所述下游盘不能从所述上游盘获得的数据并且所述下游盘不具有所述数据的拷贝,则把所述数据从所述目标盘复制到所述下游盘。另外,所述计算机基础设施可用于如果所述映射表的所述目标盘不包含所述下游盘不能从所述上游盘获得的数据或者所述下游盘具有所述数据的拷贝,则避免把所述数据从所述目标盘复制到所述下游盘。此外,所述计算机基础设施可用于当执行把所述数据从所述目标盘复制到所述下游盘时,更新下游映射表以反映从所述下游盘到新的源盘的映射。另外,所述计算机基础设施可用于从所述闪速拷贝级联去除所述映射表。

附图说明

借助本发明的示例性实施例参照多个附图在下面的详细说明中对本发明进行说明。

图1示出用于实现根据本发明的步骤的例示环境;

图2-6示出根据本发明实施例的示例性闪速拷贝级联;以及

图7示出用于实施本发明实施例的示例性流程。

具体实施方式

本发明一般涉及闪速拷贝级联,更具体地讲,涉及一种用于优化包含增量映射表的闪速拷贝级联中的映射表的清理的方法。通过执行本发明,当在级联中存在增量映射表时清理闪速拷贝映射表所花费的时间可被减少。另外,执行本发明可限制空间高效拷贝上的颗粒的清理以防止不必要的空间分配。

系统环境

本领域技术人员应该理解,本发明可以实现为系统、方法或计算机程序产品。因此,本发明可采用如下形式:完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者组合了软件和硬件方面的实施例,在本文中它们一般都可被称为“电路”、“模块”或“系统”。另外,本发明可采用实现于任何有形表达介质中的计算机程序产品的形式,在该介质中包含计算机可用程序代码。

可使用一个或多个计算机可用或计算机可读介质的任何组合。计算机可用或计算机可读介质例如可以是但不限于电子、磁、光学、电磁、红外、或半导体系统、设备、装置或传播介质。计算机可读介质的更具体的例子(非穷举列表)将包括以下例子:

具有一条或多条线的电连接,

便携式计算机盘,

硬盘,

随机存取存储器(RAM),

只读存储器(ROM),

可擦除可编程只读存储器(EPROM或闪速存储器),

光纤,

便携式压缩盘只读存储器(CDROM),

光学存储装置,

传输介质,诸如支持互联网或内联网的传输介质,或者

磁存储装置。

计算机可用或计算机可读介质甚至能够是其上打印有程序的纸张或另一合适介质,因为程序能够经由例如纸张或其它介质的光学扫描而以电子方式被捕获、然后被编译、解释或者如果有必要的话以其它合适的方式处理,随后被存储在计算机存储器中。

在本文的上下文中,计算机可用或计算机可读介质可以是能够包含、存储、传输、传播或传送由指令执行系统、设备或装置使用或者结合指令执行系统、设备或装置使用的程序的任何介质。计算机可用介质可包括传播的数据信号,该传播的数据信号具有实现于基带中或者实现为载波的一部分的计算机可用程序代码。计算机可用程序代码可使用任何适当介质传输,包括但不限于无线介质、有线介质、光纤线缆、RF等。

可以以一种或多种编程语言的任何组合编写用于执行本发明的操作的计算机程序代码,所述编程语言包括:面向对象的编程语言,诸如Java、Smalltalk、C++等;和常规处理编程语言,诸如“C”编程语言或类似编程语言。该程序代码可以完全在用户的计算机上、部分在用户计算机上、作为独立软件包、部分在用户计算机上并且部分在远程计算机上、或者完全在远程计算机或服务器上执行。在后者的情形中,远程计算机可以通过任何类型的网络连接到用户的计算机。这可以包括例如局域网(LAN)或广域网(WAN),或者可以使得(例如,使用互联网服务提供商通过互联网)连接到外部计算机。

图1示出用于管理根据本发明的处理的例示环境10。在这个意义上,环境10包括能够执行本文描述的处理的服务器或其它计算系统12。特别地,服务器12包括计算装置14。计算装置14能够驻留在网络基础设施或第三方服务提供商的计算装置上(其中任何一种情况一般地表示在图1中)。

计算装置14包括位映射(bitmap)工具30。位映射工具30可用于检测映射表的位映射值,改变映射表的位映射值,并启动闪速拷贝处理,例如本文描述的处理。位映射工具30能够实现为作为单独或组合模块存储在存储器22A中的程序控制器44中的一个或多个程序代码。

计算装置14还包括处理器20、存储器22A、I/O接口24和总线26。存储器22A能够包括在程序代码的实际执行期间采用的本地存储器、大容量存储器和高速缓冲存储器,该高速缓冲存储器提供至少一些程序代码的临时存储以便减少在执行期间必须从大容量存储器取回代码的次数。另外,该计算装置包括随机存取存储器(RAM)、只读存储器(ROM)和CPU。

计算装置14与外部I/O装置/资源28和存储系统22B通信。例如,I/O装置28能够包括使个人能够与计算装置14交互的任何装置或者使计算装置14能够使用任何类型的通信链路与一个或多个其它计算装置通信的任何装置。外部I/O装置/资源28可以是例如手持装置、PDA、手机、键盘等。

通常,处理器20执行能够存储在存储器22A和/或存储系统22B中的计算机程序代码(例如,程序控制器44)。此外,根据本发明的实施例,具有程序代码的程序控制器44控制位映射工具30。在执行计算机程序代码的同时,处理器20能够从存储器22A、存储系统22B和/或I/O接口24读数据和/或把数据写到存储器22A、存储系统22B和/或I/O接口24。所述程序代码执行本发明的处理。总线26提供计算装置14中的各个部件之间的通信链路。

计算装置14可以包括能够执行安装在其上的计算机程序代码的任何通用计算制品(例如,个人计算机、服务器等)。然而,应该理解,计算装置14仅仅是可执行本文描述的处理的多种可能的等效计算装置的代表。在这个意义上,在实施例中,由计算装置14提供的功能能够由包括通用和/或专用硬件和/或计算机程序代码的任何组合的计算制品实现。在每个实施例中,能够分别使用标准编程和工程技术创建程序代码和硬件。

类似地,计算基础设施12仅仅是用于实现本发明的多种类型的计算机基础设施的例示。例如,在实施例中,服务器12包括在任何类型的通信链路(诸如,网络、共享存储器等)上通信以执行本文描述的处理的两个或更多个计算装置(例如,服务器集群)。另外,在执行本文描述的处理时,服务器12上的一个或多个计算装置能够使用任何类型的通信链路与服务器12外部的一个或多个其它计算装置通信。这些通信链路可包括:有线和/或无线链路的任何组合;一种或多种类型的网络(例如,互联网、广域网、局域网、虚拟专用网等)的任何组合;和/或使用传输技术和协议的任何组合。

在实施例中,本发明提供了在订阅、广告和/或费用的基础上执行本发明的步骤的商业方法。也就是说,服务提供商(诸如,解决方案集成商)能够执行本文描述的处理。在这种情况下,服务提供商能够例如创建、维护、部署、支持为一个或多个顾客执行本发明的处理步骤的计算机基础设施。这些顾客可以是例如使用技术的任何公司。作为回报,服务提供商能够按照订阅和/或费用合同从顾客接收付费,并且/或者服务提供商能够通过向一个或多个第三方销售广告内容而接收付费。

增量映射表

根据本发明的实施例,增量映射表提供了允许跟踪源盘和目标盘之间的差异的机制。如上所述,闪速拷贝映射表的清理包括读取目标盘上的数据并把该数据写到要求该数据的级联中的下一个下游盘。现在,如果下游盘是空间高效的,则写到该下游盘的任何数据将会导致在该盘上分配空间。然而,如果清理映射表的目标上的数据与清理映射表的源上的数据相同,则根据本发明的实施例不需要清理该数据,因为一旦源盘和目标盘之间的映射表已被去除,则该下游盘仍然能够从源盘获得该数据。

图2示出根据本发明实施例的两个映射表的示例性级联。更具体地讲,图2示出了三个盘205、210和215的表示。如图2中所示,这些盘的上部指示从各个盘呈现给例如主机的数据,这些盘的表示的下部指示实际包含在各个盘上的数据。因此,盘1205把四个颗粒(或轨道)的数据A、B、C、D呈现给用户并且实际上在盘1205上存储了这些颗粒A、B、C、D。相比之下,盘2210把四个颗粒的数据A、F、C、D呈现给用户。然而,如盘2210的底部所示,盘2210上实际只存储了颗粒二和四(分别为F和D)并且依赖于存储在盘1205中的数据以向主机呈现颗粒一和三(分别为A和C)。

此外,盘1205和盘2210均是完全分配的盘。也就是说,如以上针对完全分配(即,没有空间高效卷)的盘所讨论的,闪速拷贝功能要求目标卷上的所有空间被分配并且可用,即使没有数据被复制到那里。因此,如图2中所示,虽然盘2210中不包含颗粒A和C的实际拷贝,但分配了用于这些颗粒的空间(如问号所示)。

另外,如图2的例子中所示,盘3215是空间高效盘。也就是说,如以上所解释的,对于空间高效盘,通过仅当实际把轨道(或颗粒)从源卷复制到目标卷时使用目标卷上的空间,在“按需”的基础上分配存储空间。因此,如图2中所示,盘3215仅为颗粒B分配了空间(如盘3215上存储的数据的表示的变黑部分所示)。

另外如图2中所示,映射表1220是盘1205和盘2210之间的增量映射表。也就是说,映射表1220包括分割位映射(分割)和差异位映射(差异)。根据本发明的实施例,分割位映射在闪速拷贝处理中用于跟踪数据的位置。更具体地讲,分割位映射中的“0”指示该数据位于源盘上并且分割位映射中的“1”指示该数据位于目标盘上。另外,差异位映射在闪速拷贝处理中用于跟踪源盘和目标盘(例如,虚拟盘)之间的差异。更具体地讲,差异位映射中的“0”指示位于源盘和目标盘上的数据之间不存在差异,差异位映射中的“1”指示位于源盘上的数据和位于目标盘上的数据之间存在差异。

因此,参照图2的例子,映射表1220的分割位映射指示颗粒A和C位于源盘(盘1205)上并且颗粒F和D位于目标盘(盘2210)上。此外,映射表1220的差异位映射指示在源盘(盘1205)和目标盘(盘2210)之间对于颗粒一、颗粒三和颗粒四不存在差异。也就是说,颗粒一、颗粒三和颗粒四在源盘和目标盘之间保持相同,即分别为A、C和D。然而,映射表1220的差异位映射指示在源盘(盘1205)和目标盘(盘2210)之间对于颗粒二存在差异。也就是说,如图2中所示,颗粒二已从盘1205上的B变为盘2210上的F。映射表2225是盘2210和盘3215之间的映射表。此外,映射表2225不是增量映射表并且仅显示分割位映射。然而,对于非增量映射表,分割位映射和差异位映射将是相同的。因此,仅显示分割位映射。然而,应该理解,在实施例中,分割位映射和差异位映射都可以明确地由映射表指示。

应该理解,映射表2225指示颗粒一、三和四(分别为A、C和D)位于源盘(盘2210)上并且颗粒二(B)位于目标盘(盘3215)上。此外,映射表2225还指示颗粒一、三和四(分别为A、C和D)在源盘(盘2210)和目标盘(盘3215)之间是相同的并且颗粒二在源盘(盘2210)和目标盘(盘3215)之间是不同的。

清理处理

级联实现方式相对于传统实现方式的缺点在于:它产生目标盘之间的另外依赖性。为了能够满足来自一个目标盘的读请求,级联实现方式可能必须从级联中的另一目标盘读取数据。结果,如果用户希望停止并删除作为级联的一部分的闪速拷贝映射,则首先必须把级联中的其它目标盘所需要的所有数据复制到另一目标盘。这个复制数据的处理称为清理。在这种状态下,不能访问正被去除的映射表的目标盘以便保证清理操作完成。仅当目标盘干净时才能够停止并随后删除映射表。

因此,如图2中所示,两个颗粒已被从盘1205复制到盘2210。然而,仅分配了盘3215上的第二颗粒。现在,为了从所述级联去除映射表1220,必须确保盘3215能够保持在去除盘2210之前它呈现给主机的映像。因此,假设映射表1220是增量的,如以上所述,位映射工具30确定颗粒4(D)在盘1205上与盘2210相同。

因此,根据本发明的实施例,对于这个示例性情形,在能够从所述级联去除盘2210之前不需要从盘2210向盘3215复制任何颗粒。也就是说,对于在清理处理中不使用增量映射表的常规方法,将基于分割位映射决定是否清理。因此,对于这个例子,当映射表1220的分割位映射指示盘2包含颗粒D时,使用常规方法将在盘3215上为颗粒D分配空间并且将把颗粒D从盘2210复制到盘3215。然而,通过执行本发明,位映射工具30能够确定颗粒D的清理是不必要的,因此可以避免。

避免清理处理的优点是双重的。首先,通过避免不必要的清理处理可以不消耗时间和资源。此外,可以不必把下游空间高效盘上的空间用于存储在别处可访问的数据。这允许将空间高效盘上的该空间用于其它目的,例如,存储其它颗粒或数据。

图3示出在已从图2中所示的示例性级联200去除了映射表1并且已去除盘2后的示例性级联200的例子200’。如图3中所示,映射表2225保留,然而,映射表2225现在是盘1205和盘3215之间的映射表。此外,如图3中所示,对于这个例子,位映射工具30不必修改映射表2225以使映射表2225用作盘1205和盘3215之间的映射表。

图4示出在已从图2中所示的示例性级联200去除映射表1并且已去除盘2后的示例性级联200的另一例子200”。在实施例中,本发明设想可能希望使空间高效盘上的自由空间最大化。如图4中所示,盘3215”把与盘1205上包含的数据相同的数据呈现给主机。这样,盘3215”的颗粒二(B)不需要保留在盘3上(如图3中所示),因为该数据包含在盘1205上。因此,根据本发明的实施例,如图4中所示,位映射工具30从盘3215”去除了颗粒二(B)。通过从盘3215”去除颗粒二,可以使以前为颗粒二分配的空间可用于例如存储其它数据。

另外,如图4中所示,位映射工具(图1中示出)把图2中显示的映射表2225修改为映射表2225”。更具体地讲,位映射工具修改映射表2225”的分割位映射从而现在对于颗粒二包含零,这表示盘3215”不再包含颗粒二(B)的拷贝,而是依赖于盘1205中包含的颗粒二的拷贝。这是与图3相反,在图3中,盘3保持它自己的颗粒二(B)的拷贝并且不需要对映射表2225进行改变。此外,如图4的例子中所示,映射表2225”现在把所有它的颗粒映射到盘1205,如映射表2225”中的各个零所示。

图5示出根据本发明实施例的两个映射表的另外的示例性级联。更具体地讲,图5示出了三个盘205、210和515的表示。盘1205把四个颗粒的数据A、B、C、D呈现给用户并且实际上在盘1205上存储了这些颗粒A、B、C、D。相比之下,盘2210把四个颗粒的数据A、F、C、D呈现给用户。然而,如盘2210的底部所示,盘2210上实际只存储了颗粒二和四(分别为F和D)并且依赖于存储在盘1205中的数据以向主机呈现颗粒一和三(分别为A和C)。

另外,如图5的例子中所示,盘3515是空间高效盘。也就是说,如以上所解释的,对于空间高效盘,通过仅当实际把轨道从源卷复制到目标卷时使用目标卷上的空间,在“按需”的基础上分配存储空间。因此,如图5中所示,盘3515不具有为任何颗粒分配的空间(如盘3515上存储的数据的表示的变黑部分所示)。此外,如映射表2525所示,对于呈现给主机的所有颗粒,盘3依赖于盘2210。因此,颗粒二(F)和颗粒四(D)由盘2210提供。另外,因为如映射表1220所示,对于颗粒一(A)和颗粒三(C),盘2依赖于盘1205,所以盘3515依赖于盘1205中包含的颗粒一(A)和颗粒三(C)的拷贝。

现在,为了从所述级联去除映射表1220(其是增量映射表),位映射工具确保盘3515能够保持在去除盘2210之前它呈现给主机的映像。因此,假设映射表1220是增量的,如以上所讨论的,位映射工具可确定颗粒4(D)在盘1205上与盘2210相同。因此,如以上所讨论的,根据本发明的实施例,通过不把颗粒四(D)复制到下游盘(盘3215)可以节省资源。

然而,颗粒二在盘1205上与盘2210不同。因此,根据本发明的实施例,对于这个示例性情形,位映射工具开始闪速拷贝处理,其中在从所述级联去除映射表1220并且去除盘2210之前把颗粒二(F)从盘2210复制到盘3515。

图6示出在位映射工具30已从图5中所示的示例性级联500去除映射表1并且已去除盘2后的示例性级联500的例子500’。如图6中所示,映射表2525’保留,然而,映射表2525’现在是盘1205和盘3515’之间的映射表。此外,如图6中所示,对于这个例子,位映射工具30需要修改映射表2525’以使映射表2525’用作盘1205和盘3515’之间的映射表。也就是说,盘3515’现在包含它自己的颗粒二(F)的拷贝,因为盘1205不包含该数据。因此,如图6中所示,位映射工具30已修改映射表2525’以反映:盘3515’包含颗粒二(F)的拷贝并且盘3515’的颗粒二不同于盘1205的颗粒二。

因此,根据本发明的实施例,使用增量映射表不仅是完成减少的清理操作所需的工作,还确保了在下游空间高效盘(例如,盘3515’)上分配最小数量的颗粒。

一般规则

此外,根据本发明的实施例,可遵循一般规则来确定是否需要清理颗粒。更具体地讲,位映射工具30使用增量映射表值来确定要从级联去除的映射表的目标盘上是否具有不能从该目标盘的上游获得的数据。此外,位映射工具30可使用增量映射表来确定下游盘(相对于要去除的映射表的目标盘)是否已经具有不能从要去除的映射表的目标盘的上游获得的数据的拷贝。另外,如果该下游盘尚未具有该数据的拷贝,则根据本发明的实施例,在从级联去除该映射表之前,位映射工具把该数据从要去除的映射表的目标盘复制到该下游盘。

因此,根据本发明的实施例,参照要被去除的映射表的位映射,差异位映射值零和分割位映射值零指示不需要清理(或把数据从要从级联去除的映射表的目标盘复制到下游盘)。另外,差异位映射值1和分割位映射值零指示不需要清理。

此外,差异位映射值零和分割位映射值1指示可能需要清理。在这种情形中,下一个上游映射表用于确定是否需要清理。也就是说,如果位映射工具确定了下一个上游映射表具有分割位映射值1和差异位映射值1,则必须清理颗粒。否则,不需要清理颗粒。此外,如果不存在上游映射表,则可以认为分割位映射值为1并且差异位映射值为0并且不需要清理。

最后,差异位映射值1和分割位映射值1指示如果下游盘尚未包含该数据的拷贝则需要进行清理(或把数据从要从级联去除的映射表的目标盘复制到下游盘)。应该注意的是,如以上所讨论的,如果映射表不是增量的,则差异位值等于分割位值。

因此,再次参照图2,可以观察到,映射表1220的颗粒二具有差异位映射值1和分割位映射值1。因此,增量位映射的这些值指示:如果下游盘尚未包含该数据的拷贝,则需要进行清理(或把数据从要从级联去除的映射表的目标盘复制到下游盘)。然而,从图2中可以观察到,下游盘3215已经包含“B”的拷贝,如映射表2225的颗粒二所示。

因此,如图3中所示,已从级联去除了映射表1220和盘2210。此外,根据本发明的实施例,当目标盘(例如,盘3215)已经包含该数据(例如,“B”)的拷贝时,不需要清理(或把数据复制到目标盘)。

作为对比,再次参照图5,可以观察到,映射表1220的颗粒二具有差异位映射值1和分割位映射值1。因此,增量位映射的这些值指示:如果下游盘尚未包含该数据的拷贝,则需要进行清理(或把数据从要从级联去除的映射表的目标盘复制到下游盘)。此外,从图5中可以观察到,下游盘3515不包含颗粒F的拷贝,如映射表2525的颗粒二所示。

因此,如图6中所示,已从级联去除了映射表1220和盘2210。此外,根据本发明的实施例,在从级联去除映射表1220以及去除盘2210之前,清理处理已发生,其中盘2210的数据已被复制到下游盘3515’。另外,如图5中所示,位映射工具30已更新映射表2525’以反映盘3515’现在包含它自己的颗粒F的拷贝。

此外,应该理解,本发明能够扩展至任何级联,因为以上的一般规则指示:不管是否存在清理映射表,对特定颗粒的读取都将是相同的。

流程图

图7示出用于执行本发明的实施例的示例性流程。例如,图7的步骤可以在图1的环境中实现。该流程图可以同样代表本发明的高级框图。图7中的流程图和/或框图示出了根据本发明的多种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在这个方面,流程图或方框图中的每个框可代表包括用于实现特定逻辑功能的一个或多个可执行指令的代码模块、代码段或代码部分。此外应该注意的是,在一些另外的实现方式中,框中标注的功能可以不按附图中标注的次序发生。例如,根据所涉及的功能,连续显示的两个框实际上可以基本上并发地执行,或者这些框有时可以按照相反的次序执行。如上所述,流程图的每个框和流程图图示的组合能够由执行特定功能或动作的基于专用硬件的系统或专用硬件和计算机指令和/或软件的组合来实现。此外,流程图的步骤可以由客户机服务器关系中的服务器实现和执行,或者它们可以利用传送给用户工作站的操作信息在用户工作站上运行。在一实施例中,软件元件包括固件、驻留软件、微代码等。

另外,本发明能够采用从提供由计算机或任何指令执行系统使用或结合计算机或任何指令执行系统使用的程序代码的计算机可用或计算机可读介质可访问的计算机程序产品的形式。该软件和/或计算机程序产品能够在图1的环境中实现。为了本说明书描述的目的,计算机可用或计算机可读介质可以是能够包含、存储、传输、传播或传送由指令执行系统、设备或装置使用或者结合指令执行系统、设备或装置使用的程序的任何设备。该介质可以是电子、磁、光学、电磁、红外、或半导体的系统(或设备或装置)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前例子包括压缩盘-只读存储器(CD-ROM)、压缩盘-读/写(CD-R/W)和DVD。

如图7的示例性流程700中所示,在步骤705,位映射工具检查要去除的映射表的增量位映射。在步骤710,位映射工具对于目标盘上的特定颗粒确定分割/差异位映射是否分别是0/0或0/1。如果在步骤710位映射工具确定分割/差异位映射是0/0或0/1,则在步骤715位映射工具不执行清理。另外,在步骤765,位映射工具确定在要去除的映射表的目标盘上是否存在另一颗粒。如果在步骤765位映射工具确定在要去除的映射表的目标盘上存在另一颗粒,则处理前进至步骤705。如果在步骤765位映射工具确定在要去除的映射表的目标盘上不存在另一颗粒,则处理在步骤770结束。

如果在步骤710位映射工具确定分割/差异位映射既不是0/0也不是0/1,则处理前进至步骤720。在步骤720,位映射工具对于要去除的映射表的目标盘上的特定颗粒确定分割/差异位映射是否分别是1/0。如果在步骤720位映射工具对于目标盘上的特定颗粒确定分割/差异位映射是1/0,则处理前进至步骤725。如果在步骤720位映射工具对于目标盘上的特定颗粒确定分割/差异位映射不是1/0,则可以认为分割/差异位映射是1/1,并且处理前进至步骤735。

在步骤725,位映射工具确定在级联中是否存在上游映射表。如果在步骤725位映射工具确定存在上游映射表,则在步骤730位映射工具对于该上游映射表上的该特定颗粒确定分割/差异位映射是否是1/1。如果在步骤730位映射工具对于紧邻的上游映射表上的该特定颗粒确定分割/差异位映射是1/1,则在步骤755位映射工具通过把该颗粒从要去除的映射表的目标盘复制到下游盘来执行该特定颗粒的清理。另外,在步骤745,更新映射表以反映该数据现在包含在该下游盘上。如果在步骤730位映射工具对于紧邻的上游映射表上的该特定颗粒确定分割/差异位映射不是1/1,则在步骤750位映射工具不执行清理。如果在步骤725位映射工具确定不存在上游映射表,则在步骤750位映射工具不执行清理,并且处理前进至步骤760。

在步骤735,位映射工具确定下游盘是否包含该颗粒的拷贝。如果在步骤735位映射工具确定下游盘包含该颗粒的拷贝,则处理前进至步骤750。如果在步骤735位映射工具确定下游盘不包含该颗粒的拷贝,则处理前进至步骤740。在步骤740,执行清理,由此把该颗粒从要去除的映射表的目标盘复制到该下游盘。在步骤745,更新映射表以反映该数据现在包含在该下游盘上,并且处理前进至步骤760。

在步骤760,位映射工具确定在要去除的映射表的目标盘上是否存在另一颗粒。如果在步骤760位映射工具确定在要去除的映射表的目标盘上存在另一颗粒,则处理前进至步骤705。如果在步骤760位映射工具确定在要去除的映射表的目标盘上不存在另一颗粒,则处理在步骤770结束。

本文中使用的术语仅仅是为了描述特定实施例而不是要限制本发明。本文使用的单数形式“a”、“an”和“the”也包括复数形式,除非上下文清楚地指出不是这样。还应该理解,术语“包括”和/或“包含”当在本说明书中使用时指定所述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、部件和/或它们的组的存在或附加。

如果适用的话,则权利要求书中的所有装置或步骤加上功能元件的相应结构、材料、动作和等同物旨在包括与具体要求保护的结合其它要求保护的元件执行功能的任何结构、材料或动作。给出本发明的说明是为了例示和说明的目的,并非是要穷举或者将本发明限制为所公开的形式。很多修改和变化对于本领域普通技术人员而言将是明显的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号