具有多个拷贝目标的存储系统的制作方法

文档序号:6650048阅读:106来源:国知局
专利名称:具有多个拷贝目标的存储系统的制作方法
技术领域
本发明一般地涉及计算机存储系统,并且更具体地涉及提供FlashCopy(R)功能或等同物的高级功能存储系统(FlashCopy是国际商业机器公司的注册商标)。
背景技术
在计算机存储系统领域,存在对被描述为“高级功能”的逐渐增加的需求。这种功能超出了传统的存储控制器系统的简单的I/O功能。高级功能在本领域中是公知的,并且依赖于对元数据的控制,所述元数据被用于保持关于被存储在该系统内的真实的或“用户”数据的状态数据。使用高级功能可获得的操作使得能够快速地对数据的虚拟映像施加各种活动,同时留下真实数据可被用户应用使用。这样一种公知的高级功能是FlashCopy。
在最高的层次上,FlashCopy是这样一种功能,其中使得“某些数据”的第二映像成为是可用的。在其它系统情境(context)中,这种功能某些时候被称为时点拷贝或T0拷贝。第二映像的内容最初与第一映像相同。第二映像被“立即”成为是可用的。在实践中这意味着第二映像被以远少于创建真正的、单独的物理拷贝所需的时间成为是可用的,并且这意味着它可以被建立而不给正在使用的应用的操作带来不可接受的破坏。
一旦被建立,第二拷贝可以被用于多个目的,包括执行备份,系统试验和数据挖掘。最初进行使用的应用继续以其最初的目的使用第一拷贝。与不周FlashCopy的备份对比,在不用FlashCopy的备份中该应用必须被关闭,并且在该应用可以被再次重新开始之前执行所述备份。发现应用足够空闲的时间窗口以便关闭应用越来越难。执行备份的代价正在逐渐增加。因此FlashCopy允许执行备份而不用停止工作的能力具有明显的并且不断增加的商业价值。
FlashCopy实现通过将被编址到所述第二映像(此后称为目标)的读I/O重定向到原始映像(此后称为源),除非该区域已经经历了写,实现第二映像存在的假象。在一个区域已经成为写(或是向源或是向目标)的对象的情况下,则为了保持源和目标都拥有它们自己的数据拷贝的假象,调用一个处理,该处理将写命令的操作挂起,而不使其产生作用,发出从源读受影响的区域的命令,将读出的数据以写应用到所述目标上,然后(并且仅当所有步骤都成功时)释放被挂起的写。对同一区域的后续的写不需要被挂起,因为该目标已经具有了其自己的数据拷贝。这种写入时拷贝的技术是公知的,并且被用于许多环境。
FlashCopy的所有实现都依赖于管理着上述决定的数据结构,即,关于在目标处接收到的读是将被发送到源还是目标的决定,以及关于是否必须挂起写以便允许进行写入时拷贝的决定。所述的数据结构实质上追踪被从源拷贝到目标的数据区域或颗粒(grain),与那些没有被拷贝的数据区域或颗粒不同。在其最简单的形式中,以位图的形式保持这种数据结构,所述位图示出了哪些颗粒已经被写了,以及哪些未被写活动触及。
某些存储控制器允许用户为给定的源配置多于一个的目标。这具有多种应用。例如,可以对每个目标进行不同的实验。或所述目标可以在不同的时间(例如,一周内的不同天)被采用,并且允许或许出于从某种数据损坏(诸如,可能由病毒引起)中恢复的目的,历史地访问盘。
通过如图1中所示配置盘,多目标FlashCopy的现有实现扩展了FlashCopy算法,在图1中A是源逻辑单元,并且B和C示出了在过去某一时间被采用的两个目标。每个A,B和C可以被更新。箭头示出了仍然依赖源逻辑单元的颗粒(盘的固定大小的区域)。这些颗粒在追踪每个FlashCopy的进展的位图中具有相应的位“0b”。
这种传统算法简单地并行地布置多个目标,并且依次在每个映射上运行原始的FlashCopy算法。
这具有这样的缺点,即,对源中的颗粒的写可能引起多个颗粒的拷贝(每个关系一个)。上述例子中最后的颗粒将是1。这引起了额外的处理和延迟,并且可能限制现有技术的多FlashCopy布置的可伸缩性,并且因此其可用性。

发明内容
因此,本发明在第一个方面提供了一种可与主计算机装置以及多个被控制的存储装置共同操作的存储控制器,并且包括主机写组件,其可以操作以便将数据对象写到所述多个被控制的存储装置中的一个处的源数据映像;第一拷贝组件,其对第一元数据状态做出响应,并且可以操作以便控制将所述数据对象拷贝到所述多个被控制的存储装置中的一个处的第一目标数据映像;第二拷贝组件,其对第二元数据状态做出响应,并且可以操作以便执行下面中的一个控制将所述数据对象拷贝到所述多个被控制的存储装置中的一个处的第二目标数据映像;以及使所述第一拷贝组件执行将所述第二目标数据映像拷贝到所述第一目标数据映像。
该存储控制器优选地包括第三拷贝组件,其可以操作以便控制所述数据对象到所述多个被控制的存储装置中的一个处的第三目标数据映像的级联(cascade)拷贝。
优选地,所述存储控制器被结合在存储网络内。
优选地,所述存储网络是存储区域网络。
优选地,所述第一和所述第二拷贝组件中的至少一个位于通信网络的不同节点处。
优选地,所述第一和所述第二拷贝组件以及所述第三拷贝组件中的至少一个位于通信网络的不同节点处。
在第二个方面,本发明提供了一种操作可与主计算机装置以及多个被控制的存储装置共同操作的存储控制器的方法,并且包括如下步骤由主机写组件将数据对象写到所述多个被控制的存储装置中的一个处的源数据映像;响应第一元数据状态,由第一拷贝组件将所述数据对象拷贝到所述多个被控制的存储装置中的一个处的第一目标数据映像;响应第二元数据状态,由第二拷贝组件执行下面中的一个控制将所述数据对象拷贝到所述多个被控制的存储装置中的一个处的第二目标数据映像;和使所述第一拷贝组件执行将所述第二目标数据映像拷贝到所述第一目标数据映像。
该方法优选地包括另一个步骤,由第三拷贝组件将所述数据对象级联拷贝到所述多个被控制的存储装置中的一个处的第三目标数据映像。
优选地,所述存储控制器被结合在存储网络内。
优选地,所述存储网络是存储区域网络。
优选地,所述第一和所述第二拷贝组件中的至少一个位于通信网络的不同节点处。
优选地,所述第一和所述第二拷贝组件以及所述第三拷贝组件中的至少一个位于通信网络的不同节点处。
在第三个方面,本发明提供了一种包括计算机程序代码的计算机程序,当被装入到计算机系统内并被在其上执行时,使得所述计算机执行根据第二实施例的方法的步骤。第二实施例优选的方法步骤可由相应的程序代码要素执行。
因此本发明的优选实施例提供了一种级联结构中的FlashCopy映射的布置,并且可起作用以便确保任何主机I/O所需的写的数目被局限为2,而不论级联结构中目标盘的数目如何。


现在将参考附图,仅以示例的方式说明本发明的优选实施例,其中图1示出了具有多个并行目标的现有技术的数据布置;图2示出了本发明的优选实施例可以被应用于其中的初始数据布置;图3示出了本发明的第一层次的优选实施例已经被应用于其中的更新的数据布置;图4A示出了图2和3的数据布置的简化视图;
图4B示出了已被引入了另一个目标的图4A的数据布置的视图;图4C示出了已被引入了再一个目标的图4A的数据布置的视图;图5示出了从中删除了一个目标的图4A的数据布置的视图;图6是一个示意图,示出了根据本发明的一个实施例的存储控制器的结构;和图7示出了根据本发明的优选实施例的方法的步骤。
具体实施例方式
假设A和B已经处于FlashCopy关系,并且C被作为A的拷贝添加。在建立映像C时,可如图2中所示布置所述关系。
实际上,B被作为C(其在这个时刻与A相同)的拷贝建立,并且C是A的拷贝。
B持有的位图描述了其与A的不同,同时正确地描述了其与C的不同。C与A相同,并且具有空的位图。
对A的更新现在仅需要将数据从A拷贝到C的拷贝操作。相反,对C的更新需要两个拷贝操作,从A到C和从C到B。这是因为对一个链的中部的更新迫使对两侧中的每一侧上的关系进行拷贝。
例如,使用图2的布置,如果我们对A中的第一和第四颗粒,以及C中的第二和第六颗粒应用更新,结果如图3所示。
将FlashCopy结构扩展为包括多于3个盘需要一种使用上面所述的基本方案的迭代布置,其中一个源和两个目标盘的任意三元组的情况如上所述,并且因此所需的主机I/O的数目总是被局限为3。
图4A示出了图2和3的2个映射,但是以简化的形式,暂时忽略了所述颗粒和所述位图中相应的位。
如图4B中所示,获取A的第三个映像涉及在A和C之间插入第四个盘(D)。
如图4C中所示,通过在C和B之间插入E可以实现获取C的映像(级联的FlashCopy)。
任意级联方案中的主要挑战是高效地实现目标读,并且避免锁处理中的死锁。目标读必须锁定所有未被拷贝的颗粒以防更新,直到它发现适当的产生源为止。
重新触发一个关系需要将其从所述链中删除,并且重新将其插入它的初始源之后。(初始源的标识以及在该链中的当前位置必须被保留,以便保持该管理模型)。
如果更下面的映射与链的中部有依赖性(或与该链的更上部有依赖性),在从链的中部删除一个关系的情况中存在要解决的另一个难点。
为了使得管理尽可能地接近树的方案,删除一个关系的处理必须被扩展为隔离所述的依赖性。再次考虑图4A的3个盘的链,并且转到图5,该处理如下。为了删除C●第一个和最后的颗粒OK,因为它们根本不被拷贝;●第四个颗粒OK,因为它被在两个中拷贝;●第三和第五个颗粒OK,因为它们在B中被拷贝;并且●第二个颗粒必须被拷贝到B中,因为C将丢失其拷贝。
因此,需要后台拷贝类型的任务,以便迫使为已经被拷贝到C内的颗粒进行到B中的拷贝。
在该处理发生的同时,被A的更新拷贝的颗粒必须被完全拷贝到B(而不是拷贝到C,并且然后后台拷贝到B)。通过使该逻辑单元离线阻止了对C的更新。这需要删除该关系中的一个异步步骤。删除链的末端处的关系不需要这种异步处理。
因此已经描述了级联FlashCopy更新处理的机能,并且转到图6,示出了本发明的优选实施例已经被实现在其内的存储控制器的简化的示意图。
在图6中示出了可以与主计算机装置102,以及多个被控制的存储装置104,106,1040,1060共同操作的存储控制器100,并且包括主机写组件108,其可以操作以便将数据对象110写到所述多个被控制的存储装置104,106,1040,1060中的一个处的源数据映像112;第一拷贝组件114,其对第一元数据状态做出响应,并且可以操作以便控制将所述数据对象110拷贝到所述多个被控制的存储装置104,106,1040,1060中的一个处的第一目标数据映像116;第二拷贝组件118,其对第二元数据状态做出响应,并且可以操作以便执行下面中的一个控制将所述数据对象110拷贝到所述多个被控制的存储装置104,106,1040,1060中的一个处的第二目标数据映像120,以及使所述第一拷贝组件114执行将所述第二目标数据映像120拷贝到所述第一目标数据映像116;其中所述控制拷贝和执行拷贝独立于所述主计算机装置102和所述主机写组件108。
存储控制器100可以包括另一个拷贝组件122,其可以操作以便独立于所述主计算机装置102,所述主机写组件108,所述第一和第二拷贝组件114,118,控制将所述数据对象110级联拷贝到所述多个被控制的存储装置104,106,1040,1060中的一个处的另一个目标数据映像124。
现在转到图7,示出了一种方法的一系列步骤,根据该方法,本发明的优选实施例可以被实现在硬件逻辑布置、软件或它们的组合中。
图7的方法用于操作可以与主计算机装置以及多个被控制的存储装置共同操作的存储控制器。为了说明本发明的优选实施例的优点,示出了最复杂的情况即这样一种情况,其中对位于一组级联的盘的中部的盘发起写活动。
在步骤200,主机写组件将数据对象写到所述多个被控制的存储装置中的一个处的源数据映像。
在这种最坏的情况中,向级联的中部发出主机写命令(即,图4a中示出的盘A,C,B中的盘C),并且所述位图指出C还没有被从A拷贝,并且B也还没有被从C拷贝(这又必须从A读)。
在这种情况下,所需的I/O是在步骤202从A读该颗粒的数据,然后在步骤204写到B。在步骤206用于C的新的写数据被与从A读出的数据合并,并且在步骤208被应用到盘C。然后在步骤210所述位图被更新,以便示出B已经被从C拷贝,然后在步骤212更新以便示出C已经被从A拷贝(这些位图更新的顺序是重要的)。
不再需要其它的主机I/O,即使C之后具有也需要被拷贝的长的盘级联。
本领域的普通技术人员容易理解,对于本领域的普通技术人员来说,对上述实施例的各种进一步修改是显而易见的。
本领域的技术人员将会明白,本发明的方法可以适合地被包含在逻辑装置内,所述逻辑装置包括用于执行该方法的步骤的逻辑设备,并且这些逻辑设备可以包含硬件组件或固件组件。
应当理解,上面所述的方法还适于被完全地或部分地承载在运行在一个或多个处理器(未示出)上的软件内,并且所述软件可以被作为承载在任意适合的数据载体(也未示出)上的计算机程序元件被提供,所述数据载体诸如磁的或光学计算机盘。另外用于数据传输的通道可以包括所有种类的存储介质以及信号承载介质,诸如有线或无线信号介质。
本发明可以被适合地表述为用于计算机系统的计算机程序产品。这种实现可以包括一系列计算机可读指令,所述计算机可读指令或是固定在有形介质诸如计算机可读介质(例如,磁盘,CD-ROM,ROM或硬盘),或可通过调制解调器或其它接口设备,或是在有形介质(包括但不限于光学或模拟通信链路)上,或使用无线技术(包括但不限于微波,红外线或其它传输技术)无形地传输到计算机系统。所述计算机可读指令序列包含此处前面描述的全部或部分功能。
本领域的技术人员将会理解,可用用于许多计算机体系结构或操作系统的多种编程语言编写这种计算机可读指令。另外,这种指令可以被使用当前的或未来的任意的存储器技术存储,包括但不限于,半导体,磁的或光学的,或被使用当前的或未来的任意通信技术传输,包括但不限于,光学的,红外线的,或微波。可以设想,这种计算机程序产品可以作为带有附带的打印的或电子文档的可移动介质被分发,例如收缩包装式软件,被预先装载到计算机系统,例如,在系统ROM或固定盘上,或通过网络(例如,因特网或万维网)从服务器或电子公告板被分发。
还应当理解,可以用为顾客部署的服务的形式提供本发明的实施例,以便提供站外灾难恢复服务。
还应当理解,对上述优选实施例的各种进一步的修改对于本领域的普通技术人员将是显而易见的。
权利要求
1.一种可与主计算机装置以及多个被控制的存储装置共同操作的存储控制器,包括主机写组件,其可操作地将数据对象写到所述多个被控制的存储装置中的一个存储装置处的源数据映像;第一拷贝组件,其对第一元数据状态做出响应,并且可操作地控制将所述数据对象拷贝到所述多个被控制的存储装置中的一个存储装置处的第一目标数据映像;第二拷贝组件,其对第二元数据状态做出响应,并且可操作地执行下面中的一个控制将所述数据对象拷贝到所述多个被控制的存储装置中的一个存储装置处的第二目标数据映像;和使所述第一拷贝组件执行将所述第二目标数据映像拷贝到所述第一目标数据映像。
2.如权利要求1的存储控制器,包括第三拷贝组件,其可操作地控制所述数据对象到所述多个被控制的存储装置中的一个存储装置处的第三目标数据映像的级联拷贝。
3.如权利要求1或权利要求2的存储控制器,包括其中所述存储控制器被结合到存储网络中。
4.如权利要求3的存储控制器,其中所述存储网络是存储区域网络。
5.如权利要求1的存储控制器,其中所述第一和第二拷贝组件中的至少一个位于通信网络的不同节点处。
6.如权利要求2的存储控制器,其中所述第一和第二拷贝组件以及所述第三拷贝组件中的至少一个位于通信网络的不同节点处。
7.一种操作可与主计算机装置以及多个被控制的存储装置共同操作的存储控制器的方法,包括如下步骤由主机写组件将数据对象写到所述多个被控制的存储装置中的一个存储装置处的源数据映像;响应第一元数据状态,由第一拷贝组件将所述数据对象拷贝到所述多个被控制的存储装置中的一个存储装置处的第一目标数据映像;响应第二元数据状态,由第二拷贝组件执行下面中的一个控制将所述数据对象拷贝到所述多个被控制的存储装置中的一个存储装置处的第二目标数据映像;和使所述第一拷贝组件执行将所述第二目标数据映像拷贝到所述第一目标数据映像。
8.如权利要求7的方法,包括另一个步骤,由第三拷贝组件将所述数据对象级联拷贝到所述多个被控制的存储装置中的一个存储装置处的第三目标数据映像。
9.如权利要求7或权利要求8的方法,其中所述存储控制器被结合到存储网络中。
10.如权利要求9的方法,其中所述存储网络是存储区域网络。
11.如权利要求7的方法,其中所述第一和第二拷贝组件中的至少一个位于通信网络的不同节点处。
12.如权利要求8的方法,其中所述第一和第二拷贝组件以及所述第三拷贝组件中的至少一个位于通信网络的不同节点处。
13.一种包括计算机程序代码的计算机程序,当被装入计算机系统并被在其上执行时,使得所述计算机执行权利要求7到12中任意一个的方法的步骤。
全文摘要
一种可与主计算机装置以及多个被控制的存储装置共同操作的存储控制器,包括主机写组件,用于将数据对象写到多个被控制的存储装置中的一个处的源数据映像;第一拷贝组件,其对第一元数据状态做出响应,并且可操作地控制将数据对象拷贝到多个被控制的存储装置中的一个处的第一目标数据映像;第二拷贝组件,其对第二元数据状态做出响应,并且可操作地执行下面中的一个控制将数据对象拷贝到多个被控制的存储装置中的一个处的第二目标数据映像;和使第一拷贝组件执行将第二目标数据映像拷贝到第一目标数据映像。
文档编号G06F11/20GK1794161SQ20051011528
公开日2006年6月28日 申请日期2005年11月11日 优先权日2004年12月23日
发明者C·F·芬特 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1