数据处理系统中执行远程复制的方法和存储数据的方法转让专利

申请号 : CN200710007742.7

文献号 : CN1983153B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 武田贵彦安积义弘山神宪司铃木胜喜白银哲也

申请人 : 株式会社日立制作所

摘要 :

一种在数据处理系统中执行远程复制的方法,数据处理系统包括第一存储系统和第二存储系统,第一存储系统包括第一主机和与第一主机相连的第一存储子系统,第二存储系统包括第二主机和与第二主机及第一存储子系统相连的第二存储子系统,所述方法包括:存储数据;传送日志;发送数据传输通知;发送命令;发送数据传输请求;当接收到来自第二存储子系统的数据传输请求时,从第二存储区向第二存储子系统中的第三存储区传输日志;向第二主机发送来自第二存储子系统的完成通知;获得对应于日志的恢复数据;以及执行日志的恢复过程。本发明还涉及一种在存储系统中存储数据的方法。

权利要求 :

1.一种远程复制系统,包括:

一个主虚拟磁盘阵列系统,所述主虚拟磁盘阵列系统包括一个虚拟化服务器和多个磁盘阵列装置,一个辅助虚拟磁盘阵列系统,所述辅助虚拟磁盘阵列系统包括一个虚拟化服务器和多个磁盘阵列装置,主机和辅助主机,

其中主站点由主机和主虚拟磁盘阵列系统组成,辅助站点由辅助主机和辅助虚拟磁盘阵列系统组成;

其中与主站点相连的磁盘阵列装置和与辅助站点相连的磁盘阵列装置在数量和种类上相同,主机对主虚拟磁盘阵列系统发出写请求,所述写请求通过虚拟化服务器被转换并且接着被发送到主虚拟磁盘阵列系统中相应的磁盘阵列装置,辅助主机向相应的辅助虚拟磁盘阵列系统发出读请求,所述读请求通过相应的虚拟化服务器被转换并且接着被发送至与辅助主机对应的相应磁盘阵列装置,其中所述主机配置成向所述辅助主机提供日志的管理信息,所述辅助主机配置成在接收所述日志的信息后从接收的所述日志的信息恢复数据。

2.如权利要求1所述的远程复制系统,其特征在于,所述主虚拟磁盘阵列系统和所述辅助虚拟磁盘阵列系统各自包括在主日志卷和辅助日志卷之间的地址关系信息。

3.如权利要求2所述的远程复制系统,其特征在于,所述主日志卷由主虚拟磁盘阵列系统设置。

4.如权利要求2所述的远程复制系统,其特征在于,所述辅助日志卷由辅助虚拟磁盘阵列系统设置。

5.如权利要求1所述的远程复制系统,其特征在于,从主虚拟磁盘阵列系统向辅助虚拟磁盘阵列系统发送的主日志卷数据的命令信息是写命令信息。

6.如权利要求5所述的远程复制系统,其特征在于,主日志卷具有主日志数据区,并且其中当主虚拟磁盘阵列系统接收写入数据到主日志卷时,所述主虚拟磁盘阵列系统还将写入数据和写入数据的写入命令信息存储在所述主日志数据区,该主日志数据区由主虚拟磁盘阵列系统设置,并且其中所述主虚拟磁盘阵列系统将主日志数据区中的写入数据和写入数据的写入命令信息发送到辅助虚拟磁盘阵列系统。

7.如权利要求1所述的远程复制系统,其特征在于,辅助日志卷具有辅助日志数据区,并且其中辅助虚拟磁盘阵列系统通过将从辅助日志数据区读入的数据存储到至少一个辅助日志卷,在由辅助虚拟磁盘阵列系统指定的时间中的一个点建立一个主日志卷的数据。

8.一种远程复制系统,包括:

一个主虚拟磁盘阵列系统,所述主虚拟磁盘阵列系统包括一个虚拟化服务器和多个磁盘阵列装置,一个辅助虚拟磁盘阵列系统,所述辅助虚拟磁盘阵列系统包括一个虚拟化服务器和多个磁盘阵列装置,主机和辅助主机,

其中主站点由主机和主虚拟磁盘阵列系统组成,辅助站点由辅助主机和辅助虚拟磁盘阵列系统组成;

其中与主站点相连的磁盘阵列装置和与辅助站点相连的磁盘阵列装置在数量和种类上相同,主机对主虚拟磁盘阵列系统发出写请求,所述写请求通过虚拟化服务器被转换并且接着被发送到主虚拟磁盘阵列系统中相应的磁盘阵列装置,辅助主机向相应的辅助虚拟磁盘阵列系统发出读请求,所述读请求通过相应的虚拟化服务器被转换并且接着被发送至与辅助主机对应的相应磁盘阵列装置,其中当主虚拟磁盘阵列系统接收到来自辅助虚拟磁盘阵列的数据传送请求时,主虚拟磁盘阵列系统向辅助虚拟磁盘阵列系统传送数据或者数据的命令信息。

9.如权利要求8所述的远程复制系统,其特征在于,从主虚拟磁盘阵列系统向辅助虚拟磁盘阵列系统发送的主日志卷数据的命令信息是写命令信息。

10.如权利要求9所述的远程复制系统,其特征在于,主日志卷具有主日志数据区,并且其中当主虚拟磁盘阵列系统接收写入数据到主日志卷时,所述主虚拟磁盘阵列系统还将写入数据和写入数据的写入命令信息存储在所述主日志数据区,该主日志数据区由主虚拟磁盘阵列系统设置,并且其中所述主虚拟磁盘阵列系统将主日志数据区中的写入数据和写入数据的写入命令信息发送到辅助虚拟磁盘阵列系统。

11.如权利要求8所述的远程复制系统,其特征在于,辅助日志卷具有辅助日志数据区,并且其中辅助虚拟磁盘阵列系统通过将从辅助日志数据区读入的数据存储到至少一个辅助日志卷,在由辅助虚拟磁盘阵列系统指定的时间中的一个点建立一个主日志卷的数据。

12.一种在主系统和辅助系统之间进行远程复制的方法,

其中所述主系统包括:

一个主虚拟磁盘阵列系统,所述主虚拟磁盘阵列系统包括一个虚拟化服务器和多个磁盘阵列装置,其中所述辅助系统包括:

一个辅助虚拟磁盘阵列系统,所述辅助虚拟磁盘阵列系统包括一个虚拟化服务器和多个磁盘阵列装置,该远程复制方法包括下列步骤:

在主日志卷和具有辅助日志数据区的辅助日志卷之间设置远程复制对,主虚拟磁盘阵列系统接收写入数据到主日志卷,通过主虚拟磁盘阵列系统,将写入数据存储在至少一个主日志卷中,将主日志卷的数据和主日志卷的数据的命令信息从主虚拟磁盘阵列系统传送到辅助虚拟磁盘阵列系统,通过辅助虚拟磁盘阵列系统,在辅助日志数据区中存储数据和数据的命令信息,该辅助日志数据区由辅助虚拟磁盘阵列系统设置,通过辅助虚拟磁盘阵列系统从辅助日志数据区读取数据,并且

按照存储在辅助日志数据区的数据的命令信息,通过辅助虚拟磁盘阵列系统恢复从辅助日志卷中的辅助日志数据区读取的数据。

13.如权利要求12所述的进行远程复制的方法,其特征在于,主虚拟磁盘阵列系统和辅助虚拟磁盘阵列系统各自包括一个在主日志卷和辅助日志卷之间的地址关系信息。

14.如权利要求12所述的进行远程复制的方法,其特征在于,主日志卷由主虚拟磁盘阵列系统设置。

15.如权利要求12所述的进行远程复制的方法,其特征在于,辅助日志卷由辅助虚拟磁盘阵列系统设置。

16.如权利要求12所述的进行远程复制的方法,其特征在于,辅助日志数据区由辅助虚拟磁盘阵列系统设置。

17.如权利要求12所述的进行远程复制的方法,其特征在于,从主虚拟磁盘阵列系统向辅助虚拟磁盘阵列系统发送的主日志卷数据的命令信息是写命令信息。

18.如权利要求17所述的进行远程复制的方法,其特征在于,主日志卷具有主日志数据区,并且其中当主虚拟磁盘阵列系统接收写入数据到主日志卷时,所述主虚拟磁盘阵列系统还将写入数据和写入数据的写入命令信息存储到所述主日志数据区,该主日志数据区由主虚拟磁盘阵列系统设置,并且其中所述主虚拟磁盘阵列系统将主日志数据区中的写入数据和写入数据的写入命令信息发送到辅助虚拟磁盘阵列系统。

19.如权利要求12所述的进行远程复制的方法,其特征在于,辅助虚拟磁盘阵列系统通过将从辅助日志数据区读入的数据存储到至少一个辅助日志卷,在由辅助虚拟磁盘阵列系统指定的时间中的一个点建立一个主日志卷的数据。

说明书 :

数据处理系统中执行远程复制的方法和存储数据的方法

[0001] 本申请是申请号为03154056.2、申请日为2003年8月11日、发明名称为“包括存储系统的数据处理系统”的发明专利申请的分案申请。

技术领域

[0002] 本发明涉及将存储在第一存储系统中的数据复制到第二存储系统中的技术。

背景技术

[0003] 近年来,为了随时向客户提供连续的服务,涉及远程复制的技术变得重要起来,以便在主存储系统发生故障时数据处理系统可提供存储服务。授予Mohan的U.S专利NO.5170480公开了一种将存储在第一信息存储系统中的信息复制到第二信息存储系统中的技术。在Mohan技术中,与磁盘阵列装置(下文中称之为“主磁盘阵列装置”)相连的包含于第一信息处理系统中的计算机(下文中称之为“主主机”)将存储在主磁盘阵列装置中的数据通过通信线路和包含于第二信息处理系统中的计算机(下文中称之为“辅助主机”),发送给包含于第二信息处理系统中的磁盘阵列装置(下文中称之为“辅助磁盘阵列装置”)。
[0004] 另一方面,由于计算机网络的发展,企业拥有的信息处理系统变得越来越复杂。其结果是,集中管理与网络相连的装置的需求增加了。为满足这种需求,已经设计出一种称之为虚拟化的技术,其中,对通过例如光纤信道网或因特网的网络彼此相连的多个存储子系统集中管理,并将其作为虚拟的单一或多个存储子系统提供给用户。从而,信息处理系统的用户可以使用多个存储子系统,就仿佛它是单一的存储子系统。
[0005] 在本说明书中,术语“存储子系统”指这些存储装置:例如,硬盘驱动器、多个硬盘驱动器集合、控制单元控制多个硬盘驱动器的磁盘阵列装置、等等。
[0006] 本说明书中,术语“存储系统”和“站点”都指包括一个或多个主计算机和一个或多个与主计算机相连的存储子系统的系统。
[0007] 主计算机将简称为“主机”。
[0008] 存储装置将简称为“存储器”。

发明内容

[0009] 现在,考虑将Mohan的技术应用于复杂信息处理系统的情形。
[0010] 在Mohan系统中,存储在两个磁盘阵列装置中的数据在主主机和辅助主机之间传输。也就是说,每个主机都用作数据传输路径。而且,与网络相连的每一台主机将信息保存在多个与网络(网络地址等等)相连的磁盘阵列装置中。
[0011] 因此,每个主机从很多个现有的磁盘阵列装置中适当地选出一个,轻易地将数据复制到选定的磁盘阵列中。具体讲,在将Mohan的技术应用于虚拟化的情形下,可以使控制虚拟装置(计算机或交换机)及主机的装置彼此合作。然而,由于存储在各磁盘阵列装置中的数据通过通信链路在各主机之间传输,会出现增加主机信道负荷和连接主机的线路流量的问题。
[0012] 本发明的一个实施例旨在解决上述问题。主主机和辅助主机监视与主机相连的存储子系统的状态,例如基于可在各主机上运行的软件监视每个主磁盘阵列装置和辅助磁盘阵列装置。进而,如果需要,主主机或辅助主机将磁盘阵列装置之间的数据传输导向主磁盘阵列装置或辅助磁盘阵列装置。而且,每个主机通过主机之间的通信,在磁盘阵列装置之间交换执行数据传输的信息。另一方面,存储在每个磁盘阵列装置中的数据直接在磁盘阵列装置之间传输。利用诸如磁带装置的活动存储媒体而非专用线路传输数据的配置是可能的。
[0013] 在另一实施例中,主磁盘阵列装置将用于更新存储在主磁盘阵列装置中数据的信息作为“日志”(更新历史)存储。更具体地讲,日志是包括用于更新的数据和元数据的拷贝的记录。而且,这样配置主磁盘阵列装置:使之能够根据主主机和辅助主机的指令将日志传送给辅助磁盘阵列装置。辅助磁盘阵列装置更新辅助磁盘阵列装置中存储数据的方法类似于主磁盘阵列装置中执行的更新方法,即根据辅助主机的指令利用接收自主磁盘阵列装置的日志。主磁盘阵列装置中的更新得以在辅助磁盘阵列装置中再现,因此将辅助磁盘阵列装置中的更新称之为“恢复”。
[0014] 在另一实施例中,通过向主磁盘阵列装置发日志拷贝指令传送日志,这是可以采用的。
[0015] 在另一实施例中,还可以采用的是,与各主机相连的磁盘阵列装置是由控制虚拟的装置虚拟化的存储子系统。在这种情况下,数据传输在控制虚拟的各装置之间执行或由连接到控制虚拟的装置的各存储子系统执行。
[0016] 本发明提供了一种在数据处理系统中执行远程复制的方法,所述数据处理系统包括第一存储系统和第二存储系统,所述第一存储系统包括第一主机和与所述第一主机相连的第一存储子系统,第二存储系统包括第二主机和与所述第二主机及第一存储子系统相连的第二存储子系统,所述方法包括:
[0017] 根据所述第一主机的指令将数据存储到所述第一存储子系统的第一存储区中;
[0018] 将与所述第一存储区中的所述数据对应的日志存储在所述第一存储子系统的第二存储区中;
[0019] 通知所述第一主机所述第一存储子系统已准备就绪,一旦给定数量的所述日志存储到所述第二存储区中,就向所述第二存储子系统传送所述日志;
[0020] 从所述第一主机向所述第二主机发送数据传输通知,以通知所述第二主机所述第一存储子系统已准备好将所述日志传送给所述第二存储子系统;
[0021] 当接收到所述数据传输通知时,从所述第二主机向所述第二存储子系统发送命令;
[0022] 当接收到来自所述第二主机的所述命令时,从所述第二存储子系统向所述第一存储子系统发送数据传输请求;
[0023] 当接收到来自所述第二存储子系统的所述数据传输请求时,从所述第二存储区向所述第二存储子系统中的第三存储区传输所述日志;
[0024] 向所述第二主机发送来自所述第二存储子系统的完成通知,以通知所述第二主机所述第二存储子系统已经通过连接所述第一和第二存储子系统的数据传输链路完成从所述第一存储子系统的所述日志接收;
[0025] 在所述第二存储子系统接收来自所述第二主机的恢复命令,以便获得对应于所述日志的恢复数据;以及
[0026] 在接收所述恢复命令以获取所述恢复数据时,在所述第二存储子系统执行所述日志的恢复过程,所述恢复数据是存储在所述第一存储子系统中的数据拷贝,[0027] 其中所述第一主机和第二主机通过通信链路彼此相连,以发送或接收有关所述远程复制方法的管理信息。
[0028] 本发明还提供了一种在存储系统中存储数据的方法,第一存储系统包括第一主机和与所述第一主机相连的第一存储子系统,第二存储系统包括第二主机和与所述第二主机及第一存储子系统相连的第二存储子系统,所述方法包括:
[0029] 根据与所述第一存储子系统相关联的第一主机的指令将数据存储到所述第一存储子系统中的第一存储区中;
[0030] 将从已存储在所述第一存储区中的至少一部分初始数据得到的基础日志存储在第二存储区中;
[0031] 将更新日志存储到所述第一存储子系统中的第二存储区中,所述更新日志与存储在所述第一存储区中的数据相对应,所述更新日志包括日志数据和元数据;
[0032] 通知所述第一主机所述第一存储子系统已准备好向所述第二存储系统传送所述更新日志和基础日志,以便所述第一主机可以通过第一通信链路通知所述第二主机所述第一存储子系统已准备好向所述第二存储系统传送所述更新日志和所述基础日志,所述第一通信链路配置成在所述第一主机和第二主机之间交换管理信息;
[0033] 通过不同于所述第一通信链路的数据传输路径向所述第二存储系统传送包括所述更新日志和基础日志的日志;
[0034] 所述第二存储系统接收包括所述更新日志和所述基础日志的日志,将所述日志存储在所述第二存储系统的第三存储区中,并在所述第二存储系统的第四存储区中恢复包括在所述日志中的数据;以及
[0035] 所述第一主机通过所述第一通信链路从所述第二主机接收通知,以便从所述第一主机向所述第一存储子系统发送指令,令其准备用于存储新信息的所述第二存储区。

附图说明

[0036] 图1显示根据本发明一个实施例的数据处理系统的硬件配置。
[0037] 图2是表示根据本发明的一个实施例的图1所示数据处理系统中执行的操作要点的流程图。
[0038] 图3显示图1公开的一个数据处理系统的一个实施例中的日志获取、拷贝和恢复处理操作。
[0039] 图4显示图1所示实施例所用PVOL和主日志卷2222A。
[0040] 图5显示主日志卷和辅助日志卷中日志数据区的对应关系。
[0041] 图6表示根据本发明的一个实施例的日志获取、拷贝和恢复处理细节的流程图。
[0042] 图7显示根据本发明系统的另一实施例的数据处理系统。
[0043] 图8显示根据本发明的另一实施例的数据处理系统。
[0044] 图9显示根据本发明的另一实施例的数据处理系统。
[0045] 图10显示图1所示数据处理系统的逻辑配置。
[0046] 图11显示根据本发明的另一实施例的数据处理系统。
[0047] 图12显示根据本发明的另一实施例的数据处理系统。
[0048] 图13显示根据本发明的另一实施例的数据处理系统。
[0049] 图14显示根据本发明的另一实施例的数据处理系统。
[0050] 图15显示根据本发明的另一实施例的数据处理系统。
[0051] 图16显示包括磁盘阵列装置地址信息的表格,其中,磁盘阵列装置包括虚拟存储卷,该虚拟存储卷已与图13所示虚拟化服务器300B中的主机相关联。
[0052] 图17显示图1所示数据处理系统所用的辅助日志卷和SVOL。

具体实施方式

[0053] 图1显示根据本发明第一实施例的数据处理系统50的硬件配置。
[0054] 该数据处理系统包括具有主主机100A和主存储子系统或磁盘阵列装置200A的第一存储系统10(下文中称之为“主存储系统”或“主站”)、具有辅助主机100B和辅助存储子系统或磁盘阵列装置200B的第二存储系统20(下文中称之为“辅助存储系统”或“辅助站”)、以及远程控制台40。在本说明书中公开的实施例中,为说明目的将磁盘阵列装置用作存储子系统。存储子系统可以是不同于磁盘阵列装置的存储装置,亦不受其限制。主站和主磁盘阵列装置可以分别称之为第一主站和第一磁盘阵列装置。类似地,辅助站和辅助磁盘阵列装置可以分别称之为第二主站和第二磁盘阵列装置。
[0055] 每个主机100(主主机100A和辅助主机100B)是具有CPU 110、主存储器120和输入/输出(I/O)处理装置130的计算机。例如,它可以是工作站、微计算机、大型计算机、如此等等。
[0056] 每个磁盘阵列装置200(主磁盘阵列装置200A和辅助磁盘阵列装置200B)具有存储控制器210、多个磁盘单元220和SVP(服务处理器)230。存储控制器210具有主机适配器211、高速缓冲存储器212、磁盘适配器213、处理器214和控制存储器215。
[0057] 主主机100A和辅助主机100B通过光纤信道66分别与主磁盘阵列装置200A和辅助磁盘阵列装置200B相连。每个主机100的CPU 110和主存储器120通过I/O处理装置130和光纤信道66连接到磁盘阵列装置200的主机适配器211。
[0058] 此外,主磁盘阵列装置200A和辅助磁盘阵列装置200B通过光纤信道68彼此相连。主磁盘阵列装置和辅助磁盘阵列装置可以配备于同一房间或大楼内。或者,可以使它们相隔相当远的距离,以避免两个装置同时发生共同故障。如果主站10和辅助站20之间的距离很长,该距离超过光纤信道68的数据可传输距离,磁盘阵列装置就可以通过长距离通信链路,例如经由除光纤信道68以外的扩展装置的ATM(异步传输模式)相连。
[0059] 远程控制台40也是计算机,它具有CPU和主存储器。远程控制台40、主主机100A、辅助主机100B、主磁盘阵列装置200A和辅助磁盘阵列装置200B通过IP网络48,例如LAN(局域网)或WAN(广域网)互联。也就是说,数据处理系统50包括至少两条连接主存储系统和辅助存储系统的通信链路:链接磁盘阵列装置200A和200B的光纤信道68,链接主机100A和100B的IP网络48。在本实施例中,这两条通信链路属于不同的技术,如上所述。然而,通信链路48和66可以属于同一种技术,例如,它们都可以是IP网络。
[0060] 图10显示图1所示数据处理系统的逻辑配置。
[0061] 在每个主机100中,异步拷贝管理程序150是用于控制磁盘阵列装置200之间数据传输的程序,它在CPU 110中执行。异步拷贝管理程序150存储在主存储器120中。执行异步拷贝管理程序的各主机100就有关日志处理(例如,日志获取和转移,以及利用日志的数据恢复)的操作对各自的磁盘阵列装置200进行管理,以响应直接或通过网络输入到各主机100的用户请求,或者预先安排的请求。日志处理的细节将在后面描述。
[0062] 此外,各主机100的异步拷贝管理程序150在日志处理期间利用IP网络48互相通信,交换促进日志处理的所需的例如日志创建状态的管理信息,这些将在后面描述。
[0063] 在各磁盘阵列装置200的存储控制器210中由处理器214执行拷贝程序2110和日志备份/恢复程序2120。这些程序存储在控制存储器215中。日志备份/恢复程序2120由日志备份程序和日志恢复程序构成。而且,存储控制器210根据来自主机以及拷贝程序2110和日志备份/恢复程序2120的指令,处理对磁盘装置220的I/O请求。
[0064] 磁盘装置220包括或与一个或多个逻辑存储区(卷)相关联。这些逻辑卷根据用户需要,用作数据卷区2210或者日志卷区2222。
[0065] 通过执行异步拷贝管理程序150,各主机100控制为各磁盘阵列装置200配备的日志备份/恢复程序2120和拷贝程序2110。在各主机100中,由各主机100的CPU 110执行用户所用的应用程序152和用作磁盘阵列装置控制接口的程序(下文中称之为“RAID(冗余独立磁盘阵列)管理程序”)。而且,异步拷贝管理程序150和RAID管理程序利用程序之间的通信相互交换信息。
[0066] 在远程控制台40上执行称之为远程控制台存储导航器的程序42。远程控制台40通过执行程序42管理本实施例数据处理系统的各组成成员,更具体地讲,管理主机100和磁盘阵列装置200。程序42存储在远程控制台40的主存储器中。
[0067] 到目前为止,所解释的程序都安装在与各装置相关联的存储媒体中、例如活动存储媒体(诸如光盘和磁光盘)或通过IP网络48安装在这些媒体中。
[0068] 图2是显示第一实施例数据处理系统的操作要点的流程图。
[0069] 在步骤9100,用户利用包含于主机100或远程控制台40中的图形用户界面(“GUI”)向主机100(可以使用主主机100A或辅助主机100B中任何一个)输入一对产生命令。该对产生命令是将主磁盘阵列装置200A的旨在用于日志获取的第一卷(下文中称之为“PVOL”)与辅助磁盘阵列装置200B的第二卷(下文中称之为“SVOL”)2214(是PVOL复制对)相关联的命令。
[0070] 接收这对产生命令的主机100控制第一和第二磁盘阵列装置200A和200B,以便在主磁盘阵列装置200A中分配用于存储PVOL 2212的卷2222A日志(下文中称之为“日志卷”)、并且在辅助磁盘阵列装置200B中分配用于存储SVOL 2214日志的日志卷2222B(步骤9110)。由PVOL 2212和分配给PVOL 2212的日志卷2222A构成一对,称为日志组,并且由SVOL 2214和分配给SVOL 2214的日志卷2222B构成一对,称为日志组。日志组亦称为“日志对”。所述对产生命令还定义了PVOL日志对与SVOL日志对的关联。这种关联(即各日志对的配对)称为“装置组”。
[0071] PVOL和SVOL中每一个都可能只包括一个卷,或可能是两个或更多个卷构成的组(卷组)。用户在输入对产生命令时指定卷组。每个磁盘阵列装置200具备某种能力、使得指定的卷组可以作为单个虚拟卷处理,并好象正在使用单个卷那样执行日志处理(以后描述)。日志卷也可以是卷组。
[0072] 在实施例中,主主机100A主要控制第一磁盘阵列装置200A,辅助主机100B主要控制辅助磁盘阵列装置200B。因此,当辅助主机100B收到对产生命令时,辅助主机100B就应第一磁盘阵列装置200A要求将包含于对产生命令内的多份信息中的信息(指定装置组的信息)通过IP网络48传送给主主机100A。类似地,在第一或主主机100A收到对产生命令时,主主机100A应辅助磁盘阵列装置200B的要求将信息传送给辅助主机100B。
[0073] 至少以下两种方法可以作为分配日志卷的方法用于本实施例:(1)在输入对产生命令时,用户本身指定日志卷;以及(2)主机100任意选择未用的逻辑卷并使用它。例如,采用以下步骤。首先,在各磁盘阵列装置200中,未用的逻辑卷在相应的控制存储器215中作为日志卷池管理,以供将来的用户作为日志卷。
[0074] 各磁盘阵列装置200向各自的主机100通知有关登记于日志卷池中的逻辑卷的信息,例如,磁盘阵列装置200A中的物理地址、物理卷的存储容量等等。接收对产生命令的主机100根据磁盘阵列装置通知的信息选择合适的卷作为日志卷。在一个实施例中,所选择的卷无论是单个卷还是卷组(即多个卷)并不重要。如果它是多个卷,就将这些卷作为单个虚拟卷处理。
[0075] 用户可以规定在主机100上执行的正常应用程序是否能发出日志卷I/O请求。有两种情况:(1)一种是将磁盘装置220上分配用于正常I/O处理的卷选作日志卷;以及(2)另一种是将主机100不能用于正常I/O处理的卷选作日志卷。
[0076] 在前一种情况中,可以由主机100上的正常应用程序或通过光纤信道与磁盘阵列装置200相连的另一主机查看日志。因此,日志统计信息的获取和控制可由正常应用程序执行,但存在错误地破坏日志的可能性。
[0077] 在后一种情况中,仅当执行异步拷贝管理程序150的主机100使各磁盘阵列装置200执行日志恢复程序或拷贝程序时,才允许查看主机100的日志。因此,日志不会被主机
100执行的正常I/O处理破坏。
[0078] 随后,执行日志处理,例如,在第一存储系统10中(步骤9120)。日志处理包括获取操作9122、拷贝操作9124和恢复操作9126。日志获取操作或过程9122包括在从主主机100收到日志获取开始命令后,主磁盘阵列装置200A获取PVOL 2212的日志。在收到该命令后,主磁盘阵列装置200A在每次到PVOL 2212的写操作(步骤9200和9210)之后开始在日志卷2222A中存储日志数据和元数据(步骤9220)。日志数据是根据写命令写或更新的数据的拷贝。元数据提供如下有关信息:在PVOL 2212中存储更新数据的时间、写(更新)数据的存储地址、日志数据区中的相应日志数据地址和数据长度。日志由日志数据和相应的元数据构成。
[0079] 在日志获取处理已经开始之后,各主机100执行异步拷贝管理程序150,并定期控制日志拷贝处理。日志拷贝处理涉及在第一和第二磁盘阵列装置200A和200B之间转移日志。当主主机100A根据从主磁盘装置200A获得(细节以后描述)的有关日志创建状态的信息判定日志需要拷贝时(例如预定数量的信息已经存储到主磁盘装置200A内的日志卷2222A中),就启动日志拷贝过程9124。主主机100A依次通过链路48通知辅助主机100B。
[0080] 由此,辅助主机100B于是向辅助磁盘阵列装置200B发送拷贝请求(“日志拷贝请求命令”),以从主磁盘阵列装置200A开始日志传输(步骤9300)。
[0081] 在收到日志拷贝请求命令时,辅助磁盘阵列装置200B向主磁盘阵列装置200A发出数据读请求(步骤9310)。主磁盘阵列装置200A通过执行拷贝程序2110向辅助磁盘阵列装置200B发送所请求的数据。日志拷贝处理的细节将在以后描述。
[0082] 另一方面,即使开始日志拷贝处理,也不将日志获取过程开始之前已存储到PVOL2212中的数据传送给辅助磁盘阵列装置200B。因此,有必要从PVOL 2212将这些数据(下文中称之为“初始数据”)拷贝到SVOL 2214中。在本实施例中,初始拷贝过程用于将初始数据从PVOL 2212传送到SVOL 2214(步骤9130)。根据主机100的指令,将初始数据从卷首区顺序传送给PVOL 2212的尾部。还可以通过允许各磁盘阵列装置200自身执行拷贝程序2110来执行这个过程。
[0083] 初始拷贝和日志拷贝处理可以异步执行和并行执行。也就是说,可以在已根据对产生命令指定PVOL 2212和SVOL 2214之后,执行初始拷贝,而不管是否已经执行或正在执行日志获取过程和日志拷贝过程。然而,只要初始拷贝尚未完成,SVOL 2214的内容不会反映PVOL2214,即使恢复过程9126已在辅助磁盘阵列装置200B处执行。恢复或恢复过程包括利用根据拷贝过程9124从主磁盘阵列装置200A接收到的日志更新或拷贝SVOL 2214中PVOL 2212的数据。
[0084] 在一个实施例中,由辅助磁盘阵列装置200B启动的初始拷贝向主磁盘阵列装置200A发出一个或多个读命令,以减少主磁盘阵列装置200A的负荷。
[0085] 一旦所有初始数据已复制到辅助磁盘阵列装置200B的SVOL 2214中,拷贝程序2110B就向辅助主机100B报告初始拷贝完成。随后,就有可能在辅助站20中精确地恢复数据。一般讲,在日志获取处理开始之后开始初始拷贝。
[0086] 日志获取过程9122可被从主机100A到主磁盘阵列装置200A的命令(“日志获取停止命令”)停止。
[0087] 在收到辅助主机100B的日志恢复请求命令(步骤9400)之后,辅助磁盘阵列装置200B就利用存储在日志卷2222B中的日志恢复存储在SVOL 2214中的数据(步骤9410)。
这个过程称为日志恢复过程。日志恢复过程的细节将在以后描述。
[0088] 图3说明根据本发明的第一实施例的日志获取、日志拷贝和日志恢复过程。这些过程由相应主机100A和100B通过执行异步拷贝管理程序150加以控制。主磁盘阵列装置200A执行日志备份/恢复程序2120中的日志备份程序2122。通过执行日志备份程序2122,主磁盘阵列装置200A把将要写入PVOL 2212中的数据拷贝作为日志数据存储到日志卷2222A中。主磁盘阵列装置200A还将元数据作为日志的一部分存储到日志卷2222A中。
上述步骤称之为日志获取过程9122。
[0089] 辅助磁盘阵列装置200B通过执行日志备份/恢复程序2120中的日志恢复程序2124来完成日志恢复过程9126。日志恢复程序2124恢复日志卷2222B中的日志、以便数据卷2214反映PVOL 2212的更新数据映像。
[0090] 随后将利用图3所示框图解释日志获取、拷贝和恢复过程。
[0091] 当在主磁盘阵列装置200A中开始数据卷2210的日志获取过程时,主磁盘阵列装置200A创建日志并根据从主主机100A到PVOL 2212的写操作(步骤5200)将其存储到日志卷2222A中。
[0092] 通过执行异步拷贝管理程序150,主主机100A向主磁盘阵列装置200A发出日志创建状态获取(journal-creation-state-acquisition)命令,从主磁盘阵列装置200A获取有关日志创建状态(例如,日志卷中的日志存储大小)的信息(步骤5300)。
[0093] 主主机100A通过IP网络48将获得的有关日志创建状态的信息传送给辅助主机100B,以便这两个主机能够协调远程复制过程(步骤5000)。这种信息的用途之一是通知主机100A和100B日志卷2222A中的日志何时就绪,以拷贝到辅助磁盘装置200B中。
[0094] 辅助主机100B根据用户通过GUI输入指令或预定程序,或通过来自主主机100A的通知,执行异步拷贝管理程序150并向辅助磁盘阵列装置200B发出日志拷贝请求命令(步骤5400)。
[0095] 日志拷贝请求命令包括指定将要拷贝的日志(多个日志适用)、存储卷的日志卷以及具有该日志卷的磁盘阵列装置200的信息。该请求还包括指定将要存储拷贝日志的目的日志卷的信息。
[0096] 辅助磁盘阵列装置200B的存储控制器210B通过执行拷贝程序接收日志拷贝请求命令并向主磁盘阵列装置200A发读命令(步骤5500)。主磁盘磁盘阵列装置200A接收读命令并向辅助磁盘阵列装置200B发送该读命令指定的日志(步骤5600)。清除其中存储已发送日志的区域,以便可以在其中存储新日志。
[0097] 在收到日志时,辅助磁盘阵列装置200B将该日志存储到日志拷贝请求命令规定的日志卷2222B中。随后,辅助主机100B向辅助磁盘阵列装置200B发日志恢复请求命令(步骤5700)。
[0098] 辅助磁盘阵列装置200B接收日志恢复请求命令并执行日志恢复程序2124,从而将数据从日志卷2222B恢复到SVOL 2214(步骤5800)。清除其中存储已恢复日志的区域,以便可以在其中存储新日志。
[0099] 执行异步拷贝管理程序150的主机100可以执行主机实现接替。也就是说,在主主机100A由于某种原因不可用而不能继续日志拷贝过程的情况下,辅助主机100B也可以执行主主机100A的功能。
[0100] 在一个实施例中,主磁盘阵列装置连接到多个主主机,如同在存储区域网络中。上述公开的日志获取和其它过程可以在这种经过一些改动的配置中执行,这是本领域的技术人员能够理解的。
[0101] 图4显示该实施例所用的PVOL 2212和日志卷2222A的对应关系。此后,将日志卷2222A称为主日志卷,而日志卷2222B称为辅助日志卷。二者的数据结构基本上相同。
[0102] 一般讲,以预定的逻辑块为单位、例如512KB来管理PVOL、SVOL和日志卷中的每一个。每个逻辑块被赋予一个逻辑块地址(此后称为“LBA”)。
[0103] 主日志卷具有元数据区7100和日志数据区7200。在日志数据区7200中存储以前描述的日志数据7210,即通过写命令存储在PVOL中的数据5110的拷贝。在元数据区7100中存储以前描述的元数据7110,即指示各更新数据何时存储于PVOL 2212中、写(更新)数据的存储地址7112、日志数据区7200中相应日志数据7210的地址7114以及数据长度的信息。
[0104] 每个地址可以用LBA表示,数据长度可以用逻辑块数表示。而且,数据地址可以表示为与区(日志数据区或元数据区)基地址(LBA头部)的差值,即偏移。此外,当元数据长度固定时(例如64字节),日志数据长度并不固定,而是依赖于本实施例中写命令更新的数据。
[0105] 在定义日志组的时候,每个磁盘阵列装置200执行元数据区7100的和日志数据区7200的配置,以配置日志卷2222。在那个时候规定头LBA和各区的块数。每个主机100执行异步拷贝管理程序150并向磁盘阵列装置200发出请求配置区信息(头LBA、块数)的命令(日志组组成获取命令)。这就允许各主机100获得有关各磁盘阵列装置200已建立的元数据区7100和日志数据区7200的信息。
[0106] 图17显示本实施例中所用辅助日志卷2222B和SVOL 2214的对应关系。辅助日志卷还具有元数据区7100和日志数据区7200。在元数据区7100中存储从主日志卷2222A中元数据区拷贝的元数据7100B。在日志数据区7200中存储对应于元数据7110B、从主日志卷的日志数据区拷贝的日志数据7210B。
[0107] 当元数据为有关PVOL 2212更新的信息时,它的地址信息7114表示相应日志数据7210的地址,日志数据7210被拷贝到辅助日志卷中的日志数据区。此外,通过将日志数据
7210从辅助日志卷2222B的日志数据区7200拷贝到SVOL 2214中对应于地址7112的地址,可以将PVOL 2212的更新反映到SVOL 2214中。
[0108] 图5显示根据本实施例的主日志卷和辅助日志卷的日志数据区。
[0109] 主日志卷和辅助日志卷用LBA编址,每个LBA以1对1的方式建立对应关系。
[0110] 主日志卷具有的日志数据区7200区分成存储日志数据的日志存储区2232、2233和2234以及没有存储日志数据的已清除区2231。已清除区用于存储PVOL 2212的新日志数据。
[0111] 辅助日志卷具有的日志数据区7200区分成:存储已用于SVOL恢复的日志数据(或没有存储日志数据)的已恢复区4231;存储指定为SVOL日志恢复目标的日志数据的恢复区4232;存储没有指定日志恢复过程的日志数据的已读区4233;以及存储正从主日志卷转移的日志数据的在读区4234。
[0112] 主日志卷的已清除区2231与辅助日志卷的恢复中区4232或已恢复区4231的一部分建立对应关系。
[0113] 主日志卷的日志存储区与已读存储区4233、在读区4234或者已恢复区4231的一部分建立对应关系。这里,可以清除对应于已读区4233的日志存储区2232,这是因为日志已发送给辅助磁盘阵列装置200B。而且,对应于在读区4234的日志存储区2233中存储的日志数据最好不能清除,因为其用于数据传送。无需在相应的日志拷贝完成之后立即清除日志存储区2232。适用的是定期执行清除,或甚至于根据主主机100A发出的清除日志存储区2232的指令(“日志清除命令”)执行清除。
[0114] 主日志卷和辅助日志卷的日志数据区7200占据的区域分别由各主机根据表示位于区边界的逻辑块的LBA指针加以识别。主主机100A从主磁盘阵列装置200A获取的有关日志处理状态的信息包括这些指针值。
[0115] 每个主机100通过向磁盘阵列装置200发日志创建状态获取命令,从与主机100相连的磁盘阵列装置200获得这些指针值。然后,利用这些指针值,主机100判断在日志卷的哪一个区存储日志数据。这些指针值在一种实现中存储到控制存储器215中。
[0116] 随后将描述每个指针。注意,在图5中,从图的顶部到底部分配LBA。因此,图中顶部中的LBA数最少。而且,就象循环缓冲区那样重复使用日志卷。也就是说,如果使用了日志卷末尾逻辑块,那么就再次使用头逻辑块。在主日志卷或辅助日志卷任意之一卷中以顺序方式将数据写入。首先,将描述主日志卷指针。
[0117] 日志输出LBA 2241是指示对应于日志存储区首部逻辑块的LBA的指针。尚未从主日志卷中清除的最老的日志数据存储在该指针指示的逻辑块中。主主机100A或辅助主机100B决定将对应于日志输出LBA 2241所示LBA的逻辑块作为待传送日志数据头部中的逻辑块。
[0118] 日志输入LBA 2242是指示对应于存储日志数据的末尾逻辑块的相邻空逻辑块的LBA的指针,即指示对应于下一次日志获取过程将首先存入数据的逻辑块的LBA的指针。主主机100A或辅助主机100B决定可用于存储日志数据的逻辑块,这些逻辑块分别具有等于或大于对应于日志输入LBA 2422所示LBA的逻辑块的LBA。
[0119] 此外,主主机100A或辅助主机100B决定将日志数据存储到从日志输出LBA 2241的LBA到正好在日志输入LBA 2242之前所提供的LBA之间的区域中。因此,如果日志输出LBA=日志输入LBA,则主主机100A或辅助主机100B决定将要传送给辅助日志卷的日志数据不包含于主日志卷的日志数据区中。
[0120] 接着,将描述辅助日志卷指针。
[0121] 已恢复LBA 4241是指示已对其完成恢复处理的逻辑块中具有最大LBA的逻辑块的指针。因此,具有比已恢复LBA指针所示LBA小的LBA的逻辑块将用于存储最近从主日志卷转移过来的日志数据。也就是说,在LBA等于或小于已恢复LBA 42 41的逻辑块中清除日志数据。
[0122] 辅助日志卷的清除可以由存储控制器210在完成恢复处理之后自动执行。清除日志数据可以这样实现:对日志数据实际上重写无意义的数据,或者移动指针以指示该区域已准备好写入(重写)。类似于PVOL中日志存储区22 32的清除,不需要在相应的恢复处理完成之后立刻清除辅助日志卷。
[0123] 预定恢复LBA 4242是表示日志恢复请求命令已由辅助主机100B发出的指针,日志恢复请求命令旨在利用存储在从大于已恢复LBA4241的LBA所示逻辑块到预定恢复LBA4242所示逻辑块的区域中的日志数据恢复SVOL 2214。因此,如果预定恢复LBA=已恢复LBA,辅助日志卷中就没有确定要恢复的日志数据。
[0124] 已读LBA 4243是用于指示存储接收自主磁盘阵列装置200A的日志数据的逻辑块中具有最大LBA的逻辑块的指针。换句话说,该指针表示这样的逻辑块,该逻辑块中日志数据的末端是由主磁盘阵列装置200A传送给辅助磁盘阵列装置200B的。
[0125] 辅助主机100B通过已读LBA 4243确认对应于存储在该指针所示LBA中的日志数据的主日志卷的日志数据已存储到辅助日志卷中。执行确认的辅助主机100B将有关已读LBA 4243的信息通知主主机100A。根据该信息,主主机100A命令主磁盘阵列装置200A清除日志数据区,一直到逻辑块中存储对应于已读LBA 4243的日志数据。这种清除还可以通过移动日志输出LBA 2241的指针。
[0126] 预定读LBA 4244是指示日志数据区中末端逻辑块LBA的指针,所述日志数据区由辅助主机100B向辅助磁盘阵列装置200B发出的最新日志拷贝请求指定。因此,如果预定读LBA=已读LBA,那么,没有日志数据被指定用于日志拷贝。也就是说,没有磁盘阵列装置200正在执行日志拷贝过程。
[0127] 此外,在主日志卷和辅助日志卷的各元数据区中存在同样的关系。类似于日志数据区,元数据区的指针(日志输出(journal-out)LBA、日志输入(journal-in)LBA、已恢复(already-restored)LBA、预定恢复(restore-scheduled)LBA、已读(already-read)LBA以及预定读(read-scheduled)LBA;它们是不同于日志数据区指针的指针)由主机100和存储控制器210用于管理元数据区的目的。
[0128] 通过在两侧执行异步拷贝管理程序150,各主机100可以通过获得各指针值检查各磁盘阵列装置200中的日志获取状态。例如,根据日志组产生时刻确定的日志卷的存储器大小和从磁盘阵列装置200获得的指针差异,各主机100针对主日志卷和辅助日志卷计算日志卷有多少百分比被利用。
[0129] 根据这种确定,各主机100向各磁盘阵列装置200发如下指令:主日志卷中存储的日志应清除到哪一点;主日志卷中存储的日志中直到哪一点的日志应传送给辅助磁盘阵列装置200B;已传送日志数据中直到哪一点的日志数据应在SVOL中恢复;等等。
[0130] 例如,如果主机100B确定存储在主日志卷中的日志至少占据其存储容量的百分之50,可以规定何时由辅助主机100B向辅助磁盘阵列装置200B发出日志拷贝请求以启动拷贝过程。
[0131] 主机100向磁盘阵列装置200发出的指令包括日志创建状态获取命令以及日志处理命令。
[0132] 日志创建状态获取命令在以下两种情况下发出:(1)主主机100A希望获得有关主日志卷中累积了多少日志的信息时;(2)辅助主机100B希望获得有关辅助日志卷读过程和恢复过程应当进行到何种程度的信息时。
[0133] 在以下两种情况下发出日志处理命令:(1)主主机100A希望清除主磁盘阵列装置200A中日志时;以及(2)辅助主机100B希望启动由辅助磁盘阵列装置200B执行的日志拷贝过程和日志恢复过程时。
[0134] 规定主日志卷和辅助日志卷的LBA为1∶1,但可以规定辅助日志卷的存储区大于主日志卷的存储区,这就需要一种方法,以执行从主日志卷到辅助日志卷的相应的地址转换。因此,日志拷贝请求命令和日志恢复请求命令都属于日志处理命令类。
[0135] 图6是显示根据本实施例的获取、拷贝和恢复过程的详细流程图。
[0136] 主主机100A定期(按用户请求或在预定时间安排的预定间隔)通过使用日志输出LBA和日志输入LBA指针(图3所示步骤6100;步骤5300)获得有关主磁盘阵列装置200A日志存储区的信息,并向辅助主机100B发送所获得的信息(步骤6110)。
[0137] 辅助主机根据指示日志存储区的通知信息确定用于日志拷贝处理的主日志卷的逻辑块区域。此外,主主机100A可以事先确定用于日志拷贝的主日志卷的逻辑块区域。
[0138] 随后,辅助主机100B发出日志拷贝命令,该命令包括指示已确定逻辑块区的信息和指定拷贝辅助磁盘阵列装置200B的日志的磁盘阵列装置200的信息(图3所示步骤6300;步骤5400)。接收日志拷贝请求命令的辅助磁盘阵列装置200B向指定的主磁盘阵列装置200A发出请求读指定逻辑块区中所存日志的命令。如图4所示,日志区划分成元数据区和日志数据区。元数据区由日志拷贝请求指定。当辅助磁盘阵列装置200B收到日志拷贝请求时,它发出读命令以从元数据区中指定的逻辑块拷贝,根据元数据中的地址确定日志数据区中的哪些逻辑块与元数据相对应,并发出读命令以从确定的逻辑块(即相应的日志数据)拷贝。或者,辅助磁盘阵列装置可以发读命令以同时拷贝元数据和日志数据。在这种情况下,根据指针计算每个读命令的地址和数据长度。例如,对于日志数据,将主日志卷的从预定读LBA+1到日志输入LBA-1的日志数据区拷贝到辅助日志卷的相应日志数据区(图3所示步骤6400;步骤5500)。
[0139] 另一方面,通过发出日志创建状态获取命令,辅助主机1 00B定期获得辅助磁盘阵列装置200B的日志处理状态(步骤6310、6320和6410)。也就是说,从辅助磁盘阵列装置200B获得已读LBA 4243和预定读LBA 4244的指针值。如果已读LBA 4243和预定读LBA 4244的值彼此一致,则辅助主机100B判定日志拷贝过程(即读)已经完成。
[0140] 在预定读LBA 4244的信息保持在辅助主机100B中的情况下,辅助主机100B通过定期从辅助磁盘阵列装置200B获得已读LBA4243,可以确定日志拷贝过程已经完成。
[0141] 如果确认日志拷贝过程已经完成,那么,辅助主机100B发出日志恢复请求命令,以开始辅助日志卷中的数据恢复。或者,如果不要求立即恢复,例如在辅助日志卷容量大的情况下,可以在日志拷贝过程完成很长时间后执行恢复(图3所示步骤6330;步骤5700)。
[0142] 如果收到日志恢复请求命令,辅助磁盘阵列装置200B就恢复存储在与指定LBA相对应的逻辑块中的日志(图3所示步骤6420;步骤5800)。
[0143] 此外,确认日志拷贝过程完成的辅助主机100B向主主机100A提供已读LBA 4243所示的LBA(步骤6340)。检测到日志拷贝过程完成的辅助主机100B准备好向辅助磁盘阵列装置200B发下一次日志拷贝请求指令(步骤6350)。
[0144] 获悉已读LBA 4243所示LBA的主主机100A命令主磁盘阵列装置200A清除对应于通知LBA的日志(步骤6120)。主磁盘阵列装置200A清除与指定LBA对应的日志卷(步骤6210)。
[0145] 图7显示本发明适用的数据处理系统50的第二实施例。为了便于说明,用相同的标号标明本实施例与第一实施例对应的系统、装置和部件。
[0146] 不象第一实施例,图7所示数据处理系统50,主磁盘阵列装置200A通过向辅助磁盘阵列装置200B发出数据写命令,而不是等待接收从辅助磁盘阵列装置200B读命令,来启动日志拷贝过程。此外,辅助主机100B执行日志恢复过程(图7所示步骤5900),这不象在第一实施例中,此过程是由辅助存储控制器210B执行。因此,辅助主机应配置日志恢复程序。
[0147] 在本说明书中,主存储系统10的装置和部件是通过称之为主装置或部件,或者在它们的标号之后配上“A”,或者同时采用两种方式(例如主主机100或主机100A或主主机100A),这样区别于辅助存储系统20的装置和部件。同样地,辅助系统20的装置和部件称之为辅助装置或部件,或在其标号之后配上“B”,或同时采用两种方式(例如,辅助主机100、主机100B以及辅助主机100B)。
[0148] 在本实施例中,由于日志拷贝处理的实体是主磁盘阵列装置200A,以及执行日志恢复处理的实体是辅助主机100B,可以将不具备特殊功能的普通存储器用作辅助磁盘阵列装置200B。而且,因为日志拷贝过程由主磁盘阵列装置2 00A执行,而日志恢复过程由辅助主机100B执行,故数据处理系统50可以使用异种存储子系统或磁盘阵列装置(例如,由不同供应商生产的那些),或者使用不同的存储协议或方法。
[0149] 在主站点10中,涉及PVOL更新(步骤5100)的日志获取过程(步骤5200)基本上与第一实施例中相同。主主机100A从主磁盘阵列装置200A获得有关日志创建状态的信息(步骤5300)。
[0150] 主主机100A为辅助磁盘阵列装置200B向主磁盘阵列装置200A发出日志拷贝请求命令(步骤5450)。
[0151] 日志拷贝请求命令包括有关日志将要传输到的磁盘阵列装置200B的目的日志卷的信息、指定磁盘阵列装置200B的信息、磁盘阵列装置200A的源日志卷、如此等等。
[0152] 主磁盘阵列装置200A接收日志拷贝请求命令,并通过向辅助磁盘阵列装置200B发写命令将指定的日志发送给辅助磁盘阵列装置200B(步骤5600)。辅助磁盘阵列装置200B将从第一装置200A接收的日志存储到写命令指定的辅助日志卷的某个区域中。
[0153] 随后,辅助主机100B利用异步拷贝管理程序150从辅助日志卷读日志并将数据恢复到SVOL 2214中(步骤5900)。
[0154] 辅助主机100B执行辅助日志卷的指针管理,将制作日志拷贝请求5450所需的信息(例如,计算拷贝地址所需的已恢复LBA 4241)通知主主机100A。
[0155] 在本实施例中,通过主主机100A的指令,主磁盘阵列装置200A发写命令,要求辅助磁盘阵列装置200B将PVOL 2212的初始数据顺序写入辅助磁盘阵列装置200B的SVOL2214中,从而实现初始拷贝。
[0156] 在所有初始数据已从PVOL写入辅助磁盘阵列装置200B后,执行拷贝程序2110的主磁盘阵列装置200A向主主机100A报告初始拷贝完成。主主机100A接收该报告。之后,存储在辅助站点20中的SVOL2214可以作为反映PVOL 2212内容的卷加以处理。
[0157] 图8显示本发明适用的数据处理系统50的第三实施例。系统50包括各主机之间的第一通信链路48,但不包括磁盘阵列装置200A和200B之间的第二通信链路。在一种实施例中,用外部存储装置代替第二通信链路。
[0158] 在本实施例中,第一外部存储装置60(例如磁带装置)和第二外部存储器62分别通过光纤信道连接到主主机100A和辅助主机100B。外部存储器60和62可以利用光纤信道等彼此相连。或者,如果这些外部存储器是活动存储媒体,例如磁带,就可以通过在各装置之间使存储媒体物理迁移,将它们转移。
[0159] 在本实施例中,主磁盘阵列装置200A象在第二实施例中那样,执行PVOL 2212的日志获取过程。日志拷贝和初始拷贝根据如下所述步骤进行:
[0160] (1)主主机100A把数据写入第一外部存储器60中。也就是说,一旦日志获取过程已开始,主主机100A就从主日志卷读日志并将其存储到外部存储器60中,以响应用户输入或预定安排(步骤5620)。
[0161] (2)将写入第一外部存储器60中的数据转移到第二外部存储器62中。这个过程要么由主主机100A要么由辅助主机100B实现。在一种实现中,将ANSI(美国国家标准协会)SCSI-3扩展拷贝命令用作这些数据转移指令。
[0162] 主机100A和100B通过通信链路传送数据转移所需地址信息、报告数据转移完成等等。在一种实现中,用户或管理员在将移动记录媒体物理地从第一外部存储器迁移到第二外部存储器之后向各主机100报告数据已转移(步骤5622)。
[0163] (3)根据辅助主机100B的指令将存储在第二外部存储器62中的数据传送给辅助磁盘阵列装置200B。也就是说,辅助主机100B向外部存储器62发读命令5505并从外部存储器62读日志。然后,辅助主机100B正如在第二实施例中那样,根据从外部存储器62读取的日志恢复SVOL 2214的数据(步骤5625)。
[0164] 通过以上步骤,就可以通过日志卷执行从PVOL到SVOL的数据复制。以类似的方式执行初始拷贝。在一种实现中,只要没有具体的指令,即使在恢复过程之后亦不删除存储在外部存储器62中的日志。而且,外部存储器62中还存储初始拷贝的结果,即初始数据。
[0165] 而且,由于在本发明的数据处理系统中,日志的元数据包括更新时间的时间戳,故辅助磁盘阵列装置200B的SVOL 2214可以在日志获取过程开始起的任意时刻恢复成PVOL的内容。也就是说,通过恢复SVOL中所有这样的日志部分:其中每份日志的时间戳按时间顺序早于辅助主机100B指定的时间,可以在指定时间恢复PVOL的内容。这称之为“按时恢复”。
[0166] 此外,还可以针对辅助磁盘阵列装置200B用户指定的任意卷2216执行按时恢复。也就是说,为此目的,存储在外部存储器62中的PVOL初始拷贝结果首先拷贝到卷2216,随后根据更新时间按顺序在卷2216中恢复所有这样的日志部分:其中每份日志的时间戳早于辅助主机100B指定的时刻。
[0167] 对同一区域而言,如果存在多个日志,就使用这种模式:其中,将具有最新时间戳的日志用于执行恢复。
[0168] 外部存储器60和62可以是同一类型或不同类型存储装置。而且,它们被描述成不同的装置,但可以配置成同样的装置。
[0169] 在第一和第二实施例中,按时恢复包括恢复所有这样的日志:它们指示的更新时间(时间戳)晚于指定的时刻。然而,PVOL的可恢复映像被限制为辅助日志卷中最老日志所示更新时间后的映像。
[0170] 图9显示本发明适用的数据处理系统的第四实施例。该实施例类似于第三实施例,但不同的方面在于:外部存储器60和62(利用光纤信道)分别连接到主磁盘阵列装置200A和辅助磁盘阵列装置200B。于是,到外部存储装置60的初始拷贝过程和日志拷贝过程由主磁盘阵列装置200A根据主主机100A的指令5450执行(步骤5630)。
[0171] 根据主磁盘阵列装置200A的指令5631通过通信链路传输数据,或者通过物理上迁移存储媒体,这样将存储在外部存储器60中的数据转移到外部存储器62(步骤5632)。
[0172] 随后,辅助磁盘阵列装置200B根据辅助主机100B的指令5400,通过发读命令5507,执行与从外部存储装置62进行的初始拷贝过程和日志拷贝有关的读操作(步骤
5635)。日志获取和恢复过程与第一实施例一致。
[0173] 此外,根据本实施例,可通过转移日志将PVOL数据异步复制到SVOL中。不象第三实施例,由于磁盘阵列装置200A和200B传输数据,主机100A和100B上的负荷减少了。此外,还可在本实施例中象在第三实施例中那样实现按时恢复。
[0174] 图11显示本方面适用的数据处理系统的第五实施例。不象之前描述的前述实施例,本实施例中主存储系统10连接到多个辅助存储系统20和30。
[0175] 在本实施例中,将对应于主磁盘阵列装置200A的PVOL 2212日志分别传送到对应于存储系统20的SVOL 2214B的辅助日志卷和对应于存储系统30的SVOL 2214C的辅助日志卷,以执行恢复过程。此外,分别从PVOL 2212执行到SVOL 2214B和SVOL 2214C的初始拷贝。这些过程根据收到各辅助磁盘阵列装置的读命令或从主磁盘阵列装置发向辅助磁盘阵列装置的写命令执行。这样,可以在多个站点中复制存储在主站点中的数据。
[0176] 图12显示本发明适用的数据处理系统的第六实施例。在该实施例中,为了防备辅助站点20因故障等原因不可用的情形,用户或管理员事先在主主机100A中登记一个或多个用于替代辅助站点20的候选站点。在一种实现中这些候选站点的列表或表格160保存在主机100A中。
[0177] 如果辅助站点20不可用,主主机100A就从列表160中选择一个新的辅助站点40。主主机100A可根据预定的优先权顺序或已经按这种优先权预先定义好的列表160选择一个备用的辅助站点。用户可以定义这种优先权顺序或主主机100A可以利用预定规则,例如主站点10和可能辅助站点之间的距离、数据传输速率等等,自动定义这种优先权。
[0178] 之后,主主机100A将装置组等信息传送给新选定的辅助站点40中的一个辅助主机100D。接收装置组等信息的新辅助主机100D向与辅助主机100D相连的磁盘阵列装置200D请求在100D本身和主主机100A之间设置新PVOL、日志对及日志拷贝信息。附带说一下,在多数情况下,由于初始拷贝是必要的,辅助主机100D还向磁盘阵列装置200D请求初始拷贝。通过这些处理,在新选择的辅助站点40中,即使辅助站点20在远程复制过程之前或期间发生故障,也可以继续复制存储在主站点10中的数据。
[0179] 在一种实现中,即使辅助主机100B发生故障,辅助磁盘阵列装置200B仍旧可用作辅助站点4 0的一个磁盘阵列装置(例如,在存储区域网络系统中)。
[0180] 图13显示本发明适用的数据处理系统的第七实施例。
[0181] 不象前述实施例,本实施例是这样的:主站点10由主主机100A和虚拟磁盘阵列装置15A构成,而辅助站点20由辅助主机100B和虚拟磁盘阵列装置15B构成。各主机100将各虚拟磁盘阵列装置15作为单个磁盘阵列装置200处理。也就是说,各主机象在第一实施例中那样向虚拟磁盘阵列装置15发同样的命令。
[0182] 虚拟磁盘阵列装置15由虚拟化服务器300和多个存储子系统,例如磁盘阵列装置200构成。虚拟化服务器300通过光纤信道与主主机100A(辅助主机100B)、多个磁盘阵列装置200和其它虚拟化服务器相连。这种光纤信道对应于第一实施例中的光纤信道66和
68,它用于存储控制器210之间的通信,以及用于初始拷贝和日志拷贝过程。类似于第一实施例,在各虚拟化服务器300之间距离很长的情况下,这种光纤信道可以是通过长距离(电信)的电路,例如具备中间扩展装置的ATM。
[0183] 虚拟化服务器300提供一组卷(或者是一组逻辑卷或者是一种物理卷),通过执行称之为虚拟化管理器的程序310,将各磁盘阵列装置200上的多个卷转换成各相连主机100的单一地址空间(下文中称之为“虚拟存储映像”),这样,就可将连接到虚拟化服务器300的多个磁盘阵列装置200用作给各主机100的单个(或两个或更多个)存储子系统。
[0184] 现在将简要描述主机100和虚拟磁盘阵列装置15主机的数据传输。主机100A向虚拟磁盘阵列装置15A发写请求5100。写请求5100由虚拟化服务器300A转换成写请求5105,以发向对应于主机100A的构成虚拟存储映像的各个磁盘阵列装置200。然后,虚拟化服务器300A向相应的磁盘阵列装置200发送转换后的写请求5105。这时,将写请求5100包含的数据分成给各个磁盘阵列装置200的若干份数据。此外,将写地址转换成到各个磁盘阵列装置200的写地址。
[0185] 主机100B向虚拟磁盘阵列装置15B发出数据读请求。数据读请求由虚拟化服务器300B被转换成向对应于主机100B的构成虚拟存储映像的各个磁盘阵列装置200发送的读请求。然后,虚拟化服务器300B向相应的磁盘阵列装置200发经转换的读请求。
[0186] 接着,各磁盘阵列装置200将请求的数据传送给虚拟化服务器300B(步骤5115)。虚拟化服务器300B接收该数据并集成接收数据,将其发往主机100B(步骤5110)。
[0187] 此外,尽管图13中未示出,正如各主机100和各磁盘阵列装置200,每个虚拟化服务器300通过IP网络连接到远程控制台。用户通过远程控制台管理该数据处理系统。
[0188] 此外,可以考虑,例如,通过允许虚拟化服务器300监视与虚拟化服务器300相连的各磁盘阵列装置200的I/0处理,以自动执行以下过程:
[0189] (A)更改映射,以便其中经常出现可纠正读错误(即读数据过程中检测到错误,但数据可通过数据中存储的纠错码纠正)的磁盘阵列装置200由另一磁盘阵列装置200代替。
[0190] (B)将经常访问的数据重定位到更高速的磁盘阵列装置中。
[0191] 在这些处理操作之前,如果使用本发明的技术,通过日志获取、日志拷贝和日志恢复过程,待替换的原始磁盘阵列装置200上的数据可以事先拷贝到这种磁盘阵列装置200上,这种磁盘阵列装置200是虚拟化服务器控制的再定位的目标装置。然后,如果虚拟存储映像的配置已改动,无需中断应用程序就可以执行存储子系统的添加和删除。
[0192] 虚拟磁盘阵列装置15的虚拟化服务器300执行日志备份/恢复程序和拷贝程序。
[0193] 此外,虚拟磁盘阵列装置15具有PVOL、主日志卷和辅助日志卷、或前述实施例中描述的SVOL。应当指出,PVOL、主日志卷和辅助日志卷和SVOL可以配置成分别跨多个磁盘阵列装置而存在,但它们被主机100或由虚拟化服务器300在主机100或虚拟化服务器300上执行的日志备份/恢复程序和拷贝程序作为(虚拟)单个卷处理。因此,虚拟化服务器300根据各主机100的指令控制与第一实施例相同的处理,即日志获取、日志拷贝、日志恢复以及日志卷管理。
[0194] 而且,虚拟化的磁盘阵列装置200的数量可以根据用户请求或预定方法动态增加或减少。进而,这是不必要的:与主站点10相连的磁盘阵列装置200的数量和种类分别与辅助站点20的那些相同。在本实施例中,将虚拟化服务器300和各主机100描述成不同的装置。然而,它们可以是相同的装置,例如,主机100可以配备虚拟化管理器。
[0195] 图14显示本发明适用的数据处理系统的第八实施例。尽管本实施例如前述实施例那样使用虚拟磁盘阵列装置15,但是,本实施例区别于前述实施例的不同之处在于:日志获取、日志恢复和日志拷贝由各磁盘阵列装置200上的程序执行,而不是由虚拟化服务器300执行。
[0196] 此外,主站点10的磁盘阵列装置200以及辅助站点20的磁盘阵列装置200彼此相连,构成存储区域网络(下文中称之为“SAN”)。也就是说,通信链路68是本实施例中的SAN。
[0197] 另外,在本实施例中,主存储系统10的磁盘阵列装置200必须具有以下信息:即有关辅助站点20的磁盘阵列装置200与主存储系统10的磁盘阵列装置200拥有的卷之间关系的信息,也就是说,哪一个磁盘阵列装置200是主存储系统10的磁盘阵列装置200的通信伙伴;反之亦然。为此目的,虚拟化服务器300彼此共享它们的地址映射信息(步骤3000),包括对地址映射的任何更新。这种映射信息又提供给相应的磁盘阵列装置200。
[0198] 与第七实施例作比较,因为日志备份恢复过程由磁盘阵列装置200执行,且由于主站点10和辅助站点20之间的数据传输通过SAN进行因而传输率较高,所以本实施例虚拟化服务器300的负荷已减轻。
[0199] 图16显示主机100和磁盘阵列装置200之间用于实现第七和第八实施例中所提供的虚拟化卷的映射地址。该表格表示向两个辅助主机100B和100C提供虚拟存储映像的情况,虽然图13或图14都只显示一个辅助主机100B。
[0200] 表170包括涉及为其提供虚拟存储映像的目标主机100的列172,列174涉及主机100访问的逻辑卷(下文中称之为“主机访问LU”),列176涉及构成虚拟存储映像的磁盘阵列装置200以及列178涉及各磁盘阵列装置200上的逻辑卷(下文中称之为“存储装置LU”)。
[0201] 在另一种实现中,主机100和磁盘阵列装置200之间的编址信息可以这样实现:保持具有类似于表170、例如指针规定的列表的信息的数据结构。
[0202] 在上述各实施例中,已将初始拷贝过程描述成不同于日志处理的单独的过程步骤。然而,初始拷贝可以通过生成PVOL 2212初始数据的日志(“基础日志”)而结合到日志处理过程中,组合成配对(即对产生)之后生成的更新日志。更新日志是对应于配对之后主机发出的更新命令的日志。为了说明本发明实施例的目的,将更新日志称为“日志”或“更新日志”。然而,基础日志仅被称为“基础日志”。这种术语区别只适用于详细描述部分,而不适用于权利要求部分。因此,当用于权利要求中时,术语“日志”指任何包括基础日志、更新日志或标记日志(待描述)的日志、或者包括这些日志任意组合的日志。
[0203] 工作时,主主机100A向主磁盘阵列装置200A发基础日志生成命令。在收到该命令时,主磁盘阵列装置200A根据PVOL 2212中的初始数据生成基础日志。初始数据是配对之前就已存在于PVOL 2212中的数据。基础日志生成包括将PVOL 2212中的初始数据作为多个日志的日志数据拷贝到主日志卷的日志数据区以及将相应的元数据存储到各基础日志的元数据区。在基础日志的元数据中,时间信息(时间戳)是通过将初始数据拷贝到主日志卷的日志数据区中生成基础日志的时刻。一般讲,基础日志的其它元数据信息(例如地址信息和数据长度)与更新日志相同。
[0204] 在生成基础日志后,主磁盘阵列装置200A向主主机100A通知基础日志生成完成。在一种实现中,基础日志按照上述方法连同更新日志一起传输并恢复。
[0205] 在一个实施例中,基础日志处理可以在多个阶段中执行,从而基础日志得以生成、传输并恢复,每次仅限于一部分初始数据。例如,如果主日志卷2222A的存储容量小于PVOL2212的存储容量,最初仅有PVOL 2212前一半的基础日志可以生成并存储到主卷中。随后将这些日志(“第一基础日志”)传送到辅助日志卷2222B中恢复。在完成第一基础日志到辅助日志卷2222B的传送后,生成PVOL 2212第二半基础日志并对其处理。当同时进行初始拷贝和日志恢复时,对SVOL 2214的区域用于初始拷贝还是日志恢复,必须专门管理。然而,如果是生成基础日志并对其加以处理,而不是初始拷贝,则不需要这样做。
[0206] 在另一实施例中,日志除包括基础日志和更新日志以外还包括标记日志。标记日志是一种特殊的日志,用于通过日志拷贝过程从主磁盘阵列装置向辅助磁盘阵列装置提供控制信息。标记日志与其用于识别目的元数据中的标志相关联,从而可以容易地从可能包括基础日志或更新日志或两者的日志中检索出来。标记日志由主磁盘阵列装置在预定条件下(例如基础日志生成完成或暂停)生成并存储到存储更新日志的主日志卷中。
[0207] 在日志恢复过程期间,如果辅助存储子系统确定恢复的日志是标记日志,子系统就将其存储到存储器中,并执行预定过程(例如,向辅助主机200B报告标记日志的内容)。在一个实施例中,存储控制器读标记日志并存储到它的存储器中,且在收到主机的请求时将标记日志的内容发送给主机。或者,存储控制器可以将标记日志内容传输到主机。于是,标记日志提供了一种便利的途径,为辅助存储系统提供有关主存储系统中数据处理事件的信息,例如初始拷贝/基础日志生成完成、初始拷贝/基础日志生成暂停或重启、以及日志获取或其它过程。
[0208] 图1 5显示本发明适用的数据处理系统的第九实施例。数据处理系统50包括第一站点10、第二站点20以及第三站点30。站点10、20和30通过网络69、例如SAN彼此相连。系统50定义包括第一站点10和第二站点20的第一站点组8010。
[0209] 每个站点包括主机100和与主机关联的异步拷贝管理程序150。第一站点10包括的主机100A用作主主机100A,辅助站点20中包括的主机100B用作辅助主机100B。
[0210] 此外,各站点的主机100通过执行异步拷贝管理程序150执行如下处理。
[0211] 例如,当数据处理系统本身的本地站点中出现异常(例如,与辅助主机100B相连的磁盘阵列装置200B中发生故障,因而变得不可用)时,该数据处理系统首先确定出现异常的站点是主站点10还是辅助站点20。在一种实现中,各站点的各主机100监视与各主机相连装置中出现的异常。
[0212] 如果出现异常的站点是辅助站点20,检测到该异常的主机100(例如辅助主机100B)就请求第三站点30的主机100C与主站点10形成新的站点组,使得尽管第二站点出现问题也可以执行远程复制。
[0213] 如果出现异常的站点是主站点10,检测到该异常的站点就请求辅助站点20作为新的主站点。然后,接收该请求的辅助站点20就请求第三站点成为新的辅助站点。
[0214] 如果辅助站点本身检测到主站点10的故障,则辅助站点20使自己转变为新的主站点。
[0215] 借助于本实施例,例如,有可能在世界范围内数据中心建立能够支持本发明的站点,作为在故障时用于切换的站点,并可将其作为出租站点租借给用户,直到故障恢复。参与该服务的用户可以使用出租站点作为用户拥有的站点的后备、或者在使用后备站点时用于保留另一后备站点。而且,经营数据中心的服务提供商可以根据出租站点的实际使用情况对用户收费。服务提供商还可以根据为用户提供的配置对用户收费(例如,出租站点与后备站点之间的距离、后备站点数、后备站点的能力或容量等等)。
[0216] 上述实施例的数据处理系统配置成使磁盘阵列装置执行日志获取、日志恢复和日志拷贝,以及主机侧执行日志管理和远程拷贝状态管理。这样,主站点和辅助站点之间的数据复制通过允许主机交换控制指令而得以执行,以及通过磁盘阵列装置之间的光缆执行实际的数据传输,等等。这种工作机制使得主机之间普通线路上的流量得以减少,并且拷贝可以通过较高速线路(例如专用线路)完成,以改善处理性能。
[0217] 此外,通过将除专用线路以外的诸如带式存储器的外部存储器用于主站点和辅助站点之间的数据移动,有可能在用户指定的任意时刻从外部存储器读取日志并将该日志用于日志恢复过程。这种功能允许在用户指定的时刻恢复数据。
[0218] 而且,由于磁盘阵列装置具有通过写命令在另一磁盘阵列装置中写日志的功能,也有可能通过允许主机读数据并执行恢复,实现数据传输和数据复制,即便没有赋予辅助站点的磁盘阵列装置特殊功能。
[0219] 根据上述实施例,当数据传输或数据复制在多个站点中执行时,可以压缩主机之间普通线路上的流量,且可以改善数据传输性能。而且,可以由用户指定时刻执行数据恢复。
[0220] 而且,可以容易地在各种各样的多个站点之间执行数据复制。
[0221] 另外,无需赋予辅助站点的磁盘阵列装置特殊功能。也就是说,可以使用通常彼此不兼容的磁盘阵列(例如不同厂家的磁盘阵列)之间的连接。
[0222] 在前面的描述中,根据实施例对本发明者所设计的发明作了具体描述,但应注意,本发明不限于这些实施例,而且在不背离本发明精神的范围内可以对这些实施例作修改。