删除多目标体系结构中的源和省空间的目标之间的关系转让专利

申请号 : CN201280011948.6

文献号 : CN103415843B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : R·M·玛托赛维奇C·S·梅尔格伦T·M·布朗L·古波塔M·T·本哈斯

申请人 : 国际商业机器公司

摘要 :

本申请涉及删除多目标体系结构中的源和省空间的目标之间的关系。描述了一种用于删除多目标体系结构中的源和目标之间的关系的方法。所述多目标体系结构包括源和映射到其上的多个省空间的(SE)目标。在一个实施例中,所述方法包括最初标识用于从多目标体系结构中删除的关系。然后,标识与所述关系相关联的省空间的(SE)目标。映射结构将SE目标的逻辑磁道中的数据映射到储存库的物理磁道。然后,所述方法标识从SE目标继承数据的同辈SE目标。一旦标识了SE目标和同辈SE目标,所述方法修改映射结构,以便将储存库的物理磁道中的数据映射到同辈SE目标的逻辑磁道。然后,删除源和SE目标之间的关系。在此还描述了相应的计算机程序产品。

权利要求 :

1.一种用于删除多目标体系结构中的源和省空间的目标之间的关系的方法,所述多目标体系结构包括源和映射到其上的多个省空间的目标,所述方法包括:标识用于从多目标体系结构中删除的第一关系;

标识与所述第一关系相关联的省空间的目标,其中,映射结构将所述省空间的目标的逻辑磁道中的数据映射到储存库的物理磁道;

标识从所述省空间的目标继承数据的同辈省空间的目标;

修改所述映射结构以将所述储存库的物理磁道中的所述数据映射到所述同辈省空间的目标的逻辑磁道;以及删除所述第一关系。

2.如权利要求1所述的方法,其中,所述同辈省空间的目标是最近的较年长的同辈COS。

3.如权利要求1或2所述的方法,其中,修改所述映射结构进一步包括:(1)标识在逻辑上存储在所述省空间的目标中的并且在逻辑上不存储在所述同辈省空间的目标中的数据;以及(2)修改所述映射结构,以便在逻辑上存储在所述省空间的目标中但在逻辑上不存储在所述同辈省空间的目标中的所述数据在逻辑上存储在所述同辈省空间的目标中。

4.如权利要求3所述的方法,进一步包括:标识用于从所述多目标体系结构中删除的第二关系。

5.如权利要求4所述的方法,进一步包括:确定所述第二关系是否比所述第一关系年长。

6.如权利要求5所述的方法,进一步包括:如果所述第二关系比所述第一关系年长,则在所述第一关系之前删除所述第二关系。

7.如权利要求5所述的方法,进一步包括:如果所述第一关系比所述第二关系年长,则在所述第二关系之前删除所述第一关系。

8.如权利要求5所述的方法,其中,确定所述第二关系是否比所述第一关系年长包括:查找与所述第一和第二关系相关联的源,并且比较与所述第一和第二关系相关联的生成号以确定哪一个关系较年长。

9.如权利要求1所述的方法,其中,标识用于删除的第一关系进一步包括:将与所述第一关系相关联的关系条目标记为已删除。

10.如权利要求9所述的方法,其中,删除所述第一关系进一步包括:删除与所述第一关系相关联的所述关系条目。

11.一种用于删除多目标体系结构中的源和省空间的目标之间的关系的设备,所述多目标体系结构包括源和映射到其上的多个省空间的目标,所述设备包括:用于标识用于从多目标体系结构中删除的第一关系的标识组件;

所述标识组件进一步可操作用于标识与所述第一关系相关联的省空间的目标,其中,映射结构将所述省空间的目标的逻辑磁道中的数据映射到储存库的物理磁道;

所述标识组件进一步可操作用于标识从所述省空间的目标继承数据的同辈省空间的目标;

用于修改所述映射结构以将所述储存库的物理磁道中的所述数据映射到所述同辈省空间的目标的逻辑磁道的修改组件;以及用于删除所述第一关系的删除组件。

12.如权利要求11所述的设备,其中,所述同辈省空间的目标是最近的较年长的同辈COS。

13.如权利要求11或12所述的设备,进一步包括:

(1)所述标识组件进一步可操作用于标识在逻辑上存储在所述省空间的目标中的并且在逻辑上不存储在所述同辈省空间的目标中的数据;以及(2)所述修改组件进一步可操作用于修改所述映射结构,以便在逻辑上存储在所述省空间的目标中但在逻辑上不存储在所述同辈省空间的目标中的所述数据在逻辑上存储在所述同辈省空间的目标中。

14.如权利要求13所述的设备,其中,所述标识组件进一步可操作用于标识用于从所述多目标体系结构中删除的第二关系。

15.如权利要求14所述的设备,进一步包括:用于确定所述第二关系是否比所述第一关系年长的确定组件。

16.如权利要求15所述的设备,其中,所述删除组件进一步可操作用于如果所述第二关系比所述第一关系年长,则在所述第一关系之前删除所述第二关系。

17.如权利要求15所述的设备,其中,所述删除组件进一步可操作用于如果所述第一关系比所述第二关系年长,则在所述第二关系之前删除所述第一关系。

18.如权利要求15所述的设备,其中,所述确定组件进一步可操作用于查找与所述第一和第二关系相关联的源,并用于比较与所述第一和第二关系相关联的生成号以确定哪一个关系较年长。

19.如权利要求13所述的设备,其中,所述标识组件进一步可操作用于标识用于删除的第一关系,标识用于删除的第一关系进一步包括将与所述第一关系相关联的关系条目标记为已删除。

20.如权利要求19所述的设备,其中,所述删除组件进一步可操作用于删除所述第一关系,删除所述第一关系进一步包括删除与所述第一关系相关联的所述关系条目。

21.一种用于删除多目标体系结构中的源和目标之间的关系的方法,所述多目标体系结构包括源和映射到其上的多个目标,所述方法包括:标识用于从多目标体系结构中删除的第一关系;

标识与所述第一关系相关联的目标;

标识从所述目标继承数据的同辈目标;

将所述数据从所述目标复制到所述同辈目标;以及

删除所述第一关系。

22.如权利要求21所述的方法,其中,所述同辈目标是最近的较年长的同辈COS。

23.如权利要求21或22所述的方法,其中,将所述数据从所述目标复制到所述同辈目标包括:(1)标识存储在所述目标中的未存储在所述同辈目标中的数据,(2)将存储在所述目标中的但未存储在所述同辈目标中的数据从所述目标复制到所述同辈目标。

24.如权利要求21或22所述的方法,进一步包括:标识用于从所述多目标体系结构中删除的第二关系。

25.如权利要求24所述的方法,进一步包括:确定所述第二关系是否比所述第一关系年长。

26.如权利要求24所述的方法,进一步包括:如果所述第二关系比所述第一关系年长,则在所述第一关系之前删除所述第二关系。

27.如权利要求24所述的方法,进一步包括:如果所述第一关系比所述第二关系年长,则在所述第二关系之前删除所述第一关系。

28.如权利要求25所述的方法,其中,确定所述第二关系是否比所述第一关系年长包括:查找与所述第一和第二关系相关联的源,以及比较与所述第一和第二关系相关联的生成号以确定哪一个关系较年长。

29.如权利要求21或22所述的方法,其中,标识用于删除的第一关系进一步包括:将与所述第一关系相关联的关系条目标记为已删除。

30.如权利要求29所述的方法,其中,删除所述第一关系进一步包括删除与所述第一关系相关联的所述关系条目。

说明书 :

删除多目标体系结构中的源和省空间的目标之间的关系

技术领域

[0001] 本发明涉及数据复制,具体来说,涉及用于创建数据的时间点拷贝(point-in-time copy)同时最小化数据副本的设备和方法。

背景技术

[0002] 可以使用诸如 Hitachi ShadowImage等等之类的数据复制功能来生成逻辑卷或数据集的几乎瞬时的时间点拷贝。除了别的用途之外,这些时间点拷贝可以用于灾难恢复和业务连续性目的。IBM FlashCopy特别通过在源卷和目标卷之间建立关系(或“映射”)来创建时间点拷贝。一旦建立了此关系,可以从源卷或者目标卷中读取数据。与目标卷相关联的目标位图跟踪哪些数据磁道已经实际从源卷被复制到目标卷。在某些情况下,卷可以呈现级联配置,以便某些卷同时充当目标和源。在其他情况下,卷可以呈现平的(或“多目标”)配置,以便一个源卷与多个目标卷具有关系。
[0003] 尽管如此,I/O性能可以随着卷的数量在级联或者多目标配置中增大而显著受到影响。例如,在级联配置中,向源卷的写入,在可以执行写入之前,可能需要等待在级联中的各种卷之间复制数据。如此,级联中的卷的数量越大,在数据可以被写入到源卷之前需要发生的复制的数量就越大。类似地,在多目标配置中,向源卷的写入,在可以执行写入之前,可能需要等待数据被复制到每一个连接的目标。多目标配置中的卷的数量越大,在数据可以被写入到源卷之前需要发生的复制的数量就越大。这会使得向源卷的写入非常慢。因此,当前FlashCopy实现在多目标配置中通常只允许有限数量的目标,以使性能影响保持在可接受的范围内。
[0004] 鉴于前面的内容,所需要的是降低在级联或多目标配置中具有大数量卷的性能影响的方法。例如,需要当执行读和写时减少级联或多目标配置中的数据重复的方法。进一步需要有效率地删除级联或多目标配置中的关系的方法。
[0005] 因此,有解决如前所述的问题的需要。

发明内容

[0006] 本发明是响应于当前现有技术状况而开发的,具体来说,响应于当前现有技术中的当前可用的方法还没有完全解决的问题和需求而开发的。相应地,开发了本发明以提供用于删除多目标体系结构中的源和省空间的目标之间的关系的方法、设备、计算机程序产品和计算机程序。通过下面的描述和所附的权利要求,本发明的特点和优点将变得显而易见,或者,如下面所描述的,也可以通过本发明的实践来了解本发明的特点和优点。
[0007] 根据前面的内容,公开了一种用于删除多目标体系结构中的源和目标之间的关系的方法。所述多目标体系结构包括源和映射到其上的多个省空间的(SE)目标。在一个实施例中,所述方法包括最初标识用于从多目标体系结构中删除的关系。然后,标识与所述关系相关联的省空间的(SE)目标。映射结构将SE目标的逻辑磁道中的数据映射到储存库的物理磁道。然后,所述方法标识从SE目标继承数据的同辈SE目标。一旦标识了SE目标和同辈SE目标,所述方法修改映射结构,以便将储存库的物理磁道中的数据映射到同辈SE目标的逻辑磁道。然后,删除源和SE目标之间的关系。
[0008] 从第一方面来看,本发明提供了一种用于删除多目标体系结构中的源和省空间的(SE)目标之间的关系的方法,所述多目标体系结构包括源和映射到其上的多个SE目标,所述方法包括:标识用于从多目标体系结构中删除的第一关系;标识与所述第一关系相关联的省空间的(SE)目标,其中,映射结构将所述SE目标的逻辑磁道中的数据映射到储存库的物理磁道;标识从所述SE目标继承数据的同辈SE目标;修改所述映射结构以将所述储存库的物理磁道中的所述数据映射到所述同辈SE目标的逻辑磁道;以及删除所述第一关系。
[0009] 从再一个方面来看,本发明提供了一种用于删除多目标体系结构中的源和省空间的(SE)目标之间的关系的计算机程序产品,所述多目标体系结构包括源和映射到其上的多个SE目标,所述计算机程序产品包括:可以由处理电路读取的并存储由所述处理电路执行以便执行用于执行本发明的步骤的方法的指令的计算机可读存储介质。
[0010] 从再一个方面来看,本发明提供了一种存储在计算机可读介质上并可加载到数字计算机的内部存储器的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行本发明的步骤。
[0011] 从再一个方面来看,本发明提供了一种用于删除多目标体系结构中的源和省空间的(SE)目标之间的关系的设备,所述多目标体系结构包括源和映射到其上的多个SE目标,所述设备包括:用于标识用于从多目标体系结构中删除的第一关系的标识组件;所述标识组件进一步可操作用于标识与所述第一关系相关联的省空间的(SE)目标,其中,映射结构将所述SE目标的逻辑磁道中的数据映射到储存库的物理磁道;所述标识组件进一步可操作用于标识从所述SE目标继承数据的同辈SE目标;用于修改所述映射结构以将所述储存库的物理磁道中的所述数据映射到所述同辈SE目标的逻辑磁道的修改组件;以及用于删除所述第一关系的删除组件。
[0012] 从再一个方面来看,本发明提供了一种用于在多目标体系结构中执行向目标卷(目标x)的写入的方法,所述多目标卷体系结构包括源卷和映射到其上的多个目标卷,所述方法包括:确定目标x是否具有最近的较年长的同辈(COS),其中所述COS是紧接在所述目标x前面建立的目标卷;确定所述目标x和所述COS中的每一个的目标位图(TBM)是否被置位;如果所述COS和所述目标x两者的TBM都被置位,则将数据从较高源(HS)卷复制到所述COS;
如果所述COS的TBM被置位,而所述目标x的TBM未被置位,则将所述数据从所述目标x复制到所述COS;以及执行向所述目标x的写入。
[0013] 从再一个方面来看,本发明提供了一种用于在多目标体系结构中对目标卷(目标x)执行读取的方法,所述多目标卷体系结构包括源卷和映射到其上的多个目标卷,所述方法包括:读取与所述目标x相关联的目标位图(TBM);确定所述TBM是否置位;如果所述TBM被置位,则从较高源(HS)卷读取数据,其中从所述HS卷读取数据包括:查找与所述目标x相关联的源卷;通过检测所述源卷上的生成号(GN),查找相对于所述目标x的下一较年轻的同辈;以及如果与下一较年轻的同辈相关联的TBM未被置位,则从所述下一较年轻的同辈读取所述数据。
[0014] 从再一个方面来看,本发明提供了一种用于在多目标体系结构中执行向源卷的写入的方法,所述多目标卷体系结构包括源卷和映射到其上的多个目标卷,所述方法包括:将所述源卷的磁道中的数据复制到被映射到所述源卷的目标卷(目标x);允许被映射到所述源卷的至少一个同辈目标卷(同辈)从所述目标x继承所述数据;以及执行向所述源卷的磁道的写入。
[0015] 从再一个方面来看,本发明提供了一种用于删除多目标体系结构中的源和目标之间的关系的方法,所述多目标体系结构包括源和映射到其上的多个目标,所述方法包括:标识用于从多目标体系结构中删除的第一关系;标识与所述第一关系相关联的目标;标识从所述目标继承数据的同辈目标;将所述数据从所述目标复制到所述同辈目标;以及删除所述第一关系。

附图说明

[0016] 现在将参考如下面的附图所示的优选实施例,只作为示例,对本发明进行描述:
[0017] 图1是示出了根据现有技术的包括各种类型的存储系统的并且其中可以实现本发明的优选实施例的网络体系结构的一个示例的高级框图;
[0018] 图2是示出了根据现有技术的方法并且其中可以实现本发明的优选实施例的存储系统的一个示例的高级框图;
[0019] 图3是示出了根据本发明的优选实施例的包括被映射到多个目标卷的源卷的多目标体系结构的一个示例的高级框图;
[0020] 图4是示出了根据本发明的优选实施例的用于从目标卷读取磁道的方法的一个实施例的高级框图;
[0021] 图5是示出了根据本发明的优选实施例的用于响应于对源卷的写入而复制数据磁道的方法的一个实施例的流程图;
[0022] 图6是示出了根据本发明的优选实施例的用于响应于对目标卷的写入而复制数据磁道的方法的一个实施例的流程图;
[0023] 图7是示出了根据本发明的优选实施例的用于响应于对卷的读取而查找较高源(HS)卷的方法的一个实施例的流程图;
[0024] 图8是示出了根据本发明的优选实施例的用于响应于对卷的写入而查找较高源(HS)卷的方法的一个实施例的流程图;
[0025] 图9是示出了根据本发明的优选实施例的示出了使用生成号的多目标体系结构的一个示例的高级框图;
[0026] 图10和11是示出了根据本发明的优选实施例的在对其进行了各种写入之后的图9中所示出的卷的数据和TBM值的表;
[0027] 图12A是示出了根据本发明的优选实施例的源卷和目标卷之间的关系的删除的高级框图;
[0028] 图12B是示出了根据本发明的优选实施例的源卷和省空间的(SE)目标卷之间的关系的删除的高级框图;
[0029] 图13是示出了根据本发明的优选实施例的存储器中的源和目标关系条目的高级框图;
[0030] 图14是示出了根据本发明的优选实施例的用于删除多目标体系结构中的源和SE目标之间的关系的方法的一个实施例的流程图;
[0031] 图15是示出了根据本发明的优选实施例的用于处理删除的关系的方法的一个实施例的流程图;以及
[0032] 图16是示出了根据本发明的优选实施例的用于处理删除的关系的方法的另一实施例的流程图。

具体实施方式

[0033] 可以容易地理解,本发明的组件,如通常所描述的和此处的图中所示出的,可以以各种不同的配置来提供和设计。如此,如在图中所表示的,本发明的优选实施例的下列比较详细的描述,不会限制本发明的范围,如在权利要求中所叙述的,而仅是目前设想的根据本发明的优选实施例的某些示例的代表。通过参考附图,将最好地理解目前所描述的各实施例,其中,类似的部分通过类似的附图标记来表示。
[0034] 如本领域技术人员所了解的,本发明可以作为设备、系统、方法或计算机程序产品来实现。此外,本发明还可以采取硬件实施例、被配置成操作硬件的软件实施例(包括固件、驻留软件、微代码等等),或组合了软件和硬件方面的实施例的形式,此处它们所有的都可以一般地被称为“模块”或“系统”。此外,本发明还可以采取在任何有形的表达介质中实现的计算机可用存储介质的形式,在介质上存储了计算机可用程序代码。
[0035] 可以使用一个或多个计算机可用或计算机可读存储介质的任何组合来存储计算机程序产品。计算机可用或计算机可读存储介质可以是例如但不仅限于电子、磁、光、电磁、红外、或半导体系统、设备或器件。更具体的计算机可读存储介质的示例(非穷尽列表)可以包括下列各项:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CDROM)、光存储设备、磁存储设备。在此文档的上下文中,计算机可用或计算机可读存储介质可以是可以包含、存储、或传输供指令执行系统、设备或器件使用或与它们结合使用的程序的任何介质。
[0036] 用于执行本发明的操作的计算机程序代码可以以一种或多种编程语言的任何组合来进行编写,包括诸如 Smalltalk、C++等等之类的面向对象的编程语言,以及诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。用于实现本发明的计算机程序代码也可以以诸如汇编语言之类的低级别的编程语言来编写。程序代码可以作为独立软件包完全在用户的计算机上,部分地在用户的计算机上执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何网络类型连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商,通过因特网)。Java以及所有基于Java的商标和徽标是Oracle和/或其附属的商标或注册商标。
[0037] 下文可以参考根据本发明的各实施例的方法、设备、系统、以及计算机程序产品的流程图例示和/或框图来描述本发明。可以理解,流程图例示和/或框图的每个框,流程图例示和/或框图中的框的组合,都可以通过计算机程序指令或代码来实现。这些计算机程序指令可以被提供到通用计算机、专用计算机、或其他可编程数据处理设备的处理器以产生机器,以便通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在该流程图和/或框图的框中所指定的功能/动作的装置。
[0038] 计算机程序指令也可以存储在计算机可读存储介质中,计算机程序指令可以指示计算机或其他可编程数据处理设备以特定方式运转,以便存储在计算机可读存储介质中的指令产生一种包括了指令装置的物品,该指令装置实现了流程图和/或框图的框中所指定的功能/动作。计算机程序指令也可以加载到计算机或其他可编程数据处理设备中,以使一系列操作步骤在计算机上或其他可编程设备上执行,以产生计算机实现的进程,以便在计算机或其他可编程设备上执行的指令提供用于实现在流程图和/或框图的框中所指定的功能/动作的过程。
[0039] 参考图1,示出了网络体系结构100的一个示例。呈现网络体系结构100,以示出了其中可以实现根据本发明的时间点复制(point-in-time-copy)方法的环境的一个示例。网络体系结构100是只作为示例而非限制来呈现的。实际上,除所示出的网络体系结构100之外,此处所公开的方法还可以适用于各种不同的计算机、服务器、存储设备以及网络体系结构。
[0040] 如图所示,网络体系结构100包括通过网络104互连的一台或多台计算机102,106。网络104可以包括例如局域网(LAN)104、广域网(WAN)104、因特网104、或内联网104等等。在某些实施例中,计算机102,106可以包括客户端计算机102和服务器计算机106(此处也被称为“主机系统”106)。一般而言,客户端计算机102启动通信会话,而服务器计算机106等待来自客户端计算机102的请求。在某些实施例中,计算机102和/或服务器106可以连接到一个或多个内部或外部直接外接存储系统112(例如,硬盘驱动器、固态驱动器、磁带驱动器等等的阵列)。这些计算机102,106和直接外接存储系统112可以使用诸如ATA、SATA、SCSI、SAS、光纤通道等等之类的协议来进行通信。存储系统112中的一个或多个可以使用此处所公开的时间点复制方法。
[0041] 在某些实施例中,网络体系结构100可以包括服务器106背后的存储网络108,诸如存储区域网络(SAN)108或LAN108(例如,当使用网络附属存储器)。此网络108可以将服务器106连接到一个或多个存储系统110,诸如硬盘驱动器或固态驱动器的阵列110a、磁带库
110b、单个硬盘驱动器110c或固态驱动器110c、磁带驱动器110d、CD-ROM库等等。为访问存储系统110,主机系统106可以通过从主机106上的一个或多个端口到存储系统110上的一个或多个端口的物理连接来进行通信。连接可以是通过交换机、构造(fabric)、直接连接等等。在某些实施例中,服务器106和存储系统110可以使用诸如光纤通道(FC)连网标准来进行通信。存储系统110中的一个或多个可以使用此处所公开的时间点复制方法。
[0042] 参考图2,示出了包含硬盘驱动器204和/或固态驱动器204的阵列的存储系统110b的一个实施例。示出了存储系统110b的内部组件,因为此处所公开的时间点复制方法可以在某些实施例中在这样的存储系统110b内实现,虽然该方法也可以适用于其他存储系统110。如图所示,存储系统110b包括存储控制器200、一个或多个交换机202、以及诸如硬盘驱动器204或固态驱动器204(诸如基于闪存的驱动器204)之类的一个或多个存储设备204。存储控制器200可以允许一个或多个主机106(例如,开放系统和/或大型机服务器106)访问一个或多个存储设备204中的数据。
[0043] 在选定的各实施例中,存储控制器200包括一个或多个服务器206。存储控制器200还可包括主机适配器208和设备适配器210,以将存储控制器200分别连接到主机设备106和存储设备204。多个服务器206a、206b可以提供冗余,以确保数据始终对所连接的主机106可用。如此,当一个服务器206a发生故障时,其他服务器206b可以拾取发生故障的服务器206a的I/O负载,以确保I/O能够在主机106和存储设备204之间继续。此过程可以被称为“故障转移”。
[0044] 具有类似于图2中所示出的体系结构的体系结构的存储系统110b的一个示例是IBM  企业存储系统。IBM DS8000是提供被设计用于支持连续操作的磁盘存储器的高性能大容量的存储控制器。尽管如此,此处所公开的方法不限于IBM DS8000企业存储系统110b,而是可以在任何可比较的或类似的存储系统110中实现,不管与系统110相关联的制造商、产品名称、或组件或组件名称是什么。此外,可以得益于本发明的一个或多个优选实施例的任何存储系统都被认为在本发明的范围内。如此,IBM DS8000只作为示例而非限制来呈现的。IBM、FlashCopy、DS8000是IBM公司在世界范围的许多管辖区域注册的商标。
[0045] 在选定的各实施例中,每一个服务器206都可以包括一个或多个处理器212和存储器214。存储器214可以包括易失性存储器(例如,RAM)以及非易失性存储器(例如,ROM、EPROM、EEPROM、硬盘,闪存等等)。在某些实施例中,易失性和非易失性存储器可以存储在处理器212上运行的并被用来访问存储设备204中的数据的软件模块。服务器206可以托管这些软件模块的至少一个实例。这些软件模块可以管理向存储设备204中的逻辑卷的所有读和写请求。
[0046] 在选定的各实施例中,存储器214包括高速缓存218。每当主机106(例如,开放系统或大型机服务器106)执行读取操作时,执行读取的服务器206可以从存储设备204获取数据,并将它保存在其高速缓存218中,以便在再次需要时使用。如果由主机106再次请求数据,则服务器206可以从高速缓存218获取数据,代替从存储设备204中获取它,这会节省时间和资源。类似地,当主机106执行写入时,接收到写入请求的服务器106可以将写入存储在其高速缓存218中。然后,服务器106可以在时间和资源允许时将写入转出到存储设备204。
[0047] 参考图3,示出了用于创建时间点拷贝的多目标体系结构300的一个示例。这样的体系结构300可以在诸如图2中所示出的存储系统110b之类的存储系统110内实现。如图所示,多目标体系结构300包括源卷302和一个或多个目标卷304a-d。目标卷304a-d中的每一个都包含源卷302中的数据的时间点拷贝。在选定的各实施例中,诸如在FlashCopy实现中,通过在源卷302和目标卷304之间建立关系(或“映射”)来创建时间点拷贝。一旦建立了此关系,就可以从源卷302或者目标卷304中读取数据,尽管数据仍可能没有从源卷302复制到目标卷304中。与目标卷304相关联的目标位图(TBM)306跟踪哪些数据磁道已经实际从源卷302被复制到目标卷304。例如,TBM306中的“0”可以表示数据磁道已经被复制(即,目标卷
304具有其自己的数据),而“1”可以表示数据磁道还没有被复制。在TBM306包含“1”的情况下,对目标卷306上的磁道的读取可以被定向到源卷302上的相应的磁道。出于本公开的目的,如果包含“1”,则可以说TBM304中的比特“被置位”,如果它包含“0”,则“复位”,虽然在其他实施例中这可以相反。虽然在所示出的实施例中,源302和目标304都被标记为“卷”,但是应该认识到,源302和目标304也可以是数据集或其他数据集合。
[0048] 如上文所提及的,在常规多目标体系结构300中,在可以完成对源卷302的写入之前,向源卷302的写入可能需要等待源卷302中的数据被复制(即,转出)到不包含其自己的数据的每一个连接的目标卷304a-d。即,在对源卷302的数据磁道执行写入之前,现有的数据磁道需要被复制到在源卷302上数据磁道被改写之前还没有包含数据磁道的目标卷304a-d。多目标体系结构300中的目标卷304a-d的数量越大,在数据可以被成功地写入到源卷302之前需要发生的复制的数量也就越大。这会使得向源卷302的写入非常慢。因此,常规时间点复制技术可以在多目标体系结构300中只支持有限数量(例如,十二)的目标304,以使性能影响保持在可接受的范围内。
[0049] 如下面更详细地说明的,可以使用根据本发明的优选实施例的改善方法来减小将多个目标卷304a-d映射到源卷302的性能影响。代替当对源卷302执行写入时将数据复制到多个目标304a-d,所述改善方法将数据复制到单个目标304或目标304的子集。然后,继承方案允许其他目标304从包含数据的单个目标304或目标304的子集继承数据。如此,向源卷302的写入可以只须在写入可以在源卷302完成之前将数据复制到单个目标304或目标304的子集。图4到8中所示出的流程图示出了实现这样的方法的各种方法的具体示例。
[0050] 参考图4,示出了用于从目标卷304读取磁道的方法400的一个示例。在接收到从目标卷304读取数据磁道的请求之后,方法400确定402目标卷304的TBM是否被置位。如果TBM没有被置位(表示目标卷304包含所请求的数据),则方法400简单地从目标卷304中读取406所请求的数据磁道。另一方面,如果TBM被置位(表示目标卷304不包含所请求的数据),则方法400查找404要从其读取数据的较高源(HS)卷,并从HS卷读取404。与图7相关联地描述了用于查找HS卷的一个方法700。出于本公开的目的,HS卷是包含所请求的数据并且目标卷304从其继承的卷。
[0051] 参考图5,示出了用于响应于向源卷302的写入而转出数据磁道的方法500的一个实施例。如图所示,方法500最初查找502源卷302的最年轻的子(YC)。出于本公开的目的,YC是最后被映射到源卷302的目标卷304。在选定的各实施例中,可以使用生成号(GN)来确定目标卷304被添加到源卷302以便生成时间点拷贝的顺序。将与图9相关联地讨论GN被用来确定目标304被映射到源卷302的顺序的方式。
[0052] 一旦方法500查找到YC,方法500确定504YC的TBM是否被置位。如果TBM没有被置位(表示YC304包含数据的其自己的拷贝),则方法500不执行任何操作508,因为YC304已经具有数据的拷贝。另一方面,如果TBM被置位(表示YC304不包含数据的其自己的拷贝),则方法500将数据从源卷302复制506到YC304。如此,当对源卷302进行写入时,在源卷302和YC304之间进行单次复制,而并非将数据复制到不包含数据的所有目标卷304。然后,其他目标卷
304(不是YC304)可以从YC304继承此数据,诸如当对其他卷304进行读取时或当从其他卷
304复制数据时。
[0053] 参考图6,示出了用于响应于向目标卷304(目标x)的写入而转出数据磁道的方法600的一个实施例。如图所示,方法600最初确定602对于正在向其写入的磁道是否置位了目标x304和最近的较年长的同辈(COS)304的TBM。出于本公开的目的,COS是紧接在目标x304前面被映射的目标卷304。如果两个TBM都被置位(表示两个卷都不包含正在向其写入的磁道中的数据),则方法600将数据磁道从较高源(HS)卷复制604到COS304。将与图8相关联地讨论用于查找HS卷的方法。另一方面,如果目标x的TBM没有被置位,而COS的TBM被置位(表示目标x304包含正在被改写的数据磁道中的数据),如在步骤606中的确定的,则方法600将数据磁道从目标x复制608到COS304——即,数据磁道从目标x304转出到COS304。另一方面,如果COS的TBM没有被置位(表示COS包含数据),或者没有COS,则方法600不执行任何操作
610,因为不需要复制。一旦到达方法600的结束处,可以对目标x执行写入。
[0054] 应该认识到,在不偏离本发明的情况下,可以以各种方式来修改上文所描述的方法500、600。例如,最年轻的子(YC)可以替换为最旧的子,而最近的较年长的同辈(COS)可以替换为最近的较年轻的同辈。如此,出于本公开的目的,使用YC和COS的各实施例也被视为包含使用最旧的子和最近的较年轻的同辈的各实施例。其他变化也是可以的,并在本发明的范围内。
[0055] 参考图7,示出了用于查找HS卷来进行读取的方法700的一个实施例。这样的方法700可以与图4的步骤404相关联地使用。如图所示,方法700最初确定702正在被读取的卷是否是目标卷304。如果否,则方法700从卷中读取704,因为它是源卷302。如果卷是目标卷
304,则方法确定706卷的TBM是否被置位。如果TBM没有被置位,则方法700从卷304中读取
704。如果卷的TBM被置位,则方法700查找708与目标卷304相关联的源卷302。然后,方法700查找710带有刚刚高于所述目标卷304的生成号(GN)的生成号的下一关系。将在图9的示例中更详细地说明使用GN的方式。
[0056] 一般而言,确定步骤710查找源卷302上的仅仅比与所述目标卷304相关联的关系年轻的关系(如在步骤702中标识的)。然后,方法700查找714此关系的目标304。如果此目标304的TBM被置位716,则方法700从目标304中读取。如果此目标304的TBM没有被置位716,则方法700重复步骤710,714,以查找下一较年轻的目标304,并确定716其TBM是否被置位。如此,方法700遍历在步骤702中标识的目标卷304的较年轻的同辈,直到找到包含所需数据的目标卷304。一旦找到此数据,方法700就从目标304中读取718。如果没有找到包含所需数据的较年轻的同辈目标304,则方法700简单地从源卷302中读取712。如此,目标卷304能够当对其执行读取时从同辈304继承数据。
[0057] 参考图8,示出了用于查找从其复制数据的HS卷的方法800的一个实施例。这样的方法800可以与图6的步骤604相关联地使用。如图所示,方法800最初确定802正在向其写入的卷是否是目标卷304。如果否,则不需要复制,如在步骤804中反映的。如果卷是目标卷304,则方法确定806卷的TBM是否被置位。如果TBM没有被置位,则不需要复制。如果卷是目标卷304,并且卷的TBM被置位,则方法查找808与目标卷304相关联的源卷302。然后,方法
800以前面所讨论的方式查找带有较高的生成号(GN)的下一关系。
[0058] 在找到下一较高GN之后,方法800查找814此关系的目标304,该目标304是在步骤802中所标识的目标304的同辈。如果此同辈目标304的TBM没有被置位816(表示它包含所需数据),则方法800将数据从同辈目标304复制818到COS304。如果此同辈目标304的TBM被置位816(表示它不包含所需数据),则方法800重复步骤810,814,以查找下一较年轻的同辈目标304,并确定816其TBM是否被置位。如此,方法800遍历在步骤802中标识的目标卷304的较年轻的同辈,直到找到包含所需数据的同辈目标卷304。一旦找到此数据,方法800将数据从同辈目标304复制818到COS。如果没有找到包含所需数据的同辈目标304,则方法800将数据从源卷302复制812到COS。一旦复制了数据,就可以对在步骤802中标识的目标304执行写入。
[0059] 参考图9,描述了示出使用生成号(GN)的多目标体系结构300的一个示例。在此示例中,假设源卷(SV)302和第一目标卷(TV1)304a之间的关系被首先创建,接下来是源卷302和第二目标卷(TV2)304b之间的关系,接下来是源卷302和第三目标卷(TV3)304c之间的关系。每当向源卷302中添加新关系时,生成号递增。如此,如源卷302所示,第一关系与生成号“1”相关联,第二关系与生成号“2”相关联,而第三关系与生成号“3”相关联。
[0060] 假设最初在源卷302与第一和第二目标卷304a,304b之间建立了关系,但是源卷302和第三目标卷304c之间的关系还没有建立。在此情况下,为向第二目标卷304b的磁道1执行写入,磁道1中的数据被从源卷302(较高源)复制到第一目标卷304a(最近的较年长的同辈或COS),并且第一目标卷304a的TBM被复位。然后,对第二目标卷304b的磁道1执行写入,并且第二目标卷304b的TBM被复位。类似地,为向源卷302的磁道2执行写入,磁道2中的数据被从源卷302复制到第二目标卷304b(最年轻的子或YC),并且第二目标卷304b的TBM被复位(表示它现在包含数据)。然后,对源卷302的磁道2执行写入。在图10中示出了在上文所描述的两次写入之后的驻留在第一目标卷(TV1)304a和第二目标卷(TV2)304b中的数据。还示出了TBM中的值。
[0061] 假设现在在源卷302和第三目标卷304c之间建立了第三关系。为向源卷302的磁道3执行写入,磁道3中的数据被从源卷302复制到第三目标卷304c(最年轻第三子或YC),并且第三目标卷304c的TBM被复位。然后,对源卷302的磁道3执行写入。为向第二目标卷304b的磁道4执行写入,磁道4中的数据被从源卷302(较高源)复制到第一目标卷304a(最近的较年长的同辈或COS),并且第一目标卷304a的TBM被复位。然后,对第二目标卷304b的磁道4执行写入,并且第二目标卷304b的TBM被复位。
[0062] 为向第一目标卷304a的磁道5执行写入,不进行复制,因为没有最近的较年长的同辈或COS。然后,对第一目标卷304a的磁道5执行写入,并且第一目标卷304a的TBM被复位。为向第三目标卷304c的磁道6执行写入,磁道6中的数据被从源卷302(较高源)复制到第二目标卷304b(最近的较年长的同辈或COS),并且第二目标卷304b的TBM被复位。然后,对第三目标卷304c的磁道6执行写入,并且第三目标卷304c的TBM被复位。在图11中示出了在上文所描述的所有六次写入之后驻留在第一目标卷(TV1)304a、第二目标卷(TV2)304b、以及第三目标卷(TV3)304c中的数据。还示出了TBM中的值。
[0063] 参考图12A,在某些情况下,可以从多目标体系结构300中删除源卷302和目标卷304之间的关系,或源卷302和多个目标卷304之间的多个关系。当从多目标体系结构300中删除关系时,源卷302和与关系相关联的目标卷304之间的时间点复制关系结束。在某些实施例中,这可能结束其他同辈目标卷304从为其删除了关系的目标卷304继承数据的能力。
如此,在某些实施例中,在删除关系之前,与关系相关联的目标卷304上的数据可以被复制到一个或多个同辈目标卷304,以便数据仍可以被同辈目标卷304访问。
[0064] 例如,假设标识用于删除的源卷302和目标卷304c之间的关系(如由虚线箭头所指示的)。在删除关系之前,存储在目标卷304c上的并由其他同辈目标卷304继承的数据可以从目标卷304c复制到一个或多个同辈目标卷304,以便数据仍可以被同辈目标卷304访问。例如,在某些实施例中,诸如当使用图4到8中所描述的时间点复制方法时,数据将被复制到最近的较年长的同辈(COS)。通过使用其他时间点复制方法,数据可以被复制到除COS以外的其他同辈目标卷304。尽管如此,出于本公开的目的,假设数据被复制到COS。一旦存储在目标卷304c中的并由其他同辈目标卷304继承的所有数据都被复制到COS,就可以删除源卷
302和目标卷304c之间的关系,从而结束源卷302和目标卷304c之间的时间点复制关系。
[0065] 参考图12B,在某些情况下,可以删除源卷302和省空间的(SE)目标卷304之间的关系。SE目标卷304与标准目标卷304(诸如图12A中所示出的那些)的不同之处在于,数据没有在物理上存储在卷中。相反,SE目标卷304是其数据在物理上存储在公共储存库1200中的虚拟卷(如由虚线所指示的)。映射结构1202跟踪SE目标卷的数据在物理上位于储存库1200中的位置。换句话说,映射结构1202将SE目标卷304的逻辑磁道映射到储存库1200的物理磁道。从主机设备106的角度来看,读写SE目标卷304可以与读写标准目标卷相同。
[0066] 由于SE目标卷304在物理上不存储任何数据,因此当删除关系时,不需要在物理上将数据从SE目标卷304复制到其他同辈SE目标卷304。相反地,可以修改映射结构1202,以便其他同辈SE目标卷,更具体而言,一个或多个COS卷,指向储存库1200中的SE目标卷的数据。换句话说,并非在物理上将数据从一个SE目标卷复制到另一个,如对标准目标卷可能发生的,修改映射结构1202,以便在逻辑上存储在一个SE目标卷中的数据现在在逻辑上存储在另一个SE目标卷中。出于本公开的目的,假设下面引用的所有目标卷都是省空间的(SE)目标卷。
[0067] 参考图13,在某些实施例中,关系表1300存储在存储器214中,以跟踪多目标体系结构300中的每个关系。在某些实施例中,每个关系都具有与其相关联的对应于关系的源的源关系条目1302a,以及对应于关系的目标的目标关系条目1302b。如下面更详细地说明的,当删除关系时,与该关系相关联的源关系条目1302a和目标关系条目1302b可以被标记为“已删除”,以表示所述关系处于正在被删除的过程中(即,映射结构处于正在被修改以将数据映射到COS的过程中,在删除关系的准备中)。以此方式标记关系条目1302a、1302b还可确保数据不会被写入到其关系处于正在被删除的过程中的SE目标卷304中。一旦修改映射结构以便在逻辑上存储在SE目标卷中的数据在逻辑上存储在COS中,就可以删除关系。删除关系可以包括从关系表1300中删除与关系相关联的源关系条目1302a和目标关系条目1302b。
[0068] 参考图14,示出了用于删除多目标体系结构300中的源302和SE目标304之间的关系的方法1400的一个实施例。如图所示,方法1400最初确定1402是否接收到撤消的请求(即,删除关系的请求)。如果接收到撤消的请求,方法1400将与关系相关联的关系条目标记1404为“已删除”。这可以包括将与关系相关联的源关系条目1302a和目标关系条目1302b两者标记1404为“已删除”。然后,方法1400确定1406关系是否已经在过程中,意味着映射结构
1202处于被修改以将数据映射到COS的过程中,在删除关系的准备中。
[0069] 如果关系已经在过程中,方法1400使关系排队1408。在使关系排队之后,方法1400从最老的到最年轻的在队列中排序1408关系,以便在较年轻的关系之前处理较年长的关系。这将理想地最小化映射结构1202被修改的次数。例如,如果映射结构1202被修改以将数据映射到其关系在要删除的队列中的COS,则可能需要再次修改映射结构1202,这会浪费时间和资源。处理从最老的到最年轻的关系将帮助确保映射结构1202被修改最少的次数。
[0070] 可以使用各种不同的方法或技术来确定关系的年龄。在某些实施例中,使用生成号来确定关系的年龄,如图9所示。例如,通过检测源卷302上的生成号,可以容易地确定关系的年龄。在图9的所示出的示例中,每当生成新关系时,就递增生成号。如此,与生成号“1”相关联的关系是最老的,而与生成号“3”相关联的关系是最年轻的。在其他实施例中,可以颠倒这种约定。
[0071] 如果没有关系处于队列中,则方法1400简单地处理1410关系。如果一个或多个关系处于队列中,则方法1400处理1410队列中的下一关系。将与图15和16相关联地描述用于处理1410关系的各种方法。一旦处理了关系,就意味着映射结构1202已经被修改,以便SE目标304将数据映射到COS304,方法1400就从关系表1300中移除1412与关系相关联的关系条目1302a、1302b。这将结束关系。然后,方法1414核查任何其他关系是否处于队列中。如果队列是空的,则方法1400等待1402下一撤消请求。如果队列不是空的,则方法1400处理1410队列中的下一关系。这一过程持续,直到处理完队列中的所有关系。
[0072] 在某些实施例中,方法1400被配置为使得在任何特定时间都可以有多个关系在处理中。在某些实施例中,在任何特定时间在处理中的关系的数量可以是受限的,以便不至于使存储设备204(例如,磁盘驱动器、固态驱动器等等)或与存储设备204相关联的设备适配器210过度驱动。例如,在某些实施例中,设备适配器210和存储设备204可以在任何特定时间仅限于处理某个数量(例如,四个)关系,以不至于使设备过驱动。当同时处理多个关系时,可以给较年长的关系提供比较新的关系更高的优先级,以最小化映射结构1202被修改的次数。
[0073] 参考图15,示出了用于处理关系的方法1410的一个实施例。每当处理1410关系时,都可以执行这样的方法1410,如图14所描述的。如图所示,为处理关系,方法1410最初标识1500与关系相关联的SE目标。然后,方法1410标识1502SE目标的最近的较年长的同辈(COS)。然后,方法1410检查1504SE目标和COS的第一磁道。如果方法1410确定1506磁道的SE目标的TBM没有被置位(表示SE目标包括数据的拷贝)并确定1508磁道的COS的TBM被置位(表示COS不包括数据的拷贝),那么方法1410修改1510映射结构1202,以将储存库1200中的数据映射到COS。然后,COS的TBM对于磁道复位1510,以表示它包括数据的拷贝。然而,如果磁道的SE目标的TBM被置位(表示SE目标不包括数据的拷贝)或磁道的COS的TBM没有被置位(表示COS已经包括数据的拷贝),那么映射结构1202没有被修改,方法1410转到确定步骤
1512。
[0074] 一旦方法1410检查磁道,并修改映射结构1202或者确定不需要修改,方法1410确定1512是否到达SE目标304的最后一个磁道。如果没有到达最后一个磁道,则方法1410检查1514SE目标的下一磁道以及COS的相应磁道,并重复步骤1506,1508,1510,1512。当SE目标
304中的所有磁道都已经被检查,并且对于需要修改的那些磁道,修改了映射结构1202,则方法1410结束。
[0075] 参考图16,示出了用于处理关系的方法1410的另一实施例。每当处理1410关系时,可以代替图15的方法执行这样的方法1410。可以使用图16中所示出的方法1410来解决SE目标中的不同的磁道范围具有不同的最近的较年长的同辈(COS)的实现,诸如在数据集级别的时间点复制实现中。
[0076] 如图所示,为处理关系,方法1410最初标识1600与关系相关联的SE目标,并标识1602SE目标的第一磁道范围(例如,开头五十个磁道)。然后,方法1410标识1604与磁道范围相关联的最近的较年长的同辈(COS)。然后,方法1410检查1606磁道范围的第一磁道和COS的相应磁道。如果方法1410确定1608磁道范围中的磁道的TBM没有被置位(表示磁道包括数据的拷贝),并确定1610COS的相应磁道的TBM被置位(表示COS中的磁道不包括数据的拷贝),那么方法1410修改1620映射结构1202,以将储存库1200中的数据映射到COS。然后,COS中的磁道的TBM被复位1620,以表示它现在包括数据的拷贝。然而,如果SE目标上的磁道的TBM被置位(表示SE目标不包括数据的拷贝)或相应磁道的COS的TBM没有被置位(表示COS已经包括数据的拷贝),那么映射结构1202没有被修改,方法1410转到确定步骤1618。
[0077] 一旦方法1410检查了磁道范围中的磁道,并修改映射结构1202或者确定不需要修改,方法1410就确定1618磁道范围中是否存在另一个磁道。如果在磁道范围中存在另一个磁道,则方法1410通过重复步骤1608,1610,1620,1618来检查1616磁道范围的下一磁道以及COS中的相应磁道。当已经检查完磁道范围中的所有磁道,并对于需要修改的那些磁道,修改了映射结构1202,方法1410确定1614在SE目标中是否有另一个磁道范围。如果有另一个磁道范围,则方法1410标识1604磁道范围的COS,对于磁道范围和标识的COS,重复步骤1606,1608,1610,1620,1618,1616。此过程持续,直到已经检查完SE目标的所有磁道范围,并对于需要修改的那些磁道,修改了映射结构1202。一旦SE目标的所有磁道范围中的所有磁道都已经被检查,并且相应地修改了映射结构1202,则方法1410结束。
[0078] 图中的流程图和框图示出了根据本发明的各种优选实施例的系统、方法和计算机可用介质的可能实现的体系结构、功能、以及操作。关于这一点,流程图或框图中的每一个框都可以代表包括用于实现指定的逻辑功能的一个或多个可执行指令的一个模块、代码段或部分。还应注意,在某些替代实现中,在框中所指出的功能可以不按照图中所说明的顺序发生。例如,依次显示的两个框可以事实上基本上同时地执行,或者,取决于涉及的功能,各框有时也可以按相反的顺序执行。还应该注意,框图和/或流程图例示中的每一个框,以及框图和/或流程图例示中的各框的组合,可以通过执行指定的功能或操作,或专用硬件以及计算机指令的组合的基于专用硬件的系统来实现。