用于形成一致性组的方法、系统和程序的制作方法

文档序号:6495018阅读:360来源:国知局
专利名称:用于形成一致性组的方法、系统和程序的制作方法
技术领域
本发明涉及用于复制数据的方法、系统和程序。
背景技术
灾难恢复系统通常解决两类故障,即单一时间点(point in time)上的突发灾难性故障或一段时间上的数据丢失。为在对数据更新进行恢复时提供辅助,可以在远程位置提供数据的副本。通常在应用系统向主存储设备写入新的数据时得到这种双重副本(dual copy)或卷影副本(shadow copy)。国际商用机器公司(IBM),即本主题专利申请的受让人提供了以下用于维护次级站点的远程数据副本(扩展远程副本(XRC)和对等远程副本(PPRC))的系统。这些系统提供了一种用于在被连续地镜射(mirror)数据的主站点上发生故障期间连续地将数据镜射到用于故障切换(failover)的远程站点的方法。这种数据镜像系统还能够提供用于非恢复目的的附加远程副本,诸如对远程站点的本地访问。IBM文献号为SC35-0169-02的IBM公告“远程复制管理员手册和参考”(Remote CopyAdministrator′s Guideand Reference)(IBM版权1994、1996)中描述了IBM XRC系统和IBM PPRC系统,在此通过引用的方式包含该公告的全部内容。
在这种备份系统中,以卷对(volume pair)的形式来维护数据。卷对包括主存储设备中的一个卷和从存储设备中的一个相应的卷,该相应的卷中包括主卷中所维护的数据的相同副本。通常,可在主直接存取存储设备(DASD)中维护卷对的主卷,并且在对主DASD上的数据进行卷影(shadow)的从DASD中维护卷对的从卷。可以提供主存储控制器以控制对主DASD的访问,并且可以提供从存储控制器以控制对从DASD的访问。
在IBM XRC环境中,向主卷写入数据的应用系统包括SysplexTimer,其将时刻(TOD)值作为时戳提供给数据写入。当在主DASD中将数据集编写为卷时,主机系统为这种数据集设定时戳。数据更新的完整性涉及确保在卷对的从卷上进行的更新的顺序与在主卷上进行更新的顺序相同。在XRC和其他的现有技术系统中,系统代表应用程序提供的跨系统的公共时戳确定并维护对任意数量的存储系统上的任意数量的数据卷的数据更新的逻辑顺序。在诸如数据库系统之类的很多应用程序中,除非发生过前一次写入,否则不会发生某些写入,若非如此,就会危及数据完整性。这种完整性依赖于前一次数据写入的发生的数据写入称为依赖性写入。例如,如果用户开设一个账户,存款400美元,并随后取款300美元,则对系统的取款更新依赖于其他写入的发生开户和存款。当将这种依赖性事务从主卷复制到此从卷时,必须保持事务的顺序以保持依赖性写入操作的完整性。
当已经以所有写入的逻辑顺序来传送了这些写入时,即当传送被依赖写入之前首先传送了所有的依赖性写入时,主DASD和从DASD中的卷是一致的。在银行业务的例子中,这意味着在取款之前将存款写到从卷。一致性组是为确保依赖性写入一致而对主卷进行的一组更新。例如,在银行业务的例子中,这意味着取款事务在与存款相同的一致性组中或在后一个组中,取款不能在前一个一致性组中。一致性组维护多个卷和存储设备上的数据一致性。例如,如果发生故障,则在取款之前将存款写到从卷。因此,当由该从卷恢复数据时,所恢复的数据将是一致的。
一致性时间是系统从应用系统为数据集设定的时戳中得出的时间。一致性组具有针对一致性组中所具有的时戳等于或早于该一致性时戳的所有数据写入的一致性时间。在IBM XRC环境中,一致性时间是系统确保对从卷的更新一致的最近时间。只要应用程序在向主卷写入数据,一致性时间就会增加。然而,如果更新活动停止,则一致性时间就不再变化,原因是没有具有时戳的数据集来为另外的一致性组提供时间参考。如果已将一致性组中的所有记录写到从卷,则所报告的一致性时间反映了一致性组中的所有记录的最近时戳。转让给本专利申请的受让人IBM的美国专利No.5,615,329和No.5,504,861中描述了用于维护数据写入的顺序一致性并形成一致性组以维护在主DASD与从DASD之间数据传送的顺序一致性的方法,并且在此通过引用的方式包含这些专利的全部内容。
用以在多个副本上维护一致性的一种技术是采用称为SysplexTimer的公共时钟源在多个主卷上为数据设定时戳。可以在定义为所有更新所具有的时戳都小于确定时间的组中传送更新。当不能比较容易地实现时钟同步以在多个系统上形成一致性组时,则用于形成一致性组的另一种技术是确定截止时间。将由在截止时间时已过时的主控制器缓存管理的主卷的任意更新传送给从控制器以便存储于从卷中。当传送一致性组中的数据时,主存储控制器会返回“繁忙”给任意主机请求,同时传送一致性组中的数据。在已传送一致性组中的数据并且主存储控制器和从存储控制器同步之后,即在其时戳小于截止时间的任意更新之后,则主控制器会停止返回“繁忙”给应用。这确保了在停止截止时间时,主卷和从卷是一致的。

发明内容
本发明提供了一种用于形成数据的一致性组的方法、系统和程序。提供关于一致性组关系的信息,其表示多个从控制器以及针对每个所示的从控制器的由该从控制器管理的从存储单元。向一致性组关系中的每个从控制器发送命令,以使得每个从控制器将从存储单元中的数据发送给远程存储器以形成该一致性组。确定是否所有的从控制器都成功地将作为一致性组的一部分的从存储单元中的数据发送给了远程存储器。
在另外的实现中,远程存储器位于远程站点,并且将每个从存储单元存储于连接到一个从控制器的存储系统中。
在又一种实现中,每个从控制器维护表示从存储单元中的已更新数据的第一数据结构,其中从控制器将在第一数据结构中表示的从存储单元中的数据发送给远程存储器。此外,向每个从控制器发送命令,以使得从控制器生成第二数据结构,以表示在将第一数据结构中表示的从存储单元中的数据发送给远程存储器期间接收到的对从存储单元的任意写入。
在又一种实现中,向每个从控制器发送命令,以使得在确定所有的从控制器都成功地将从存储单元中的数据发送给了远程存储器之后,每个从控制器发起将数据从远程存储器上的从存储单元复制到远程备份存储器的操作。
本发明还提供了一种用于形成一致性组的方法、系统和程序。从主控制器接收由主控制器发起的生成表示对从存储单元的更新的第一数据结构以形成一致性组的命令,并生成第一数据结构。在生成第一数据结构之后,把完成情况发送给主控制器,并将在第二数据结构中表示的从存储单元中的已更新数据复制到远程存储器,其中复制数据是为了形成一致性组。在成功地将从存储单元中的数据复制到远程存储器之后,把完成情况发送给主控制器。
在另外的实现中,响应于将相应数据发送给远程存储器,在第二数据结构中表示未更新从存储单元中的数据。还响应于第二数据结构未表示待复制到远程存储器的任何已更新数据,在第二数据结构中表示在第一数据结构中表示为“已更新”的从存储单元中的已更新数据。此外,在第二数据结构中表示在完成将数据复制到远程存储器之后接收到的对从存储单元中的数据的更新。


现在参考附图,其中相同的参考标号在全文中代表相应的部分图1是示出实现本发明的各方面的网络计算环境的框图;图2示出了根据本发明的实现的存储控制器的结构;图3示出了根据本发明的实现的关系信息;图4示出了实现本发明的各方面的图1的存储控制器中的组件;
图5-图9示出了根据本发明的实现的存储控制器所执行的将数据复制到远程站点的操作;图10示出了实现本发明的各方面的附加网络计算环境;以及图11示出了采用本发明的实现的网络环境中的诸如存储控制器之类的计算组件的体系结构。
具体实施例方式
在以下的描述中,将参考附图,附图形成描述的一部分并示出本发明的多个实施例。应当理解,可以采用其他实施例,并且可以在不偏离本发明范围的情况下进行结构上和操作上的改变。
图1示出了实现本发明的各方面的网络计算环境。本地站点2包括存储控制器4a、4b、4c,其中每个存储控制器4a、4b、4c分别连接到所连接的存储系统6a、6b、6c。存储控制器4a、4b、4c管理主机系统(未示出)对存储系统6a、6b、6c中的卷的输入/输出(I/O)访问。每个存储控制器4a、4b、4c经由连接12a、12b和12c将数据复制到远程站点10上的相应远程存储控制器8a、8b、8c。存储控制器4a、4b和4c将在时间点上一致的数据发送给远程存储控制器8a、8b、8c,其中远程存储控制器8a、8b、8c将这些数据存储到其相应的所连接的远程存储系统14a、14b、14c。在某些实现中,存储控制器4a、4b、4c将数据连续地发送给远程站点10,并且在某些时刻,存储控制器4a、4b、4c会确保远程站点10上的数据的一致性。在某些实现中,远程站点10可以将数据的一致性组保存到另一个存储器,诸如一致性备份存储器16a、16b、16c,以保持远程站点10上的一致数据的备份。在将数据的一致性组发送给远程存储器14a、14b、14c之后,进行了从远程存储器14a、14b、14c到相应的一致备份存储器16a、16b、16c的备份。尽管图1示出了多个站点上的确定数量的组件,诸如三个存储控制器和三个存储器,但所描述的实现可以在这些站点上采用任意数量的存储控制器和存储系统来操作。
远程站点10可以距离本地站点2上百英里或上千英里。存储控制器对之间的连接12a、12b、12c可以包括诸如专用光纤网络或者由长距离电信载体保持的专用连接之类的专用线路、具有信道扩展器的长距离光纤连接,或者可以通过存储区域网络(SAN)、局域网(LAN)、因特网和内网等网络进行扩展。
本地站点2上的主机系统(未示出)可以针对存储系统6a、6b和6c中的卷执行输入/输出(I/O)操作。该主机系统可以经由本领域中已知的任意网络或连接与存储控制器4a、4b、4c进行通信。本地站点上的存储控制器4a、4b、4c可以与由存储控制器管理的卷具有确定的主-从关系。例如,可以将存储控制器4c之类的一个存储控制器指定为主设备,并且将例如存储控制器4a、4b之类的其他存储控制器指定为从设备,其中由所指定的从设备管理的确定的卷受到指定为主设备的存储控制器的管理。以这种方式,一个主存储控制器可以管理对从控制器的特定卷的远程复制操作,该从控制器被指定为特定主设备的从设备。
存储控制器4a、4b、4c、8a、8b、8c还包括处理器组(processorcomplex)并且可以包括本领域中已知的任意存储控制器或服务器,诸如IBM企业存储服务器(Enterprise Storage Server,ESS)、3990存储控制器等(“Enterprise Storage Server”是IBM的注册商标)。存储系统6a、6b、6c、14a、14b、14c、16a、16b和16c可以包括任意存储设备阵列,诸如简单磁盘捆绑(JBOD)、独立磁盘冗余阵列(RAID)、虚拟化设备等。
图2示出了可以包括在本地站点2上的存储控制器4(例如存储控制器4a、4b、4c)中的程序和信息,包括存储管理软件62、关系信息64、不同步位图(OOS)66以及改变记录(CR)位图68。存储管理软件62可以包括实现数据的远程复制的代码,诸如包括在IBMPPRC扩展距离(IBM PPRC Extended Distance)程序中的代码,以实现在相对较短和相对较长的距离上的数据镜射。文献号为SG24-6568-00的IBM公告“IBM TotalStorage企业存储服务器PPRC扩展距离”(IBM TotalStorage Enterprise Storage Server PPRCExtended Distance)(IBM版权2002年6月)中描述了IBM PPRC扩展距离程序的更多细节,在此通过引用的方式包含该公告的全部内容。由存储管理软件62管理的关系信息64包括分别在存储系统6a、6b、6c上的具有一致性组关系的每个卷(或一个卷的一部分)的信息。对于诸如图1中示出的主-从环境,关系信息64还表示了存储控制器是否为一致性组关系的主设备或者所连接的存储器中的卷是否为一致性组关系中的从卷。指定为主存储控制器的存储控制器(例如存储控制器4c)管理对其所连接的存储器(例如存储系统6c)中的指定卷的或由指定为从设备的其他存储控制器(例如存储控制器4a、4b)管理的其他存储系统(例如存储系统6a、6b)中的卷的一致性组的复制操作。因此,主-从指定可以在逐卷(volume-by-volume)的基础上进行。在替代性的实现中,主-从指定可以在子卷(sub-volume)级别上进行。可以将一个存储控制器中的不同卷指定为不同的时间点的复制关系的从卷。因此,主存储控制器可以控制对分布在由不同的存储控制器管理的存储系统中的卷的复制。
本地存储控制器4a、4b、4c可以通过本地网络18进行通信,本地网络18可以包括直接连接或交换网络。作为替代,如果链路12a、12b、12c还通过本地站点2处的网络而扩展,则存储控制器4a、4b、4c可以通过这些链路进行通信。
在另外的实现中,数据的镜射和一致性组的管理可以在会话的基础上进行。可以将会话定义为包括多个卷,当开始会话时,可以用会话名称来引用这些卷。可以将主-从关系指定给会话,以便该关系可以应用于会话中的所有卷。在会话中定义的所有卷可以包括在同一个一致性组中。
关系信息64可以包括多个关系指定,一个关系指定针对为之将存储控制器指定为主设备或从设备的一个卷。图3示出了包括在关系指定80中的信息。
关系标识字段82表示了一致性组复制关系的ID,原因是在存储控制器4a、4b、4c上可以有多个关系,每个关系指定一组卷。因此,存储控制器4a、4b、4c可以是多个一致性组关系的主设备,或者具有在不同的关系中作为从卷的多个卷。主-从字段84表示该指定是用于主关系还是用于从关系。如果主-从标识符84指定了“主”,则包括该指定80的存储控制器(例如存储控制器4c)就是字段82中所标识的主-从关系中的主设备,即由存储控制器信息86中表示的存储控制器(例如存储控制器4a或存储控制器4b)管理的卷信息88中表示的卷的主设备。否则,如果主-从标识符84指定了“从”,则所连接的存储器(例如存储器6a或6b)中由卷信息88表示的卷就是在字段82所标识的关系中的由存储控制器信息86表示的主存储控制器(例如存储控制器4c)的从卷。可以为主存储控制器(例如存储控制器4c)指定在连接到另一个存储控制器(例如存储控制器4a、4b)的存储器(例如存储系统6a、6b)中或者在连接到主存储控制器(例如存储控制器4c)的存储器(例如存储系统6c)中的从卷。此外,可以将存储控制器指定为所连接的存储器和/或由其他存储控制器管理的存储器中的卷的主设备,并且同时存储控制器包括指定为一个主设备的从卷的卷,其中的主设备可以是存储控制器本身或另一个存储控制器。
此外,主存储控制器的指定信息64可以包括从存储控制器的每个从卷的关系记录80,其中可以分别在字段86和字段88中表示从存储控制器和从卷。可以以与图3中示出结构和格式不同的结构和格式来保持关系信息,并且可以以本领域中已知的任意数据结构来保持关系信息,这些已知的数据结构诸如文本或格式化文本文件、数据库等。
不同步位图66包括用于从存储控制器将复制到相应远程存储器的每个磁轨的位。在正常复制操作期间,将对存储控制器的任意写入记录在不同步位图(OOS)66中,并随后将其复制到远程存储器。改变记录位图68包括用于在一致的数据集形成期间接收到更新的每个磁轨的位,其中由管理从设备(例如存储控制器4a、4b)的主存储控制器(例如存储控制器4c)对在一个时间点上其不同步位图66中的所有数据的所有副本进行这种形成。此外,存储控制器4a、4b、4c可以保持每个卷的这些位图的一个集合,或作为替代,保持所连接的存储器6a、6b、6c中的一组卷的位图66和位图68的一个集合。
在某些实现中,存储控制器始终运行后台处理,以将在其不同步位图中示出为已更新的任意磁轨复制到远程存储器。甚至在已开始形成一致性组并且已创建改变记录位图之后,这种处理仍会在从控制器中继续。图4示出了存储控制器4a、4b、4c的更多细节,其中每个存储控制器称作主存储控制器102,该主存储控制器将数据复制到接收该数据的从存储控制器104,诸如存储控制器14a、14b、14c。主存储控制器102包括主高速缓存106,在主高速缓存106中保持对由主存储控制器102(诸如存储器6a、6b、6c)管理的所连接的存储器108中的磁轨的更新,直到对所连接的主存储器108进行写入(即这些磁轨已过时)时为止。此外,主存储控制器102包括非易失性高速缓存110。非易失性高速缓存110可以是例如靠电池备份的易失性存储器,以保持数据更新和其他数据的非易失性副本。
主存储控制器102包括用于读取数据的读取进程112以及用于写入数据的写入进程114。主存储控制器102还包括异步进程116,其用于将数据从主存储控制器102传送到远程存储器,诸如从存储控制器104上的存储器。在某些实现中,异步进程116可以执行对异步PPRC扩展距离服务的数据同步。在这种情况下,异步进程116针对异步PPRC扩展距离服务连续地运行。在某些实现中,可以有多个异步进程(例如对于PPRC扩展距离,一个异步进程用于主存储器108上的每个卷)。在某些实现中,将读取进程112、写入进程114和异步进程116实现为固件。从存储控制器104将接收到的数据从主存储控制器102写到从存储器120,诸如存储器14a、14b、14c(图1)。可以在存储管理软件62中实现不同的进程112、114和116。
图5示出了由例如存储控制器4c之类的主存储控制器执行的用以管理时间点复制操作的操作。主存储控制器可以实现一种策略,该策略表示该主设备何时将开始形成一致性组以对具有一致性组关系的卷进行复制。此外,主设备可以响应于管理员的命令而开始一致性组形成操作。在主存储控制器开始(方框120中)形成关于特定的一致性组关系的一致性组后,主存储控制器(例如存储控制器4c)查询(方框122中)该特定关系中的每个从存储控制器(例如存储控制器4a、4b),以确定该从设备是否已经完成了对具有该关系的从卷的任意远程复制操作。如上所述,该特定关系的主存储控制器(例如存储控制器4c)可以包括标识字段86中的从存储控制器与从卷88的特定关系中的每个从卷的关系记录80(图3),其中该从存储控制器可以是主设备或不同的存储控制器。在确定(方框124中)所有的从控制器都已经完成了对其相应从卷的远程复制后,则向每个从存储控制器(例如存储控制器4a、4b)发送命令,以为该特定关系中的从卷创建新的改变记录位图68。通过向从设备查询或通过从设备通知主设备远程控制器何时完成,主存储控制器可以知晓从设备已经完成了所有的远程复制。在替代性的实现中,可以不执行方框122的步骤,并且作为替代,控制前进到方框124,以便发送命令给每个存储控制器以创建新的改变记录位图。
图6示出了从存储控制器(例如存储控制器4a、4b)响应于接收到生成从卷的改变记录位图的命令而执行的操作。在接收到(方框150中)生成从卷的改变记录位图68的命令后,从存储控制器(例如存储控制器4a、4b)对针对从卷的任意随后的写入进行排队(方框152中)而不返回“完成”。生成(方框154中)从卷的改变记录位图68并向主设备发送(方框156中)表示对改变记录位图68的初始化的消息。在从主存储控制器(例如存储控制器4c)接收到(方框158中)继续进行写入的消息或命令后,可以完成(方框160中)对从卷的排队写入(queued write),并对改变记录位图68中的已更新的磁轨的位进行设置以表示该更新。作为替代,可以在不同步位图66中而不是改变记录位图68中进行对排队写入的表示。以这种方式,在生成改变记录位图68时,一致性组的形成只将主机写入延迟了较短的一段时间,其中用以对主机写入进行排队的这种延迟甚至可以是不明显的或者可以对主机显示为稍长的写入。然后,从存储控制器(例如存储控制器4a、4b)完成对从卷的任意随后的写入(方框162中),并在存储器(例如存储控制器4a、4b)中的从卷的改变记录位图68中表示对磁轨的更新。
关于图5,主存储控制器(例如存储控制器4c)从所有的从存储控制器(例如存储控制器4a、4b)接收(方框126中)完成消息,该消息表示出这些从存储控制器已经完成了其从卷的改变记录位图68的生成,并且该主存储控制器发送(方框127中)运行消息给从存储控制器以通知它们继续进行其写入。
图7示出了从存储控制器(例如存储控制器4a、4b)在复制磁轨不同步位图(OOS)66时执行的操作,其作为连续运行的异步后台处理的一部分而进行。从存储控制器将从卷的不同步位图(OOS)66中表示的每个磁轨异步地复制(方框182中)到相应的远程存储控制器(例如远程存储控制器8a、8b),并在完成异步复制时对OOS66中的相应磁轨的位设置为“结束”。如果一致性组的形成涉及OOS66,则从存储控制器通知(方框182中)主存储控制器何时已经将从卷的OOS 66中表示的所有磁轨异步地复制到远程站点10上的相应远程存储控制器。如果OOS 66不代表包括处于形成过程中的一致性组中的卷,则可以不向主设备通知完成了对该OOS 66的磁轨的复制。
此外,存储控制器将其不同步(OOS)位图66中表示的数据异步地复制到远程存储器可以执行冲突管理操作。例如,如果存储控制器4a、4b、4c接收到对磁轨的更新,而该磁轨在OOS 66中的相应比特已设置为表示已经存在对该磁轨的更新只是还未将该更新复制到远程站点,其中这种更早的更新可以是或可以不是一致性组的一部分,则存储控制器4a、4b、4c可以采取措施来避免覆盖该较早的更新,直到已经将这些更新复制过来时为止。这种冲突管理可以确保将作为一致性组一部分的较早的更新复制到远程站点以确保形成一致性组的时间上的一致性。在某些实现中,接收更新的存储控制器可以对更新进行排队,直到将较早的更新复制到远程站点时为止。作为替代,当有待复制过来的未决更新时,存储控制器可以对该更新返回“失败”。题为“用于异步复制的方法、系统和持续”(Method,System,and Program for Asynchronous Copy)的、律师存档号为TUC920030119US1的共同未决并共同转让的专利申请中描述了管理关于OOS中表示的已更新的磁轨的冲突的更多细节,在此通过引用的方式包含该专利申请的全部内容并与其在同一天提交。
关于图5,当主存储控制器(例如存储控制器4c)确定(方框128中)所有的从存储控制器(例如存储控制器4a、4b)都已经完成了将其从卷复制到其相应的远程存储控制器(例如远程存储控制器8a、8b),主存储控制器发送命令给每个从控制器,以使得该从控制器接着发送命令,以使得相应的远程存储控制器8a、8b将存储于远程存储器(例如远程存储系统14a、14b)中的从卷复制到一致性备份存储器(例如16a、16b)。在某些实现中,从远程存储器14a、14b、14c到一致性备份16a、16b、16c的复制操作可以包括虚拟复制操作,诸如FlashCopy(快速复制)操作(“FlashCopy”是IBM的注册商标)。FlashCopy操作包括在同一设备或不同设备上的源卷与目标卷之间建立逻辑时间点关系并随后将具有该关系的数据从源卷复制到目标卷。FlashCopy操作确保直到已经将FlashCopy关系中的磁轨固定到其在目标磁盘上的位置之前,该磁轨都驻留在源磁盘上。
图8示出了存储控制器响应于接收到(方框200中)的用以引起远程存储器(例如远程存储系统14a、14b)与一致性备份存储器16a、16b之间的虚拟复制操作的命令而执行的操作。响应于该命令,从存储控制器(例如存储控制器4a、4b)发送(方框202中)命令给相应的远程存储控制器(例如远程存储控制器8a、8b),以使得该远程存储控制器将从卷虚拟复制到相应的一致性备份存储器(例如备份存储器16a、16b)中。然后,从存储控制器向主存储控制器通知(方框204中)远程虚拟复制操作的结果。
关于图5,主存储控制器确定(方框103中)是否已经成功地完成了由每个从存储控制器发送的远程虚拟复制命令。这可以通过主设备向从设备查询或通过从设备通知主设备何时知晓远程虚拟复制操作的结果来确定。如果(方框130中)已经成功地完成了由所有的从设备发起的所有虚拟复制操作,则发送(方框132中)“递增完成”消息给每个从存储控制器,以完成时间点复制操作,并且时间点操作以“完成”结束(方框134中)。否则,如果虚拟复制操作还没有针对所有的从设备成功地完成,则主存储控制器发送(方框136中)命令给远程虚拟复制操作已成功的存储控制器以撤销虚拟复制操作并返回一致性备份(例如备份存储器16a、16b)上的前一时间点副本。题为“针对时间点副本一致性组的自动基础设施实现”(AutonomicInfrastructure Enablement for Point in Time Copy Consistency Groups)的、律师存档号为TUC920030109US1的共同未决并共同转让的专利申请中描述了撤销虚拟复制操作的更多细节,在此通过引用的方式包含该专利申请的全部内容并与其在同一天提交。
图9示出了从存储控制器响应于从主存储控制器接收到(方框220中)的“递增完成”消息而执行的操作。作为响应,从存储控制器将从卷的表示已更新的磁轨的改变记录位图68的已设置的位合并(方框222中)为已用完的不同步(OOS)位图66,并在OOS 66中表示对从卷的随后的写入,而不是现在可以丢弃的改变记录位图68。采用所述的实现,具有一致性组关系的卷可以驻留在由不同的控制器管理的存储系统上。在形成一致性组时,主存储控制器可以协调对不同的存储控制器上的数据的远程复制。
不同步位图66和改变记录位图68可以用于替代性的远程复制环境中。例如,在单一控制器的环境中,不采用任何主-从关系,存储控制器可以接收将由存储控制器管理的特定卷复制到远程站点的一致性组形成命令。作为响应,在生成改变记录位图68时,存储控制器可以对任意另外的写入进行排队。在生成改变记录位图68之后,可以在改变记录位图68中表示任意排队写入和随后的写入,并且可以将不同步位图66中表示的磁轨复制到远程站点。在用完OOS 66并且完成异步远程复制操作之后,可以再次将新的写入记录在OOS66中,将改变记录位图68与OOS 66结合,并随后丢弃该改变记录位图68。此外,在存储控制器接收到时间点复制命令时,可以在一致性卷的远程站点上执行虚拟复制。
图10示出了四种卷解决方案,其中可以以与关于图1而描述的存储控制器4a、4b和4c相同的方式来操作中间站点312上的存储控制器314a、314b、314c,并且可以如同对关于图1而描述的远程站点10上的组件所述而操作远程站点330上的组件。本地站点302和中间站点312可以位于相对靠近的地理区域中,这些地理区域诸如同一建筑、同一校园中的不同建筑、同一城市等。本地站点302与中间站点312之间的连接338a、338b、338c可以包括独立的专用线路,或者这些连接可以通过诸如存储区域网络(SAN)、局域网(LAN)、因特网和内网之类的交换网络而扩展。远程站点330可以距离本地站点302和中间站点312上百英里或上千英里。连接332a、332b、332c可以包括以上关于图1而描述的包括长距离连接的连接12a、12b、12c。
在图10的实现中,主机可以将I/O请求导向管理本地站点302上的存储系统306a、306b、306c的存储控制器304a、304b、304c。然后,本地站点302上的存储控制器304a、304b、304c可以将任意写入同步地复制到中间站点312上的存储控制器314a、314b、314c。在某些实现中,在本地存储控制器304a、304b、304c将数据同步地复制到中间站点312之前,主机写入不会完成。然后,主存储控制器(例如存储控制器314c)会根据在中间站点312上的主存储控制器中实现的远程复制策略如同关于图5-图9所述而异步地管理远程站点330上的一致性组的形成。
另外的实现细节可以将所述形成一致性组的技术实现为一种采用标准编程方法和/或标准工程方法来产生软件、固件、硬件或其任意组合的方法、设备或生产说明。在此所用的术语“生产说明”是指在硬件逻辑(例如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)中实现的代码或逻辑,或者是指计算机可读介质,诸如磁存储介质(例如硬盘驱动器、软盘、磁带等)、光存储器(CD-ROM、光盘等)、易失性存储设备和非易失性存储设备(例如EEPROM(电可擦除只读存储器)、ROM(只读存储器)、PROM(可编程只读存储器)、RAM(随机存取存储器)、DRAM(动态随机存取存储器)、SRAM(静态随机存取存储器)、固件、可编程逻辑等)。计算机可读介质中的代码可以由处理器组访问或执行。实现优选实施例的代码还可以通过传输介质来访问或从网络上的文件服务器访问。在这种情况下,实现这些代码的生产说明可以包括传输介质,诸如网络传输线路,无线传输介质,通过空间、无线电波、红外信号传播的信号等。因此“生产说明”可以包括具体实现这些代码的介质。此外,“生产说明”可以包括具体实现、处理和执行这些代码的硬件组件和软件组件的组合。当然,本领域的普通技术人员应当意识到,在不偏离本发明范围的情况下,可以对这种配置进行多种修改,并且该生产说明可以包括本领域中已知的任意信息承载介质。
所述实现是针对IBM异步级联PPRC(IBM AsynchronousCascading PPRC)计算环境而描述的。然而,用于保持一致性的所述实现可以应用于在其他计算和生产环境中并且使用不同于在此描述的复制协议和程序的其他复制协议和程序来保持一致性。
在所述的实现中,在分布式计算环境中执行主设备和存储控制器的处理。在替代性的实现中,可以在执行主存储控制器处理的同一机器或平台中执行一个或多个从处理器操作。
在某些实现中,将存储设备中的数据排列为卷。在替代性的系统中,可以根据存储单元而不是卷来对保持数据的存储区域进行组合,为保持一致性,在组合过程中而不是在会话中对这些存储区域进行组合。
在所述的实现中,在主-从复制关系中指定为从设备的存储单元包括卷。在替代性的实现中,可以将其他存储单元值指定为主设备的从设备,其中这种存储单元可以包括卷、块、逻辑子系统、逻辑驱动器或本领域中已知的任意其他物理的或逻辑的存储单元设计中的轨。
在所述的实现中,在将数据更新从一个存储控制器传送到另一个存储控制器之前,将这些数据组织为一致性组。在替代性的实现中,在不同的存储控制器之间复制的数据可以不包括一致性组。
用于形成一致性组的所述操作可以用于较高的可用性很重要的关键数据环境中。然而,本领域的普通技术人员应当意识到,在此描述的时间点复制操作可以应用于较高的可用性不是绝对必须的、用于非关键数据的存储系统中。
在所述的实现中,每个存储控制器将数据复制到具有所连接的远程存储系统的相应远程存储控制器。在替代性的实现中,本地站点或中间站点上的多个存储控制器可以将数据复制到一个远程存储控制器,其中单一的远程存储控制器可以从多个本地存储控制器或中间存储控制器接收时间点数据。
图5-图9所示的逻辑示出了以确定顺序发生的某些事件。在替代性的实现中,某些操作可以用不同的顺序来执行、可以进行修改或者可以去掉。此外,可以向上述逻辑添加步并仍符合所述实现。此外,在此描述的操作可以顺序地进行,或者某些操作可以并行地处理。此外,这些操作可以由单一的处理单元执行或由分散的多个处理单元执行。
图11示出了网络组件的计算机体系结构400的一种实现,该网络组件诸如图1和图9中示出的存储控制器。体系结构400可以包括处理器402(例如微处理器)、内存404(例如易失性存储设备)以及存储器406(例如非易失性存储器,诸如盘驱动器、光盘驱动器、带驱动器等)。存储器406可以包括内部存储设备或所连接的存储器或网络可访问存储器。将存储器406中的程序加载到内存404中并由处理器402以本领域中已知的方式执行。该体系结构还包括网卡408,以实现于网络的通信。输入设备410用于向处理器402提供用户输入,并且可以包括键盘、鼠标、手写笔、麦克风、触摸敏感显示屏或本领域中已知的任意其他激活机械装置或输入机械装置。输出设备412能够呈现从处理器402或诸如显示器、打印机、存储器等其他组件发送来的信息。
以上对本发明的各种实现的描述是为了说明和描述的目的而提出的。这些描述并非旨在穷举或旨在将本发明严格地限制为所公开的形式。可以在以上陈述的基础上进行多种修改和变更。可以预期,本发明的范围不是由这些详细描述限定,而是由所附权利要求限定。以上具体描述、示例和数据提供了对生产和使用本发明的组件的全面描述。由于在不偏离本发明范围的情况下可以得到本发明的多种实施例,因此本发明由以下所附的权利要求限定。
权利要求
1.一种形成数据的一致性组的方法,包括提供关于一致性组关系的信息,该一致性组关系表示多个从控制器以及对于每个所示的从控制器由该从控制器管理的从存储单元;向所述一致性组关系中的每个从控制器发送命令,以使得每个从控制器将所述从存储单元中的数据发送给远程存储器以形成所述一致性组;以及确定是否所有的所述从控制器都成功地将作为所述一致性组的一部分的所述从存储单元中的数据发送给了所述远程存储器。
2.根据权利要求1所述的方法,其中所述远程存储器位于远程站点,并且其中将每个从存储单元存储于连接到一个从控制器的存储系统中。
3.根据权利要求1或2所述的方法,其中提供关于一致性组关系的信息、向每个从控制器发送所述命令以及确定是否所有的所述从控制器都成功地发送了所述从存储单元中的数据以形成所述一致性组的操作由与所述从控制器进行数据通信的主控制器执行。
4.根据权利要求3所述的方法,其中所述主控制器还包括管理一个从存储单元的一个从控制器,所述从存储单元包含待发送给所述远程存储器的数据。
5.根据权利要求1-4中的任意一项所述的方法,其中每个从控制器维护表示所述从存储单元中的已更新数据的第一数据结构,其中所述从控制器将在所述第一数据结构中所示的所述从存储单元中的数据发送给所述远程存储器,所述方法还包括向每个从控制器发送命令,以使得所述从控制器生成第二数据结构,以表示在将所述第一数据结构中所示的所述从存储单元中的数据发送给所述远程存储器期间接收到的对所述从存储单元的任意写入。
6.根据权利要求1-5中的任意一项所述的方法,还包括向每个从控制器发送命令,以在确定所有的所述从控制器都成功地将所述从存储单元中的数据发送给远程存储器之后,使得每个从控制器发起将所述数据从所述远程存储器上的从存储单元复制到远程备份存储器的操作。
7.根据权利要求6所述的方法,还包括确定是否成功地将所述数据从所述远程存储器上的所述从存储单元复制到所述远程备份存储器;以及响应于确定没有成功地将所述数据从所述远程存储器上的所述从存储单元复制到所述远程备份存储器,向其从存储单元数据已被成功地复制到所述远程备份存储器的每个从控制器发送命令,以撤销将所述从存储单元数据从所述远程存储器复制到所述远程备份存储器的操作。
8.根据权利要求6所述的方法,其中从所述远程存储器到所述远程备份存储器的复制操作包括虚拟复制操作。
9.根据权利要求1-8中的任意一项所述的方法,其中所述远程存储器包括多个远程存储系统,其中每个远程存储系统连接到一个或多个远程存储控制器,其中每个从控制器将数据发送给一个或多个远程存储控制器以将所述从存储单元数据存储于连接到所述远程存储控制器的所述远程存储系统中,并且其中每个存储单元包括一个数据卷。
10.根据权利要求1-9中的任意一项所述的方法,还包括将数据从本地控制器复制到所述从控制器以存储于所述从存储单元中,其中所述本地控制器和从控制器在不同的地理位置上,并且相对于包括所述本地控制器和从控制器的地理位置,所述远程存储器在一个远程地理位置上。
11.一种用于形成一致性组的方法,包括从主控制器接收由所述主控制器发起的生成表示对从存储单元的更新的第一数据结构以形成一致性组的命令;生成所述第一数据结构;在生成所述第一数据结构之后,把完成情况发送给所述主控制器;将在第二数据结构中表示的从存储单元中的已更新数据复制到所述远程存储器,其中复制所述数据是为了形成所述一致性组;以及在成功地将所述从存储单元中的所述数据复制到所述远程存储器之后,把完成情况发送给所述主控制器。
12.根据权利要求11所述的方法,还包括响应于将相应数据发送给所述远程存储器,在所述第二数据结构中表示未更新所述从存储单元中的数据;响应于所述第二数据结构未表示待复制到所述远程存储器的任何已更新数据,在所述第二数据结构中表示在所述第一数据结构中表示为“已更新”的所述从存储单元中的已更新数据;以及在所述第二数据结构中表示在完成将所述数据复制到所述远程存储器之后接收到的对所述从存储单元中的数据的更新。
13.根据权利要求11或12所述的方法,其中从所述主控制器接收的所述命令包括第一命令,所述方法还包括从所述主控制器接收第二命令,以使得在发送表明已经成功地将所述从存储单元数据复制到所述远程存储器完成的情况之后,将所述从存储单元数据复制到远程备份存储器;以及发送第三命令给管理所述远程存储器的远程控制器,以使得响应于接收到所述第三命令,将所述远程存储器中的所述从存储单元数据复制到所述远程备份存储器。
14.根据权利要求11、12或13所述的方法,还包括将在生成所述第一数据结构时接收到的对所述从存储单元的更新进行排队;在生成所述第一数据结构之后,应用对所述从存储单元的所述更新;以及在所述第一数据结构中表示应用于所述从存储单元的所述已排队的更新。
15.一种与多个从控制器进行通信的系统,其中每个从控制器管理至少一个从存储单元,并且其中每个从存储控制器与一个远程存储器进行通信,所述系统包括用于提供关于一致性组关系的信息的装置,其中一致性组关系表示多个从控制器以及对于每个所示的从控制器的由该从控制器管理的从存储单元;用于向所述一致性组关系中的每个从控制器发送命令,以使得每个从控制器将所述从存储单元中的数据发送给一个远程存储器以形成所述一致性组的装置;以及用于确定是否所有的所述从控制器都成功地将作为所述一致性组的一部分的所述从存储单元中的数据发送给了所述远程存储器的装置。
16.一种与多个主控制器进行通信的系统,包括从存储单元;用于从所述主控制器接收由所述主控制器发起的生成表示对所述从存储单元的更新的第一数据结构以形成一致性组的命令的装置;用于生成所述第一数据结构的装置;用于在生成所述第一数据结构之后,把完成情况发送给所述主控制器的装置;表示所述从存储单元中的已更新数据的第二数据结构;用于将在第二数据结构中表示的从存储单元中的已更新数据复制到所述远程存储器的装置,其中复制所述数据是为了形成所述一致性组;以及在成功地将所述从存储单元中的所述数据复制到所述远程存储器之后,把完成情况发送给所述主控制器。
17.一种用于形成数据的一致性组的产品,其中多个从控制器管理从存储单元,其中所述产品执行如下操作,所述操作包括提供关于一致性组关系的信息,其中一致性组关系表示多个从控制器以及对于每个所示的从控制器的由该从控制器管理的一个从存储单元;向所述一致性组关系中的每个从控制器发送命令,以使得每个从控制器将所述从存储单元中的数据发送给远程存储器以形成所述一致性组;以及确定是否所有的所述从控制器都成功地将作为所述一致性组的一部分的所述从存储单元中的数据发送给了所述远程存储器。
18.一种用于形成数据的一致性组的产品,其中所述产品接收来自主控制器的通信数据并执行如下操作,所述操作包括从主控制器接收由所述主控制器发起的生成表示对从存储单元的更新的第一数据结构以形成一致性组的命令;生成所述第一数据结构;在生成所述第一数据结构之后,把完成情况发送给所述主控制器;将在第二数据结构中表示的从存储单元中的已更新数据复制到所述远程存储器,其中复制所述数据是为了形成所述一致性组;以及在成功地将所述从存储单元中的所述数据复制到所述远程存储器之后,把完成情况发送给所述主控制器。
全文摘要
本发明提供了一种用于形成数据的一致性组的方法、系统和程序。提供关于一致性组关系的信息,该一致性组关系表示多个从控制器以及对于每个所示的从控制器由该从控制器管理的从存储单元。向一致性组关系中的每个从控制器发送命令,以使得每个从控制器将从存储单元中的数据发送给远程存储器以形成该一致性组。确定是否所有的从控制器都成功地将作为一致性组的一部分的从存储单元中的数据发送给了远程存储器。
文档编号G06F11/20GK1860450SQ200480028154
公开日2006年11月8日 申请日期2004年8月19日 优先权日2003年9月29日
发明者盖尔·安德烈亚·斯皮尔, 罗伯特·弗朗西斯·巴特费, 爱德华·西于·魏·林, 威廉·弗兰克·米卡, 奥林匹亚·格卢克, 阿维德·兹洛特尼克, 迈克尔·法克特, 托马斯·查尔斯·贾维斯, 萨姆·克拉克·沃纳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1