用于高效远程复制的方法和装置制造方法

文档序号:6513430阅读:115来源:国知局
用于高效远程复制的方法和装置制造方法
【专利摘要】提供了一种用于高效远程复制的方法和装置。根据本发明的一个方面,一种存储系统,包括:多个存储设备;以及控制器,可操作用于管理具有另一存储系统的主卷的远程复制对中的、并且与所述多个存储设备的一部分对应的次卷。该次卷具有用于根据远程复制过程来存储在从所述另一存储系统发送的日志数据中包括的数据的功能。如果该日志数据与另一日志数据之间的关系具有条件,则控制器可操作用于在向次卷存储该日志数据的数据之前操纵该日志数据以被临时存储于与所述多个存储设备的另一部分对应的第三卷中,所述另一日志数据具有比该日志数据的序列号更小的序列号并且被从所述另一存储系统发送到该存储系统。
【专利说明】用于高效远程复制的方法和装置
【技术领域】
[0001]本发明一般地涉及存储系统、远程复制系统和远程复制系统的数据复制方法并且更具体地涉及用于减少存储系统内的数据传送次数的管理方法。
【背景技术】
[0002]许多存储系统产品具有用于灾难恢复的远程复制功能。远程复制功能向次(secondary)存储系统中的次卷复制主存储系统中的主卷(存储区域)中存储的数据。远程复制被分类为两种类型:同步远程复制和异步远程复制。同步远程复制与来自服务器的写入操作同步地传送数据,而异步远程复制与来自服务器的写入操作异步地传送数据。
[0003]第7,865,680号美国专利描述了一种异步远程复制的数据复制方法。异步远程复制不从主卷向次卷目录传送数据;而是,在次卷中存储之前,它向缓冲区域传送数据。缓冲区域被描述为日志卷。缓冲区域可以包括高速缓存区域。向缓冲区域、诸如日志卷一次传送数据的原因是通过使从服务器向SVOL(次卷)的写入顺序和向PVOL(主卷)的写入顺序相同来保证数据一致性。
[0004]由于数据在异步远程复制中被传送到缓冲器,所以处理开销将较大并且硬件、诸如高速缓存存储器的利用效率将降低。作为结果,系统性能将降低。

【发明内容】

[0005]本发明的示例实施例提供一种用于减少在数据复制、诸如远程复制期间在存储系统内的数据传送次数的技术。次存储系统在不存在具有相同复制目的地地址的其它JNL(日志)时向SVOL直接传送数据。通过使用本发明,减少了数据传送次数。作为结果,高速缓存存储器和处理器的利用效率将增加。
[0006]根据本发明的一个方面,一种存储系统包括:多个存储设备;以及控制器,该控制器可操作用于管理具有另一存储系统的主卷的远程复制对中的、并且与所述多个存储设备的一部分对应的次卷。该次卷具有用于根据远程复制过程来存储在从另一存储系统发送的日志数据中包括的数据的功能。如果日志数据与另一日志数据之间的关系具有条件,则控制器可操作用于在向次卷存储日志数据的数据之前操纵日志数据以被临时存储于与多个存储设备的另一部分对应的第三卷中,所述另一日志数据具有比所述日志数据的序列号更小的序列号并且被从所述另一存储系统发送到所述存储系统。
[0007]在一些实施例中,如果所述关系不具有所述条件,则控制器可操作用于操纵日志数据以被直接存储到次卷而不被临时存储于第三卷中。第三卷在控制器的高速缓存存储器的一部分中,并且次卷在控制器的高速缓存存储器的另一部分中。控制器可操作用于:从所述另一存储系统接收各自具有序列号的多个日志数据,该序列号是用于管理用于向主卷写入数据的写入顺序的控制信息;从还未被存储到次卷或者第三卷的、被接收的多个日志数据中选择具有最小序列号的日志数据;确定是否存在具有比选择的日志数据的序列号更小的序列号的任何未被接收的日志数据;以及作为所述条件,如果存在具有比选择的日志数据的序列号更小的序列号的、作为所述另一日志数据的未被接收的日志数据,则在向次卷存储选择的日志数据的数据之前,在第三卷中临时存储选择的日志数据的数据。
[0008]在特定实施例中,如果不存在具有比选择的日志数据的序列号更小的序列号的未被接收的日志数据,则控制器可操作用于:确定是否存在具有比选择的日志数据的序列号更小的序列号的、并且具有与选择的日志数据相同的恢复地址的任何被接收的日志数据,该恢复地址是次卷中的用于写入日志数据的地址;以及作为所述条件,如果存在具有比选择的日志数据的序列号更小的序列号的、并且具有与选择的日志数据相同的恢复地址的、作为所述另一日志数据的被接收的日志数据,则在向次卷存储选择的日志数据的数据之前,在第三卷中临时存储选择的日志数据的数据。
[0009]在一些实施例中,如果不存在具有比选择的日志数据的序列号更小的序列号的、并且具有与选择的日志数据相同的恢复地址的、作为所述另一日志数据的被接收的日志数据,则控制器可操作用于直接在次卷中写入选择的日志数据,而不被临时存储于第三卷中。
[0010]在特定实施例中,该存储系统还包括缓冲器。在从所述另一存储系统发送的日志数据的数据被存储到次卷或者第三卷之前,所述日志数据被存储在缓冲器中。
[0011]本发明的另一方面,涉及一种系统,该系统包括:具有多个存储设备的主存储系统;以及次存储系统。次存储系统包括:多个存储设备;以及控制器,所述控制器可操作用于管理具有主存储系统的主卷的远程复制对中的、并且与次存储系统中的多个存储设备的一部分对应的次卷。所述次卷具有用于根据远程复制过程来存储在从主存储系统发送的日志数据中包括的数据的功能。如果所述日志数据与另一日志数据之间的关系具有条件,则控制器可操作用于在向次卷存储所述日志数据的数据之前,操纵所述日志数据以被临时存储于与次存储系统的多个存储设备的另一部分对应的第三卷中,所述另一日志数据具有比所述日志数据的序列号更小的序列号并且被从主存储系统发送到次存储系统。
[0012]本发明的另一方面涉及一种存储多个指令的计算机可读存储介质,所述多个指令用于控制数据处理器以用于从主存储系统向具有多个存储设备的次存储系统的远程复制。所述多个指令包括:使得数据处理器管理具有主存储系统的主卷的远程复制对中的、并且与多个存储设备的一部分对应的次卷的指令,所述次卷具有用于根据远程复制过程来存储在从主存储系统发送的日志数据中包括的数据的功能;以及如果所述日志数据与另一日志数据之间的关系具有条件,则使得数据处理器在向次卷存储所述日志数据的数据之前操纵所述日志数据以被临时存储于与次存储系统的多个存储设备的另一部分对应的第三卷中的指令,所述另一日志数据具有比所述日志数据的序列号更小的序列号并且被从主存储系统发送到次存储系统。
[0013]本发明的这些和其它特征和优点将鉴于以下对具体实施例的具体描述而变得为本领域普通技术人员所清楚。
【专利附图】

【附图说明】
[0014]图1是示出根据本发明的实施例的关注于服务器的计算机系统的图。
[0015]图2是示出根据本发明的实施例的关注于存储系统的计算机系统的图。
[0016]图3是远程复制配置的示例。
[0017]图4是序列号的示例。[0018]图5是示出存储控制信息的示例的详细框图。
[0019]图6是示出存储程序的示例的详细框图。
[0020]图7示出作为本发明待解决的问题的、针对远程复制处理每个硬件被访问多少次的示例。
[0021 ] 图8是图示用于解决图7中所示问题的本发明的实施例的概念图。
[0022]图9是图示JNL创建程序的过程的示例的流程图。
[0023]图10是图示JNL传送程序的过程的示例的流程图。
[0024]图11是恢复目的地表的示例。
[0025]图12是接收的序列号位图的示例。
[0026]图13是图示JNL读取程序的过程的示例的流程图。
[0027]图14是图示JNL恢复程序的过程的示例的流程图。
[0028]图15是图示JVOL读取程序的过程的示例的流程图。
[0029]图16是图示中止程序的过程的示例的流程图。
[0030]图17是图示在接收中止请求之后JNL读取程序的完成处理的示例的流程图。【具体实施方式】
[0031]在本发明的以下具体描述中参照附图,附图形成本公开的一部分,并且在附图中通过示例而非限制性的方式示出可以用来实践本发明的示例性实施例。在附图中,相似标号贯穿若干视图描述基本上相似的部件。另外,应当注意,尽管具体描述提供如以下描述和在附图中图示的各种示例性实施例,但是本发明如本领域技术人员已知或者将已知的那样不限于这里描述和图示的实施例而是可以扩展至其它实施例。在说明书中对“一个”实施例、“该实施例”或者“这些实施例”的引用意味着结合实施例描述的具体特征、结构或者特性包含于本发明的至少一个实施例中,并且这些短语出现于说明书中的各处未必都指相同实施例。此外,在以下具体描述中,阐述了许多具体细节以便提供对本发明的透彻理解。然而,本领域普通技术人员将清楚,这些具体细节可以并非都是为了实践本发明而需要的。在其它境况中,未详细描述和/或可以用框图形式图示公知结构、材料、电路、过程和接口以免不必要地模糊本发明。
[0032]另外,在计算机内的操作的算法和符号表示方面呈现以下具体描述的一些部分。这些算法描述和符号表示是在数据处理领域中的技术人员用来向本领域其他技术人员最有效地传达他们的创新实质的手段。算法是得到所需最终状态或者结果的一系列定义的步骤。在本发明中,所执行的步骤需要物理操控有形量用于实现有形结果。通常但是非必需,这些量采用能够被存储、传送、组合、比较和另外操控的电或者磁信号或者指令的形式。主要出于惯用法的原因,将这些信号称为比特、值、元素、符号、字符、项、数字、指令等已经证实有时是方便的。然而,应当谨记,所有这些和相似术语将与适当物理量关联并且仅为应用于这些量的方便标记。除非如从以下讨论中清楚的那样另有具体明示,否则应理解贯穿该说明书,利用诸如“处理”、“计算”、“运算”、“确定”、“显示”等术语的讨论可以包括计算机系统或者其它信息处理设备的动作和过程,该计算机系统或者其它信息处理设备将计算机系统的寄存器和存储器中的被表示为物理(电子)量的数据操控和变换成计算机系统的存储器或者寄存器或者其它信息存储装置、传输或者显示设备内的被相似地表示为物理量的其它数据。
[0033]本发明也涉及一种用于执行这里的操作的装置。该装置可以被具体构造用于所需目的,或者它可以包括一个或者多个计算机程序有选择地激活或者重新配置的一个或者多个通用计算机。这样的计算机程序可以存储于包括非瞬态介质的计算机可读存储介质中、诸如但不限于光盘、磁盘、只读存储器、随机存取存储器、固态设备和驱动或者适合于存储电子信息的任何其它类型的介质中。这里呈现的算法和显示不固有地与任何特定计算机或者其它装置有关。各种通用系统可以根据这里的教导与程序和模块一起使用,或者构造更专门化的装置以执行所需方法步骤可以证实是方便的。此外,未参照任何特定编程语言来描述本发明。将理解多种编程语言可以用来实施如这里描述的本发明的教导。编程语言的指令可以由一个或者多个处理设备、例如中央处理单元(CPU)、处理器或者控制器执行。
[0034]以下将更具体描述的本发明的示例性实施例提供用于减少在数据复制、诸如远程复制期间在存储系统内的数据传送次数、由此提高性能的装置、方法和计算机程序。
[0035]图1是示出根据本发明的一个实施例的关注于服务器的计算机系统的图。计算机系统包括服务器100和存储系统200。服务器具有OS (操作系统)101、处理器102、DRAM103、服务器控制信息104、应用105和存储I / F(接口)108。服务器100通过执行OS和应用、诸如数据库系统来提供服务。在存储系统200中存储数据库系统处理的数据。服务器100经由网络110耦合到存储系统200。
[0036]图2是示出根据本发明的一个实施例的关注于存储系统的计算机系统的图。存储系统200包括高速缓存单元201、存储I / F202、处理器203、盘I / F204、卷205、HDD (硬盘驱动)206、存储控制信息207和存储程序208。
[0037]存储I / F202具有一个或者多个端口 209和缓冲器210。端口 209经由网络110耦合到服务器100并且调解与服务器100的通信。缓冲器210是用于存储在服务器100与存储系统200之间的传送数据的临时存储区域。处理器203通过执行已经被存储到存储程序208中的广泛多种程序来执行广泛多种处理。另外,处理器203通过使用已经被存储到存储控制信息207中的广泛多种信息来执行广泛多种处理。盘I / F204经由总线耦合到作为物理存储设备的示例的至少一个HDD206。被配置用于管理数据的卷205例如由HDD206的至少一个存储区域配置。物理存储设备不限于HDD206并且也可以例如是SSD(固态驱动)或者DVD。另外,可以以奇偶(parity)组为单位收集至少一个HDD206,并且也可以使用高可靠性技术、诸如RAID (独立盘冗余阵列)。存储控制信息207存储广泛多种程序使用的广泛多种信息。存储程序208存储广泛多种程序、诸如读取处理程序、写入处理程序等。高速缓存单元201高速缓存HDD206中存储的数据用于性能提升。
[0038]图3是远程复制配置的示例。主存储系统600是远程复制的源存储系统并且包括存储服务器所使用的数据的主卷(PV0L)601、临时存储传送数据的日志卷(JV0L)602和连接到次存储系统700的存储I / F603。次存储系统700是远程复制的目的地存储系统并且包括存储来自PV0L601的复制数据的次卷(SVOL) 701、临时存储传送数据的JV0L702和连接到主存储系统600的存储I / F703。在PV0L601与SV0L701之间的关系被称为远程复制对。主存储系统600和次存储系统700具有用于数据传送的一个或者多个存储I / F603、703。
[0039]以下将简述异步远程复制处理流。主存储系统600从服务器100接收写入请求。主存储系统600在PV0L601和JV0L602中存储写入数据作为日志(JNL)。JNL是传送数据,并且JV0L602是用于临时存储JNL的存储区域。JVOL未必需要是卷。JNL可以被存储于高速缓存单元201中。此后,主存储系统600向服务器发送完成消息。JNL被异步地传送到次存储系统700中的JV0L702。最后,向SV0L701复制JV0L702中存储的JNL。更具体而言,JNL由日志控制块(JNCB)和日志数据(JNL数据)构成。JNL数据是写入的数据的副本。JNCB包括JVOL上的JNL数据地址、SVOL上的复制目的地地址和来自服务器100的写入请求的写入序列信息。在图4中描述写入序列信息。
[0040]图4是序列号220的示例。在该示例中,序列号的当前值是“O”。“O”将被分配给来自服务器100的下一写入请求。虽然该幅图示出管理仅一个序列号的示例,但是可以管理用于确保一致性的每个单元的序列号。一般而言,该单元被称为一致性组。
[0041]图5是示出存储控制信息207的示例的具体框图。在主存储系统600中使用序列号220。在次存储系统700中使用接收的序列号位图221、恢复目的地表222和最大恢复序列号223。序列号220是用于管理来自服务器100的写入顺序的控制信息。接收的序列号位图221管理向次存储系统复制的JNL的序列号。恢复目的地表222管理将针对每个恢复目的地地址而恢复的JNL。最大存储序列号223管理向SVOL恢复的JNL的最大序列号。
[0042]图6是示出存储程序208的示例的具体框图。在主存储系统中执行JNL创建程序230和JNL传送程序231。在次存储系统中执行JNL读取程序、JNL恢复程序和JVOL读取程序。JNL创建程序230是用于创建JNL的程序。JNL传送程序231是用于向次存储系统发送JNL的程序。JNL读取程序232是用于发出读取命令并且从主存储系统接收JNL的程序。JNL恢复程序233是用于向次卷写入JNL数据的程序。JVOL读取程序234是用于从JVOL传送JNL数据的程序。以下描述这些程序的细节。
[0043]图7示出作为本发明待解决的问题的、针对远程复制处理每个硬件要被访问多少次的示例。图7的示例包括从主卷向次卷初始地传送JNL的情形。JNL数据已经存储于主卷中,并且JNCB具有主卷的地址。在图9中描述JNCB创建的处理流。假设通过使用RAIDl来镜像(mirror)HDD的数据。因此,执行向HDD写入数据两次。
[0044]首先,数据被从与PVOL对应的HDD读取并且被写入高速缓存单元201作为JVOL区域605中的JNL数据。其次,JNL数据被传送到主存储系统中的存储I / F的缓冲器606。第三步,JNL数据被再次传送到次存储系统中的存储I / F的缓冲器706。第四步,所传送的JNL数据被写入高速缓存单元201中作为JVOL区域704中的JVOL数据。这时,镜像数据被创建。因此,执行向高速缓存单元201的两次写入。第三步骤的传送处理由一个或者多个处理器和一个或者多个JNL传送作业并行执行。在JVOL上完成等待,从而恢复处理以序列号为序被恢复。在等待之后,JNL数据经由缓冲器706被传送到高速缓存单元201作为SVOL区域705中的SVOL数据。从高速缓存单元201读取镜像数据之一,并且从缓冲器706传送数据两次。因此,执行向高速缓存单元201的一次读取和两次写入。最后向由镜像构成的HDD传送数据。因此,执行向高速缓存单元201的两次读取。在初始复制的情况下,在次存储系统中执行向高速缓存单元201的七次访问。第四步骤增加高速缓存单元201、缓冲器706和处理器的资源消耗并且引起性能降低。
[0045]图8是图示用于解决图7中所示问题的本发明的一个实施例的概念图。该实施例如图8中所示,从次存储系统700中的缓冲器706向SVOL区域705直接传送JNL数据而无需向JVOL区域704传送它。仅在满足用于保证数据一致性的预定条件时,才执行从缓冲器706向SVOL区域705的直接传送。具体而言,在一个或者多个JNL的恢复地址(SV0L地址)不相同时,即使存在具有比JNL的序列号更小的序列号的未恢复的JNL,存储系统仍然恢复该JNL。在图9至图17中描述JNL传送处理。
[0046]图9是图示JNL创建程序230的过程的示例的流程图,该JNL创建程序使JNL在主存储系统中向SVOL复制PVOL数据。首先,卷复制程序计算PVOL的源地址(步骤S100)。在处理开始时,该值是PVOL的首地址。然后,程序获得当前序列号并且递增它(步骤S101)。此后,程序创建JNCB并且向JVOL存储它(步骤S102)。JNCB包括所获得的PVOL地址、序列号、SVOL ID等。一般而言,远程复制功能具有用于管理与PVOL对应的次存储系统ID和SVOLID的远程复制对表。在该实施例中,省略该对表。可以向存储控制信息存储JNCB。接着,程序确认PVOL地址是否为PVOL的结束地址(步骤S103)。如果PVOL地址是结束地址,则意味着所有PVOL区域的JNL创建完成。因此,程序终止处理(步骤S104)。如果步骤S103的结果为“否”,则程序返回到步骤SlOO并且针对PVOL的下一地址进行处理。程序针对PVOL的所有区域创建JNL。
[0047]图10是图示JNL传送程序231的过程的示例的流程图,该JNL传送程序从次存储系统接收JNL读取请求并且传送JNL。首先,JNL传送程序从次存储系统接收JNL读取请求(S200)。然后,程序确定待传送的JNL(S201)。可以考虑一种或者多种确定方法。例如,从最小序列号选择预定编号。或者通过使用作业ID等来创建可以计算用于处理的序列号的规则。接着,程序获得与确定的JNL对应的PVOL地址(S202)。通过参考JNCB中的PVOL地址信息来实现该处理。如果在高速缓存单元中不存在与获得的PVOL地址对应的数据,则程序分配高速缓存单元中的区域并且向HDD发出读取请求(S203)。在数据被存储于高速缓存单元之后,程序分配缓冲器中的区域并且从高速缓存单元向分配的区域传送JNCB和JNL数据(S204)。然后,程序引导存储I / F从缓冲器向次存储系统传送JNL(S205)并且终止处理(S206)。
[0048]已经描述了用于从缓冲器向次存储系统中的SVOL直接传送JNL数据的处理。为了数据一致性,该处理确认每个JNL的恢复地址是否与恢复之前的相同。如果地址不相同,则执行恢复。
[0049]图11是用于检查恢复地址的恢复目的地表222的示例。在该图的左侧示出从恢复地址计算的哈希值条目800。恢复地址指SVOLID(标识符)加上SVOL中的地址。也可以使用SVOL ID加上SVOL中的地址而不是哈希值。通过使用哈希值,可以减小表的大小。针对哈希值条目800管理序列号列表801。SEQ#指序列号。在该示例中,从具有序列号“100”的JNL的恢复地址计算的哈希值是“aaa”。序列号“ 102”和“ 103”的哈希值是“ccc”。这意味着恢复地址相同。因此,应当首先恢复具有比序列号“103”更小的序列号“102”的JNL。在恢复处理中,通过检查该表中的恢复地址来保证数据一致性。
[0050]为了保证数据一致性,需要另一条控制信息。在图12中描述了该控制信息。例如,在图11中不存在具有与序列号“100”或者“101”相同的恢复地址的JNL。然而,尚未向次存储系统传送的具有序列号“99”的JNL的恢复地址可能相同。由于使用一个或者多个处理器、作业和物理路径来并行执行向次存储系统的JNL传送,所以具有序列号“99”的JNL可能落后到达。在该情况下,如果恢复具有序列号“100”或者“101”的JNLJU SVOL数据可能不一致。
[0051]图12是接收的序列号位图221的示例。接收的序列号位图221如以上提到的那样用来避免数据不一致。接收的位图901管理JNL的到达状态。“0N”意味着已经接收到JNL。括号中的编号指SWQ#。已经接收到具有从“O”到“102”和“105”的序列号的JNL,并且尚未接收到具有序列号“103”等的JNL。在如同该例的简单数据结构的情况下,接收的序列号位图221的大小很大。存在用于减小控制信息的大小的一些技术。在使用最后比特之后,第一比特可以与除了 SEQ# “O”之外的SEQ#复用。在该情况下,需要如下控制信息,该控制信息管理第一比特与哪个SEQ#相对应。例如,如果最后比特与SEQ# “100”一起使用,则第一比特与SEQ# “101”复用并且比特“O”与SEQ# “101”之间的对应关系被管理。在无省略地接收JNL的范围内执行使用恢复目的地表222的地址检查处理以避免图11中提到的不一致。由于如果JNL未在该范围中则可能引起数据不一致,所以在此时不执行向SVOL的直接恢复。接着,描述在考虑图11和图12的说明时的JNL读取处理。
[0052]图13是图示JNL读取程序232的过程的示例的流程图。首先,JNL读取程序向主存储系统发出JNL读取请求(步骤S300)并且从主存储系统接收JNL (步骤S301)。然后,程序针对每个JNL从恢复地址计算哈希值并且向恢复目的地表222中注册哈希值和序列号(步骤S302)。另外,程序针对每个JNL更新接收的序列号位图221 (步骤S303)。在更新控制信息之后,程序从接收的JNL选择具有最小序列号的JNL (步骤S304)。然后,程序确认是否存在具有比选择的JNL的序列号更小的序列号的任何未接收的JNL(步骤S305)。通过使用图12中的接收的序列号位图221来实现该确认。如果步骤S305的结果为“否”,则程序确认是否存在具有与选择的JNL相同的恢复地址和比选择的JNL的序列号更小的序列号的任何接收的JNL (步骤S306)。如果步骤S306的结果为“否”,则在从缓冲器向SVOL直接恢复JNL时保证数据一致性。因此,程序前进至步骤S307并且调用用于恢复的JNL恢复程序233(步骤S307)。在步骤S307中恢复SEQ#之后,从图11删除该SEQ#。在步骤S307之后,如果存在任何未处理的JNL(步骤S308),则程序返回到步骤S304并且针对具有最小序列号的下一 JNL执行处理。如果步骤S305或者步骤S306的结果为“是”,则程序前进至步骤S309并且向JVOL传送数据(步骤S309)。通过使用一个或者多个处理器和作业来并行执行该JNL读取处理。
[0053]在前进至步骤S309之前,可以在等待预定时段之后再次执行步骤S305或者S306。这是因为可以通过在等待期间执行另一 JNL读取或者JNL恢复处理来满足步骤S305或者S306的条件。在不存在未处理的JNL时或者在完成步骤S309时,程序前进至步骤S310并且终止处理(步骤S310)。如果步骤S306的结果为“是”,则程序可以在步骤S309中向JVOL传送选择的JNL数据之后前进至步骤S304。这是因为可以恢复的JNL可能在接收的JNL中。在图11的示例中,即使不能处理“103”,仍然可以恢复序列号“104”。该JNL读取程序232定期被执行以传送下一 JNL。
[0054]图14是图示从JNL读取程序232调用的JNL恢复程序233的过程的示例的流程图。该程序从缓冲器向次存储系统中的SVOL传送JNL数据。首先,JNL恢复程序由另一程序调用。该程序从调用者接收缓冲器地址(步骤S400)。然后,程序为次卷分配高速缓存单元中的区域(步骤S401)并且向分配的区域传送缓冲器中存储的数据(步骤S402)。该传送的数据被存储于高速缓存单元中作为SVOL数据,而不是JVOL数据。最后,程序向调用者发送完成消息并且终止处理(步骤S403和S404)。
[0055]可以在JNL读取程序232的步骤S309中向JVOL传送JNL。需要用于从JVOL恢复JNL的处理。图15是图示用于从JVOL恢复JNL的JVOL读取程序234的过程的示例的流程图。首先,JVOL读取程序确认在JVOL中是否存在任何JNL (步骤S500)。然后,程序从存储的JNL选择具有最小序列号的JNL(步骤S501)。接着,程序执行与图13中的步骤S305和S306相同的处理。如果步骤S305和步骤S306的两个结果为“否”,则程序分配缓冲器中的区域(步骤S502)并且调用JNL恢复程序233 (步骤S307)。然后,程序返回到步骤500并且针对具有最小序列号的下一 JNL执行处理。如果步骤S305或者步骤S306的结果为“是”,则程序前进至步骤S503并且在预定时间内释放处理器。在步骤S503之后,程序返回到步骤S500并且针对相同JNL执行处理。
[0056]如以上提到的那样,次存储系统在不存在具有相同恢复地址的其它JNL时,从缓冲器向SVOL直接传送数据。因此,严格地说,JNL的恢复顺序不同于序列号的顺序。然而,在失败之后从服务器访问SVOL时,SVOL必须具有一致状态,这意味着向某个序列号的恢复被完成并且在该某个序列号之后的恢复未完成。在图16和图17中描述用于提供一致SVOL状态的处理。
[0057]图16是图示中止程序的过程的示例的流程图,该中止程序从服务器或者管理服务器接收中止请求并且改变远程复制对状态用于从服务器使用SV0L。首先,中止程序从服务器或者管理服务器接收中止请求并且注册对中止请求的接收。可以通过一致性组或者远程复制对通知中止请求。程序等待JNL读取程序232的完成,该JNL读取程序基于中止请求来完成处理(步骤S600)。在JNL读取程序的完成之后,中止程序指定无省略地接收JNL的范围(S601)。在主存储失败之后的情况下,在主存储系统中创建的所有JNL可能未都到达次存储系统。然后,程序获得该范围内的最大序列号(步骤S602)。这时,用于SVOL数据一致性的某个序列号被确定。接着,程序将JNL恢复成所获得的最大序列号(步骤S603)。该处理与图15中的步骤S501、S502和S307相同。然后,程序等待在步骤S603中调用的JNL恢复程序233的完成。最后,程序将SVOL状态更新成I / O可接受状态(步骤S605)并且终止处理(步骤S606)。
[0058]图17是图示在接收中止请求之后完成JNL读取程序232的处理的示例的流程图。首先,程序向主存储系统发出JNL读取请求(S700)。然后,程序确认是否接收到来自服务器的中止请求(步骤S701)。可以通过读取在图16中的步骤S600中设置的信息来实现该确认。如果未接收到中止请求,则程序执行图13中描述的通常处理(步骤S702)。如果接收到中止请求,则程序执行以完成处理。如果来自主存储系统的响应为“无JNL”或者无响应(步骤S703),则程序用作业ID注册处理的完成(步骤S704)。在步骤S600中,中止程序基于该信息等待JNL读取程序的完成。在注册之后,程序终止处理(步骤S705)。如果步骤S703的结果为“否”,则程序前进至步骤S702并且执行通常处理。这是因为在主存储系统中存在一些未传送的JNL。在步骤S702之后,程序在步骤S705中终止处理而无需注册处理的完成。因此,将再次执行JNL读取程序。
[0059]当然,图1、图2和图8中所示的系统配置仅举例说明其中可以实施本发明的信息系统,并且本发明不限于具体硬件配置。实施本发明的计算机和存储系统也可以具有已知I / O设备(例如,⑶和DVD驱动、软盘驱动、硬驱动等),这些I / O设备可以存储和读取用来实施以上描述的本发明的模块、程序和数据结构。可以在这样的计算机可读介质上对这些模块、程序和数据结构编码。例如,可以与在本发明中使用的程序驻留于其上的一个或者多个计算机可读介质独立地在计算机可读介质上存储本发明的数据结构。系统的部件可以由任何数字数据通信形式或者介质、例如通信网络互连。通信网络的示例包括局域网、广域网、例如因特网、无线网络、存储区域网络等。
[0060]在说明书中,出于说明的目的而阐述许多细节以便提供对本发明的透彻理解。然而,本领域技术人员将清楚,无需这些具体细节中的所有细节来实现本发明。还注意到,可以描述本发明为过程,其通常被描绘为流程图、流图、结构图或者框图。虽然流程图可以将操作描述为顺序的过程,但是可以并行或者并发地执行许多操作。此外,可以重排操作的顺序。
[0061]如本领域所知,以上描述的操作可以由硬件、软件或者软件与硬件的某种组合执行。可以使用电路和逻辑设备(硬件)来实施本发明的实施例的各种方面,而可以使用机器可读介质上存储的指令(软件)来实施其它方面,这些指令(软件)如果由处理器执行则将使处理器执行用于实现本发明的实施例的方法。另外,可以仅在硬件中执行本发明的一些实施例,而可以仅在软件中执行其它实施例。另外,可以在单个单元中执行描述的各种功能或者描述的各种功能可以以任何数目的方式跨多个部件分布。在由软件执行时,方法可以基于计算机可读介质上存储的指令由处理器、诸如通用计算机执行。如果希望,则可以用压缩和/或加密格式在介质上存储指令。
[0062]从前文将清楚,本发明提供用于减少在数据复制、诸如远程复制期间在存储系统内的数据传送次数的方法、装置和在计算机可读介质上存储的程序。此外,尽管已经在本说明书中图示和描述了具体实施例,但是本领域普通技术人员理解,被设计用于实现相同目的的任何布置可以替换公开的具体实施例。本公开旨在于覆盖本发明的任何和所有适配和变化,并且将理解,不应将在所附权利要求中使用的术语解释为使本发明限于说明书中公开的具体实施例。实际上,本发明的范围将完全取决于将根据建立的权利要求解释原则而解释的所附权利要求以及这样的权利要求有权具有的等效内容的全部范围。
【权利要求】
1.一种存储系统,包括: 多个存储设备;以及 控制器,所述控制器可操作用于管理具有另一存储系统的主卷的远程复制对中的、并且与所述多个存储设备的一部分对应的次卷; 其中所述次卷具有用于根据远程复制过程来存储在从所述另一存储系统发送的日志数据中包括的数据的功能;并且 其中如果所述日志数据与另一日志数据之间的关系具有条件,则所述控制器可操作用于在向所述次卷存储所述日志数据的所述数据之前操纵所述日志数据以被临时存储于与所述多个存储设备的另一部分对应的第三卷中,所述另一日志数据具有比所述日志数据的序列号更小的序列号并且被从所述另一存储系统发送到所述存储系统。
2.根据权利要求1所述的存储系统, 其中如果所述关系不具有所述条件,则所述控制器可操作用于操纵所述日志数据以被直接存储到所述次卷而不被临时存储于所述第三卷中。
3.根据权利要求1所述的存储系统, 其中所述第三卷在所述控制器的高速缓存存储器的一部分中,并且所述次卷在所述控制器的所述高速缓存存储器的另一部分中。
4.根据权利要求1所述的存储系统,其中所述控制器可操作用于: 从所述另一存储系统接收各自具有序列号的多个日志数据,所述序列号是用于管理用于向所述主卷写入数据的写入顺序的控制信息; 从还未被存储到所述次卷或者所述第三卷的、被接收的所述多个日志数据中选择具有最小序列号的日志数据; 确定是否存在具有比选择的所述日志数据的所述序列号更小的序列号的任何未被接收的日志数据;以及 作为所述条件,如果存在具有比选择的所述日志数据的所述序列号更小的序列号的、作为所述另一日志数据的未被接收的日志数据,则在向所述次卷存储选择的所述日志数据的数据之前,在所述第三卷中临时存储选择的所述日志数据的所述数据。
5.根据权利要求4所述的存储系统,其中如果不存在具有比选择的所述日志数据的所述序列号更小的序列号的未被接收的日志数据,则所述控制器可操作用于: 确定是否存在具有比选择的所述日志数据的所述序列号更小的序列号的、并且具有与选择的所述日志数据相同的恢复地址的任何被接收的日志数据,所述恢复地址是所述次卷中的用于写入日志数据的地址;以及 作为所述条件,如果存在具有比选择的所述日志数据的所述序列号更小的序列号的、并且具有与选择的所述日志数据相同的恢复地址的、作为所述另一日志数据的被接收的日志数据,则在向所述次卷存储选择的所述日志数据的数据之前,在所述第三卷中临时存储选择的所述日志数据的所述数据。
6.根据权利要求5所述的存储系统,其中如果不存在具有比选择的所述日志数据的所述序列号更小的序列号的、并且具有与选择的所述日志数据相同的恢复地址的、作为所述另一日志数据的被接收的日志数据,则所述控制器可操作用于: 直接在所述次卷中写入选择的所述日志数据,而不被临时存储于所述第三卷中。
7.根据权利要求1所述的存储系统,还包括: 缓冲器; 其中在从所述另一存储系统发送的所述日志数据的所述数据被存储到所述次卷或者所述第三卷之前,所述日志数据被存储在所述缓冲器中。
8.一种系统,所述系统包括:具有多个存储设备的主存储系统;以及次存储系统,所述次存储系统包括: 多个存储设备;以及 控制器,所述控制器可操作用于管理具有所述主存储系统的主卷的远程复制对中的、并且与所述次存储系统中的所述多个存储设备的一部分对应的次卷; 其中所述次卷具有用于根据远程复制过程来存储在从所述主存储系统发送的日志数据中包括的数据的功能;并且 其中如果所述日志数据与另一日志数据之间的关系具有条件,则所述控制器可操作用于在向所述次卷存储所述日志数据的所述数据之前,操纵所述日志数据以被临时存储于与所述次存储系统的所述多个存储设备的另一部分对应的第三卷中,所述另一日志数据具有比所述日志数据的序列号更小的序列号并且被从所述主存储系统发送到所述次存储系统。
9.根据权利要求8所述的系统, 其中如果所述关系不具有所述条件,则所述控制器可操作用于操纵所述日志数据以被直接存储到所述次卷而不被临时存储于所述第三卷中。
10.根据权利要求8所述的系统, 其中所述第三卷在所述控制器的高速缓存存储器的一部分中,并且所述次卷在所述控制器的所述高速缓存存储器的另一部分中。
11.根据权利要求8所述的系统,其中所述控制器可操作用于: 从所述另一存储系统接收各自具有序列号的多个日志数据,所述序列号是用于管理用于向所述主卷写入数据的写入顺序的控制信息; 从还未被存储到所述次卷或者所述第三卷的被接收的所述多个日志数据中选择具有最小序列号的日志数据; 确定是否存在具有比选择的所述日志数据的所述序列号更小的序列号的任何未被接收的日志数据;以及 作为所述条件,如果存在具有比选择的所述日志数据的所述序列号更小的序列号的未被接收的日志数据,则在向所述次卷存储选择的所述日志数据的数据之前,在所述第三卷中临时存储选择的所述日志数据的所述数据。
12.根据权利要求11所述的系统,其中如果不存在具有比选择的所述日志数据的所述序列号更小的序列号的未被接收的日志数据,则所述控制器可操作用于: 确定是否存在具有比选择的所述日志数据的所述序列号更小的序列号的、并且具有与选择的所述日志数据相同的恢复地址的任何被接收的日志数据,所述恢复地址是所述次卷中的用于写入日志数据的地址;以及 作为所述条件,如果存在具有比选择的所述日志数据的所述序列号更小的序列号的、并且具有与选择的所述日志数据相同的恢复地址的、作为所述另一日志数据的被接收的日志数据,则在向所述次卷存储选择的所述日志数据的数据之前,在所述第三卷中临时存储选择的所述日志数据的所述数据。
13.根据权利要求12所述的系统,其中如果不存在具有比选择的所述日志数据的所述序列号更小的序列号的、并且具有与选择的所述日志数据相同的恢复地址的、作为所述另一日志数据的被接收的日志数据,则所述控制器可操作用于: 直接在所述次卷中写入选择的所述日志数据而不被临时存储于所述第三卷中。
14.根据权利要求8所述的系统, 其中所述次存储系统还包括缓冲器;并且 其中在从所述主存储系统发送的所述日志数据的所述数据被存储到所述次卷或者所述第三卷之前,所述日志数据被存储在所述缓冲器中。
15.一种存储多个指令的计算机可读存储介质,所述多个指令用于控制数据处理器以用于从主存储系统向具有多个存储设备的次存储系统的远程复制,所述多个指令包括: 使得所述数据处理器管理具有所述主存储系统的主卷的远程复制对中的、并且与所述多个存储设备的一部分对 应的次卷的指令,所述次卷具有用于根据远程复制过程来存储在从所述主存储系统发送的日志数据中包括的数据的功能;以及 如果所述日志数据与另一日志数据之间的关系具有条件,则使得所述数据处理器在向所述次卷存储所述日志数据的所述数据之前操纵所述日志数据以被临时存储于与所述次存储系统的所述多个存储设备的另一部分对应的第三卷中的指令,所述另一日志数据具有比所述日志数据的序列号更小的序列号并且被从所述主存储系统发送到所述次存储系统。
16.根据权利要求15所述的计算机可读存储介质,其中所述多个指令还包括: 如果所述关系不具有所述条件,则使得所述数据处理器操纵所述日志数据以被直接存储到所述次卷而不被临时存储于所述第三卷中的指令。
17.根据权利要求15所述的计算机可读存储介质, 其中所述第三卷在所述控制器的高速缓存存储器的一部分中,并且所述次卷在所述控制器的所述高速缓存存储器的另一部分中。
18.根据权利要求15所述的计算机可读存储介质,其中所述多个指令还包括: 使得所述数据处理器从所述另一存储系统接收各自具有序列号的多个日志数据的指令,所述序列号是用于管理用于向所述主卷写入数据的写入顺序的控制信息; 使得所述数据处理器从还未被存储到所述次卷或者所述第三卷的被接收的所述多个日志数据中选择具有最小序列号的日志数据的指令; 使得所述数据处理器确定是否存在具有比选择的所述日志数据的所述序列号更小的序列号的任何未被接收的日志数据的指令;以及 作为所述条件,如果存在具有比选择的所述日志数据的所述序列号更小的序列号的、作为所述另一日志数据的未被接收的日志数据,则使得所述数据处理器在向所述次卷存储选择的所述日志数据的数据之前在所述第三卷中临时存储选择的所述日志数据的所述数据的指令。
19.根据权利要求18所述的计算机可读存储介质,其中所述多个指令还包括:如果存在具有比选择的所述日志数据的所述序列号更小的序列号的未被接收的日志数据,则: 使得所述数据处理器确定是否存在具有比选择的所述日志数据的所述序列号更小的序列号的、并且具有与选择的所述日志数据相同的恢复地址的任何被接收的日志数据的指令,所述恢复地址是所述次卷中的用于写入日志数据的地址;以及 作为所述条件,如果存在具有比选择的所述日志数据的所述序列号更小的序列号的、并且具有与选择的所述日志数据相同的恢复地址的、作为所述另一日志数据的被接收的日志数据,则使得所述数据处理器在向所述次卷存储选择的所述日志数据的数据之前在所述第三卷中临时存储选择的所述日志数据的所述数据的指令。
20.根据权利要求19所述的计算机可读存储介质,其中所述多个指令还包括,如果不存在具有比选择的 所述日志数据的所述序列号更小的序列号的、并且具有与选择的所述日志数据相同的恢复地址的、作为所述另一日志数据的被接收的日志数据,则: 使得所述数据处理器直接在所述次卷中写入选择的所述日志数据而不被临时存储于所述第三卷中的指令。
【文档编号】G06F13/28GK103942118SQ201310447274
【公开日】2014年7月23日 申请日期:2013年9月24日 优先权日:2013年1月23日
【发明者】出口彰 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1