CN101727366B - 进行利用了日志的远程复制的计算机系统 - Google Patents
进行利用了日志的远程复制的计算机系统 Download PDFInfo
- Publication number
- CN101727366B CN101727366B CN200910203115.XA CN200910203115A CN101727366B CN 101727366 B CN101727366 B CN 101727366B CN 200910203115 A CN200910203115 A CN 200910203115A CN 101727366 B CN101727366 B CN 101727366B
- Authority
- CN
- China
- Prior art keywords
- storage system
- daily record
- jnl
- storage
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003860 storage Methods 0.000 claims abstract description 146
- 238000011084 recovery Methods 0.000 claims description 35
- 230000005540 biological transmission Effects 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 26
- 238000009826 distribution Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims 1
- 238000009434 installation Methods 0.000 claims 1
- 230000001788 irregular Effects 0.000 abstract 1
- 230000008014 freezing Effects 0.000 description 15
- 238000007710 freezing Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 11
- 230000004044 response Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 239000003550 marker Substances 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2071—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
- G06F11/2074—Asynchronous techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2064—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring while ensuring consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2082—Data synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/855—Details of asynchronous mirroring using a journal to transfer not-yet-mirrored changes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种进行利用了日志的远程复制的计算机系统,其目的在于,即使不对第一存储系统接收的写入对象数据赋予时间戳,也可以保持在第二存储系统中存储的数据的匹配性。一个计算机具有存储管理部。存储管理部定期或者不定期地对一个以上的第一存储系统(PDKC)发布前一次发布的ID的下一ID。各PDKC在从某个计算机接收到写入命令时,生成包含写入对象数据的复制(日志数据)和来自存储管理部的最新的ID的日志(JNL),然后将其传输给第二存储系统(SDKC)。SDKC存储接收到的JNL,将未反映的JNL中的直到特定的JNL为止的JNL反映给第二卷。特定的JNL具有比一个以上的SDKC中的最新的已到达ID中的最前的ID提前一个的ID。
Description
技术领域
本发明涉及利用了日志的远程复制。
背景技术
例如,在专利文献1中,公开了以下的技术。即,第一存储系统从第一主计算机接收写入数据,在收到写入数据后立即向第一主计算机报告完成接收写入数据。之后,主计算机从第一存储系统读出写入数据的复制。该写入数据被赋予了写入时刻,该写入时刻是发布了针对写入数据的写入请求的时刻,在将写入数据读出到第一主计算机中时,还将写入时刻交给第一主计算机。并且,第一主计算机把写入数据和写入时刻传输给第二主计算机。第二主计算机接收写入数据和写入时刻,将写入时刻等信息写入到位于第二存储系统中的控制用卷中,并且,参照对各个写入数据赋予的写入时刻,按照写入时刻的顺序,将写入数据写入到第二存储系统中。
【专利文献1】欧洲专利申请公开第0672985号说明书
发明内容
在专利文献1公开的技术中,通过利用写入数据被赋予的写入时刻(时间戳),来保持数据的一致性。因此,在主计算机不对写入数据赋予写入时间的计算机系统中无法应用该技术。具体地说,例如,在可以对写入请求赋予写入时刻的包含所谓大型的计算机的计算机系统中可以应用专利文献1公开的技术,但是在不对写入请求赋予写入时刻的包含所谓的开放系统的计算机的计算机系统中无法应用专利文献1公开的技术。
因此,本发明的目的在于即使第一存储系统接收的写入对象的数据没有被赋予时间戳,也能保持在第二存储系统中存储的数据的匹配性。
在一个以上的计算机中的一个计算机中具备存储管理部。存储管理部定期或者不定期地向一个以上的(例如两个以上)的第一存储系统发布前一次发布的ID的下一个ID。各个第一存储系统在从一个以上的计算机中的某一个接收到写入命令时,将写入对象的数据写入到第一卷中,生成日志,该日志包含作为该写入对象的数据的复制的日志数据以及来自第一计算机的最新的ID,把生成的日志存储在第一日志存储区域中,并将该日志传输给连接目的地的第二存储系统。第二存储系统将接收到的日志写入第二日志存储区域中,直到在第二日志存储区域中存储的一个以上的日志中的特定的日志为止,将日志内的日志数据写入到第二卷中。所谓特定的日志是指具有比一个以上的第二存储系统中的最新的已到达ID中的最前的ID提前一个的ID的日志。
附图说明
图1表示本发明一实施方式的计算机系统的结构例子。
图2是PDKC和SDKC之间的交换的说明图。
图3表示恢复许可TS#的设定和恢复处理的概要。
图4表示各DKC的结构。
图5表示PDKC具有的功能框和SDKC具有的功能框。
图6A表示对管理表57P1的结构例。图6B表示对管理表57S1的结构例。
图7表示JNL组和一致性组的关系。
图8表示JNL组管理表的结构例。
图9表示在接收到WR命令时PDKC执行的处理的流程。
图10表示在发送RD-JNL命令时SDKC执行的处理的流程。
图11表示在接收到RD-JNL命令时PDKC执行的处理的流程。
图12表示在接收到RD-JNL命令时PDKC执行的处理的流程。
图13表示在接收到RD数据时SDKC执行的处理的流程。
图14表示RM使用的定义文件的一例。
图15表示TS设定命令中包含的信息要素。
图16表示从RM接收到TS设定命令的PDKC执行的处理的流程。
图17表示用于决定恢复许可TS#的处理的流程。
图18表示JNCB中包含的信息要素的一例。
图19表示RD-JNL命令参数中包含的信息要素的一例。
图20表示针对来自RM的状态取得命令的应答信息中包含的信息要素。
图21表示在接收到来自RM的状态取得命令时PDKC执行的处理的流程。
图22是直到比恢复许可TS#小一个的JNL为止成为反映对象的理由的说明图。
图23A是在不具有发送NO-JNL的功能时可能产生的问题的说明图。图23B是由于具有发送NO-JNL的功能可以期待的效果的说明图。
图24是在发送TS设定命令前发送冻结命令的事例中的某个处理的说明图。
图25是在发送TS设定命令前不发送冻结命令时可能产生的问题的说明图。
图26表示在接收到冻结命令时PDKC执行的处理的流程。
图27表示在接收到RUN命令时PDKC执行的处理的流程。
图28表示在RM中产生了故障。
图29表示在RM从故障恢复时执行的处理的流程。
图30表示在RM和PDKC11P1之间发生了故障时执行的处理。
图31表示从图30所示的故障恢复时执行的处理。
图32表示图31所示的处理的后续的处理。
符号说明
23RAID管理器
具体实施方式
以下参照附图说明本发明的一实施方式。此外,在以下的说明中,通过“DKC”的标记表示存储系统,通过“PDKC”的标记表示第一DKC,通过“SDKC”表示第二DKC。此外,将“写入”简略地记载为“WR”,将“读出”简略地记载为“RD”。
首先,参照图1至图3说明本实施方式的概要。
图1表示本发明一实施方式的计算机系统的结构例子。
具有DKC组18。DKC组18为M×N结构。即,DKC组18由属于第一站点(site)(P站点)15P的M台的PDKC、和属于第二站点(S站点)15S的N台SDKC构成。M为1以上的整数,N为1以上的整数。在PDSK上连接至少一个SDKC,在SDKC上连接至少一个PDSK。因此,例如,可以采用在两台PDSK上连接了一台SDKC的结构。在本实施方式中,DKC组18由两台PDSK(M=2)11P1以及11P2、两台SDKC(N=2)11S1以及11S2构成。并且,PDKC和SDKC一对一地连接。即,PDSK11P1与SDKC11S1连接,与SDKC11S1相互通信,PDSK11P2与SDKC11S2连接,与SDKC11S2相互通信。
PDSK11P1(11P2)具有PVOL17P1(17P2)和JVOL17PJ1(17PJ2)。另一方面,SDKC11S1(11S2)具有JVOL17SJ1(17SJ2)和SVOL17S1(17S2)。
在此,“PVOL”是第一卷的简写,是由来自主机的写入命令指定的逻辑卷。按照该写入命令,将写入对象的数据写入到PVOL中。
“JVOL”是日志卷的简写,是写入日志(JNL)的逻辑卷。“JNL”是表示PVOL的更新履历的信息,具体地说,例如是由JNCB和JNL数据构成的信息。“JNCB”是与JNL有关的管理信息(JNL管理信息)。在JNCB中例如包含:表示包含该JNCB的JNL是第几个被生成的序列号(SEQ#)、表示与该JNL内的JNL数据相对应的写入对象的数据被写入在哪个PVOL的哪个位置(例如哪个块)的更新位置信息、后述的P站点接收TS#。“JNL数据”是写入对象的数据的复制。
“SVOL”是第二卷的简写,是与PVOL构成对的逻辑卷。在SVOL中写入作为在对方的PVOL中存储的写入对象数据的复制的JNL数据(即,还在SVOL中存储在PVOL中存储的数据)。
上述的PVOL、JVOL以及SVOL中的无论哪个逻辑卷都是以DKC具有的多个HDD(Hard Disk Drive)(也可以是闪速存储器等物理存储装置)为基础而形成的逻辑存储装置。
具备多个主计算机(以下成为主机),例如具备主机21A和主机21B两台主机。主机21A以及21B具有I/O发布部25。I/O发布部25通过应用程序以及/或者操作系统(以下称为OS)来实现。OS是开放系统类的OS。I/O发布部25发送I/O命令,即写入命令(以下称为WR命令)或读取命令(以下称为RD命令)。在该I/O命令中指定I/O目的地的PVOL(具体地说,例如端口号码和LUN(Logical Unit Number)的组合)。
仅在主机21A以及21B中的一个主机21A中具备RAID管理器(以下称为RM)23。至少该主机21A与全部的PDSK11P1以及11P2连接。RM23是由微处理器执行的计算机程序,定期地对全部的PDSK11P1以及11P2发布时间戳号码(以下称为TS#)。TS#不是时刻只是简单的号码。可以按顺序对各个PDSK发布TS#,也可以一起发送给全部的PDSK 11P1以及11P2。通过一次把相同的TS发送给全部的PDSK 11P1以及11P2。在下一次,把该TS#的下一个TS#((前一次的TS#)+1的号码)发送给全部的PDSK 11P1以及11P2。各个PDSK 11P1以及11P2在每次接收到TS#时,将P站点接收TS#更新为该接收到的TS#。结果,在各个PDSK 11P1以及11P2中,将接收到的TS#中的最新的TS#作为P站点接收TS#进行管理。
以下,主要采用PDSK 11P1和SDKC 11S1的组合作为例子来说明PDSK11P1和SDKC 11S1执行的处理。
在PDKC 11P1接收到WR命令时,进行下述的(1-1)以及(1-2),
(1-1)把遵照该WR命令的WR对象的数据写入到由该WR命令指定的PVOL17P1中;
(1-2)生成JNL,该JNL包含有作为该WR对象数据的复制的JNL数据,把该JNL写入到JVOL17PJ1中。
在(1-2)中生成的JNL内的JNCB中包含该JNL的SEQ#、更新位置信息(例如,WR对象数据的WR目的地的PVOL的ID(例如该PVOL的号码或LUN)、PVOL中的WR目的地块的地址)、在接收到WR命令的PDKC 11P1中管理的P站点接收TS#。
PDKC 11P1把JVOL17PJ1中存储的JNL中的未传输给SDKC11S1的JNL发送给SDKC11S1。
SDKC11S1把接收到的JNL写入到JVOL17SJ1中。
此外,SDKC11S1把JVOL17SJ1中存储的JNL中的未反映给SVOL17S1的JNL反映给SVOL17S1。所谓“反映JNL”是指把JNL内的JNL数据写入到与根据该JNL内的JNCB的更新位置信息确定的PVOL构成对的SVOL中,即,对数据进行恢复。此时,JNL数据的WR目的地成为与根据该更新位置信息确定的WR目的地块地址为相同地址的块,或者为与该WR目的地块地址相对应的地址的块(SVOL内的块)。按照JNL的SEQ#的顺序进行JNL的反映。
如图2所示,SDKC11S1管理恢复许可TS#、已到达TS#以及已恢复TS#。“恢复许可TS#”是指在确定能够反映到哪个JNL时所使用的TS#(关于恢复许可TS#,将在后面进行详细地叙述)。所谓“已到达TS#”是指接收到的JNL中最新的JNL(SEQ#为最新的JNL)所具有的TS#。所谓“已恢复TS#”是指对SVOL17S1反映的JNL中的最新的JNL(SEQ#为最新的JNL)所具有的TS#。
如图2所示,PDKC 11P1响应来自SDKC11S1的RD-JNL命令发送JNL。具体地说,例如,SDKC11S1定期或者不定期地把RD-JNL命令发送给PDKC11P1。所谓“RD-JNL命令”是JNL的RD命令。SDKC11S1在该RD-JNL命令中包含SDKC11S1管理的已到达TS#以及已恢复TS#。PDKC 11P1在接收到RD-JNL命令时,进行下述的(2A-1)以及(2A-2),
(2A-1)存储RD-JNL命令内的已到达TS#以及已恢复TS#;
(2A-2)把JVOL17PJ1中存储的JNL中的未传输给SDKC11S1的JNL作为针对RD-JNL命令的RD数据,发送给SDKC11S1。
在RD-JNL命令中可以指定SDKC11S1接收到的JNL中最新的JNL(在JVOL17SJ1中存储的JNL中最新的JNL)的下一个JNL的SEQ#。此时,可以从JVOL17PJ1读出具有该SEQ#的JNL后从PDKC 11P1发送给SDKC11S1,并写入到JVOL17SJ1中。
SDKC11S1在从PDKC 11P1作为RD数据接收到JNL时,进行下述的(2B-1)以及(2B-2),
(2B-1)把接收到的JNL内的TS#作为已到达TS#进行存储;
(2B-2)把接收到的JNL写入到JVOL17SJ1中。
此外,如图2所示,在SDKC11S1中,不管理P站点到达TS#,或者作为无效值“0”进行管理。
此外,SDKC11S1在将JVOL17SJ1内的未反映的JNL反映到了SVOL17S1时,把反映的JNL内的TS#作为已恢复TS#进行存储。
通过把SDKC11S1(11S2)中管理的已到达TS#以及已恢复TS#包含在发送给PDKC 11P1(11P2)的RD-JNL命令中,发送给PDKC 11P1(11P2),并存储在PDKC 11P1(11P2)中。如图3所示,从PDKC 11P1(11P2)向RM23发送在PDKC 11P1(11P2)中存储的已到达TS#。
即,如图3所示,首先,RM23向PDKC 11P1以及11P2发送冻结命令(S301A以及S301B)。所谓“冻结命令”是保留I/O处理的指示。接收到冻结命令的PDKC11P1以及11P2成为冻结状态(S302A以及302B),在冻结状态的期间,即使从主机21A或21B接收到I/O命令,也不会进行针对该I/O命令指定的PVOL的I/O(例如,即使接收到I/O命令,也不对主机21A或21B返回应答)。
然后,RM23向PDKC 11P1以及11P2发送报告命令(S303A以及S303B)。PDKC 11P1(以及11P2)在接收到报告命令时,把PDKC 11P1(11P2)管理的已到达TS#203(已到达TS#201)发送给RM23(S304A(S304B))。
RM23把从PDKC 11P1以及11P2接收到的两个已到达TS#中的最低值201决定为恢复许可TS#201(S305)。
RM23向PDKC 11P1以及11P2发送恢复许可TS#201(S306A以及S306B)。PDKC 11P1(11P2)存储从RM23接收到的恢复许可TS#201,并将该恢复许可TS#传输给SDKC11S1(11S2)(S307A(S307B))。SDKC11S1(11S2)存储接收到的恢复许可TS201。
SDKC11S1(11S2)按照SEQ#的顺序,把JVOL17SJ1(17SJ2)中存储的未反映的JNL中的直到具有比恢复许可TS#201小1的TS#(即,TS#200)的JNL为止的JNL反映给SVOL17S1(17S2)(S308A(S308B))。
以上为本实施方式的概要。在以上的说明中,例如可以采用下述(3-1)至(3-4)中的至少一个。
(3-1)可以从SDKC11S1(11S2)对RM23通知已到达TS#以及已恢复TS#中的至少一方。但是,如上所述,如果是经由PDKC11P1(11P2)对RM23通知已到达TS#以及已恢复TS#,则具有RM23的主机21A可以不与SDKC11S1(11S2)连接(或者可以不切换连接)。
(3-2)恢复许可TS#其自身可以是比已到达TS#的最低值小1的TS#。此时,在S308A以及S3083B中,可以反映直到具有恢复许可TS#的JNL为止的JNL。
(3-3)RM23,不是被配备在主机中,而是被配备在管理PDKC 11P1以及11P2的管理计算机中。
(3-4)可以在JVOL以外的存储区域(例如,DKC具有的控制器内的存储器)中管理JNL中的JNCB。
根据以上的说明,主机即使未能在WR命令内赋予时间戳,也可以在一个以上的SDKC中保持数据的匹配性。
以下详细说明本实施方式。
图4表示各个DKC的结构。
如上所述,至少将主机21A与PDKC 11P1以及11P2连接。此外,PDKC11P1(11P2)和SDKC11S1(11S2)相互通信。
DKC 11P1、11P2、11S1、11S2全部可以是相同的结构,也可以是不同的结构。在本实施方式中设为相同的结构。具体地说,例如,PDKC 11P1(11P2、11S1、11S2)具备成为逻辑卷的基础的多个物理存储装置以及控制针对所述多个物理存储装置的I/O的控制器。控制器例如具有:多个端口31P1(31P2、31S1、31S2);多个CHA32P1(32P2、32S1、32S2);CM33P1(33P2、33S1、33S2);SM34P1(34P2、34S1、34S2)、以及多个DKA35P1(35P2、35S1、35S2)。
端口31P1(31P2)从主机21A接收TS#,或者从主机21A以及/或者21B接收I/O命令。端口31S 1(31S2)从PDKC 11P1(11P2)接收RD数据(JNL)。
CHA是通道适配器的简写。CHA32P1(32P2)具有端口31P1(31P2)、微处理器以及存储器等,是控制与主机21A、21B的通信的接口装置。多个CHA32P1(32P2)中的至少一个与CHA32S1(32S1)的端口31S1(21S2)连接,控制与CHA32S1(32S1)的通信(与SDKC11S1(11S2)的通信)。
CM是闪速存储器的简写。CM33P1(33P2)是临时存储在PVOL17P1(17P2)与主机21A、21B之间交换的数据(WR对象以及RD对象数据)的存储器。CM33S 1(33S2)临时存储对SVOL17S1(17S2)进行WR或RD的数据的存储器。
SM是公共存储器的简写。SM34P1(34P2、34S1、34S2)是从CHA32P1(32P2、32S1、32S2)和DKA35P1(35P2、35S1、35S2)访问的存储器。SM34P1(34P2、34S1、34S2)存储各种的管理信息。作为管理信息,例如具有与DKC11P1(11P2、11S1、11S2)的结构有关的信息(例如以哪个物理存储装置为基础形成了哪个VOL、该VOL的ID等)、后述的对管理表以及JNL管理表。
DKA是盘适配器的简写。DKA35P1(35P2、35S1、35S2)具有微处理器以及存储器等,是控制与物理存储装置的通信的接口装置。
以下,以PDKC11P1以及SDKC11S1为例,说明PDKC 11P1以及SDKC11S1的功能。
图5表示PDKC 11P1具有的功能框和SDKC11S1具有的功能框。
多个端口31P1中的至少一个与主机21A连接,多个端口31P1中的一个作为DKC之间端口(发起方端口),例如使用Fibre Channel用电缆与作为DKC间端口(目标端口)的端口31S 1连接。经由这些DKC间端口,进行RD-JNL命令、RD数据的发送接收。
在PDKC 11P1中,例如CHA32P1具有TS处理部51P1、I/O处理部52P1、JNL生成部53P1、JNL-RD接收处理部54P1、F/R接收处理部55P1以及对状态变更部56P1,SM34P1存储有对管理表57P1以及JNL组管理表58P1。另一方面,在SDKC11S1中,例如CHA32S1具有JNL-RD处理部61S1、恢复处理部62S1以及对状态变更部56S1,SM34S1存储有对管理表57S1以及JNL组管理表58S1。各部51P1~56P1、61S1、62S1以及56S1例如是通过微处理器执行的计算机程序,而这些部中的至少一个的全部或者部分可以由硬件构成。
TS处理部51P1进行来自RM23的TS#的处理。
I/O处理部52P1进行遵照来自主机的I/O命令的I/O处理。
JNL生成部53P1生成JNL,并将其写入到JVOL17PJ1中,该JNL包含作为在PVOL17P1中写入到的WR对象数据的复制的JNL数据等。
JNL-RD接收处理部54P1响应RD-JNL命令,进行从JVOL17PJ1读出JNL的处理。
F/R接收处理部55P1进行应答来自RM23的冻结命令以及RUN命令的处理。在此所说的“RUN命令”是指解除冻结状态的命令。
对状态变更部56P1(56S1)进行变更PVOL17P1(17P2)和SVOL17S1(17S2)的对的状态的处理。
JNL-RD处理部61S1进行发送RD-JNL命令的处理。
恢复处理部62S1进行把JVOL17PJ1(17SJ2)中存储的未反映的JNL反映给SVOL17S1(17S2)的处理。
对管理表57P1(57S1)是用于管理由哪个PVOL和SVOL构成了对、该对为怎样的状态的表。
JNL组管理表58P1(58S1)是用于管理与JNL组有关的信息的表。
图6A表示对管理表57P1的结构例。图6B表示对管理表57S1的结构例。
在对管理表57P1(57S1)中,对每个PVOL(SVOL)登录卷号码、卷属性、JNL组号码、对状态、对方卷号码以及对方JNL组号码。以下,在一个VOL中(以下,在图6A以及图6B的说明中)以“对象卷”为例来说明各个项目。
卷号码是对象卷的识别号码。例如使卷号码与LUN相关联。因此,例如根据由WR命令指定的LUN确定与该LUN相关联的卷号码,根据该卷号码确定WR目的地的PVOL。
卷属性是对象卷的属性。作为表示属性的值,例如具有表示是PVOL的“P”和表示是SVOL的“S”。
JNL组号码是对象卷所属的JNL组的识别号码。
对状态是具有对象卷的对的状态。作为对状态,例如具有表示PVOL和SVOL的内容为相同内容的“PAIR”、表示从PVOL向SVOL的复制被中断的状态的“Suspend”、以及表示正在进行从PVOL向SVOL的复制的状态的“Copy”。
对方卷号码是与对象卷构成对的卷的识别号码。
对方JNL组号码是与对象卷所属的JNL组构成对的JNL组的识别号码。
根据图6A所示的表57P1,PDKC11P1的卷号码为“0000”的PVOL与卷号码为“1000”的SVOL成为对。另一方面,根据图6B所示的表57S1,可知SDKC11S1的卷号码为“1000”的SVOL与卷号码为“0000”的PVOL成为对。
在此,参照图7说明JNL组。即,JNL组是各DKC中的多个VOL的集合。一个以上的JVOL和一个以上的PVOL(SVOL)属于JNL组。并且,由PDKC中的JNL组和SDKC中的JNL组构成对。此外,由多个JNL组对形成一个一致性组。在本实施方式中,在该一致性组中维持数据的匹配性。
图8表示JNL组管理表58P1(58S1)的结构例子。
JNL组管理表58P1(58S1)是对每个JNL组准备的表。在JNL组管理表58P1(58S1)中包含的信息要素中,例如包含JNL组状态、JVOL的卷号码、JNL组号码、各种SEQ#、OPEN M*N有效标志、冻结信息、冻结状态设定时间、P站点接收TS#、恢复许可TS#、已到达TS#以及已恢复TS#。因此,在一个DKC中对每个JNL组管理上述的P站点接收TS#、恢复许可TS#、已到达TS#以及已恢复TS#。
JNL组号码是JNL组的识别号码。
作为各种SEQ#,例如具有作为最新生成的JNL的SEQ#的JNCB SEQ#。
OPEN M*N有效标志是在存在两台以上的PDKC时建立的标志。
冻结信息是表示是否为冻结状态的信息。
冻结状态设定时间是冻结状态的开始时刻。
以下详细说明在本实施方式中进行的处理。
图9表示在接收到WR命令时PDKC进行的处理的流程。以下,以PDKC11P1为例来进行说明。
例如,在从主机21B发布了WR命令时(S801),PDKC11P1接收WR命令(S802)。通过I/O处理部52P1把遵照该WR命令的WR对象数据写入到CM33P1中。
I/O处理部52P1从对管理表57P1中确定由接收到的WR命令指定的PVOL(WR目的地PVOL)所属的JNL组,取得与所确定的JNL组相对应的JNL组管理表58P1内的冻结信息(S803)。
如果在S803取得的冻结信息为冻结状态(S804:YES),则I/O处理部52P1成为休眠状态(S805)。具体地说,对于在S802中接收到的WR命令不对主机21B回复任何应答。
如果在S803中取得的冻结信息不是冻结状态(S804:NO),则I/O处理部52P1从对管理表57P1取得与WR目的地PVOL对应的对状态(S806)。
如果在S806中取得的对状态为“PAIR”或“Copy”(S807:为YES),则JNL生成部53P1生成JNL(S808),该JNL包含作为WR对象数据的复制的JNL数据和具有P站点接收TS#的JNCB。将生成的JNL存储在JVOL17PJ1中。I/O处理部52P1向主机21B报告结束(S809)。此外,作为JNCB中包含的信息要素,例如图18所示的那样,除了P站点接收TS#之外,还包含作为生成了JNCB的时刻的更新时刻、与WR对象数据的写入目的地有关的更新位置信息、SEQ#。
如果在S806中取得的对状态为“Suspend”(S810:YES),则I/O处理部52P1把与构成WR目的地PVOL的对相对应的差分位图中的、与遵照WR命令的WR目的地块相对应的位设定为差分位(S811)。之后,进行上述S809。
此外,构成差分位图的各位与构成PVOL的各块对应。在对状态从“Suspend”变更为“Copy”时,对每个与差分位相对应的块,生成作为JNL数据包含了在块(PVOL内的块)中存储的数据的复制的JNL,并且将其存储在JVOL17PJ1。
此外,虽然在图9中未图示,在S804为NO时,将WR对象数据写入到由WR命令指定的WR目的地块(WR目的地PVOL内的块)中。
图10表示在发送RD-JNL命令时SDKC进行的处理的流程。
JNL-RD处理部61S1定期地启动(S901)。
JNL-RD处理部61S1参照JNL管理表58S1,取得JNL组状态(S902)。
如果在S902中取得的JNL组状态为“开始”(S903:YES),JNL-RD处理部61S1参照在S902中参照的JNL管理表58S1,取得OPEN M*N有效标志(S904)。
如果在S904中取得的标志没有表示“有效”(S905:NO),JNL-RD处理部61S1生成RD-JNL命令参数(S909),发布包含该参数的RD-JNL命令(S910)。
如果在S904中取得的标志表示“有效”(S905:YES),JNL-RD处理部61S1参照在S902中参照的JNL管理表58S1,取得已恢复TS#以及已到达TS#(S906以及S907)。然后,JNL-RD处理部61S1生成包含取得的恢复TS#以及已到达TS#的RD-JNL命令参数(S908),发布包含该参数的RD-JNL命令(S910)。
图19表示在RD-JNL命令参数中包含的信息要素的一例。在S908中生成的RD-JNL命令参数中包含RD-JNL模式、PDKC中的JNL组号码、已恢复TS#以及已到达TS#,RD-JNL模式例如是“特殊读取”。另一方面,在S909中生成的RD-JNL命令参数中不包含已恢复TS#以及已到达TS#,此外,RD-JNL模式是“通常读取”、“重读”、或“清除(purge)指示”。此外,PDKC中的JNL组号码是与在S902中所参照的JNL管理表58S1中登录的JNL组号码相对应的对方JNL组号码(根据对管理组57S1确定的号码)。
图11表示在接收到RD-JNL命令时PDKC进行的处理的流程的一部分,图12表示该流程的剩余部分。
如图11所示,在PDKC 11P1从SDKC11S1接收到RD-JNL命令时(S1001),JNL-RD接收处理部54P1从该命令取得命令参数(S1002),并从该参数取得RD-JNL模式(S1003)。
在S1003中取得的RD-JNL模式为“通常模式”或“重读模式”时(S1004:YES),如果具有未传输的JNL,则JNL-RD接收处理部54P1从JVOL17PJ1取得JNL(S1007),生成传输参数(S1008),把在S1007中取得的JNL与该参数一起作为RD数据传输给SDKC11S1(S1009)。另一方面,如果没有未传输的JNL(S1006:NO),JNL-RD接收处理部54P1作成传输参数(S1010),将NO-JNL(表示没有JNL的信息)与该参数一起作为RD数据传输给SDKC11S1(S1011)。
当在S1003中取得的RD-JNL模式为“清除指示”时(S1004:NO,图12的S1101:NO),如图12所示,如果在JVOL17PJ1中具有已传输的JNL(S1008:YES),则JNL-RD接收处理部54P1进行将该JNL从JVOL17PJ1中删除的清除处理(S1109)。
当在S1003中取得的RD-JNL模式为“特殊读取”时(S1004:NO,图12的S1101:YES),如图12所示,如果具有未传输的JNL(S1103:YES),JNL-RD接收处理部54P1从JVOL17PJ1取得JNL(S1104)。此外,JNL-RD接收处理部54P1从具有在S1002中取得的参数内的JNL组号码的JNL管理表58P1中取得恢复许可TS#(S1105)。JNL-RD接收处理部54P1生成包含所取得的恢复许可TS#的传输参数(S1106),作为RD数据把在S1104中取得的JNL与该参数一同传输给SDKC11S1(S1107)。另一方面,如果没有未传输的JNL(S1103:NO),则JNL-RD接收处理部54P1从具有在S1002中取得的参数内的JNL组号码的JNL管理表58P1中取得P站点接收TS#以及恢复许可TS#(S1110以及S1111),生成包含所取得的各TS#的传输参数(S1112),作为RD数据把NO-JNL(表示没有JNL的信息)与该参数一同传输给SDKC11S1(S1113)。
图13表示在接收到RD数据时SDKC进行的处理的流程。
在SDKC11S1从PDKC11P1接收到RD数据时,JNL-RD处理部61S1启动(S1201)。
JNL-RD处理部61S1检查成为接收RD数据的契机的、发布的RD-JNL命令(S1202)。
当在S1202中检查到的RD-JNL命令的RD-JNL模式为“通常读取”或者“重读”时(S1203:YES),如果在RD数据中存在JNL(S1204:YES),则JNL-RD处理部61S1从RD数据中取得JNL(S1205),将取得的JNL写入到JVOL17PJ1中(S1206)。
当在S1202中检查到的RD-JNL命令的RD-JNL模式为“特殊读取”时(S1203:YES,S1207:YES),如果在RD数据中存在JNL(S1208:YES),JNL-RD处理部61S1从RD数据中取得恢复许可TS#(以下在图13的说明中为“X”),把取得的X作为恢复许可TS#设定在与在S1202中检查到的RD-JNL命令对应的JNL管理表58S1(S1209)。此外,JNL-RD处理部61S1从RD数据取得P站点接收TS#(以下在图13的说明中为“W”),将取得的W作为已到达TS#设定在与在S1202中检查到的RD-JNL命令对应的JNL管理表58S1(S1210)。此外,JNL-RD处理部61S1从RD数据取得JNL(S1211),将取得的JNL写入JVOL17PJ1(S1212)。另一方面,如果在RD数据中没有JNL(S1208:NO),JNL-RD处理部61S1从RD数据取得恢复许可TS#(以下在图13的说明中为“Y”),将取得的Y作为恢复许可TS#设定在与在S1202中检查到的RD-JNL命令对应的JNL管理表58S1(S1213)。此外,JNL-RD处理部61S1从RD数据取得P站点接收TS#(以下在图13的说明中为“Z”),将取得的Z作为已到达TS#设定在与在S1202中检查到的RD-JNL命令对应的JNL管理表58S1中(S1214)。
但是,如上所述,RM23定期地发布TS#,RM23根据图14所示的定义文件进行动作。
在定义文件68中例如包含以下的信息:
(14-1)与成为TS#的发布目的地的全部的PDKC有关的信息(例如DKC的制造号码);
(14-2)有关各个PDKC的命令设备号码(在发布TS#时指定的设备号码);
(14-3)与各个PDKC具有的各PVOL有关的信息(例如PVOL的卷号码(LDEV#));
(14-4)TS发布间隔(从发布TS#后到下次发布TS#的时间间隔)。
以图14所示的定义文件69为基础,RM23按照该定义文件69指定的TS发布间隔,对Seria1#64034的DKC(以下记为PDKC11P1)以及Serial#64045的DKC(以下记为PDKC11P2)发布TS设定命令。如图15所示,在该命令中包含下述(15-1)至(15-3)的信息要素:
(15-1)命令码(在此为表示TS设定命令的代码);
(15-2)JNL组号码;
(15-3)TS#。
如图16所示,在PDKC接收到TS设定命令时(S1401),TS处理部51P1从该命令取得TS#(1402),将取得的TS#作为P站点接收TS#设定在与该命令内的JNL组号码对应的JNL管理表58P1中(S1403),向RM23报告处理结束(S1404)。
此外,RM23例如定期地向PDKC11P1以及11P2发送恢复许可TS#。
具体地说,例如图17所示,RM23对Serial#64034的DKC(PDKC11P1)发布状态取得命令(S1301)。在状态取得命令中例如包含JNL组号码。如图21所示,在PDKC11P1(11P2)接收到状态取得命令时(S1901),例如在PDKC11P1中,如图21所示,TS处理部51P1取得微版本(S 1902)。此外,TS处理部51P1参照与状态取得命令内的JNL组号码对应的JNL管理表58P1,取得JNL组状态、P站点接收TS#、已到达TS#以及已恢复TS#(S1903、S1904、S1905、S1906),生成包含在S1902至1906中取得的信息的应答信息(参照图20)(S 1907),将该应答信息发送给RM23(S1908)。
如图17所示,RM23如果接收到针对状态取得命令的应答信息(S1302),则确认在应答信息中包含的微版本(S1303)。
在根据S1303(或者通过其他的方法),确定了PDKC11P1支持OPEN M*N时(S1304:YES),RM23从在S1302中接收到的应答信息中取得JNL组状态(S1305)。如果该JNL组状态为“开始”,则作为PDKC11P1的TS#,RM23设定在该应答信息中包含的已到达TS#(S1307)。
关于PDKC11P2,执行与上述S1301至S1307相同的处理(S1308至S1314)。
然后,RM23把在S1307中设定的TS#和在S1314中设定的TS#中的最低值决定为要发布的恢复许可TS#(S1315)。RM23把所决定的恢复许可TS#发送给PDKC11P1以及11P2(S1316以及S1317)。例如与在S1301以及S1308中发布的状态取得命令中包含的JNL组号码一同发送恢复许可TS#。
PDKC11P1(11P2)把从RM23接收到的恢复许可TS#登录在与该TS#对应的JNL组管理表58P1中。此外,PDKC11P1(11P2)把在JNL组管理表58P1中登录的恢复许可TS#传输给SDKC11S1(11S2)。PDKC11P1(11P2)可以主动地进行恢复许可TS#的传输,例如也可以在发送针对来自SDKC11S1(11S2)的RD-JNL命令的RD数据时进行。SDKC11S1(11S2)把从PDKC11P1(11P2)接收到的恢复许可TS#登录在与该TS#对应的JNL组管理表58S1中。
在SDKC11S1(11S2)中,如上所述,向SVOL17S1(17S2)反映直到具有比恢复许可TS#小1的TS#的JNL为止的JNL。其理由如图22所示的那样。即,在设SDKC11S1中的已到达TS#为“5”,SDKC11S2中的已到达TS#为4时,恢复许可TS#成为它们的最低值的4,而在SDKC11S2中,今后还有可能接收包含TS#4的JNL。即,在SDKC11S2中,并非确定了关于TS#4的JNL数据。因此,在SDKC11S1以及11S2中反映直到包含比恢复许可TS#4小1的TS#3的JNL为止的JNL。
此外,根据上述的说明,PDKC11P1(11P2)在接收到RD-JNL命令时,如果没有未传输的JNL,则传输包含P站点接收TS#的NO-JNL。由此,即使在DKC组18中包含暂时未接收WR命令的PDKC,也可以期待将在与该PDKC以外的PDKC成为对的SDKC中,由于未反映的JNL过多而导致在JVOL中JNL已满这样的状况防患于未然。作为具体的例子,如图23A以及图23B所示。
即,如图23A所示,例如在PDKC11P2暂时没有接收WR命令的状况下,在PDKC11P1接收RD-JNL命令没有未传输的JNL时,如果没有发送NO-JNL的功能,则永远不会将PDKC11P2管理的P站点接收TS#70传输给SDKC11S2,因此,不更新SDKC11S2管理的已到达TS#5。因此,恢复许可TS#也一直仍为与SDKC11S2中的已到达TS#5相同的值。因此,在SDKC11S1中,虽然反映直到具有比恢复许可TS#5小1的TS#4的JNL为止的JNL,但具有下一个TS#5的JNL及其以后的JNL一直未反映,残留在JVOL17SJ1中。此外,每次在PDKC11P1中接收WR命令时,生成新的JNL。将新的JNL传输给SDKC11S1,并写入到JVOL17SJ1中。因此,JVOL17SJ1变满,有可能无法新存储JNL。
因此,在本实施方式中,如图23B所示,(即,如到此为止所说明的那样),例如在PDKC11P2暂时没有接收WR命令的状况下,PDKC11P2接收RD-JNL命令,在没有未传输的JNL时,PDKC11P2向SDKC11S2发送具有P站点接收TS#的RD数据,即发送NO-JNL。由此,根据图23B所示的例子,从SDKC11S1以及11S2取得的已到达TS#都成为“70”,所以,恢复许可TS#也成为“70”,在SDKC11S1中,可以向SVOL17S1反映直到具有TS#69的JNL为止的JNL。由此,可以期待防止在JVOL17SJ1中未反映的JNL变满的担忧。
此外,根据上述的说明,RM23在发送TS设定命令之前,向PDKC11P1以及11P2发送冻结命令。因此,可以保持更新顺序。
例如,如图24所示,RM23对PDKC11P1以及11P2发送冻结命令(S241A、S241B),之后,对PDKC11P1以及11P2发送包含TS#5的TS设定命令(S242A、S242B)。
I/O发布部25与RM23独立地进行工作。换句话说,发布TS设定命令的定时不依赖于发布WR命令的定时。所以,如图24所示的例子那样,在从RM23对PDKC11P1发送了TS设定命令(TS#5)之后到对PDKC11P2发送TS设定命令(TS#5)的期间中(即,S242A和S242B之间),I/O发布部25可以将WR命令发送给PDKC11P1,将另外的WR命令发送给PDKC11P2。但是,在该时刻,PDKC11P1以及11P2都成为冻结状态,所以不进行对接收到的WR命令进行应答的处理,在冻结状态解除之后,进行该处理。在冻结状态的期间,在S241A以及S241B发布的TS设定命令内的TS#5在PDKC11P1以及11P2中被作为P站点接收TS#进行管理。因此,在解除了冻结状态时,如图24所示,在PDKC11P1中,进行了对S242A中的WR命令进行应答的WR处理时,生成包含TS#5的JNL2401,同样地,在PDKC11P1中进行了对S242B中的WR命令进行应答的WR处理时,生成包含TS#5的JNL2402。
根据以上的事实,当在接收TS设定命令之前不发布冻结命令时,可能产生以下的问题。即,如图25所示,当在所述的S242A和S242B之间,PDKC11P1以及11P2接收到WR命令时,在PDKC11P1中,生成包含在S242A中接收到的TS设定命令内的TS#5的JNL2501,但在PDKC11P2中生成包含在S242B接收TS设定命令之前的P站点接收TS#4的JNL2502。结果,尽管PDKC11P1一方较早地接收到WR命令,但在PDKC11P2中生成的JNL中包含的TS#的一方却成为小的值。即,更新顺序逆转。
因此,如上所述,通过RM23在发送TS设定命令之前发送冻结命令,可以保持DCK组18中的更新顺序。
图26表示在接收到冻结命令时PDKC进行的处理的流程。
例如,在PDKC11P1接收到冻结命令时(S2601),F/R接收处理部55P1从与该冻结命令指定的JNL组号码对应的JNL组管理表(以下在图26的说明中,称为“对象JNL组管理表”)58P1取得冻结信息(S2602)。
如果在S2602中取得的冻结信息没有表示冻结中(S2603:NO),则F/R接收处理部55P1例如从计时器取得当前时刻(S2606),将取得的当前时刻作为冻结状态设定时间写入到对象JNL组管理表中(S2607)。此外,F/R接收处理部55P1在对象JNL组管理表中设定表示冻结中的冻结信息(S2608)。
另一方面,如果在S2602取得的冻结信息表示冻结中(S2603:YES),则F/R接收处理部55P1从对象JNL组管理表取得冻结状态设定时间(S2604)。如果在S2604取得的冻结状态设定时间表示的时刻与当前时刻的差没有超过规定时间(即,如果没有产生超时)(S2605:NO),则本处理结束。另一方面,如果产生超时(S2605:YES),F/R接收处理部55P1输出解析用日志(S2609),把在对象JNL组管理表中登录的冻结信息更新为表示不是冻结中的信息(S2610)。
根据参照图26的说明,根据超时解除冻结状态,但也可以代之以或者加之以根据来自RM23的命令解除冻结状态。以下将冻结状态的解除命令称为“RUN命令”。
图27表示在接收到RUN命令时PDKC进行的处理的流程。
例如,PDKC11P1在接收到RUN命令时,F/R接收处理部55P1从与RUN命令指定的JNL组号码对应的JNL组管理表(以下在图27的说明中,称为“对象JNL组管理表”)58P1取得冻结信息(S2702)。
如果在S2602中取得的冻结信息表示冻结中(S2703:YES),则F/R接收处理部55P1把在对象JNL组管理表中登录的冻结信息更新为表示不是冻结中的信息(S2704)。
在本实施方式中,如图28所示,当在RM23中发生故障,RM23从该故障恢复时,RM23进行以下的处理:判定对恢复后最初发送的TS设定命令应该设定怎样的TS#。具体地说,进行图29所示的处理。
即,RM23对PDKC11P1,关于某个JNL组(以下在图29的说明中称为“对象组”)发送状态取得命令,从PDKC11P1接收PDKC11P1当前存储的、与对象JNL组对应的P站点接收TS#(根据图28的例子,TS#100)(S2902)。同样地,RM23通过对PDKC11P2,关于对象JNL组发送状态取得命令(S2903),从PDKC11P2接收PDKC11P2当前存储的、与对象JNL组对应的P站点接收TS#(根据图28的例子,TS#99)(S2904)。RM23判定在S2902以及S2904中接收到的P站点接收TS#的最大值(S2905),把比判定的最大值(根据图28的例子为“100”)大1的值(即“101”)决定为要发布的TS#(S2906)。RM23把包含所决定的TS#的TS设定命令发送给PDKC11P1以及11P2(S2907)。
在本实施方式中,如图30所示,当在主机21A和某个PDKC(例如PDKC11P1)之间发生了故障时(S3001),进行图30至图32所示的处理。在以下的说明中,根据图5,将PDKC11P2以及SDKC11S2具有的对状态变更部称为对状态变更部56P2以及56S2,将PDKC11P2以及SDKC11S2具有的对管理表称为对管理表57P2以及57S2。
RM23例如根据即使对PDKC11P1发布了状态设定命令,但没有返回任何应答等理由,检测与PDKC11P1的无法通信(S3002)。RM23对可以通信的PDKC11P2指示挂起(S3003)。对该指示进行应答,在PDKC11P2中,对状态变更部56P2参照对管理表57P2,对于全部的对将对状态更新为“Suspend”(S3004A)。在SDKC11S2中,检测到在PDKC11P2中关于全部的对,对状态被更新为“Suspend”,对状态变更部56S2把对管理表57S2中的全部的对状态更新为“Suspend”(S3004B)。还可以从PDKC11P2向SDKC11S2积极地通知在PDKC11P2中关于全部的对、对状态被更新为“Suspend”的事实,还可以通过对来自SDKC11S2的询问进行应答来进行通知。
之后,如图31所示,在从S3001中发生的故障恢复时(S3101),RM23把与故障恢复有关的PDKC11P1和SDKC11S1之间相关的状态设为与PDKC11P2和SDKC11S2之间相关的状态相同的状态。即,RM23从PDKC11P2检测在PDKC11P2中已使全部的对状态成为“Suspend”(S3102)的事实。此时,RM23对PDKC11P1指示挂起(S3104)。响应该指示,在PDKC11P1中,对状态变更部56P1参照对管理表57P1,关于全部的对将对状态更新为“Suspend”(S3105A)。在SDKC11S1中,检测到在PDKC11P1中关于全部的对已将对状态更新为“Suspend”的事实,对状态变更部56S1将对管理表57S1中的全部的对状态更新为“Suspend”(S3105B)。
然后,RM23对PDKC11P1指示再次同步(S3201A)。对该指示进行响应,在PDKC11P1中,对状态变更部56P1参照对管理表57P1,对于全部的对,将对状态从“Suspend”更新为“PAIR”(S3202A)。在SDKC11S1中,检测到在PDKC11P1中关于全部的对将对状态更新为“PAIR”的事实,对状态变更部56S1把对管理表57S 1中的全部的对状态从“Suspend”更新为“PAIR”(S3202B)。此外,对状态从“Suspend”经由“Copy”转移为“PAIR”。在对状态为“Copy”的期间,向SVOL反映PVOL和SVOL之间的差分,由此,PVOL和SVOL的内容变得相同,对状态成为“PAIR”。
关于PDKC11P2以及SDKC11S2也进行与上述相同的处理(S3201B、S3202C、S3202D)。
以上说明了本发明的最佳实施方式,但本发明并不限于该实施方式,在不超出其主旨的范围内可以进行各种变更。例如,本发明不限于具备开放系统的计算机的计算机系统,还可以用于具备大型计算机的计算机系统。
Claims (14)
1.一种远程复制装置,所述远程复制装置应用于具备一个以上的第一存储系统、一个以上的第二存储系统、以及一个以上的计算机的计算机系统,所述远程复制装置的特征在于,包括:
存储管理部,使得所述一个以上的计算机中的特定的计算机,定期或不定期地向各个第一存储系统发布前一次发布的ID的下一个ID,
日志处理单元,使得各个第一存储系统,在从所述一个以上的计算机中的某个计算机接收到写入命令时,将写入对象的数据写入到第一卷中,并生成包含作为该写入对象的数据的复制的日志数据和来自所述特定的计算机的最新的ID的日志,将生成的日志存储在第一日志存储区域中,并把该日志传输给连接目的地的第二存储系统,
日志数据写入单元,使得所述第二存储系统把接收到的日志写入第二日志存储区域中,直到第二日志存储区域中存储的一个以上的日志中的特定的日志为止,在第二卷中写入日志内的日志数据,其中所述特定的日志是具有比所述一个以上的第二存储系统中的最新的已到达ID中的最前的ID提前一个的ID的日志,
日志读取命令发送单元,使得所述第二存储系统将日志读取命令发送给连接目的地的第一存储系统,
信息发送单元,使得各个第一存储系统,在接收到所述日志读取命令时,把所述第一日志存储区域中存储的一个以上的日志中的未传输的日志传输给所述连接目的地的第二存储系统,如果没有未传输的日志,则向所述连接目的地的第二存储系统发送包含来自所述存储管理部的最新的ID的信息。
2.根据权利要求1所述的远程复制装置,其特征在于,在所述计算机系统中,
两个以上的第一存储系统分别与所述一个以上的第二存储系统中的至少一个连接,所述计算机系统具有下述(P1)至(P7),
(P1)第一ID存储区域,其存储下述(P1-1);
(P1-1)第一最新ID,其为从所述存储管理部接收到的最新的ID;
(P2)所述第一卷,其为由所述写入命令所指定的逻辑卷;
(P3)I/O处理部,其把遵照所述写入命令的写入对象的数据写入到所述第一卷;
(P4)日志生成部,其生成包含下述(P4-1)以及(P4-2)的日志;
(P4-1)日志数据,其为所述写入对象的数据的复制;
(P4-2)日志管理信息,其包含与写入对象的数据的写入目的地的位置有关的更新位置信息、以及在所述第一ID存储区域中存储的第一最新ID;
(P5)所述第一日志存储区域,其为存储所生成的日志的存储区域;
(P6)日志传输部,其把所述第一日志存储区域中存储的日志传输给具有与该日志内的更新位置信息表示的第一卷构成对的第二卷的、所述连接目的地的第二存储系统;
(P7)ID处理部,其把从所述存储管理部接收到的ID作为所述第一最新ID写入到所述第一ID存储区域中,
所述第二存储系统具有下述(S1)至(S5),
(S1)第二ID存储区域,其存储下述的(S1-1);
(S1-1)已到达ID,其为从连接目的地的第一存储系统接收到的日志内的日志管理信息中包含的第一最新ID;
(S2)所述第二日志存储区域,其存储从连接目的地的第一存储系统接收到的日志;
(S3)所述第二卷,其是成为在所述第二日志存储区域中存储的日志内的日志数据的写入目的地的逻辑卷;
(S4)恢复处理部,将直到在所述第二日志存储区域中存储的一个以上的未反映的日志中的特定的日志为止的日志,反映到与反映对象的日志内的日志数据相对应的写入对象数据的写入目的地的第一卷构成对的所述第二卷;
(S5)ID通知部,其通知在所述第二ID存储区域中存储的已到达ID,
所述存储管理部,通知恢复许可ID,该恢复许可ID为所述一个以上的第二存储系统中的已到达ID中的最前的ID或者比该最前的ID提前一个的ID,
所述特定的日志是具有比所述恢复许可ID提前一个的ID的日志,或者具有所述恢复许可ID的日志。
3.根据权利要求2所述的远程复制装置,其特征在于,
所述(S5)向连接目的地的第一存储系统通知已到达ID,
所述(P1)还存储下述(P1-2),
(P1-2)从连接目的地的第二存储系统接收到的已到达ID,
所述存储管理部向所述两个以上的第一存储系统发送ID询问,对其进行应答,从所述两个以上的第一存储系统接收已达到ID,把接收到的两个以上的已到达ID中的最前的ID或者比该最前的ID提前一个的ID作为所述恢复许可ID通知给第一存储系统,
所述(P7)把从所述存储管理部接收到的恢复许可ID通知给连接目的地的第二存储系统,
所述(S1)还存储下述(S1-2),
(S1-2)从连接目的地的第一存储系统接收到的恢复许可ID。
4.根据权利要求3所述的远程复制装置,其特征在于,
所述(S5)把包含已达到ID的日志读取命令发送给连接目的地的第一存储系统,
所述(P6),在接收到所述日志读取命令时,把所述日志读取命令中包含的已到达ID写入所述第一ID存储区域中,并将所述第一日志存储区域中存储的一个以上的日志中的未传输的日志传输给所述日志读取命令的发送源的第二存储系统。
5.根据权利要求4所述的远程复制装置,其特征在于,
所述(P6),在所述第一日志存储区域中没有未传输的日志时,把包含所述第一ID存储区域中存储的第一最新ID的信息传输给所述日志读取命令的发送源的第二存储系统。
6.根据权利要求5所述的远程复制装置,其特征在于,
所述存储管理部,在发送所述ID询问之前,向ID询问的发送目的地的第一存储系统发送作为保留I/O的命令的冻结命令,在发送了所述冻结命令后发送所述ID询问,
所述(P3),在接收到所述冻结命令时,变为冻结状态,该冻结状态是将把遵照来自所述I/O发布部的写入命令的写入对象数据写入到由该写入命令指定的所述第一卷中的写入处理设成非执行的状态,在解除所述冻结状态后,执行所述写入处理。
7.根据权利要求6所述的远程复制装置,其特征在于,
所述存储管理部,在发送所述ID之前发送所述冻结命令,在发送了所述冻结命令之后发送所述ID。
8.根据权利要求1所述的远程复制装置,其特征在于,
所述第二存储系统向连接目的地的第一存储系统通知已到达ID,
所述存储管理部,向各个第一存储系统发送ID询问,对其进行应答,从所述各个第一存储系统接收已到达ID,把接收到的已到达ID中的最前的ID或比该最前的ID提前一个的ID作为恢复许可ID通知给各个第一存储系统,
所述特定的日志是具有比所述恢复许可ID提前一个的ID的日志或者具有所述恢复许可ID的日志。
9.根据权利要求8所述的远程复制装置,其特征在于,
所述第二存储系统,把日志读取命令发送给连接目的地的第一存储系统,
各个第一存储系统,在接收到所述日志读取命令时,把所述第一日志存储区域中存储的一个以上的日志中的未传输的日志传输给所述连接目的地的第二存储系统,
在所述日志读取命令中包含已到达ID,
所述存储管理部从各个第一存储系统接收的已到达ID是所述日志读取命令中包含的已到达ID。
10.根据权利要求1、8至9中的任何一项所述的远程复制装置,其特征在于,
所述存储管理部,在发送所述ID询问之前,向ID询问的发送目的地的第一存储系统发送作为保留I/O的命令的冻结命令,在发送了所述冻结命令后,发送所述ID询问,
各个第一存储系统,在接收到所述冻结命令时,变为冻结状态,该冻结状态是将把遵照来自所述I/O发布部的写入命令的写入对象数据写入到由该写入命令指定的所述第一卷中的写入处理设成非执行的状态,在解除所述冻结状态后,执行所述写入处理。
11.根据权利要求1、8至9中的任何一项所述的远程复制装置,其特征在于,
所述存储管理部,在发送所述ID之前,向ID询问的发送目的地的第一存储系统发送作为保留I/O的命令的冻结命令,在发送了所述冻结命令后,发送所述ID,
各个第一存储系统在接收到所述冻结命令时,变为冻结状态,该冻结状态是将把遵照来自所述I/O发布部的写入命令的写入对象数据写入到由该写入命令指定的所述第一卷中的写入处理设成非执行的状态,在解除所述冻结状态后,执行所述写入处理。
12.根据权利要求1至9中的任何一项所述的远程复制装置,其特征在于,
所述存储管理部,在关于两个以上的第一存储系统中的至少一个第一存储系统检测到从故障恢复了时,通过对两个以上的第一存储系统发送ID询问,从所述两个以上的第一存储系统接收第一最新ID,把与接收到的两个以上的第一最新ID中的最新的ID相比下一个新的ID作为从所述故障恢复后最初发送的ID。
13.根据权利要求1至9中的任何一项所述的远程复制装置,其特征在于,
所述存储管理部,在关于两个以上的第一存储系统中的至少一个第一存储系统检测到故障时,指示没有检测到故障的第一存储系统使包含该第一存储系统所具有的第一卷的对的状态成为复制中断状态,之后,在检测到从所述故障恢复时,指示与所述故障恢复有关的第一存储系统使包含该第一存储系统所具有的第一卷的对的状态成为复制中断状态,之后,指示所述两个以上的第一存储系统使包含第一卷的对的状态成为一致状态,
对成为一致状态的指示进行应答,在第二卷中反映所述第一卷和第二卷的差分,对的状态成为所述一致状态,该一致状态为第一卷的内容和第二卷的内容一致的状态。
14.一种远程复制方法,其由具备一个以上的第一存储系统、一个以上的第二存储系统、以及一个以上的计算机的计算机系统来实现,该远程复制方法的特征在于,
所述一个以上的计算机中的特定的计算机,定期或不定期地向各个第一存储系统发布前一次发布的ID的下一个ID,
各个第一存储系统,在从所述一个以上的计算机中的某个计算机接收到写入命令时,将写入对象的数据写入到第一卷中,并生成包含作为该写入对象的数据的复制的日志数据和来自所述特定的计算机的最新的ID的日志,将生成的日志存储在第一日志存储区域中,并把该日志传输给连接目的地的第二存储系统,
所述第二存储系统把接收到的日志写入第二日志存储区域中,直到第二日志存储区域中存储的一个以上的日志中的特定的日志为止,在第二卷中写入日志内的日志数据,
所述特定的日志是具有比所述一个以上的第二存储系统中的最新的已到达ID中的最前的ID提前一个的ID的日志,
所述第二存储系统将日志读取命令发送给连接目的地的第一存储系统,
各个第一存储系统,在接收到所述日志读取命令时,把所述第一日志存储区域中存储的一个以上的日志中的未传输的日志传输给所述连接目的地的第二存储系统,如果没有未传输的日志,则向所述连接目的地的第二存储系统发送包含来自所述存储管理部的最新的ID的信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008-272590 | 2008-10-23 | ||
JP2008272590A JP4907630B2 (ja) | 2008-10-23 | 2008-10-23 | ジャーナルを利用したリモートコピーを行う計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101727366A CN101727366A (zh) | 2010-06-09 |
CN101727366B true CN101727366B (zh) | 2013-01-02 |
Family
ID=41213235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910203115.XA Expired - Fee Related CN101727366B (zh) | 2008-10-23 | 2009-05-27 | 进行利用了日志的远程复制的计算机系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8539178B2 (zh) |
EP (1) | EP2184682B1 (zh) |
JP (1) | JP4907630B2 (zh) |
CN (1) | CN101727366B (zh) |
AT (1) | ATE537503T1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648959A (zh) * | 2016-09-07 | 2017-05-10 | 华为技术有限公司 | 数据存储的方法和存储系统 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102970363A (zh) * | 2012-11-21 | 2013-03-13 | 用友软件股份有限公司 | 远程日志下载系统和远程日志下载方法 |
JP5744953B2 (ja) | 2013-04-10 | 2015-07-08 | 東芝テック株式会社 | 取引データ処理装置、取引データ処理方法及びプログラム |
US11144397B2 (en) | 2014-09-12 | 2021-10-12 | Microsoft Technology Licensing, Llc | Data recovery using bitmap data structure |
JP7343536B2 (ja) * | 2021-03-01 | 2023-09-12 | 株式会社日立製作所 | リモートコピーシステム及び方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734818A (en) * | 1994-02-22 | 1998-03-31 | International Business Machines Corporation | Forming consistency groups using self-describing record sets for remote data duplexing |
CN101046759A (zh) * | 2006-03-28 | 2007-10-03 | 株式会社日立制作所 | 远程复制系统以及远程复制控制方法 |
CN101055537A (zh) * | 2006-04-12 | 2007-10-17 | 株式会社日立制作所 | 存储系统以及数据管理方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4425728B2 (ja) * | 2003-12-03 | 2010-03-03 | 株式会社日立製作所 | リモートコピーシステム |
US7421549B2 (en) * | 2004-03-02 | 2008-09-02 | Hitachi, Ltd. | Method and apparatus of remote copy for multiple storage subsystems |
JP4412722B2 (ja) | 2004-07-28 | 2010-02-10 | 株式会社日立製作所 | リモートコピーシステム |
JP4738941B2 (ja) * | 2005-08-25 | 2011-08-03 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの管理方法 |
JP2007066162A (ja) * | 2005-09-01 | 2007-03-15 | Hitachi Ltd | ストレージシステム及びストレージシステムの管理方法 |
EP1840747A1 (en) | 2006-03-28 | 2007-10-03 | Hitachi, Ltd. | Remote copying system and method of controlling remote copying |
JP4867701B2 (ja) | 2007-02-21 | 2012-02-01 | 東ソー株式会社 | 重金属処理剤およびそれを用いた重金属汚染物質の安定処理方法 |
JP4916420B2 (ja) * | 2007-11-16 | 2012-04-11 | 株式会社日立製作所 | ストレージシステム及びリモートコピー制御方法 |
-
2008
- 2008-10-23 JP JP2008272590A patent/JP4907630B2/ja not_active Expired - Fee Related
- 2008-12-08 US US12/329,907 patent/US8539178B2/en active Active
-
2009
- 2009-04-17 EP EP09251128A patent/EP2184682B1/en not_active Not-in-force
- 2009-04-17 AT AT09251128T patent/ATE537503T1/de active
- 2009-05-27 CN CN200910203115.XA patent/CN101727366B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5734818A (en) * | 1994-02-22 | 1998-03-31 | International Business Machines Corporation | Forming consistency groups using self-describing record sets for remote data duplexing |
CN101046759A (zh) * | 2006-03-28 | 2007-10-03 | 株式会社日立制作所 | 远程复制系统以及远程复制控制方法 |
CN101055537A (zh) * | 2006-04-12 | 2007-10-17 | 株式会社日立制作所 | 存储系统以及数据管理方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106648959A (zh) * | 2016-09-07 | 2017-05-10 | 华为技术有限公司 | 数据存储的方法和存储系统 |
CN106648959B (zh) * | 2016-09-07 | 2020-03-10 | 华为技术有限公司 | 数据存储的方法和存储系统 |
Also Published As
Publication number | Publication date |
---|---|
US20100106924A1 (en) | 2010-04-29 |
US8539178B2 (en) | 2013-09-17 |
EP2184682B1 (en) | 2011-12-14 |
JP4907630B2 (ja) | 2012-04-04 |
JP2010102463A (ja) | 2010-05-06 |
EP2184682A1 (en) | 2010-05-12 |
ATE537503T1 (de) | 2011-12-15 |
CN101727366A (zh) | 2010-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6981008B2 (en) | Method for duplicating data of storage subsystem and data duplicating system | |
EP2120146B1 (en) | Data mirroring system using journal data | |
US7941622B2 (en) | Point in time remote copy for multiple sites | |
US7734883B2 (en) | Method, system and program for forming a consistency group | |
US7278049B2 (en) | Method, system, and program for recovery from a failure in an asynchronous data copying system | |
US5615329A (en) | Remote data duplexing | |
CN100570574C (zh) | 用于管理存储系统之间的数据拷贝的系统和方法 | |
US7188222B2 (en) | Method, system, and program for mirroring data among storage sites | |
CN100543690C (zh) | 用于管理故障的方法和系统 | |
EP0672985B1 (en) | Asynchronous remote data duplexing | |
JP4892185B2 (ja) | 分散リモートコピーシステム | |
JP4800046B2 (ja) | ストレージシステム | |
US6105078A (en) | Extended remote copying system for reporting both active and idle conditions wherein the idle condition indicates no updates to the system for a predetermined time period | |
CN100354834C (zh) | 信息处理系统、数据复制方法以及计算机系统 | |
US7139885B2 (en) | Method and apparatus for managing storage based replication | |
US6502205B1 (en) | Asynchronous remote data mirroring system | |
CN101755257B (zh) | 管理在不同的网络上将写入从首要存储器拷贝到次要存储器 | |
US20060136685A1 (en) | Method and system to maintain data consistency over an internet small computer system interface (iSCSI) network | |
CN101727366B (zh) | 进行利用了日志的远程复制的计算机系统 | |
US8903766B2 (en) | Data mirroring using a virtual connection | |
CN103970620B (zh) | 一种准连续性数据复制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130102 |