U.S. patent application number 12/340102 was filed with the patent office on 2009-04-23 for remote data copying among storage systems.
Invention is credited to Hiroshi Arakawa, Takashige Iwamura, Shunji Kawamura, Tetsuya Maruyama.
Application Number | 20090106400 12/340102 |
Document ID | / |
Family ID | 34987617 |
Filed Date | 2009-04-23 |
United States Patent
Application |
20090106400 |
Kind Code |
A1 |
Maruyama; Tetsuya ; et
al. |
April 23, 2009 |
REMOTE DATA COPYING AMONG STORAGE SYSTEMS
Abstract
The present invention provides a method for guaranteeing a data
consistency among a plurality of storages and sites, when data
transfer is performed by asynchronous remote copying from a site
including a plurality of storages. When writing is made into a
first storage system or a second storage system, the storage system
that received the writing transfers the write data to the other
storage system within the site by synchronous remote copying. At
this timing the first storage system gives the write data
information for order assurance. Furthermore, the first or the
second storage system transfers the write data and thus given
information for order assurance to the third or the fourth storage
system by asynchronous remote copying. Furthermore, the third or
the fourth storage system which has received the write data
transfers to the other storage system within the same site the
write data and information for order assurance by synchronous
remote copy.
Inventors: |
Maruyama; Tetsuya;
(Yokohama, JP) ; Iwamura; Takashige; (Yokohama,
JP) ; Kawamura; Shunji; (Yokohama, JP) ;
Arakawa; Hiroshi; (Sagamihara, JP) |
Correspondence
Address: |
MATTINGLY, STANGER, MALUR & BRUNDIDGE, P.C.
1800 DIAGONAL ROAD, SUITE 370
ALEXANDRIA
VA
22314
US
|
Family ID: |
34987617 |
Appl. No.: |
12/340102 |
Filed: |
December 19, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10849060 |
May 20, 2004 |
7472173 |
|
|
12340102 |
|
|
|
|
Current U.S.
Class: |
709/219 ;
711/162 |
Current CPC
Class: |
G06F 11/2074 20130101;
G06F 11/2064 20130101 |
Class at
Publication: |
709/219 ;
711/162 |
International
Class: |
G06F 15/16 20060101
G06F015/16; G06F 12/16 20060101 G06F012/16; G06F 12/00 20060101
G06F012/00 |
Foreign Application Data
Date |
Code |
Application Number |
Mar 18, 2004 |
JP |
2004-078341 |
Claims
1.-9. (canceled)
10. A remote copying method between a first site and a second site,
said first site comprising a first storage system coupled to a
first computer and a second storage system coupled to a second
computer, and said second site comprising a third storage system,
said method comprising the following steps: said first storage
system manages the setting of order assurance information to a
first journal of write data, and sends the first journal including
first write data and said order assurance information of said first
data to said third storage system when said first storage system
receives the first write data from said first computer; said second
storage system receives second write data from said second computer
after receiving said first write data by said first storage system
from said first computer; said second storage system requests to
said first storage system to set order assurance information of
said second write data, receives said order assurance information
of said second write data from said first storage system, and sends
a second journal including said second write data and said order
assurance information of said second write data to said third
storage system; said third storage system returns a response to
said first storage system and said second storage system in
parallel with each other, and writes into a storage area said first
write data and said second write data based on said order assurance
information included in each of the first and second journals, and
said first and second storage systems each delete said first and
second journals from said first and second storage systems,
respectively, when said first and second storage systems receive
said response from said third storage system.
11. A remote copying method according to claim 10, wherein said
third storage system returns the response to said first storage
system and said second storage system in parallel with said third
storage system writing said first write data and said second write
data into said storage area.
12. A remote copying method according to claim 11, wherein before
writing the first and second write data into the storage area, the
third storage system stores the first and second journals therein,
and after writing the first and second write data into the storage
area, the third storage system deletes the first and second
journals.
13. A remote copying method according to claim 12, wherein the
steps of sending the first and second journals from the first and
second storage systems, respectively, to the third storage system,
storing the first and second journals in the third storage system,
storing the first and second write data in the storage area, and
deleting the first and second journals; are performed in parallel
with the steps of returning a response to the first and second
storage systems by the third storage system, and deleting the first
and second journals by the first and second storage systems,
respectively.
14. A remote copying method according to claim 10, wherein the
storing into the storage area of said first write data and said
second write data is performed by referring to a reflect flag for
each of the first and second write data contained in the first and
second journals, respectively; extracting the first and second
write data from the first and second journals, respectively, whose
reflect flags are OFF, in the order set by said order assurance
information included in each of the first and second journals, and
after storing the first and second data in the storage area, the
third storage system sets ON the reflect flags for the first and
second write data.
15. A system for performing asynchronous remote copying between a
first site and a second site, comprising: a first storage system in
said first site coupled to a first computer, and a second storage
system in said first site coupled to a second computer; and a third
storage system in said third site; wherein said first storage
system manages the setting of order assurance information to a
first journal of write data, and sends the first journal including
first write data and said order assurance information of said first
data to said third storage system when said first storage system
receives the first write data from said first computer; wherein
said second storage system receives second write data from said
second computer after receiving said first write data by said first
storage system from said first computer; wherein said second
storage system requests to said first storage system to set order
assurance information of said second write data, receives said
order assurance information of said second write data from said
first storage system, and sends a second journal including said
second write data and said order assurance information of said
second write data to said third storage system; wherein said third
storage system returns a response to said first storage system and
said second storage system in parallel with each other, and writes
into a storage area said first write data and said second write
data based on said order assurance information included in each of
the first and second journals, and wherein said first and second
storage systems each delete said first and second journals from
said first and second storage systems, respectively, when said
first and second storage systems receive said response from said
third storage system.
16. A system for performing asynchronous remote copying according
to claim 15, wherein said third storage system returns the response
to said first storage system and said second storage system in
parallel with said third storage system writing said first write
data and said second write data into said storage area.
17. A system for performing asynchronous remote copying according
to claim 16, wherein before writing the first and second write data
into the storage area, the third storage system stores the first
and second journals therein, and after writing the first and second
write data into the storage area, the third storage system deletes
the first and second journals.
18. A system for performing asynchronous remote copying according
to claim 17, wherein the third storage system sends the first and
second journals from the first and second storage systems,
respectively, to the third storage system, stores the first and
second journals in the third storage system, stores the first and
second write data in the storage area, and deletes the first and
second journals; in parallel with returning a response to the first
and second storage systems, and deleting the first and second
journals by the first and second storage systems, respectively.
19. A system for performing asynchronous remote copying according
to claim 15, wherein the storing into the storage area of said
first write data and said second write data is performed by the
third storage system by referring to a reflect flag for each of the
first and second write data contained in the first and second
journals, respectively; extracting the first and second write data
from the first and second journals, respectively, whose reflect
flags are OFF, in the order set by said order assurance information
included in each of the first and second journals, and after
storing the first and second data in the storage area, the third
storage system sets ON the reflect flags for the first and second
write data.
Description
[0001] This application is a continuation application of U.S.
application Ser. No. 10/849,060, filed May 20, 2004, now allowed,
the entirety of which is incorporated herein by reference.
CLAIM OF PRIORITY
[0002] The present application claims priority from Japanese
application no. 2004-078341, filed on Mar. 18, 2004, the content of
which is hereby incorporated by reference into this
application.
BACKGROUND OF THE INVENTION
[0003] The present invention relates to a storage remote copying
method in an information processing system in which a plurality of
storages are connected via network, and in particular, it relates
to a technique for data transfer and disaster recovery.
[0004] A system failure in the information processing system
including a storage device, due to power failure, fire disaster,
earthquake and the like, may cause a temporary halt of operation,
data loss and the like. In order to avoid such a situation, a
similar information processing system is provided at a remote place
where there is no influence from such a fire disaster, earth quake
and the like. Then, write data is transferred to that system so
that a copy can be prepared. For implementing such a configuration
as described above, there exists a technique for transferring data
to make a copy, utilizing a network device (hereinafter, referred
to as "remote copy").
[0005] "Remote copy" means to transfer data to a system including a
storage device at a remote location. Accordingly, even when a
system at one site goes down due to a disaster, the system can be
recovered by data backup, operation take-over and the like at the
remote location.
[0006] There are two types of "remote copy", i.e., synchronous
remote copy and asynchronous remote copy. Specifically, in the
synchronous remote copy, in response to a write request from a
computer of an information processing system, a storage device of
the information processing system completes data transfer to a
remote storage, and thereafter gives a response to the write
request from the computer. Therefore, in the synchronous remote
copy, there is little possibility of data loss due to a system
failure, and consistency in data transfer is guaranteed. However,
in the case of delay in lines between the storages, I/O delay
between the computer and the storage may occur.
[0007] On the other hand, in the asynchronous remote copy, upon
receipt of writing from the computer, the storage device makes a
response at the timing of writing into the storage in itself and
does not wait for a response from the data transfer destination at
a remote location. With this configuration, I/O performance delay
between the computer and the storage device rarely occurs even if a
distance between the storage devices is long, the possibility of
data loss occurrence becomes higher, comparing to the synchronous
remote copy, and data order is not guaranteed.
[0008] As for the guarantee in data consistency in the asynchronous
remote copy, there is disclosed a method that additional
information is attached to the write data, and based on the
additional information, sorting of data is carried out in the
system at the remote location to guarantee the data consistency
(see the Japanese Patent Laid-open Publication No. 2002-149499,
hereinafter referred to as "Patent Document 1").
SUMMARY OF THE INVENTION
[0009] In the method of the Patent Document 1, data consistency is
guaranteed as to writing from one storage device, but this
consistency is not guaranteed as to writing among a plurality of
storages is not guaranteed.
[0010] An object of the present invention is to provide a method
and a system for assuring data consistency among a plurality of
storages, when data is transferred via asynchronous remote copy
from the plurality of storages.
[0011] In order to achieve the above object, the present invention
provides an information processing system including a first site
and a second site, and a storage remote copying method,
wherein,
[0012] the first site includes a first storage connected to a first
computer, and a second storage connected to a second computer,
[0013] the second site includes a third storage,
[0014] when the first computer performs a first writing into the
first storage, the first storage adds order assurance information
to the first writing and transfers the first writing with the order
assurance information to the third storage,
[0015] when the second computer performs a second writing into the
second storage, the second storage obtains the order assurance
information from the first storage, and thereafter, the second
storage adds the order assurance information to the second writing
and transfers the second writing with the order assurance
information to the third storage, and
[0016] the third storage records into a storage area within the
third storage, the first writing and the second writing according
to a time sequence based on the order assurance information.
[0017] Furthermore, the first site includes the first storage
connected to the first computer and the second storage connected to
the second computer,
[0018] the second site includes the third storage and a fourth
storage,
[0019] when the first computer performs the first writing into the
first storage, the first storage adds the order assurance
information to the first writing and transfers the first writing
with the order assurance information to the second storage, and
after a completion of transferring to the second storage, the first
storage transfers the first writing with the order assurance
information to the third storage,
[0020] when the second computer performs the second writing into
the second storage, the second storage carries out a transfer to
the first storage, the first storage adds the order assurance
information to the second writing, transfers to the second storage,
a response of completion of writing into the second storage and the
order assurance information, and further transfer is made to the
third storage, and
[0021] the third storage transfers the first and the second
writings to the fourth storage, and the third and the fourth
storages record the first and the second writings into the storage
areas respectively within the storages, in the time sequence based
on the order assurance information.
[0022] Furthermore, the second storage receives writing from the
first storage, which has been written in the first storage, and
holds the writing,
[0023] when a failure occurs in the first storage, a connection is
established from the first computer to the second storage, and the
second storage gives the order assurance information to the
writings from the first computer and the second computer, and
records the first and the second writings into the third storage,
and
[0024] the third storage transfers the writings to the fourth
storage, and the third and the fourth storages record the writings
into the storage areas respectively within the storages, in the
time sequence based on the order assurance information.
[0025] According to the present invention, a first storage as a
source storage gives order assurance information to write data in a
unified manner, and thus there is an effect that data consistency
can be guaranteed in asynchronous remote copying from a first site
to a second site.
BRIEF DESCRIPTION OF THE DRAWINGS
[0026] FIG. 1 is a diagram showing a configuration of hardware and
each storage of the system according to the first embodiment of the
present invention.
[0027] FIG. 2 is a diagram showing contents of JNL information.
[0028] FIG. 3 is a diagram showing contents of pair
information.
[0029] FIG. 4 is a diagram showing contents of SEQ# management
information.
[0030] FIG. 5 is a diagram showing hardware of the storage.
[0031] FIG. 6 is a flow diagram schematically showing operations in
the first embodiment of the present invention.
[0032] FIG. 7 is a flow diagram showing operations of SEQ#
numbering program.
[0033] FIG. 8 is a flow diagram showing operations of SF creating
program and JNL transfer program.
[0034] FIG. 9 is a flow diagram showing operations of reflect
program.
[0035] FIG. 10 is a flow diagram showing procedures of failure
recovery when a failure occurs in one of the source storages.
[0036] FIG. 11 is a diagram showing a hardware configuration
regarding the second embodiment of the present invention.
[0037] FIG. 12 is a diagram showing a structure of numbering
storage.
[0038] FIG. 13 is a diagram showing a structure of target
storage.
[0039] FIG. 14 is a diagram showing contents of pair information
for mirroring.
[0040] FIG. 15 is a diagram showing contents of pair information
for asynchronous remote copy.
[0041] FIG. 16 is a flow diagram showing operations in the second
embodiment from when the numbering storage receives writing from
the host, then transfers the writing to the target storage, until
when the numbering storage receives acknowledgement.
[0042] FIG. 17 is a flow diagram showing operations in the second
embodiment from when the non-numbering storage receives writing
from the host, then transfers the writing to the target storage,
until when the numbering storage receives acknowledgement.
[0043] FIG. 18 is a flow diagram showing operations of the
numbering storage from when the numbering storage receives writing
until it returns acknowledgement to the host.
[0044] FIG. 19 is a flow diagram showing operations of the
non-numbering storage when it receives data from the numbering
storage by synchronous remote copy at the time when the numbering
storage receives writing.
[0045] FIG. 20 is a flow diagram showing operations of the
numbering storage when it receives data from the non-numbering
storage by synchronous remote copy at the time when the
non-numbering storage receives writing.
[0046] FIG. 21 is a flow diagram showing operations of the
non-numbering storage from when the non-numbering storage receives
writing until when it returns acknowledgement to the host.
[0047] FIG. 22 is a flow diagram showing operations of the source
storage to transfer a JNL to the target storage.
[0048] FIG. 23 is a flow diagram showing operations of the target
storage A, from when it receives the JNL from the source storage,
and then reflects the JNL to the real volume, until when it deletes
the JNL.
[0049] FIG. 24 is a flow diagram showing operations of the target
storage B, from when it receives the JNL from the target storage A,
then reflects the JNL to the real volume, until when it deletes the
JNL.
[0050] FIG. 25 is a flow diagram showing operations from when the
target storage A returns acknowledgement to the source storage.
[0051] FIG. 26 is a flow diagram showing a procedure of failure
recovery when a failure occurs in one of the source storages.
[0052] FIG. 27 is a flow diagram showing a procedure after the
source storage in which the failure occurred is recovered until a
normal operation is resumed.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0053] Hereinafter, the preferred embodiments of the present
invention will be explained in detail with reference to the
attached drawings.
Example 1
[0054] FIG. 1 is a diagram showing software configuration as one
embodiment of the information processing system, which utilizes the
present invention. Hardware configuration as one embodiment is
shown in FIG. 5. Corresponding relations between the software and
the hardware configurations will be described later.
[0055] The information processing system includes storages 101,
102, 115, hosts 131, 132, 133 and networks 117 and 118. In order to
simplify the following explanations, the storage 101 is referred to
as "numbering storage", which gives serial number as additional
information for order assurance or similar additional information
(hereinafter, referred to as "SEQ#"), and the storage 102 is
referred to as "non-numbering storage", which is the other source
for remote copying. If the two storages are not distinguished, both
are referred to as "source storage". The storage 115 at a remote
location is referred to as "target storage". The terms "source" and
"target" are also used for the volumes within the storage.
Therefore, the volumes within the source storages are referred to
as "source volumes 141, 142", and the volumes within the target
storage are referred to as "target volumes 143, 144".
[0056] It is to be noted that FIG. 1 shows an example where the
numbering storage 101 and the non-numbering storage 102 are
separate ones, but it is also possible to configure the numbering
storage 101 and the non-numbering storage 102 as one cluster
configuration storage.
[0057] Hosts 131, 132, and 133 are computers in which application
programs operates for executing jobs such as transaction
processing. Those computers utilize volumes 141, 142, 143 and 144
respectively in the connected storages. Under normal conditions,
the hosts 131, 132 connected to the source storages perform
operations, and the host 133 connected to the target storage is a
standby type host for taking over the operations at the time when a
failure occurs in the source storages.
[0058] Volumes 141, 142 are volumes within the source storages, and
the hosts 131, 132 perform writing into the volumes respectively.
The volumes 143 and 144 are volumes within the target storage, and
hold a copy of data of the volumes 141, 142 respectively.
[0059] Network 117 is a network which connects the numbering
storage 101 and the non-numbering storage 102. By way of this
network, the numbering storage 101 and the non-numbering storage
102 perform a SEQ# request and data transfer.
[0060] Network 118 is a network which carries out asynchronous
remote copy from the source storages to the target storage.
[0061] I/O receipt program 104 is a program which receives write
data from the hosts 131, 132.
[0062] SEQ# numbering program 106 is a program which gives SEQ# to
the writings from the hosts 131, 132.
[0063] JNL creating program 105 is a program which stores the write
data and a destination of logical volume as a write destination
(referred to as "LUID" hereinafter) from the host that the I/O
receipt program 104 has received and the SEQ# given by the SEQ#
numbering program 106 are stored in the JNL information 113 as a
journal (referred to as "JNL" hereinafter).
[0064] JNL transfer program 107 is a program which transfers the
JNL stored in the JNL information to the JNL transfer program 129
of the target storage. The JNL transfer program 129 stores the JNL
thus received in the JNL information 113 within the target
storage.
[0065] JNL delete program 108 within the source storages is a
program for deleting the JNL whose transfer to the target storage
has been completed. Furthermore, the JNL delete program 120 within
the target storage is a program for deleting the JNL whose
reflecting has been completed.
[0066] Reflect program 116 is a program which refers to the JNL
information within the target storage, and writes the write data
from a cache to the volumes 143, 144. Hereinafter, this processing
is called "reflecting".
[0067] Write program 121 is a program which writes the write data
received by the I/O receipt program 104 into the volumes 141,
142.
[0068] SEQ# management information 111 is information for giving
SEQ#. Explanation regarding this information will be given later
with reference to FIG. 7.
[0069] Pair information 112 is information indicating a
correspondence between the logical volumes within the volumes and a
status of a pair thus corresponding, in the remote copying process.
Explanation regarding this information will be given later with
reference to FIG. 3.
[0070] JNL information 113 indicates an area for storing the JNL
which is information having been obtained by adding a header for
management, such as LUID and SEQ#, to the write data from the hosts
131, 132.
[0071] JNL information 119 indicates an area for storing the JNL
having been transferred from the source storage to the target
storage.
[0072] JNL information 113, 119 further includes a reflect flag
indicating a completion of reflecting, and a send flag indicating a
completion of sending. Explanation regarding this information will
be given later with reference to FIG. 2.
[0073] There are two types of remote copy, synchronous and
asynchronous. In this embodiment, data copy is carried out by use
of the asynchronous remote copy.
[0074] For the asynchronous remote copy, a pair status is defined
so as to indicate a copying status, and the processing is managed
by the pair information. As the pair status, Simplex (X),
Initial-Copying (IC), Duplex (D), Suspend (S), Duplex-Pending (DP),
and Suspending (SI) are defined.
[0075] The pair status in a remote copy is information showing a
copying status to an administrator of the remote copy. The
administrator controls copying process of the remote copy, by
issuing a command to instruct a transit of the pair status.
Hereinafter, the pair status in the remote copy will be
explained.
[0076] In Simplex status, the remote copy between volumes in the
source and target has not been started yet. Initial-Copying status
is an intermediate state where the remote copy is started from the
Simplex status and it is in the course of transiting to the Duplex
status, which will be described later. During this period, an
initial copy (copying of data that has already been stored in the
source volume) from the source volume to the target volume is
carried out. After a completion of the initial copy, internal
processing required for transiting to the Duplex status is
completed, and then the pair status becomes Duplex.
[0077] In the Duplex status, the initial copy is completed and
update copy is ready to be carried out. That is, in this status,
when writing is received from a host, update copy of the writing
will be carried out to the target volume. In a broad point of view,
the data between the volumes of the source and the target are
assumed to be identical. However, since the update copy is carried
out asynchronously, such identity is not assured in the strict
sense.
[0078] Suspend status is a status where the update copy is
suspended. In this status, the identity between the volumes between
the source and the target in the broad point of view cannot be
assured at all. The pair status is allowed to transit to the
Suspend status, triggered by an instruction from an operator, a
host, a computer for managing the storages and the like.
[0079] Other than the above case, if the remote copy from the
source volume to the target volume becomes impossible, the storage
automatically allows the pair status to transit to the Suspend
status. In the following explanations, the latter case is referred
to as "Failure Suspend status". A failure in the volumes of the
source and the target, a failure in the storages of the source and
the target, a failure in the channel between the source and the
target (in the present invention, a failure in the network 118
connecting the source storage and the target storage) may cause the
Failure Suspend status. However, failures other than the above
cases may cause the Failure Suspend status.
[0080] Suspending status is an intermediate state where the status
is transiting from the Duplex status to the Suspend status. The
Suspend status also includes the Failure Suspend status. In this
status, the storages of the source and the target may carry out
processing for reflecting the JNL held by the memories in both
source storages to the target storage.
[0081] Duplex-Pending status is an intermediate state where the
status is transiting from the Suspend status to the Duplex status.
In this status, data copy is executed from the source volume to the
target volume in order to match the data in the source volume to
that in the target volume. After the data identity between the
source and the target volumes is assured, the pair status becomes
Duplex status. It is to be noted that the data copy in the
Duplex-Pending status may be a differential copy, where only the
part required to be updated is copied by use of the information
including the update area in the Suspend status as described above.
Initial-Copying status and Duplex-Pending status are collectively
assumed as one status, and it may be displayed on the management
device, and the status may be allowed to transit from this one
status.
[0082] FIG. 2 shows contents of the JNL information 113. The JNL
information includes an area for storing LUID 201, SEQ# 202, and
write data 203, received from the host. The JNL information further
holds information as to a reflect flag 204 indicating a completion
of reflecting, and a send flag 205 indicating a completion of
sending. When the reflect flag 204 is ON, it means that the JNL has
been reflected to the volumes 143, 144, and when it is OFF, it
means that the reflecting has not been completed. When the send
flag 205 is ON, it means that acknowledgement as to the JNL has
been received from the target storage 115, and when it is OFF,
acknowledgement has not been received yet. Those flags are used for
determining whether or not the JNL delete program 108 can delete
the JNL.
[0083] FIG. 3 shows contents of the pair information 112. The pair
information 112 manages data correspondence in logical volumes
within the volumes. The pair information 112 holds logical volume
number on the source volume side (called "source LUID) 301, and
logical volume number on the target side (called "target LUID")
302. The pair information 112 further holds a pair status 303
indicating the pair status of those logical volumes (the pair
status will be described later), and a differential bit map 304
indicating whether or not there is a data difference between the
source LUID and the target LUID.
[0084] FIG. 4 shows contents of the SEQ# management information
111. The SEQ# stored information 111 holds the latest information
701 of SEQ# currently given.
[0085] FIG. 5 shows a storage 501, which is hardware architecture
of the storages 101, 102 and 115. The storages 101, 102 and 115
respectively include processor 502, memory 503, interface for host
I/O 504 which performs I/O exchange with the host, interface for
mirroring 505 which performs SEQ# requesting and transferring,
interface for asynchronous RC 506 for establishing a connection
with a network to carry out asynchronous remote copy from the
source storage to the target storage, and volumes 141, 142, 143,
144 (represented as 507 in the figure) for storing data. As already
mentioned above, FIG. 5 is a diagram showing the hardware
configuration corresponding to the software configuration of the
storage as shown in FIG. 1 according to the present invention.
These figures are correlated such that each program and each
information item shown in FIG. 1 are stored in the memory 503 as
shown in FIG. 5 from a viewpoint of hardware, and those are
executed by the processor 502 as shown in FIG. 5.
[0086] FIG. 6 is a flow diagram showing the operations of the
information processing system from when the source storages receive
I/O from the hosts 131, 132 until when writing to the volumes 143,
144 of the target storage is completed.
[0087] When there is writing from the host 131 to the numbering
storage 101, the following steps are executed.
[0088] I/O receipt program 104 within the numbering storage 101
receives the write data from the host 131 (Step 601).
[0089] Next, the SEQ# numbering program 106 within the numbering
storage 101 gives a SEQ# to the write data (Step 602).
[0090] Then I/O receipt program 104 within the numbering storage
101 returns to the host 131 acknowledgement (Ack) as to completion
of writing (Step 603).
[0091] Next, JNL creating program 105 within the source storage
creates a JNL from the SEQ# and the write data (Step 604), and
stores the JNL in the JNL information 113 (Step 605).
[0092] JNL transfer program 107 transfers the JNL stored in the JNL
information 113, to the target storage 115 by way of the network
118 (Step 606).
[0093] JNL transfer program 129 within the target storage 115
receives the JNL data, which has been sent in the step 606 (Step
607).
[0094] Processing from Step 608 to Step 610 and processing from
Step 611 to Step 613 are executed in parallel.
[0095] JNL transfer program 129 within the target storage 115
stores the data into the JNL management information 113 which is
also in the target storage 115 (Step 608). Next, reflect program
116 sorts the JNL in the JNL information 113 in the order of SEQ#,
and reflects the JNL to the volumes 143, 144 within the target
storage (Step 609).
[0096] JNL delete program 120 within the target storage deletes the
JNL data, as to which data reflecting has been completed, in the
JNL management information 113 (Step 610).
[0097] After the JNL transfer program 129 within the target storage
receives the data, it returns acknowledgement to the source storage
that has performed the data transfer (Step 611).
[0098] JNL transfer program 107 within the source storage that has
received the acknowledgement sets the send flag ON as to the data
in the JNL information 113 (Step 612).
[0099] JNL delete program 108 within the source storage deletes the
data whose send flag 505 becomes ON (Step 613).
[0100] When there is writing from the host 132 to the non-numbering
storage 102, the following steps are executed instead of the steps
601, 602.
[0101] I/O receipt program 104 within the non-numbering storage 102
receives I/O from the host 132 (Step 614).
[0102] Next, the SEQ# transfer program 110 within the non-numbering
storage 102 requests a SEQ# to the numbering storage (Step
615).
[0103] SEQ# numbering program 106 within the numbering storage 101
gives the SEQ# to the write data (Step 616).
[0104] SEQ# transfer program 109 within the numbering storage 101
transfers the SEQ# to the non-numbering storage (Step 617).
[0105] I/O receipt program 104 within the non-numbering storage 102
returns a notice of write completion to the host 132 (Step
618).
[0106] In the following, steps 604 to 613 are executed.
[0107] FIG. 7 is a flow diagram showing operations of the SEQ#
numbering program 106 as shown in FIG. 1.
[0108] The SEQ# numbering program receives a numbering request from
the I/O receipt program 104 or the SEQ# transfer program 109 within
the numbering storage (Step 701).
[0109] The SEQ# numbering program 106 obtains the latest SEQ# 701
from the SEQ# stored area 111 (Step 702).
[0110] The SEQ# is transferred to the JNL creation program 105
being a requesting source of thus received SEQ# or the SEQ#
transfer program (Step 703).
[0111] SEQ# numbering program 106 adds 1 (one) to the SEQ# 701 in
the SEQ# management information 111 (Step 704).
[0112] FIG. 8 is a flow diagram showing operations of the JNL
creating program 105 and JNL transfer program 107 as shown in FIG.
1. The JNL creating program 105 receives data and LUID from the I/O
receipt program 104 (Step 801).
[0113] The JNL creating program 105 receives a SEQ# from the SEQ#
numbering program 106 or from the SEQ# transfer program 110 (Step
802).
[0114] The JNL creating program 105 writes in the JNL information
the data, LUID and SEQ# thus received (Step 803).
[0115] The JNL creating program 105 returns a notice of JNL
creating completion to the I/O receipt program 104. The I/O program
returns acknowledgement to the host 131 or the host 132 (Step
803).
[0116] The JNL creating program 105 notifies the JNL transfer
program 107 of the JNL creating completion (Step 804).
[0117] JNL transfer program 107 confirms the JNL management
information 113 (step 805).
[0118] The JNL transfer program 107 transfers the JNL to the JNL
transfer program 129 within the target storage via the network 118
(Step 806).
[0119] The JNL transfer program 107 waits for the acknowledgement
from the target storage, and after it receives the acknowledgement,
the JNL transfer program 107 sets the send flag ON in the JNL
information (Step 807).
[0120] FIG. 9 is a flow diagram showing operations of the reflect
program 116 within the target storage as shown FIG. 1. The reflect
program 116 refers to the JNL in the JNL information 113, and
extracts the JNL whose reflect flag is OFF (Step 901).
[0121] The reflect program 116 sorts thus extracted JNL data in the
order of SEQ# (Step 902).
[0122] The reflect program 116 writes the JNL data into the volume
114 in the order of SEQ#. At this timing, if there is a skip in the
SEQ#, writing is made immediately before the skipped number (Step
903).
[0123] The reflect program 116 sets the reflect flag 504 ON for the
JNL data as to which writing has been completed (Step 904).
[0124] FIG. 10 shows a recovery procedure in the case where a
failure occurs in the source storage. The recovery mentioned here
indicates that the host 133 takes over the operations of the
applications, which have been carried out in the hosts 131, 132, by
use of the data in the target storage 115.
[0125] A failure occurs in the source storage, and then, the host
131 or the host 132 detects the failure. Alternatively, the hosts
allow the storage to detect the failure (Step 1001).
[0126] The hosts 131, 132 notify the host 133 of failure occurrence
(Step 1002).
[0127] The host 133 notifies the JNL transfer program in the target
storage of the failure occurrence. Then, the JNL transfer program
renders the connection with the source storage as suspend status.
The JNL transfer program changes the pair status in the pair
information as "Suspend" (Step 1003).
[0128] The reflect program sorts the JNL in the JNL information 113
in the order of SEQ#, and writes the JNL into the volumes 143, 144
within the target storage (Step 1004).
[0129] The JNL delete program deletes all the JNLs in the JNL
information (Step 1005).
[0130] The host 133 resumes the operations (Step 1006).
Example 2
[0131] In the second embodiment, the source storages perform data
mirroring each other by use of synchronous remote copy. Then, the
second embodiment takes a form that the data is transferred to the
target storage by asynchronous remote copy.
[0132] FIG. 11 is a diagram showing the second embodiment.
[0133] The information processing system includes numbering storage
1131, non-numbering storage 1132, two target storages 1133, hosts
131, 132, 133, and networks 118, 1121, 1122.
[0134] The volume 1101 is a volume in the numbering storage 131 to
store the writing from the host 1132. The volume 1103 is a mirror
volume in the non-numbering storage 1132, corresponding to the
volume 1101. The volume 1104 is a volume in the non-numbering
storage 1132 to store the writing from the host 132. The volume
1102 is a mirror volume in the numbering storage 101, corresponding
to the volume 1104.
[0135] The network 1121 is a network for connecting the source
storages each other. Through this network, the write data, SEQ# and
acknowledgement are transferred via synchronous remote copy.
[0136] The network 1122 is a network for connecting the target
storages each other. Through this network, the write data and
acknowledgement are transferred via synchronous remote copy.
[0137] It is to be noted that in the embodiments of the present
invention, a plurality of storages in the source site and a
plurality of storages in the target site may cause a similar
effect, in any case where they are multiple storages in each site,
or they constitute a cluster configuration storages formed in one
body in each site.
[0138] FIG. 12 is a diagram showing programs and the internal
information of the numbering storage 1131. The non-numbering
storage has the same configuration.
[0139] The mirroring program 1201 is a program for carrying out
synchronous remote copy between the source storages, and between
the target storages.
[0140] The pair information for asynchronous remote copy 1202 is
pair information in the asynchronous remote copy between the source
and the target, and it is allowed to have functions equivalent to
those of the pair information 112 in the first embodiment.
[0141] The pair information for mirroring 1203 is pair information
regarding mirroring between the source storages and between the
target storages.
[0142] The non-numbering storage 1132 also has the same
configuration as that of the numbering storage 1131.
[0143] FIG. 13 is a diagram showing programs and the internal
information of the target storage in the second embodiment. It
includes, as points different from the first embodiment, mirroring
program 1201, pair information for asynchronous remote copy 1202,
and pair information for mirroring 1203.
[0144] FIG. 14 is a diagram showing contents of the pair
information for mirroring 1203. Pair status 1403 shows a network
connection state with respect to each LUID pair (a combination of
source LUID and target ID).
[0145] FIG. 15 is a diagram showing the pair information for
asynchronous remote copy 1202.
[0146] FIG. 16 is a flow diagram showing from when the numbering
storage 1131 receives I/O from the host 131 until when the writing
is reflected to the target storage for the entire system.
[0147] In the present embodiment, one of the source storages
transfers data by asynchronous remote copy, and a target storage
which receives the data is referred to as "target storage A", and
the other target storage is referred to as "target storage B". At
this timing, the target storage A and the target storage B are
determined based on which source storage transfers the data.
Furthermore, it is allowed to arbitrary determine which source
storage carries out the data transfer.
[0148] The numbering storage 1131 receives the write data from the
host 131 (Step 1601).
[0149] The numbering storage 1131 gives a SEQ# to the write data
(Step 1602).
[0150] The numbering storage 1131 transfers the write data to the
non-numbering storage 1132 by synchronous remote copy (Step
1603).
[0151] The non-numbering storage 1132 returns acknowledgement to
the numbering storage 1131 (Step 1604).
[0152] One of the source storages transfers the write data to the
target storage A by asynchronous remote copy (Step 1605).
[0153] The target storage A transfers the write data to the target
storage B by synchronous remote copy (Step 1606).
[0154] The target storage B returns acknowledgement to the target
storage A (Step 1607).
[0155] The target storage A sends acknowledgement to the source
storage which has carried out the data transfer (Step 1608).
[0156] FIG. 17 is a flow diagram showing that the non-numbering
storage 1132 receives I/O from the host 132, transfers the data by
synchronous remote copy to the numbering storage 1131 via the
network 1121, either one of the source storages transfers the data
to the target storage A by asynchronous remote copy via the network
118, and the target storage A transfers the data to the target
storage B by synchronous remote copy.
[0157] The non-numbering storage 1132 receives write data from the
host 132 (Step 1701).
[0158] The numbering storage 1132 transfers the write data to the
numbering storage 1131 by synchronous remote copy (Step 1702).
[0159] The numbering storage 1131 gives a SEQ# to the write data
(Step 1703).
[0160] The numbering storage 1131 returns acknowledgement and the
SEQ# to the non-numbering storage 1132 (Step 1704).
[0161] One of the source storages transfers the write data to the
target storage A by asynchronous remote copy (Step 1705).
[0162] The target storage A transfers the write data to the target
storage B by synchronous remote copy (Step 1706).
[0163] The target storage B returns acknowledgement to the target
storage A (Step 1707).
[0164] The target storage A sends acknowledgement to the source
storage which has carried out data transfer (Step 1708).
[0165] FIG. 18 is a flow diagram showing operations in the
numbering storage at the time when the numbering storage 1131
receives I/O.
[0166] I/O receipt program 104 within the numbering storage 1131
receives write data from the host 131 (Step 1801).
[0167] SEQ# numbering program 106 within the numbering storage 1131
gives a SEQ# to the write data (Step 1802).
[0168] Mirroring program 1201 within the numbering storage 1131
transfers the write data to the non-numbering storage 1132 (Step
1803).
[0169] The numbering storage 1131 waits for acknowledgement from
the non-numbering storage 1132 (Step 1804).
[0170] Mirroring program 1201 within the numbering storage 1131
receives acknowledgement from the mirroring program 1201 within the
non-numbering storage 1132 (Step 1805).
[0171] The I/O receipt program 104 within the numbering storage
1131 returns acknowledgement to the host 131 (step 1806).
[0172] FIG. 22 is a flow diagram showing that the numbering storage
1131 creates a JNL when it carries out the JNL transfer, and then
transfers the JNL to the target storage.
[0173] JNL creating program 105 within the numbering storage 1131
receives the write data and the SEQ# from the I/O receipt program
104 or the mirroring program 1201, and receives the SEQ# from the
SEQ# numbering program (Step 2201).
[0174] The JNL creating program 105 writes the write data, LUID and
SEQ# into the JNL information 113 (Step 2202).
[0175] JNL transfer program 107 confirms the JNL information 113,
and transfers the JNL to the target storage A (Step 2203).
[0176] JNL transfer program 129 of the target storage A receives
the JNL from the numbering storage (Step 2204).
[0177] At this timing, if the numbering storage does not carry out
the JNL transfer, the process is completed at the Step 2202.
[0178] FIG. 25 is a flow diagram showing that after the numbering
storage 1131 carries out JNL transfer, the target storage A
receives the JNL, returns acknowledgement to the numbering storage
1131, and then the numbering storage 1131 deletes the JNL.
[0179] JNL transfer program 129 within the target storage A returns
acknowledgement to the JNL transfer program 107 within the
numbering storage 1131 (Step 2501).
[0180] The JNL transfer program 107 of the source storage which has
transferred the JNL sets the send flag 205 of the JNL information
ON (Step 2502).
[0181] JNL delete program 108 within the source storage confirms
the send flag as to the JNL in the JNL information, and deletes the
JNL whose send flag is ON (Step 2503).
[0182] FIG. 19 is a flow diagram showing operations of the
non-numbering storage 1132 from when the numbering storage 1131
receives I/O from the host 131 and transfers the write data to the
non-numbering storage 1132 by synchronous remote copy.
[0183] Mirroring program 1201 in the non-numbering storage 1132
receives the write data from the numbering storage 1131 (Step
1901).
[0184] SEQ# numbering program in the non-numbering storage 1132
confirms the SEQ# given to the write data, and updates SEQ# stored
information (Step 1902).
[0185] Mirroring program 1201 in the non-numbering storage 1132
returns acknowledgement to the mirroring program 1201 of the
numbering storage 1131 (Step 1903).
[0186] When the non-numbering storage 1132 carries out the JNL
transfer, a flow of the operations is the same as those in FIG. 22
and FIG. 25.
[0187] FIG. 23 is a flow diagram showing from when the target
storage A receives the JNL until when it reflects the JNL.
[0188] JNL transfer program 129 in the target storage A writes the
JNL into the JNL information 113 (Step 2301).
[0189] Mirroring program 1201 in the target storage A transfers the
JNL to the mirroring program 1201 in the target storage B (Step
2302).
[0190] Reflect program 116 in the target storage A performs
reflecting of the JNL. The operation of reflecting is the same as
that of FIG. 9 (Step 2303).
[0191] JNL delete program 120 in the target storage A deletes the
JNL as to which writing is completed (Step 2304).
[0192] FIG. 24 is a flow diagram from when the target storage B
receives the JNL until it performs reflecting.
[0193] The mirroring program 1201 in the target storage B receives
the JNL from the mirroring program in the target storage A (Step
2401).
[0194] The JNL transfer program 129 in the target storage B writes
the JNL in the JNL information 113 (Step 2402).
[0195] The reflect program 116 in the target storage B performs
reflecting of the JNL. The operation of reflecting is the same as
that of FIG. 9 (Step 2403).
[0196] The JNL delete program 120 in the target storage B deletes
the JNL as to which writing is completed (Step 2404).
[0197] FIG. 20 is a flow diagram showing operations of the
numbering storage 1131 after the non-numbering storage 1132
receives I/O from the host 132 and transfers the write data to the
numbering storage 1131 by synchronous remote copy.
[0198] Mirroring program 1201 in the numbering storage 1131
receives write data from the numbering storage 1132 (Step
2001).
[0199] SEQ# numbering program 106 in the numbering storage 1131
gives a SEQ# to the write data. The procedure for giving the SEQ#
is the same as that of FIG. 7 (Step 2002).
[0200] The mirroring program 1201 in the numbering storage 1131
gives SEQ# to the acknowledgement and returns the acknowledgement
with SEQ# to the non-numbering storage 1132 (Step 2003).
[0201] FIG. 21 is a flow diagram showing operations in the
non-numbering storage 1132 when the non-numbering storage 1132
receives the I/O.
[0202] I/O receipt program 104 in the non-numbering storage 1132
receives write data from the host 132 (Step 2101).
[0203] Mirroring program 1201 in the non-numbering storage 1132
transfers write data to the numbering storage 1131 (Step 2102).
[0204] The mirroring program 1201 in the non-numbering storage 1132
receives acknowledgement and SEQ# from the mirroring program 1201
of the numbering storage 1131 (Step 2104).
[0205] SEQ# numbering program in the non-numbering storage 1132
confirms the SEQ# given to the write data, and updates the SEQ#
stored information (Step 2105).
[0206] The I/O receipt program 104 in the non-numbering storage
1132 returns acknowledgement to the host 132 (Step 2106).
[0207] Operations of the target storages A and B are the same as
the case where the numbering storage 1131 receives the I/O.
[0208] FIG. 26 is a flow diagram showing that when a failure occurs
in one of the source storages, data transfer mode to the target
storage is changed, so that a storage without the failure can
receive I/O from the both hosts, and then operations can be taken
over. At this timing, if there is a failure in the numbering
storage, the SEQ# numbering operation is also taken over.
[0209] A failure is detected in one of the source storages (Step
2601).
[0210] Pair status between the source storages is made "Suspend"
(Step 2602).
[0211] Pair status between the source storage where the failure has
occurred and the target storage is made "Suspend" (Step 2603).
[0212] If the source storage in which the failure has occurred is
the numbering storage 1131, the SEQ# numbering program in the
non-numbering storage 1132 takes over the numbering operations
based on the current SEQ# stored information 111 (Step 2604).
[0213] JNL transfer program 107 in the source storage, where the
failure has not occurred (which will be referred to as "living
source storage"), changes the configuration so that all the write
data is transferred to the target storage (Step 2605).
[0214] The hosts 131, 132 reconfigure a connection path to the
living source storage, allowing the living source storage to
receive all the writing, and then operations are resumed (Step
2606).
[0215] FIG. 27 is a flow diagram showing from when a failure occurs
and operations are taken over as described in FIG. 26, then, the
source storage where the failure occurred is recovered, and
re-switching of operations is carried out.
[0216] Recovery is confirmed in the source storage where the
failure has occurred (Step 2701).
[0217] The mirroring program 1201 of the living source storage
carries out formation copy of the entire data to the source storage
where a failure occurred, and then the pair status is made
"Duplex". If a differential copy is possible, it may be performed
(Step 2702).
[0218] If required, the SEQ# numbering program 106 in the source
storage where the failure has occurred obtains the SEQ# stored
information 111, and allows the SEQ# numbering operations to be
taken over from the living source storage (Step 2703).
[0219] The pair status between the volume of the source storage
where a failure has occurred and the volume of corresponding target
storage is made "Duplex" (Step 2704).
[0220] Connection paths of the hosts 131, 132 are reconfigured, so
that the previously connected host can be reconnected to the source
storage where the failure has occurred (Step 2705). At this timing,
any type of connection mode is available. For example, all the
hosts may be allowed to connect to the source storage where the
failure has occurred. That is, no changeover is performed, for
instance.
* * * * *