US20090254722A1 - Data storage apparatus - Google Patents
Data storage apparatus Download PDFInfo
- Publication number
- US20090254722A1 US20090254722A1 US12/417,080 US41708009A US2009254722A1 US 20090254722 A1 US20090254722 A1 US 20090254722A1 US 41708009 A US41708009 A US 41708009A US 2009254722 A1 US2009254722 A1 US 2009254722A1
- Authority
- US
- United States
- Prior art keywords
- storage apparatus
- storage
- server
- data
- command
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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
- 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/2076—Synchronous 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/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/2079—Bidirectional 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/2087—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 with a common controller
Definitions
- a storage system in which a server and a storage apparatus are coupled via a network.
- identical data is stored in each of multiple data storage areas of the storage apparatus so as to prevent loss of data or distribute the load.
- To write identical data into each of multiple data storage areas is called “mirroring.”
- the mirroring relation between the multiple data storage areas is sometimes broken. If the mirroring relation is broken and then a mirroring relation is reestablished, data stored in one data storage area is copied to the other data storage area.
- Related-art examples include Japanese Laid-open Patent Publication No. 2002-373093 and Japanese Laid-open Patent Publication No. 2007-249652.
- Pieces of data stored in the data storage areas are different from one another until a copy process is completed. Therefore, the server cannot access data stored in a copy-destination data storage area until the copy process is completed.
- a method for controlling a storage apparatus connectable to a server the storage apparatus including a first storage area and a second storage area for storing data
- the method comprises: copying the data stored in the first storage area into the second storage area; copying data stored in the location of the first storage area addressed by the command to be accessed by the server into the location of the second storage area before execution of the command when the storage apparatus receives a command for accessing data stored in a location of either of the first storage area and second storage area from the server; and executing the command for accessing at least one of the location in the first storage area and the corresponding location in the second storage area.
- FIG. 1 is a diagram illustrating a storage system 1 according to an embodiment of the present invention.
- FIG. 2 is a diagram illustrating the relations between bits 231 of bitmap information 230 and block areas 251 of a volume 250 .
- FIG. 3 is a diagram illustrating an operation sequence of mirroring normally performed in the storage system.
- FIG. 4 is a diagram illustrating the relations between pieces of data stored in the volume 250 and pieces of data stored in a volume 350 at the time when storage apparatuses have a mirroring relation.
- FIG. 5 is a diagram illustrating an operation sequence of mirroring performed in the storage system in the event of a failure.
- FIG. 6 is a diagram illustrating the relations between the block areas 251 of the volume 250 and the bits 231 of the bitmap information 230 at the time when the bitmap information 230 has been created.
- FIG. 7 is a flowchart of a process performed after a storage apparatus 200 and a storage apparatus 300 are separated from a mirroring relation.
- FIG. 8 is a diagram illustrating the relation among the bitmap information 230 and volume 250 at a time after the storage apparatuses 200 and 300 are separated from the mirroring relation.
- FIG. 9 is a diagram illustrating a sequence of operations performed when a mirror process is performed.
- FIG. 10 is a diagram illustrating the relation between the bitmap information and volume at the time when a logical copy has been completed.
- FIG. 11 is a flowchart of a process performed when the storage apparatus 200 is accessed by a server 100 .
- FIG. 12 is a flowchart of a process performed when the storage apparatus 300 is accessed by the server 100 .
- FIG. 13 is a diagram illustrating each volume and corresponding bitmap information during which a physical copy is being performed between the storage apparatuses 200 and 300 .
- FIG. 14 is a diagram illustrating each volume and corresponding bitmap information at the time when the server 100 has write-accessed a block area 255 of the storage apparatus 200 .
- FIG. 15 is a diagram illustrating a storage system in which a data storage module 240 of the storage apparatus 200 has multiple data storage areas.
- FIG. 1 is a storage system according to this embodiment.
- the storage system includes a server 100 , a storage apparatus 200 (first storage apparatus), and a storage apparatus 300 (second storage apparatus).
- the server 100 , storage 200 , and storage 300 are coupled via a network 400 .
- the network 400 is, for example, a fibre channel.
- mirroring is a data storage form in which identical data is stored in each of multiple data storage areas.
- the server 100 stores identical data in each of the storage apparatuses 200 and 300 , between which mirroring is performed. Therefore, even if a failure occurs in any one of the storage apparatuses, loss of the data is avoided.
- mirroring according to this embodiment is mirroring between the logical volumes of the storage apparatuses.
- a logical volume is an area made up of multiple physical disk apparatuses. There is also a logical volume having redundancy.
- a “mirroring process” refers to a state in which identical data is stored in each of corresponding data storage areas of the storage apparatuses.
- the data is read from one data storage area.
- the identical data is written into all data storage areas.
- the data storage areas having a mirroring relation are associated with each other.
- a “mirror process” refers to a process for updating data stored in a data storage area so as to perform a mirroring process.
- a mirror process is performed when different pieces of data are stored in the data storage areas, which are subjects of mirroring.
- a mirror process includes a process for storing information related to different pieces of data stored in the data storage areas and a process for matching the different pieces of data stored in the data storage areas with each other.
- the server performs a mirroring process on both the storage apparatuses. If the server can write data into only any one of the storage apparatuses, the storage apparatus into which the data has been written retains information about an area thereof into which the data has been written. When the server can access both the storage apparatuses again, the storage apparatuses perform a mirror process.
- the server 100 includes a controller 110 , a memory 120 , and an interface 130 .
- the memory 120 of the server 100 stores a mirroring control program 121 .
- the interface 130 of the server 100 is a terminal for accessing the storage apparatuses 200 and 300 via the network 400 .
- the controller 110 of the server 100 functions as a mirroring module 111 by executing the mirroring control program 121 stored in the memory 120 .
- the mirroring module 111 performs a mirror process between data stored in the storage apparatus 200 and data stored in the storage apparatus 300 and a mirroring process between the data stored in the storage apparatus 200 and the data stored in the storage apparatus 300 in conjunction with the storage apparatuses 200 and 300 . Specifically, the mirroring module 111 performs the following process.
- the mirroring module 111 of the server 100 performs a mirroring process. Specifically, the mirroring module 111 performs a data write access and a data read access to the storage apparatuses 200 and 300 as follows. If the mirroring module 111 writes data into the respective data storage areas of the storage apparatuses 200 and 300 , it transmits a data write command to each of the storage apparatuses 200 and 300 . If the mirroring module 111 reads data from the storage apparatus 200 or 300 , it transmits a data read command to the storage apparatus 200 or 300 .
- the mirroring module 111 detects a data storage area that can no longer maintain mirroring, it transmits information indicating that the data storage area will be separated from the mirroring relation, to the storage apparatuses 200 and 300 . If the server 100 establishes a mirroring relation between the data storage area of the storage apparatus 200 and that of the storage apparatus 300 , it causes the storage apparatuses 200 and 300 to perform a mirror process. In the mirror process, the mirroring module 111 transmits information indicating that the data storage area that has been separated from the mirroring relation will return to a mirroring relation, to the storage apparatuses 200 and 300 . If data stored in the data storage area of the storage apparatus 200 and data stored in that of the storage apparatus 300 are different from each other, the mirroring module 111 causes the storage apparatuses 200 and 300 to perform a mirror process.
- the data stored in the data storage area of the storage apparatus 200 and the data stored in that of the storage apparatus 300 are different from each other at the following times: (1) when a mirroring relation is established between the data storage area of the storage apparatus 200 and that of the storage apparatus 300 for the first time; and (2) when a mirroring relation is reestablished between the data storage area of the storage apparatus 200 and that of the storage apparatus 300 after the mirroring relation therebetween is temporarily broken.
- the storage apparatus 200 includes a controller 210 , a memory 220 , a data storage module 240 , and an interface 260 .
- the storage apparatus 300 has the same configuration as that of the storage apparatus 200 and includes a controller 310 , a memory 320 , a data storage module 340 , and an interface 360 .
- the controller 210 , memory 220 , data storage module 240 , and interface 260 of the storage apparatus 200 have the same functions as those of the controller 310 , memory 320 , data storage module 340 , and interface 360 , respectively, of the storage apparatus 300 .
- the storage apparatus can allow the server to access multiple data storage areas even when a process for establishing a mirroring relation between the data storage areas is being performed.
- the storage apparatus can allow the server to access the data storage areas without having to wait for the completion of a process for establishing mirroring relations between all areas of the first data storage area and corresponding areas of the second data storage area.
- the storage apparatus 200 and 300 connects to the server 100 .
- the storage apparatus 200 and 300 have data storage module 240 (first or second storage area) and 340 (first or second storage area) for storing data.
- the controller 210 or 310 executes a process including: copying the data stored in the first storage area into the second storage area; copying data stored in the location of the first storage area addressed by the command to be accessed by the server into the location of the second storage area before execution of the command when the storage apparatus receives a command for accessing data stored in a location of either of the first storage area and second storage area from the server; and executing the command for accessing at least one of the location in the first storage area and the corresponding location in the second storage area.
- the command includes accessing data stored in a location that the copying process is unexecuted.
- the controller 210 or 310 executes copying data stored in the location of the first storage area addressed by the command before the initiation of the execution of the command.
- the area to be subjected to the copying is divided into predetermined areas.
- Bitmap information recording whether each of the predetermined areas has undergone the copying is controlled by the storage apparatus 200 or 300 .
- the command is made to an area that has undergone the copying is determined on the basis of the bitmap information.
- the interface 260 is a terminal for accessing the server 100 and storage apparatus 300 via the network 400 .
- the memory 220 stores a data copy program 221 to be executed by the controller 210 , information indicating a halfway result of a data copy process, bitmap information 230 , and the like.
- the memory 220 is, for example, a random access memory (RAM), a read-only memory (ROM), or the like.
- the controller 210 functions as a data copy module 211 by executing the data copy program 221 stored in the memory 220 .
- the data copy module 211 performs a mirror process between the storage apparatus 200 and storage apparatus 300 .
- the data storage module 240 stores data to be accessed by the server 100 .
- a volume 250 is set in the data storage module 240 .
- the volume 250 is a unified data storage area that can be recognized by the server 100 .
- the storage apparatus 200 or 300 receive a command (an access) from the host 100 .
- the command (access) includes information indicating the location of data to be accessed, information for identifying whether a command is a read command or a write command, and information about data to be written.
- an access for writing data into a target block area will be referred to as a “write access” and an access for reading data from a target block area will be referred to as a “read access.”
- FIG. 2 is a diagram illustrating the relations between the bits 231 of the bitmap information 230 and the block areas 251 of the volume 250 .
- the volume 250 includes multiple block areas 251 .
- the block areas 251 are data storage areas obtained by partitioning the volume 250 into predetermined unit sizes. In this embodiment, it is assumed that data stored in each block area is “11,” “22,” or “33.”
- Data “11” is data where data stored in a block area 251 of the volume 250 and data stored in a corresponding block area of the volume 350 are matched before an abnormality occurs in the storage apparatus.
- Data “22” is data that has been updated by writing another data into the storage apparatus after the storage apparatus is separated from the mirroring relation.
- Data “33” is data that will be updated during a mirror process.
- Data “11” or data “22” is stored in each block area illustrated in FIG. 2 .
- Data “11” is data where data stored in a block area 251 of the volume 250 and data stored in a corresponding block area of the volume 350 have a mirroring relation.
- Data “22” is data where data stored in a block area 251 of the volume 250 and data stored in a corresponding block area of the volume 350 do not have a mirroring relation.
- bitmap information 230 the state of mirroring between the volume 250 and volume 350 is recorded. That is, the bitmap information 230 is information (difference information) indicating that block areas of the volume 250 and corresponding block areas of the volume 350 are storing different pieces of data in a state in which the mirroring relation between the volume 250 and volume 350 is broken. Also, during performance of a mirror process, the bitmap information 230 indicates the progress of the mirror process.
- the bitmap information 230 includes multiple bits 231 .
- the bits 231 are assigned to the block areas 251 of the volume 250 .
- Each bit 231 retains a value “1” or a value “0.”
- the value “1” indicates that data included in a block area 251 corresponding to a bit 231 is different from data included in a block area 351 of the volume 350 that has a mirroring relation with the block area 251 .
- the value “0” indicates that data included in a block area 251 corresponding to a bit 231 is identical to data included in a block area 351 of the volume 350 that has a mirroring relation with the block area 251 . If the storage apparatus 200 updates data included in a block area 251 , it also updates the value of a bit 231 corresponding to the block area 251 . When the storage apparatus 200 is separated from the mirroring relation as described later, it updates each bit 231 from “0” to “1.” Also, when a mirroring relation is reestablished as described later, the storage apparatus 200 updates the bit 231 from “1” to “0.”
- the volumes 250 and 350 which have broken the mirroring relation, are classified into two types of volumes.
- One type of volume is a volume that receives an access for updating data from the server after the mirroring relation has been broken. In this embodiment, it is assumed that the volume 250 receives an access for updating data from the server 100 after the mirroring relation has been broken.
- Another type of volume is a volume that does not receive an access for updating data in the volume from the server 100 after the mirroring relation has been broken. In this embodiment, it is assumed that the volume 350 does not receive an access for updating data from the server 100 after the mirroring relation has been broken.
- the volume 250 that receives an access for updating data will serve as the copy-source volume in a mirror process.
- the volume 350 that does not receive an access for updating data will serve as the copy-destination volume in a mirror process.
- the storage apparatus 200 receives, from the server 100 , information indicating that the volume 350 of the storage apparatus 300 has been separated from the mirroring relation, it creates the bitmap information 230 in the memory 220 .
- the storage apparatus 200 records an update of data stored in a block area 251 of the volume 250 by updating the value of a bit 231 of the bitmap information 230 corresponding to the block area 251 .
- the storage apparatus 200 retains the update of the data in the bitmap information 230 until the storage apparatus 200 receives an instruction for reestablishing a mirroring relation from the server 100 after the creation of the bitmap information 230 .
- each bit 231 of the bitmap information 230 created by the storage apparatus 200 is “0.”
- the storage apparatus 200 Upon receipt of a write access from the server 100 , the storage apparatus 200 updates data stored in a block area 251 corresponding to the write access. Subsequently, the storage apparatus 200 changes the value of a bit corresponding to the block area 251 whose data has been updated, to “1.”
- the bitmap information 230 indicates the progress of the mirror process. Specifically, when the values of all bits of the bitmap information 230 are “0,” the volume 250 and volume 350 have a relation where a mirroring process can be performed. That is, the relation where a mirroring process can be performed is a state where the volume 250 and volume 350 are mirrored (a state where a mirror process is unnecessary).
- the storage apparatus 200 copies data stored in a block area 251 corresponding to the bit 231 , to a corresponding block area 351 of the volume 350 of the storage apparatus 300 .
- the storage apparatus 200 updates the value of the bit 231 corresponding to the block area 251 from “1” to “0.”
- bitmap information 230 allows transmitting only updated data in a mirror process performed by the storage apparatuses 200 and 300 .
- a mirror process is performed between the storage apparatuses 200 and 300 .
- data is sometimes copied via the network 400 .
- the storage apparatus 200 transmits only pieces of data stored in block areas 252 of the volume 250 that each reestablish a mirroring relation, on the basis of the bitmap information 230 .
- the storage apparatus 200 can make the amount of data to be transmitted to the storage apparatus 300 smaller than that of data stored in all the block areas 251 of the volume 250 .
- the storage apparatus 200 and storage apparatus 300 can be placed in a state in which a mirroring process can be performed and a state in which a mirroring process cannot be performed.
- the volume 250 of the storage apparatus 200 and the volume 350 of the storage apparatus 300 in the storage system are normally mirrored.
- the server 100 detects an abnormality when making an access to the storage apparatus 300 , it separates the storage apparatus 300 from the mirroring relation.
- the server 100 transmits a write command or a read command to the storage apparatus 200 or 300 and then receives no response from the storage apparatus even after the lapse of a predetermined time, it determines that an abnormality has occurred with respect to the access.
- the reason why the server 100 receives no response even after the lapse of a predetermined time is, for example, that the processing speed of the storage apparatus has decreased or that any failure has occurred in the route of the network 400 between the server 100 and the storage apparatus.
- a state in which the storage apparatus 300 is separated from the mirroring relation is a state in which a mirroring process cannot be performed.
- the server 100 makes a write access to the storage apparatus 200 .
- the storage apparatus 200 records, in the bitmap information, a location where data has been updated so as to perform a mirror process after the storage apparatus 300 is restored from the abnormality.
- the storage apparatus 300 is recovered from the abnormality due to a reduction in the load imposed on the network, recovery of the network route from a failure, recovery of the storage apparatus from a failure, or the like.
- the storage apparatus 200 performs a process for reestablishing a mirroring relation between the storage apparatuses 200 and 300 .
- the operation sequences of the server 100 , storage apparatus 200 , and storage apparatus 300 will be described.
- FIG. 3 is a diagram illustrating an operation sequence of mirroring normally performed in the storage system.
- the server 100 normally issues a write command to each of the storage apparatus 200 and storage apparatus 300 . Therefore, the server 100 normally performs mirroring between the storage apparatus 200 and storage apparatus 300 .
- S 01 to S 07 illustrated in FIG. 3 are a sequence of operations performed when the server 100 normally makes a data write access to each of the storage apparatus 200 and storage apparatus 300 .
- the server 100 starts performing a data write process on each of the storage apparatuses 200 and 300 (S 01 ).
- the server 100 transmits a data write command to each of the storage apparatuses 200 and 300 (S 02 , S 03 ).
- the storage apparatuses 200 and 300 each perform a process corresponding to the received data write command (S 04 , S 05 ).
- the storage apparatus 200 transmits information indicating the completion to the server 100 (S 06 ).
- the storage apparatus 300 transmits information indicating the completion to the server 100 (S 07 ).
- S 08 to S 11 illustrated in FIG. 3 are a sequence of operations performed when the server 100 normally makes a data read access to the storage apparatus 200 .
- the server 100 starts performing a process for reading data from the storage apparatus 200 (S 08 ).
- the server 100 transmits a data read command to the storage apparatus 200 (S 09 ).
- the storage apparatus 200 performs a process corresponding to the received data read command (S 10 ).
- the storage apparatus 200 reads data in accordance with the received data read command and transmits the read data to the server 100 (S 11 ).
- the server 100 completes the read process.
- a process related to a data read access that the server 100 makes to the storage apparatus 300 is the same as the process related to the data read access that the server 100 makes to the storage apparatus 200 and will not be described.
- FIG. 4 is a diagram illustrating the relations between pieces of data stored in the volume 250 and pieces of data stored in the volume 350 when the storage apparatuses have a mirroring relation. Data stored in each of the block areas 251 of the volume 250 is “11” and data stored in each of the block areas 351 of the volume 350 is “11.”
- the server 100 transmits a write access or a read access to the storage apparatus 200 or 300 and then receives no response from the storage apparatus even after the lapse of a predetermined time, it determines that an abnormality has occurred with respect to the access.
- the reason why the server 100 receives no response with respect to the access even after the lapse of a predetermined time is, for example, that the processing speed of the storage apparatus has reduced or that a failure has occurred in the route of the network 400 between the server 100 and the storage apparatus.
- FIG. 5 is a diagram illustrating an operation sequence of mirroring performed in the storage system in the event of a failure.
- the server 100 starts a process for writing data into the storage apparatuses (S 21 ).
- the server 100 transmits a data write command to each of the storage apparatus 200 and storage apparatus 300 (S 22 , S 23 ).
- the storage apparatus 200 performs a process corresponding to the received data write command (S 24 ).
- the storage apparatus 200 Upon completion of the process, the storage apparatus 200 transmits information indicating the completion to the server 100 (S 25 ).
- the server 100 does not obtain completion information even after a predetermined time has elapsed after transmitting the data write command.
- the reason is, for example, that a failure has occurred on the network 400 between the server 100 and storage apparatus 300 , that a delay has occurred when the storage apparatus 300 is performing a process, or the like.
- the server 100 determines that it cannot access the storage apparatus 300 (S 26 ) and separates the storage apparatus 300 from the mirroring relation.
- the server 100 transmits an instruction for starting a process for storing a data difference, to the storage apparatus 200 (S 27 ).
- the storage apparatus 200 starts a data storage process in accordance with the instruction received from the server 100 (S 28 ).
- the storage apparatus 200 creates the bitmap information 230 (S 29 ).
- the storage apparatus 200 sets a value indicating that data included in a block area of the volume 250 corresponding to a bit 231 is identical to data included in a corresponding block area of the volume 350 , as the initial value of each bit 231 of the bitmap information 230 .
- the storage apparatus 200 transmits information indicating that it has created the bitmap information 230 , to the server 100 (S 30 ).
- FIG. 6 is a diagram illustrating the relations between the block areas 251 of the volume 250 and the bits 231 of the bitmap information 230 at the time when the bitmap information 230 has been created.
- the reference numerals are the same as those illustrated in FIG. 2 and will not be described.
- the value of data stored in each block area 251 is “11.” “0” is stored as the initial value of each bit 231 of the bitmap information 230 .
- the server 100 If the access with respect to which the server 100 has determined in S 26 that it cannot access the storage apparatus 300 is a write command, corresponding data stored in the storage apparatus 300 may not have been updated. Also, the server 100 may have transmitted another write command to the storage apparatus 300 before the transmission process in S 27 is performed. In this case, the storage apparatus 300 may not have updated corresponding data since it cannot perform the write command. For this reason, the server 100 again transmits, to the storage apparatus 200 , write commands that the server 100 has transmitted until the storage apparatus 200 creates the bitmap information 230 after transmitting the access with respect to which the server 100 has determined that the server 100 cannot access the storage apparatus 300 (S 31 ).
- the bitmap information 230 also stores the write command with respect to which the server 100 has received no response from the storage apparatus 300 while considering a corresponding block area as a block area whose data has been updated.
- the storage system according to this embodiment is allowed to reestablish a mirroring relation between the storage apparatuses 200 and 300 without causing a data inconsistency.
- the server 100 has, for example, a function of storing information indicating the order of the times when it has transmitted an access command to the each storage apparatus. Use of this function allows the server 100 to detect write commands that the server 100 has transmitted until the storage apparatus 200 creates the bitmap information 230 after transmitting the access with respect to which the server 100 has determined that the server 100 cannot access the storage apparatus 300 . If the access with respect to which the server 100 has made a determination in S 26 is a read command, data stored in the volume 250 of the storage apparatus 200 is not updated. Therefore, there is no need to perform a special process.
- FIG. 7 is a flowchart illustrating a process performed after the storage apparatuses 200 and 300 are separated from a mirroring relation.
- the storage apparatus 200 receives a data write command or a data read command from the server 100 (S 32 ). The storage apparatus 200 performs a process corresponding to the write command or read command (S 33 ). The storage apparatus 200 determines whether the received command is a write command (S 34 ). If the received command is a write command (YES in S 34 ), the storage apparatus 200 changes the value of a bit 231 of the bitmap information 230 corresponding to a block area 251 that is the target of the write command received from the server 100 , to a value indicating that a copy process has not been completed (S 35 ).
- the storage apparatus 200 updates the value of a bit 231 corresponding to a block area 251 that is the target of the write command, to “1.” If the received command is a read command (NO in S 34 ) or the storage apparatus 200 performs a process explained in S 35 , then the storage apparatus 200 transmits information indicating a result of the process, to the server 100 (S 36 ). Upon receipt of the process result, the server 100 completes the write process.
- the server 100 is allowed to read or write data from or into the storage apparatus 200 even when the storage apparatus 300 is separated from a mirroring relation.
- FIG. 8 is a diagram illustrating the relation among the bitmap information 230 , volume 250 , and volume 350 at a time after the storage apparatuses 200 and 300 are separated from a mirroring relation.
- the server 100 transmits a write command to the storage apparatus 200 so that corresponding data stored in the storage apparatus 200 is updated.
- Reference numerals 252 illustrated in FIG. 8 represent block areas whose data has been updated.
- a write command issued by the server 100 updates the value of data from “11” to “22.”
- reference numerals 232 illustrated in FIG. 8 represent bits having a value of “1” among the bits 231 .
- the bits 232 correspond to the block areas 252 . Since pieces of data stored in the storage apparatus 300 are the same as those at the time when the storage apparatus 300 has been separated from the mirroring relation, the values of the pieces of data each remain “11.”
- FIG. 9 is a diagram illustrating a sequence of operations performed when a mirror process is performed.
- a mirror process is divided into two stages. The first stage is a stage of performing a logical copy and the second stage is a stage of performing a physical copy.
- a logical copy performed in a mirror process is a process for copying bitmap information between the storage apparatuses.
- a physical copy performed in a mirror process is a process for copying data stored in a copy-source volume to a copy-destination volume.
- a logical copy is realized by performing operations S 51 to S 59 . If the server 100 is placed in a state in which it can properly access the storage apparatus 300 , a mirroring relation is reestablished between the volume 250 of the storage apparatus 200 and the volume 350 of the storage apparatus 300 in the storage system. Whether the server 100 can properly access the storage apparatus 300 is determined, for example, by the administrator. The server 100 acquires instruction information for reestablishing a mirroring relation between the volume 250 and volume 350 , for example, through input of information by the administrator (S 51 ).
- the server 100 starts a mirror process (S 52 ).
- the server 100 transmits a command for starting a mirror process between the volume 250 and volume 350 , to the storage apparatus 200 (S 53 ).
- the storage apparatus 200 Upon receipt of the command from the server 100 , the storage apparatus 200 starts a mirror process (S 54 ).
- the storage apparatus 200 transmits information for starting a mirror process, to the storage apparatus 300 (S 55 ).
- the information includes information for identifying volumes that are subjects of mirroring, and the bitmap information 230 .
- the storage apparatuses 200 and 300 sometimes include multiple volumes. Therefore, in order to identify volumes that will be subjected to a mirror process, the storage apparatus 200 transmits information for identifying volumes that will be subjected to a mirror process to the storage apparatus 300 .
- the storage apparatus 300 Upon receipt of the information for starting a mirror process, the storage apparatus 300 starts a mirror process (S 56 ). The storage apparatus 300 retains the bitmap information 230 received from the storage apparatus 200 in the memory 320 as bitmap information 330 (S 57 ).
- the storage apparatus 200 has the bitmap information 230 and the storage apparatus 300 has the bitmap information 330 .
- the storage apparatus 200 receives information indicating that the bitmap information 230 has been copied to the storage apparatus 300 as the bitmap information 330 (S 58 )
- it notifies the server 100 that a logical copy has been completed (S 59 ).
- the server 100 Upon receipt of information indicating that the logical copy has been completed from the storage apparatus 200 in S 59 , the server 100 transmits a data write command or a data read command to the storage apparatus 200 and storage apparatus 300 .
- FIG. 10 is a diagram illustrating the relation between the bitmap information 330 and volume 350 at the time when the logical copy has been completed. Since the bitmap information 330 is a copy of the bitmap information 230 , each updated location (bit value is “1”) of the bitmap information 330 indicates that data has been updated in a corresponding location of the bitmap information 230 included in the storage apparatus 200 . Therefore, use of the bitmap information 330 allows the storage apparatus 300 to determine whether an area is subjected to a physical copy when the storage apparatus 300 is accessed. Reference numerals 332 indicate bits having a value of “1” among bits 331 . The value of each bit 231 of the bitmap information 230 is identical to the value of each bit 331 of the bitmap information 330 .
- a physical copy process in a mirror process performed between the storage apparatus 200 and storage apparatus 300 will be described.
- a physical copy process in a mirror process is performed for each of block areas 251 corresponding to the bits 231 of the bitmap information 230 and for each of the block areas 351 corresponding to the bits 331 of the bitmap information 330 .
- the storage apparatus 200 starts performing a physical copy (S 60 ).
- the storage apparatus 300 also starts performing a physical copy (S 62 ).
- the storage apparatus 200 physically copies pieces of data stored in the block areas 252 of the volume 250 to corresponding block areas 351 of the volume 350 (S 61 ).
- Block areas to be subjected to physical copies are block areas corresponding to bits having a value of “1” of the bitmap information.
- the server 100 has already received information indicating the completion of the logical copy from the storage apparatus 200 . For this reason, the server 100 is allowed to transmit a data write command or a data read command to the storage apparatuses 200 and 300 even when a physical copy is being performed between the storage apparatuses 200 and 300 . Since the server 100 makes an access to a data storage area of the storage apparatus 200 or 300 regardless of whether the area has been subjected to a physical copy, a process with respect to the access varies depending on the progress of the physical copy.
- FIG. 11 is a flowchart of a process performed when the storage apparatus 200 is accessed by the server 100 .
- the storage apparatus 200 receives an access from the server 100 (S 101 ).
- the storage apparatus 200 determines whether a physical copy has been completed with respect to a block area that is the target of the access (S 102 ). Specifically, the storage apparatus 200 determines whether the value of a bit 231 of the bitmap information 230 corresponding to the block area that is the subject of the access is “1” or “0.”
- the storage apparatus 200 performs a process corresponding to the access (S 106 ).
- block areas between which a physical copy has been completed there is no need to update data by performing another physical copy after the access because the volume 250 and volume 350 have a mirroring relation. Since the server 100 performs mirroring on the block areas between which a physical copy has been completed, the storage apparatus 200 or 300 does not need to perform mirroring between the block areas. Therefore, the storage apparatus 200 can perform a process corresponding to the access.
- the storage apparatus 200 determines whether the access received from the server 100 is a write command (S 103 ). If the access is not a write command, that is, if the access is a read command (NO in S 103 ), the storage apparatus 200 performs a process corresponding to the access (S 106 ). Since the volume 250 of the storage apparatus 200 is a copy-source volume, there is no need to update data by performing a physical copy on the volume 250 . Therefore, the storage apparatus 200 can perform a process corresponding to the access.
- the storage apparatus 200 copies data stored in the block area 252 of the volume 250 that is the target of the access, to a corresponding block area 351 of the volume 350 (S 104 ).
- the storage apparatus 200 updates the value of a bit 231 of the bitmap information 230 corresponding to the block area 252 that is the copy source, to “0” (S 105 ).
- the storage apparatus 300 updates the value of a bit 331 of the bitmap information 330 corresponding to the block area 351 that is the copy destination, to “0.” Therefore, the server 100 stops issuing a write command to the storage apparatus 300 during a period from the time when the storage apparatus 200 receives the write command to the time when the storage apparatus 300 updates the bitmap information 330 . Subsequently, the storage apparatus 200 performs a process corresponding to the access (S 106 ). Upon completion of the process, the storage apparatus 200 transmits information indicating the completion of the process of the command to the server 100 (S 107 ). Subsequently, the storage apparatus 200 starts a physical copy process again.
- the storage apparatus 200 receives a write command to a block area 252 with respect to which a physical copy has not been completed, it performs a physical copy and then performs a process corresponding to the write command.
- the storage apparatus 200 determines that the storage apparatus 300 has not completed the write command issued by the server, it performs a physical copy on the storage apparatus 300 .
- the storage apparatus 200 performs a physical copy on the storage apparatus 300 after the storage apparatus 300 has performed the write command issued by the server 100 , a data inconsistency occurs. That is, after the storage apparatuses 200 and 300 have performed a mirror process between the respective block areas that are the targets of the write commands issued by the server 100 , the storage apparatuses perform the write commands.
- the storage apparatus 200 may only update the value of a corresponding bit of the bitmap information to “0” without performing a physical copy. For example, the storage apparatus 200 transmits information for updating the value of a corresponding bit of the bitmap information 330 of the storage apparatus 300 to “0”, to the storage apparatus 300 .
- the server 100 determines that the storage apparatus 200 and storage apparatus 300 have a mirroring relation and transmits a write command to each of the storage apparatuses 200 and 300 .
- the server 100 performs mirroring so that pieces of data that are stored in the storage apparatuses 200 and 300 and are the targets of the accesses are mirrored. This is advantageous in that the need to perform a mirroring process between the storage apparatuses is eliminated.
- FIG. 12 is a flowchart of a process performed when the storage apparatus 300 receives an access from the server 100 .
- the storage apparatus 300 receives an access from the server 100 (S 111 ).
- the storage apparatus 300 determines whether a physical copy has been performed on a block area that is the target of the access (S 112 ). Specifically, the storage apparatus 300 determines whether the value of a bit 331 of the bitmap information 330 corresponding to the block area that is the target of the access is “1” or “0.”
- the storage apparatus 300 If a physical copy has been performed on the block area that is the target of the access (YES in S 112 ), the storage apparatus 300 performs a process corresponding to the access (S 116 ). Since the block area on which a physical copy has been performed has a mirroring relation, there is no need to update data by performing a physical copy after the access. Therefore, the storage apparatus 300 can perform a process corresponding to the access.
- the storage apparatus 300 copies data stored in a block area 252 of the volume 250 corresponding to the accessed block area, to the block area 351 of the volume 350 (S 113 ). Specifically, the storage apparatus 300 makes a request for transmitting data stored in a block area 252 of the volume 250 corresponding to the accessed block area, to the storage apparatus 200 . The storage apparatus 200 performs a physical copy corresponding to the received transmission request on a priority basis.
- the storage apparatus 300 updates the value of a bit 331 of the bitmap information 330 corresponding to the block area 351 that is the copy destination, to “0” (S 114 ).
- the storage apparatus 200 updates the value of a bit 232 of the bitmap information 230 corresponding to the block area 252 that is the copy source, to “0.”
- the storage apparatus 300 performs a process corresponding to the access (S 115 ).
- the storage apparatus 300 transmits information indicating the completion to the server 100 (S 116 ).
- the storage apparatus 200 starts a physical copy again.
- the storage apparatus 300 is different from the storage apparatus 200 in that it does not determine whether a command is a read command or a write command. This is because data stored in the volume 250 of the storage apparatus 200 is not changed due to a mirror process.
- the storage apparatus 300 may only update the value of a corresponding bit of the bitmap information to “0” without performing a physical copy. In this case, the storage apparatus 300 determines whether the command is a read command or a write command.
- the server 100 performs mirroring so that pieces of data that are stored in the storage apparatuses 200 and 300 and are the targets of the accesses are mirrored. This is advantageous in that the process is simplified.
- pieces of data stored in the volume 350 of the storage apparatus 300 can be changed due to a mirror process.
- FIG. 13 is a diagram illustrating each volume and corresponding bitmap information at the time when a physical copy is being performed between the storage apparatuses 200 and 300 .
- a block area 254 is a block area that is one of the block areas 251 and is the target of the access from the server 100 .
- a bit 234 is one of the bits 231 and corresponds to the block area 254 .
- a block area 354 is a block area of the volume 350 corresponding to the block area 254 .
- a bit 334 is one of the bits 331 and corresponds to the block area 354 .
- Data stored in the block area 254 is identical to data store in the block area 354 .
- the value of the bit 234 corresponding to the block area 254 and the value of the bit 334 corresponding to the block area 354 are both “0.”
- the storage apparatus 200 transmits data stored in the block area 254 to the server 100 . If the server 100 write-accesses the block area 254 of the volume 250 , the storage apparatus 200 updates the data stored in the block area 254 in response to the write access. If the server 100 read-accesses the block area 354 of the volume 350 , the storage apparatus 300 transmits data stored in the block area 354 to the server 100 . If the server 100 write-accesses the block area 354 of the volume 350 , the storage apparatus 300 updates the data stored in the block area 354 in response to the write access.
- the block area 255 is a block area that is one of the block areas 251 and is the target of the access from the server 100 .
- a bit 235 is one of the bits 231 and corresponds to the block area 255 .
- the block area 355 is a block area of the volume 350 and corresponds to the block area 255 .
- a bit 335 is one of the bits 331 and corresponds to the block area 355 .
- Data stored in the block area 255 is “22” and data stored in the block area 355 is “11.” That is, the data stored in the block area 255 and the data stored in the block area 355 are different from each other.
- the value of the bit 235 corresponding to the block area 255 and the value of the bit 335 corresponding to the block area 355 are both “1.”
- the storage apparatus 200 transmits the data stored in the block area 255 to the server 100 .
- FIG. 14 illustrates each volume and corresponding bitmap information at the time when the server 100 has read-accessed the block area 255 of the storage apparatus 200 .
- FIG. 14 illustrates each volume and corresponding bitmap information at the time when the server 100 has read-accessed the block area 255 of the storage apparatus 200 .
- the data stored in the block area 255 has been updated to “33.”
- the block area 355 of the storage apparatus 300 has been updated to “33” due to a write-access to the storage apparatus 300 made by the server 100 .
- the storage apparatuses 200 and 300 perform processes corresponding to the accesses after the physical copy has been completed, if block areas undergoing a physical copy receive accesses from the server 100 .
- the server 100 write-accesses the block area 255 of the volume 250 , a physical copy does not always need to be performed between the storage apparatuses 200 and 300 . Specifically, the storage apparatuses 200 and 300 update the values of corresponding bits of the bitmap information 230 and bitmap information 330 to “0.” By adopting this configuration, the server 100 performs mirroring so that data that is stored in the storage apparatus 200 and is the target of the access and corresponding data stored in the storage apparatus 300 are mirrored. This is advantageous in that the process is simplified.
- the storage apparatus 300 physically copies the data stored in the block area 255 of the volume 250 to the block area 355 . Subsequently, the storage apparatus 300 transmits data stored in the block area 355 to the server 100 .
- the storage apparatus 300 physically copies the data stored in the block area 255 of the volume 250 to the block area 355 . Subsequently, the storage apparatus 300 updates the data stored in the block area 355 in response to the write access. Alternatively, the storage apparatus 200 may update the value of the bit 235 to “0” and the storage apparatus 300 may update the value of the bit 335 to “0.” The block area 255 of the storage apparatus 200 is updated to “33” due to a write access to the storage apparatus 200 made by the server 100 .
- FIG. 14 illustrates each volume and corresponding bitmap information at the time when the write access to the block area 355 made by the server 100 has been completed. In FIG. 14 , it is assumed that the data stored in the block area 355 has been updated to “33.”
- FIG. 9 will be described again.
- the storage apparatus 200 opens the bitmap information 230 stored in the memory 220 (S 63 ).
- the time when it is determined that all block areas of the volume 250 have been physically copied is the time when the values of all the bits 231 of the volume 250 have become “0.”
- the storage apparatus 300 opens the bitmap information 330 stored in the memory 320 (S 64 ).
- the time when it is determined that all block areas of the volume 350 have undergone physical copies is the time when the values of all the bits 331 of the volume 350 have become “0.”
- the storage apparatus 200 create bitmap information 230 where the values of all the bits 231 are “1” and then the processes in S 55 and later be performed.
- FIG. 15 is a storage system in which the data storage module 240 of the storage apparatus 200 has multiple data storage areas (volumes).
- This embodiment is also applicable to mirroring performed between multiple volumes of one storage apparatus. If mirroring is performed between a volume 280 and a volume 270 of the storage apparatus 200 , no load is imposed on the network 400 when a physical copy process is performed between the volumes.
- the storage apparatus 200 performs the following processes. Upon receipt of an instruction for separating the volume 270 , the storage apparatus 200 creates bitmap information 230 . The storage apparatus 200 records areas where data has been updated since the separation of the volume 270 , of the volume 280 by changing the bits 231 of the bitmap information 230 . If the volume 270 is returned to a mirroring relation, the storage apparatus 200 transmits information indicating that a logical copy has been completed, to the server 100 . Subsequently, the storage apparatus 200 physically copies pieces of data stored in block areas of the volume 280 corresponding to the bits 231 of the bitmap information 230 , to the volume 270 .
- a server has information for establishing a mirroring relation.
- a server records data indicating a difference made between the time when a storage apparatus is separated from a mirroring relation and the time when the storage apparatus is returned to a mirroring relation and the difference data is updated when a mirroring relation is reestablished.
- a load for performing the copy process is imposed on the route of a fibre channel or on the server.
- the storage apparatuses perform a physical copy process using a new advanced copy function and the server 100 is not involved in performance of a physical copy. This allows the server 100 to access the storage apparatuses that are performing a physical copy process.
- the advanced copy function is a function that allows the storage apparatus 200 to copy data between the storage apparatuses 200 and 300 without using the server 100 .
- the controller 210 of the storage apparatus 200 copies pieces of data stored in the block areas 251 of the volume 250 of the storage apparatus 200 at a point in time, to the block areas 351 of the volume 350 of the storage apparatus 300 .
- the advanced copy function includes the equivalent copy function (hereafter referred to as “EC”), the one point copy function (hereafter referred to as “OPC”), and the like.
- EC equivalent copy function
- OPC one point copy function
- OPC includes the quick one point copy function (hereafter referred to as “quick OPC”) by which the second and later copies between the block areas 251 and block areas 351 are performed only with respect to pieces of data that have been updated since the previous OPC process.
- the storage apparatuses 200 and 300 perform two copy processes, that is, a logical copy and a physical copy, using OPC.
- a logical copy is a process for creating bitmap information indicating the progress of a copy process. If the storage apparatus 200 completes a logical copy, it transmits information indicating the completion to the server 100 . Typically, a logical copy is completed in several seconds or so.
- a physical copy is an actual copy process performed between the storage apparatuses 200 and 300 after the completion of the logical copy.
- the storage apparatuses 200 and 300 each associate the bits of the corresponding bitmap information with the corresponding block areas and then copy pieces of data stored in the block areas 251 of the volume 250 of the storage apparatus 200 , to the block areas 351 of the volume 350 of the storage apparatus 300 .
- the server 100 receives notification to that effect from the storage apparatus 200 . Since the physical copy is performed between the storage apparatuses 200 and 300 , the server 100 is allowed to access the storage apparatuses 200 and 300 even when the storage apparatuses are performing the physical copy process. In this case, if the storage apparatuses 200 and 300 are accessed by the server 100 during performance of the physical copy, the storage apparatuses perform a process corresponding to the progress of the physical copy. Specifically, the storage apparatuses perform the following different processes in accordance with the progress of the physical copy.
- the storage apparatus performs an OPC process on the block area and then writes data into the block area in response to the write access; (2) if a block area that is a copy source and has yet to undergo an OPC process receives a data read access, the storage apparatus directly reads data from the block area; (3) if a block area that has yet to undergo an OPC process and is a copy destination receives a data write access, the storage apparatus performs an OPC process on the block area and then writes data into the block area in response to the write access; (4) if a block area that is the copy destination and has yet to undergo an OPC process receives a data read access, the storage apparatus performs an OPC process on the block area and then reads data from the block area in response to the read access; and (5) the storage apparatus directly reads data from a block area that has yet to undergo an OPC process.
- the server 100 determines that a copy process has been completed between the storage apparatus 200 and storage apparatus 300 . This allows the server 100 to continuously access the storage apparatuses 200 and 300 .
- the storage apparatus 200 copies (initial copy) pieces of data stored in the volume 250 to the volume 350 of the storage apparatus 300 using quick OPC. Subsequently, the storage apparatus 200 copies (difference copy) only updated pieces of data stored in the volume 250 to the volume 350 .
- the storage apparatuses perform a process for performing a copy between the volumes using OPC, as well as perform a difference information acquisition process for acquiring the states of updated pieces of data using quick OPC.
- the storage apparatuses are allowed to physically copy only different pieces of data between the volumes by performing the copy process and difference information acquisition process.
- the storage apparatuses If the storage apparatuses first start a quick OPC process, they create bitmap information for transmission indicating the copy state and bitmap information for update indicating the update state. Thus, the storage apparatuses complete a logical copy process in an initial copy process. Subsequently, the storage apparatuses physically copy data stored in a copy-source volume to a copy-destination volume for each block area. The storage apparatuses change a bit of the bitmap information for transmission corresponding to a block area to be subjected to a physical copy, the bit indicating “completion of copy.” Even if physical copies between the block areas of the volumes have been completed, the storage apparatuses continue to perform a quick OPC process.
- the storage apparatuses receive write accesses to the copy-source area and copy-destination area from the server 100 , the storage apparatuses record updated locations in the bitmap information for update. If the storage apparatuses receive, from the server 100 , a write access to a block area 251 of the copy-source volume yet to be physically copied, the storage apparatuses copy data stored in the block area 251 to a corresponding block area 351 . Subsequently, the storage apparatuses perform a process corresponding to the write access.
- the storage apparatuses change a bit of the bitmap information for transmission corresponding to the access, to “copy completed” and change a bit of the bitmap information for update corresponding to the access, to “update included.”
- the storage apparatuses Upon receipt of an instruction for performing quick OPC from the server 100 , the storage apparatuses copy data stored in the copy-source block area 251 corresponding to the bit of the bitmap information for update indicating that the bit has been updated, to the copy-destination block area 351 .
- the storage apparatuses perform a logical copy and a physical copy even when performing a difference copy. After the storage apparatuses complete the logical copy process, the server 100 is allowed to access the copy-source area or copy-destination area.
- the storage apparatuses receive write-accesses from the server in a redundant state, the write accesses are performed on both the volumes.
- the storage apparatuses retain a data equivalent state between the copy-source volume and copy-destination volume. If the storage apparatuses receive an instruction for creating a copy from the server 100 , the storage apparatuses break the equivalent state between the volumes (stop). Alternatively, the storage apparatuses suspend the equivalent state between the volumes (suspend). Thus, the server 100 can separately access the volumes whose equivalent state has been broken or suspended. When the redundancy is restored, the storage apparatuses perform the restoration of the redundancy before performing an access from the server 100 . Therefore, the server 100 cannot access the volumes when a restoration process is being performed using EC.
- the mirror process according to this embodiment is different from OPC, quick OPC and EC in that: (1) difference data is acquired after a mirroring relation is broken; (2) bitmap information is already complete at the time when a mirror process is performed; (3) notification indicating the completion of a logical copy is provided to the server 100 in the stage of performing a mirror process; and (4) the server 100 is allowed to perform a read-access and a write-access to the volumes in the stage of performing a mirror process.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/689,002 US8555012B2 (en) | 2008-04-03 | 2012-11-29 | Data storage apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008-097006 | 2008-04-03 | ||
JP2008097006A JP5194962B2 (ja) | 2008-04-03 | 2008-04-03 | データ処理方法、ストレージ装置およびストレージシステム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/689,002 Division US8555012B2 (en) | 2008-04-03 | 2012-11-29 | Data storage apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090254722A1 true US20090254722A1 (en) | 2009-10-08 |
Family
ID=41134314
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/417,080 Abandoned US20090254722A1 (en) | 2008-04-03 | 2009-04-02 | Data storage apparatus |
US13/689,002 Active US8555012B2 (en) | 2008-04-03 | 2012-11-29 | Data storage apparatus |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/689,002 Active US8555012B2 (en) | 2008-04-03 | 2012-11-29 | Data storage apparatus |
Country Status (2)
Country | Link |
---|---|
US (2) | US20090254722A1 (ja) |
JP (1) | JP5194962B2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130054520A1 (en) * | 2010-05-13 | 2013-02-28 | Hewlett-Packard Development Company, L.P. | File system migration |
US20150067285A1 (en) * | 2013-09-05 | 2015-03-05 | Fujitsu Limited | Storage control apparatus, control method, and computer-readable storage medium |
US20170061131A1 (en) * | 2015-08-31 | 2017-03-02 | Cisco Technology, Inc. | Side-Channel Integrity Validation of Devices |
US20170351457A1 (en) * | 2016-06-03 | 2017-12-07 | Fujitsu Limited | Storage controller, storage system, and storage control method |
US20180113772A1 (en) * | 2016-10-26 | 2018-04-26 | Canon Kabushiki Kaisha | Information processing apparatus, method of controlling the same, and storage medium |
US10310758B2 (en) | 2014-03-26 | 2019-06-04 | Hitachi, Ltd. | Storage system and storage control method |
US11082365B2 (en) | 2016-01-27 | 2021-08-03 | Oracle International Corporation | System and method for supporting scalable representation of switch port status in a high performance computing environment |
US11271870B2 (en) | 2016-01-27 | 2022-03-08 | Oracle International Corporation | System and method for supporting scalable bit map based P_Key table in a high performance computing environment |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019061483A (ja) * | 2017-09-26 | 2019-04-18 | キヤノン株式会社 | 記憶制御装置、その制御方法、プログラム、及び情報処理装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060085663A1 (en) * | 2004-10-18 | 2006-04-20 | Atsushi Sutoh | Method for keeping snapshot image in a storage system |
US20060236049A1 (en) * | 2005-04-13 | 2006-10-19 | Hitachi, Ltd. | Remote copy system and remote copy method |
US20070050576A1 (en) * | 2005-08-30 | 2007-03-01 | Katsuyoshi Suzuki | Storage controller, storage control system and storage control method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3882467B2 (ja) * | 2000-05-22 | 2007-02-14 | 株式会社日立製作所 | 記憶装置システムのスナップショット管理方法 |
JP4108944B2 (ja) | 2001-06-14 | 2008-06-25 | 株式会社東芝 | スナップショット機能を有するディスク記憶装置、スナップショット差分情報管理方法及びスナップショット管理プログラム |
JP3842772B2 (ja) * | 2003-09-10 | 2006-11-08 | 株式会社東芝 | ディスクアレイコントローラ、ディスクアレイ装置及びディスクアレイ制御プログラム |
JP2007249652A (ja) | 2006-03-16 | 2007-09-27 | Nec Corp | データミラー型クラスタシステム及びその運用方法 |
-
2008
- 2008-04-03 JP JP2008097006A patent/JP5194962B2/ja active Active
-
2009
- 2009-04-02 US US12/417,080 patent/US20090254722A1/en not_active Abandoned
-
2012
- 2012-11-29 US US13/689,002 patent/US8555012B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060085663A1 (en) * | 2004-10-18 | 2006-04-20 | Atsushi Sutoh | Method for keeping snapshot image in a storage system |
US20060236049A1 (en) * | 2005-04-13 | 2006-10-19 | Hitachi, Ltd. | Remote copy system and remote copy method |
US20070050576A1 (en) * | 2005-08-30 | 2007-03-01 | Katsuyoshi Suzuki | Storage controller, storage control system and storage control method |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130054520A1 (en) * | 2010-05-13 | 2013-02-28 | Hewlett-Packard Development Company, L.P. | File system migration |
US9037538B2 (en) * | 2010-05-13 | 2015-05-19 | Hewlett-Packard Development Company, L.P. | File system migration |
US20150067285A1 (en) * | 2013-09-05 | 2015-03-05 | Fujitsu Limited | Storage control apparatus, control method, and computer-readable storage medium |
US10310758B2 (en) | 2014-03-26 | 2019-06-04 | Hitachi, Ltd. | Storage system and storage control method |
US20170061131A1 (en) * | 2015-08-31 | 2017-03-02 | Cisco Technology, Inc. | Side-Channel Integrity Validation of Devices |
US11082365B2 (en) | 2016-01-27 | 2021-08-03 | Oracle International Corporation | System and method for supporting scalable representation of switch port status in a high performance computing environment |
US11271870B2 (en) | 2016-01-27 | 2022-03-08 | Oracle International Corporation | System and method for supporting scalable bit map based P_Key table in a high performance computing environment |
US11716292B2 (en) | 2016-01-27 | 2023-08-01 | Oracle International Corporation | System and method for supporting scalable representation of switch port status in a high performance computing environment |
US11770349B2 (en) * | 2016-01-27 | 2023-09-26 | Oracle International Corporation | System and method for supporting configurable legacy P_Key table abstraction using a bitmap based hardware implementation in a high performance computing environment |
US20170351457A1 (en) * | 2016-06-03 | 2017-12-07 | Fujitsu Limited | Storage controller, storage system, and storage control method |
US10365846B2 (en) * | 2016-06-03 | 2019-07-30 | Fujitsu Limited | Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing |
US20180113772A1 (en) * | 2016-10-26 | 2018-04-26 | Canon Kabushiki Kaisha | Information processing apparatus, method of controlling the same, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US8555012B2 (en) | 2013-10-08 |
US20130086346A1 (en) | 2013-04-04 |
JP2009251786A (ja) | 2009-10-29 |
JP5194962B2 (ja) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8555012B2 (en) | Data storage apparatus | |
JP4727437B2 (ja) | データベースを有するストレージシステムの記憶制御方法 | |
KR100710767B1 (ko) | 카피 제어 장치 및 방법 | |
US7376804B2 (en) | Storage system, backup system, and backup method | |
US8001344B2 (en) | Storage control apparatus, storage control program, and storage control method | |
JP4756992B2 (ja) | ストレージシステム及び記憶制御方法 | |
JP4419884B2 (ja) | データ複製装置、方法及びプログラム並びに記憶システム | |
US20110225124A1 (en) | Creating a buffer point-in-time copy relationship for a point-in-time copy function executed to create a point-in-time copy relationship | |
US6073221A (en) | Synchronization of shared data stores through use of non-empty track copy procedure | |
US8024537B2 (en) | Storage system, remote copy and management method therefor | |
US7836268B2 (en) | Method, apparatus, and system for controlling data storage | |
EP1873645A1 (en) | Storage system and data replication method | |
JP5286212B2 (ja) | ストレージクラスタ環境でのリモートコピー制御方法及びシステム | |
EP2864888B1 (en) | Non-disruptive controller replacement in network storage systems | |
US20090222632A1 (en) | Storage system controlling method, switch device and storage system | |
JP4311532B2 (ja) | 記憶システム及び同システムにおけるスナップショット管理方法 | |
US20090177916A1 (en) | Storage system, controller of storage system, control method of storage system | |
US20160070491A1 (en) | Information processor, computer-readable recording medium in which input/output control program is recorded, and method for controlling input/output | |
US10025655B2 (en) | Storage system | |
US7194675B2 (en) | Backup method, backup system, disk controller and backup program | |
US7107485B2 (en) | Method, apparatus, and computer readable medium for managing multiple system | |
JP4741976B2 (ja) | ディスクアレイ装置およびデータ管理方法 | |
US20100218038A1 (en) | Storage control device, storage control method, and storage control program | |
JP2003257127A (ja) | 磁気テープ装置及びその制御方法並びに磁気テープ装置制御用プログラム | |
JPH1185594A (ja) | リモートコピー用情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUJITSU LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KOBASHI, KYUU;REEL/FRAME:022490/0121 Effective date: 20090317 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |