In
Disk array controller 20 is provided between host computer 10 and disks 30 to 33. Disk array controller 20 comprises interface chip 21, memory controller 22, microprocessor 23, local memory 24, cache memory 25 and interface chip 26.
Disk 30 is used as a master volume for storing master data updated by host computer 10.
Disk 31 is used as a replication volume for storing replication data replicated from the master data.
Disk 32 stores various kinds of data.
Disk 33 is used as a system volume (non-volatile storage section).
Interface chip 21 is connected to host computer 10, using a global bus such as a SCSI (Small Computer System Interface) or a Fiber Channel.
Interface chip 26 is connected to disks 30 to 33, using a SCSI (Small Computer System Interface) or a universal bus such as a fiber channel.
Cache memory 25 stores read data or write data communicated between interface chips 21 and 26. Also, cache memory 25 stores an update management table (update difference information) that represents an update difference between the master data stored in master volume 30 and the replication data stored in replication volume 31.
Memory controller 22 controls cache memory 25.
Microprocessor 23 generally controls disk array controller 20.
Local memory 24 stores a microcode and control information used in microprocessor 23, for example.
In this embodiment, four disks 30 to 33 are used, but the number of disks is not limited to four, and may be appropriately changed.
In
Receiving section 40 communicates with host computer 10.
Detection section 44 detects a device stop instruction. The device stop instruction is one example of stop instruction indicating that disk array device 1 has stopped.
Detection section 46 detects a device boot-up instruction. The device boot-up instruction is one example of a start instruction indicating that disk array device 1 has started up.
Read/write control section 43 controls disks 30 to 32.
System volume control section 48 controls system volume 33.
Exclusive control section 41 exclusively controls a host IO process, a process based on the device stop instruction and a process based on the device boot-up instruction.
Table control section 42 controls the reference and update of the update management table in cache memory 25 in performing the host IO process.
Table control section 42 is one example of an information control section, and updates only the update difference indicated by the update management table saved in cache memory 25 among the replication data stored in replication volume 31. Table control section 42 may update only the update difference indicated by the update management table saved in cache memory 25 among the master data stored in master volume 30.
Store control section 45 reads the update management table from cache memory 25, and stores the update management table in system volume 33, using system volume control section 48 in performing the process based on the device stop instruction.
Return control section 4 date management table from system volume 33 using system volume control section 48, and writes the update management table in cache memory 25 in performing the process based on the device boot-up instruction.
The operation will be described below.
First of all, data replication will be described below. Data replication is a function of creating the replication of master volume 30 when disk array device 1 is used by host computer 10.
Disk array device 1 uses disk 30 as master volume 30 for use in host computer 10 and uses disk 31 as replication volume 31 for storing the replication of data in master volume 30.
Master volume 30 and replication volume 31 are divided into plural blocks to manage data in each block. In addition, each block of master volume 30 corresponds one-to-one to each block of replication volume 31.
Disk array controller 20 associates master volume 30 with replication volume 31 in making the data replication.
This association can be made in the following manner, for example.
In a state in which master volume 30 and replication 31 are not associated with each other (separation state), receiving section 40, upon accepting a mirroring instruction from host computer 10, provides the mirroring instruction to exclusive control section 41.
Exclusive control section 41, upon accepting the mirroring instruction, provides the mirroring instruction to table control section 42.
Table control section 42, upon accepting the mirroring instruction, carries out the mirroring process, and then associates master volume 30 and replication volume 31. Owing to this association, the relationship between master volume 30 and replication volume 31 is changed from the state as shown in
At the time of this association, table control section 42 creates an update management table A for master volume 30 and an update management table B for replication volume 31 in cache memory 25.
In
Table control section 42 turns ON all the flags in update management table A and turns OFF all the flags in update management table B at the first mirroring time (when the mirroring instruction is accepted).
Thereafter, table control section 42 controls read/write control section 43, thereby specifying a block in which the flag is ON in update management table A in cache memory 25, selecting the block in master volume 30 specified by the specified block, copying data in the selected block, and writing the data into the block of replication volume 31 corresponding to the selected block.
In this case, since all the flags in the update management table are ON, table control section 42 copies all the data in master volume 30 to replication volume 31. Therefore, the first mirroring is completed.
Thereafter, receiving section 40, upon accepting a separation instruction from host computer 10, provides the separation instruction to exclusive control section 41.
Exclusive control section 41, upon accepting the separation instruction, provides the separation instruction to table control section 42.
Table control section 42, upon accepting the separation instruction, dissolves the association between master volume 30 and replication volume 31 and separates replication volume 31 from master volume 30 (see
The data as shown in
First of all, at step S601, table control section 42 judges whether or not the current process is mirroring. Table control section 42 performs step S602 if the current process is mirroring, or ends the mirroring operation if the current process is not mirroring.
At step S602, table control section 42 judges whether or not any flag is ON in update management table A. Table control section 42 performs step S603 if any flag is ON in update management table A, or ends the mirroring operation if no flag is ON in update management table A.
At step S603, table control section 42 controls read/write control section 43, thereby specifying the block of master volume 30 in which the flag is ON in update management table A, copying data of the specified block, and writing the data into the block of replication volume 31 corresponding to the specified block. Thereafter, table control section 42 performs step S604.
At step S604, table control section 42 turns OFF the flag in update management table A, and ends the mirroring operation.
Receiving section 40, upon accepting a write instruction (including host data) from host computer 10, provides the write instruction to exclusive control section 41. Exclusive control section 41, upon accepting the write instruction, provides the write instruction to table control section 42.
Table control section 42, upon accepting the write instruction, performs step S701.
At step S701, table control section 42 judges whether or not the write instruction is an instruction for accessing master volume 30. Table control section 42 performs step S702 if the write instruction is the instruction for accessing master volume 30, or performs step S703 if the write instruction is not the instruction for accessing master volume 30.
At step S702, table control section 42 judges whether or not the current process is mirroring. Table control section 42 performs step S704 if the current process is mirroring, or performs step S705 if the current process is not mirroring.
At step S704, table control section 42 writes host data into master volume 30 and replication volume 31. Therefore, even if data is written by host computer 10 into master volume 30 during mirroring, the data update is reflected in replication volume 31. Hence, the master data of master volume 30 and the replication data of replication volume 31 are coincident.
At step S705, table control section 42 turns ON the flag corresponding to the block of master volume 30 accessed by host computer 10 among the flags in update management table A. Thereafter, table control section 42 performs step S706.
At step S706, table control section 42 writes the host data into the block of master volume 30 accessed by host computer 10.
On the other hand, at step S703, table control section 42 judges whether or not the write instruction is the instruction for accessing replication volume 31. Table control section 42 performs step S707 if the write instruction is the instruction for accessing replication volume 31, or performs step S708 if the write instruction is not the instruction for accessing replication volume 31.
At step S707, table control section 42 turns ON the flag corresponding to the block of replication volume 31 accessed by host computer 10 among the flags in update management table B. Thereafter, table control section 42 performs step S709.
At step S709, table control section 42 writes the host data into the block of replication volume 31 accessed by host computer 10.
On the other hand, at step S708, table control section 42 writes the host data into the volume (e.g., disk 32) accessed by host computer 10.
Next, the re-mirroring operation will be described below.
Receiving section 40, upon accepting a re-mirroring instruction from host computer 10, provides re-mirroring instructions to exclusive control section 41. Exclusive control section 41, upon accepting the re-mirroring instructions, provides the re-mirroring instructions to table control section 42.
Table control section 42, upon accepting the re-mirroring instruction, carries out the mirroring process, and performs the mirroring operation as shown in
It is desirable that table control section 42 performs the following operation before ending the mirroring operation as shown in
Table control section 42 judges whether or not any flag is ON in update management table B.
If any flag is ON in update management table B, table control section 42 controls read/write control section 43, thereby copying data of the block of replication volume 31 in which the flag is ON in update management table B, and writing the data into the block of master volume 30 corresponding to the block in which the flag is ON in update management table B.
Thereafter, table control section 42 turns OFF the flag in update management table B, and ends the mirroring operation.
At the time of re-mirroring, only data of the updated block is copied, because only the flag of the block with data updated host computer 10 is ON among the flags in the update management table. Hence, the data update time can be shortened.
Herein, in the update management table at the time of re-mirroring, only the flag of the block, which is updated when master volume 30 and replication volume 31 are in a state in which they are separated, is ON, and this update management table is saved in cache memory 25.
If disk array device 1 is stopped due to a power cut in a state during which the update management table is saved. In cache memory 25, and thereafter, disk array device 1 is booted up, cache memory 25 is initialized, so that table control section 42 turns ON all the flags of the update management table. If a re-mirroring instruction is made in this state, the entire master data in master volume 30 is copied to replication volume 31.
Thus, disk array device 1 stores the update management table that is stored in cache memory 25 in a system disk area (system volume 33) when disk array device is stopped, to avoid copying the entire master data in master volume 30 when the re-mirroring instruction is made.
Detection section 44, upon detecting a device stop instruction, provides the device stop instruction to exclusive control section 41.
Exclusive control section 41, upon accepting the device stop instruction, performs step S100.
At step S100, exclusive control section 41 inhibits access from host computer 10 so that data of master volume 30 and replication volume 31 cannot be updated.
Thereafter, exclusive control section 41 provides the device stop instruction to store control section 45. Store control section 45, upon accepting the device stop instruction, performs step S101.
At step S101, store control section 45 selects one of the volumes mounted on the plurality of disks 30 to 33, and judges whether the volume is master volume or replication volume.
The information (information as shown in
Store control section 45 performs step S102 if the volume is master volume or replication volume, or performs step S103 if the volume is neither master volume nor replication volume.
At step S102, store control section 45 reads information of update management table from cache memory 25. Thereafter, store control section 45 controls system volume control section 48, thereby performing a process of storing the information of the update management table, together with the associated information of master volume 30 and replication volume 31, and their states (see
If the associated information of master volume 30 and replication volume 31 and their states (see
At step S103, store control section 45 judges whether or not step S101 is performed for all the volumes mounted on the plurality of disks 30 to 33. Step S101 is performed if step S101 is not performed for all the volumes, or the operation is ended if step S101 is performed for all the volumes.
Detection section 46, upon detecting a device boot-up instruction, provides the device boot-up instruction to exclusive control section 41.
Exclusive control section 41, upon accepting the device boot-up instruction, inhibits access from host computer 10 so that data of master volume 30 and replication volume 31 can not be updated.
Thereafter, exclusive control section 41 provides the device boot-up instruction to return control section 47. Return control section 47, upon accepting the device boot-up instruction, performs step S110.
At step S110, return control section 47 selects one of the volumes mounted on the plurality of disks 30 to 33, and judges whether the volume is master volume or replication volume.
The information (e.g., information as shown in
Return control section 47 performs step S111 if the selected volume is master volume or replication volume, and performs step S112 if the volume is neither master volume nor replication volume.
At step S111, return control section 47 controls system volume control section 48, thereby performing a process of reading the associated information of master volume 30 and replication volume 31, their states and the information of the update management table stored in system volume 33, and storing them into cache memory 25. Thereafter, return control section 47 performs step S112.
At step S112, return control section 47 judges whether or not step S110 is performed for all the volumes mounted on the plurality of disks 30 to 33. Step S10 is performed if step S110 is not performed for all the volumes, or the operation is ended if step S110 is performed for all the volumes.
If the reading is all completed, exclusive control section 41 releases an access inhibit state for host computer 10. Therefore, disk array device 1 is enabled for access from host computer 10, and is normally operable.
According to this embodiment, store control section 45 stores the update management table that is stored in cache memory 25 in system volume 33, when the device is stopped, and return control section 47 reads the update management table from system volume 33 and saves the update management table in cache memory 25, when the device is booted up.
Therefore, even if the update management table in cache memory 25 is deleted as the operation of disk array device 1 is stopped, the update management table stored in system volume 33 is saved in cache memory 25 when disk array device 1 is started.
Hence, disk array device 1 can employ the update management table at the time of re-mirroring after boot-up of disk array device 1. Therefore, disk array device 1 can perform the mirroring for only a minimum of copies at the time of re-mirroring after boot-up of disk array device 1, whereby the replication data and/or master data can be created in a short time.
Store control section 45, upon accepting the device stop instruction, stores the update management stored in cache memory 25 in system volume 33 in this embodiment.
In this case, it is possible to prevent the update management table from being lost after disk array device 1 is stopped.
Store control section 45 may further have the following function.
In
At steps S101 and S121, store control section 45 periodically monitors the state in which the data writing (write) is not performed in master volume 30 or replication volume 31 for the fixed period.
Store control section 45 performs step S102 to store the information of the update management table at that time in system volume 33 if data writing is not performed in master volume 30 or replication volume 31 for the fixed period.
In this case, even if the update management table in cache memory 25 is lost due to a device failure such as a power cut in a state during which the writing is not done for a long time, the update management table can be read from system volume 33 at the time of device boot-up, and restored to cache memory 25. Therefore, it is possible to perform mirroring for only a minimum of copies at the time of re-mirroring.
At steps S101 and S121, store control section 45 may periodically monitor the state in which the data writing (write) is not performed in master volume 30 and replication volume 31 for a fixed period, and store control section 45 may perform step S102 to store the information of the update management table at that time in system volume 33 if data writing is not performed in master volume 30 and replication volume 31 for the fixed period.
In
In
At step S705A, table control section 42 turns ON the flag corresponding to the block of master volume 30 that is accessed by host computer 10 among the flags in update management table A. Thereafter, table control section 42 controls store control section 45 to perform the process of storing the update management table A in system volume 33. Thereafter, table control section 42 performs step S706.
At step S707A, table control section 42 turns ON the flag corresponding to the block of replication volume 31 that is accessed by host computer 10 among the flags in update management table B. Thereafter, table control section 42 controls store control section 45 to perform the process of storing the update management table B in system volume 33. Thereafter, table control section 42 performs step S709.
Also, in
At step S604A, table control section 42 turns OFF the flag of update management table A, then controls store control section 45 to perform the process of storing update management table A in system volume 33, and thereafter ends the mirroring operation.
In this case, every time the flag information of the update management table is updated in a state in which mirroring does not occur, store control section 45 stores the update management table with the flag information updated in system volume 33, and then table control section 42 writes the host data.
Thereafter, even if the update management table in cache memory 25 is lost due to a device failure, the update management table, before the occurrence time of device failure, is stored in system volume 33. Hence, return control section 47 stores the update management table stored in system volume 33 into cache memory 25 in accordance with a procedure as shown in
Accordingly, the replication data can be also created in a short time at the time of re-mirroring after boot-up of disk array device 1.
Moreover, each of the master volume, the replication volume and the system volume is one disk in
Though the update management table is stored in a system volume in
While a preferred embodiment of the present invention has been described using specific terms, such description is for illustrative purposes only, and it is to be understood that changes and variations may be made without departing from the spirit or scope of the following claims.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2006-137598 | May 2006 | JP | national |