WO2014002160A1 - ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム - Google Patents
ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム Download PDFInfo
- Publication number
- WO2014002160A1 WO2014002160A1 PCT/JP2012/066140 JP2012066140W WO2014002160A1 WO 2014002160 A1 WO2014002160 A1 WO 2014002160A1 JP 2012066140 W JP2012066140 W JP 2012066140W WO 2014002160 A1 WO2014002160 A1 WO 2014002160A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- storage
- data
- storage device
- write
- storage area
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0625—Power saving in storage systems
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- 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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
- G06F11/1662—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
-
- 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/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates to a storage control device, a storage control method, and a storage control program.
- HDD Hard Disk Drive
- RAID Redundant Arrays of Inexpensive Disks
- a storage system using RAID technology has a problem of high power consumption because it includes a large number of storage devices.
- the replication storage device is turned off during normal operation, and the replication storage device power is supplied at a predetermined timing. There is something that performs replication with ON.
- many storage systems using RAID technology include a spare storage device called a hot spare.
- a hot spare In such a storage system, when one storage device fails, the data stored in the failed storage device is rebuilt and stored in the hot spare storage device. Thereby, the operation of the storage system can be resumed in a short time.
- a part of data stored in a plurality of storage devices controlled by RAID is also written in the hot spare storage device, and control is performed by RAID when data is read.
- reading is performed at high speed by performing reading from not only each storage device but also a hot spare storage device.
- a storage system using RAID technology has a problem of high power consumption.
- data is not made redundant until the power supply of the replication storage device is turned on.
- an object of the present invention is to provide a storage control device, a storage control method, and a storage control program capable of making data redundant with low power consumption.
- data is written to each logical storage area so that the data is made redundant in different storage apparatuses for each of the one or more logical storage areas each composed of storage areas of a plurality of storage devices.
- a storage controller for controlling is provided.
- This storage control device has the following operation control unit and access control unit.
- the operation control unit stops the operation of a plurality of storage devices among the storage devices constituting each logical storage area.
- the access control unit configures each logical storage area in place of the storage device that is requested to write data when it is requested to write data to the stopped storage device among the storage devices that configure each logical storage area.
- Data is written in a spare storage device different from the storage device to be used, and the redundancy of data in each logical storage area is determined by the active storage device and the spare storage device among the storage devices constituting each logical storage area. Control to keep.
- a storage control method for executing processing similar to that of the above-described storage control device and a storage control program for causing a computer to execute processing similar to that of the above-described storage control device are provided.
- a storage control apparatus in a storage control apparatus, a storage control method, and a storage control program, data can be made redundant with low power consumption.
- FIG. 1 is a diagram illustrating a configuration example and an operation example of a storage system according to a first embodiment.
- FIG. It is a figure which shows the structural example of the storage system which concerns on 2nd Embodiment. It is a figure which shows the internal structural example of an array controller. It is a figure which shows the 1st example of a setting of a RAID group. It is a figure for demonstrating control of RAID5. It is a figure which shows the 2nd example of a setting of a RAID group. It is a figure for demonstrating control of RAID6. It is a figure which shows the 3rd example of a setting of a RAID group. It is a figure for demonstrating control of RAID1 + 0.
- FIG. 1 is a diagram illustrating a configuration example and an operation example of the storage system according to the first embodiment.
- the storage system shown in FIG. 1 includes a storage control device 10 and a plurality of storage devices.
- the storage system in FIG. 1 includes six storage devices 21 to 26 as an example.
- the storage control device 10 controls access to the storage devices 21 to 26.
- the storage control device 10 can manage the storage areas of a plurality of storage devices as one logical storage area.
- the storage control device 10 controls the writing of data to each logical storage area so that the data is made redundant in different storage devices for each logical storage area.
- Such management of the logical storage area is performed using RAID technology, and the logical storage area is called a RAID group or the like.
- the storage areas of the storage devices 21 and 22 are managed as the logical storage area 31, and the storage areas of the storage devices 23 to 25 are managed as the logical storage area 32.
- Data reading / writing to the logical storage area 31 is controlled by, for example, RAID1.
- the storage control device 10 writes the same data to both the storage devices 21 and 22 and mirrors the data to the storage devices 21 and 22.
- reading / writing of data to / from the logical storage area 32 is controlled by, for example, RAID5.
- the storage control device 10 divides the data to be written into the logical storage area 32, and distributes two consecutive divided data and the parity based on them to the areas of the same stripe number in the storage devices 23 to 25. Write.
- At least one of the storage devices connected to the storage control device 10 is a spare storage device.
- the storage device 26 is prepared for backup.
- the spare storage device 26 is used by being incorporated in the logical storage area instead of the failed storage device.
- the storage control device 10 includes an operation control unit 11 and an access control unit 12.
- the operation control unit 11 stops the operations of a plurality of storage devices among the storage devices that constitute the logical storage areas 31 and 32 in order to reduce the power consumption of the entire storage system.
- the operation control unit 11 stops the operations of the storage device 22 and the storage device 25.
- the operation control unit 11 stops the rotation of the magnetic disk in each of the storage devices 22 and 25 or turns off the power of the storage devices 22 and 25. Then, the operations of the storage devices 22 and 25 are stopped.
- the access control unit 12 uses the spare storage device instead of the storage device requested to be written when the data storage request is made to the storage device that is stopped among the storage devices constituting the logical storage areas 31 and 32.
- the data is written in the storage device 26.
- the access control unit 12 writes the data to the spare storage device 26 instead of the storage device 22 when writing of data to the storage device 22 is requested.
- the access control unit 12 writes the data to the spare storage device 26 instead of the storage device 25 when writing of data to the storage device 25 is requested.
- the data write request to the access control unit 12 may be transmitted from an external host device connected to the storage control device 10 or may be generated inside the storage control device 10, for example.
- the access control unit 12 performs the above-described writing so that the active storage devices 21, 23, 24 and the spare storage device 26 among the storage devices constituting the logical storage areas 31, 32 are Control is performed so that data redundancy in each of the logical storage areas 31 and 32 is maintained.
- the storage device whose operation is stopped by the operation control unit 11 is determined so that the data of the logical storage device to which the storage device belongs is not lost when the operation of the storage device is stopped.
- the state where the data in the logical storage device is not lost means that the data can be read as it is from only the storage devices that are operating among the storage devices constituting the logical storage device, or the data is stored using parity. Indicates that rebuilding is possible.
- a logical storage area managed by RAID1, RAID4, and RAID5 the operation of only one of the storage devices constituting the logical storage area can be stopped. Further, in the logical storage area managed by RAID 6, it is possible to stop the operation of up to two storage devices among the storage devices constituting the logical storage area.
- the access control unit 12 selects the storage device whose operation is to be stopped, and the storage device that is operating among the storage devices that constitute each logical storage area. It is possible to perform control so that data redundancy in each logical storage area is maintained by the storage device and the spare storage device.
- the operation control unit 11 stops the operation of the number of storage devices larger than the number of spare storage devices used as write destinations by the access control unit 12 among the storage devices constituting each logical storage area. Thereby, power consumption in the storage system can be reduced.
- data can be made redundant with low power consumption.
- the storage control device 10 can write back the data written in the spare storage device 26 at a predetermined timing to the original write position in the storage areas of the storage devices constituting each logical storage area. it can. For example, when the remaining capacity of the spare storage device 26 is equal to or less than a predetermined threshold, or when one storage device constituting any logical storage area fails, the storage control device 10 When it becomes necessary to use the spare storage device 26 instead of the failed storage device, data is written back.
- FIG. 2 is a diagram illustrating a configuration example of a storage system according to the second embodiment.
- the storage system shown in FIG. 2 includes an information processing apparatus 100 and a disk array 200.
- the disk array 200 includes a plurality of storage devices to be accessed from the information processing apparatus 100.
- the disk array 200 includes the HDD 210 as a storage device to be accessed from the information processing apparatus 100.
- the disk array 200 includes a nonvolatile storage device other than the HDD such as an SSD (Solid State Drive). May be.
- a plurality of disk arrays 200 may be connected to the information processing apparatus 100.
- the information processing apparatus 100 can read / write data from / to the HDD 210 in the disk array 200.
- the information processing apparatus 100 has the following hardware configuration.
- the information processing apparatus 100 can be realized as a computer as shown in FIG.
- the information processing apparatus 100 is entirely controlled by a CPU (Central Processing Unit) 101.
- a RAM (Random Access Memory) 102 and a plurality of peripheral devices are connected to the CPU 101 via a bus 109.
- the RAM 102 is used as a main storage device of the information processing apparatus 100.
- the RAM 102 temporarily stores at least part of an OS (Operating System) program and application programs to be executed by the CPU 101.
- the RAM 102 stores various data necessary for processing by the CPU 101.
- Peripheral devices connected to the bus 109 include an HDD (Hard Disk Drive) 103, a graphic processing device 104, an input interface 105, an optical drive device 106, a communication interface 107, and an array controller 108.
- HDD Hard Disk Drive
- the HDD 103 magnetically writes and reads data to and from the built-in magnetic disk.
- the HDD 103 is used as a secondary storage device of the information processing apparatus 100.
- the HDD 103 stores an OS program, application programs, and various data.
- As the secondary storage device other types of nonvolatile storage devices such as a flash memory may be used.
- a monitor 104 a is connected to the graphic processing device 104.
- the graphic processing device 104 displays an image on the monitor 104a in accordance with a command from the CPU 101.
- the monitor 104a is a liquid crystal display, for example.
- the input interface 105 is connected to input devices such as a keyboard 105a and a mouse 105b.
- the input interface 105 transmits an output signal from the input device to the CPU 101.
- the optical drive device 106 reads data recorded on the optical disk 106a using a laser beam or the like.
- the optical disk 106a is a portable recording medium on which data is recorded so that it can be read by reflection of light.
- the optical disk 106a includes a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc Read Only Memory), a CD-R (Recordable) / RW (Rewritable), and the like.
- the communication interface 107 transmits / receives data to / from other devices through the network 107a.
- the array controller 108 controls access to the HDD 210 in the disk array 200 in accordance with an instruction from the CPU 101.
- the array controller 108 can control the HDD 210 in the disk array 200 using RAID.
- FIG. 3 is a diagram showing an example of the internal configuration of the array controller.
- the array controller 108 includes a CPU 111, a RAM 112, a nonvolatile memory 113, a host interface 114, and a disk interface 115.
- the CPU 111 controls the access to the HDD 210 in the disk array 200 by executing the firmware (F / W) 120 stored in the nonvolatile memory 113.
- the RAM 112 temporarily stores at least part of the firmware 120 to be executed by the CPU 111 and various data.
- the host interface 114 transmits and receives data between the host and the CPU 111.
- the host is the CPU 101 of the information processing apparatus 100.
- the disk interface 115 transmits and receives data between the HDD 210 and the CPU 111 in the disk array 200.
- the disk interface 115 can transmit a command to the HDD 210 in the disk array 200 under the control of the CPU 111.
- the CPU 111 can manage a plurality of HDDs 210 mounted on the disk array 200 as a RAID group.
- a RAID group is a logical storage area that is configured by storage areas of a plurality of HDDs 210 and managed so that data is made redundant to different HDDs 210.
- Information on the HDD 210 constituting each RAID group, information on a RAID level used for management of each RAID group, and the like are set in the nonvolatile memory 113.
- the array controller 108 uses at least one of the HDDs 210 mounted on the disk array 200 as a spare HDD called “Hot Spare”. Further, the array controller 108 stops the rotation of the magnetic disk in the plurality of storage devices 210 determined in advance among the HDDs 210 constituting each RAID group.
- the array controller 108 When the array controller 108 is requested to write data to the HDD 210 whose rotation of the magnetic disk is stopped, the array controller 108 temporarily writes the data to the hot spare HDD.
- the array controller 108 performs control so that data redundancy is maintained by using HDDs in which the rotation of the magnetic disk is not stopped among the HDDs 210 constituting each RAID group and hot spare HDDs. As a result, power consumption of the entire storage system can be reduced, and data stored in each RAID group can be made redundant.
- FIG. 4 is a diagram illustrating a first setting example of a RAID group.
- FIG. 5 is a diagram for explaining the control of RAID5.
- the RAID group # 01 is configured by the storage areas of the HDDs 210a and 210b
- the RAID group # 02 is configured by the storage areas of the HDDs 210c to 210e.
- the HDD 210f is used as a hot spare and is also used as a temporary storage area for data to be written to the HDD in which the rotation of the magnetic disk is stopped among the HDDs 210a to 210e constituting the RAID groups # 01 and # 02.
- RAID group # 01 is managed by, for example, RAID1.
- RAID1 is a system in which the same data is written to two HDDs and the data is mirrored on each HDD.
- the array controller 108 receives a data write request for the logical volume corresponding to the RAID group # 01 from the host, the array controller 108 writes the data requested to be written to both the HDDs 210a and 210b.
- the array controller 108 receives a data read request from the logical volume corresponding to the RAID group # 01 from the host, the array controller 108 reads data from one of the HDDs 210a and 210b determined in advance. In the present embodiment, it is assumed that data is read from the HDD 210a.
- RAID group # 02 is managed by RAID5, for example.
- RAID5 is a method in which write data is divided into fixed lengths, and continuous divided data and parity based on them are distributed and written in areas of the same stripe number in a plurality of HDDs.
- the host requests the array controller 108 to write the data D1 to the logical volume corresponding to the RAID group # 02.
- the array controller 108 divides the data D1 into predetermined data lengths to generate divided data Da to Df.
- the array controller 108 calculates a parity Pab from the divided data Da and Db, a parity Pcd from the divided data Dc and Dd, and a parity Pef from the divided data De and Df.
- the array controller 108 writes the divided data Da, Db, and the parity Pab to the HDDs 210c, 210d, 210e, respectively, writes the divided data Dc, the parity Pcd, and the divided data Dd to the HDDs 210c, 210d, 210e, respectively, the parity Pef, and the divided data.
- De and Df are written in HDDs 210c, 210d and 210e, respectively.
- the data is stored in a distributed manner on HDDs having different parities in successive stripes.
- one hot spare HDD 210f is used as a temporary storage area for data to be written to the HDD in which the rotation of the magnetic disk is stopped.
- power consumption can be reduced by stopping the rotation of the magnetic disk in two or more HDDs among the HDDs constituting the RAID group.
- the data in the RAID group # 01 managed by RAID1 is not lost.
- the RAID group # 02 managed by RAID 5 even if the operation of one of the HDDs 210c to 210e constituting the RAID group # 02 is stopped, the data in the RAID group # 02 is not lost.
- the “data in the RAID group is not lost” state here is a state in which the divided data stored in the RAID group can be read or rebuilt as it is, and the data written to the RAID group thereafter is also lost. Indicates that it is not broken.
- the array controller 108 performs a total of two units, one of the HDDs 210a and 210b constituting the RAID group # 01 and one of the HDDs 210c to 210e constituting the RAID group # 02. , Stop the rotation of the magnetic disk. As an example, the array controller 108 stops the rotation of the magnetic disk in each of the HDDs 210b and 210e.
- the array controller 108 continues to accept access to the logical volumes respectively corresponding to the RAID groups # 01 and # 02 in a state where the rotation of the magnetic disk in each of the HDDs 210b and 210e is stopped.
- the array controller 108 temporarily writes the data to the hot spare HDD 210f without writing the data to the HDD 210b.
- the array controller 108 temporarily writes the data to the hot spare HDD 210f without writing the data to the HDD 210e.
- the parity Pab and the divided data Dd and Df to be written to the HDD 210e are written to the hot spare HDD 210f instead of the HDD 210e.
- the array controller 108 stops the rotation of the magnetic disk in each of the HDDs 210b and 210e, and temporarily writes the data to be written in the HDDs 210b and 210e in the hot spare HDD 210f. Thereby, the array controller 108 can make data redundant with low power consumption.
- RAID 4 is a method of dividing write data into a fixed length and writing continuous divided data and parity based on them into areas of the same stripe number in a plurality of HDDs as in RAID 5. However, unlike RAID 5, the parity is written to the same HDD.
- one of the HDDs constituting the RAID group can be stopped as in the case of RAID5.
- the array controller 108 stops the rotation of the magnetic disk in the HDD in which the parity is stored, and temporarily stores the parity in the hot spare HDD. Thereby, the data of the RAID group can be made redundant.
- FIG. 6 is a diagram illustrating a second setting example of the RAID group.
- FIG. 7 is a diagram for explaining RAID6 control.
- the RAID group # 11 is configured by the storage areas of the HDDs 210a to 210e.
- the HDD 210f is used as a hot spare and is also used as a temporary storage area for data to be written to the HDD whose rotation of the magnetic disk is stopped among the HDDs 210a to 210e constituting the RAID group # 11.
- RAID group # 11 is managed by RAID 6, for example.
- RAID 6 divides write data into a fixed length and writes continuous divided data and two types of parity (P-parity and Q-parity) based on the divided data in an area having the same stripe number in a plurality of HDDs. It is a method.
- the host requests the array controller 108 to write the data D2 to the logical volume corresponding to the RAID group # 11.
- the array controller 108 divides the data D2 into predetermined data lengths to generate divided data Da to Di.
- the array controller 108 transmits P-parity Pabc and Q-parity Qabc from the divided data Da to Dc, P-parity Pdef and Q-parity Qdef from the divided data Dd to Df, and P-parity Pghi and the divided data Dg to Di. Q-parity Qghi is calculated respectively.
- the array controller 108 writes the divided data Da, Db, Dc, P-parity Pabc, Q-parity Qabc to the HDDs 210a, 210b, 210c, 210d, 210e, respectively, and the divided data Dd, De, P-parity Pdef, Q- Parity Qdef and divided data Df are written to HDDs 210a, 210b, 210c, 210d and 210e, respectively, and divided data Dg, P-parity Pghi, Q-parity Qghi and divided data Dh and Di are written into HDDs 210a, 210b, 210c and 210d, respectively. , 210e. As a result, P-parity and Q-parity are distributed and stored in different HDDs in successive stripes.
- one hot spare HDD 210f is used as a temporary storage area for data to be written to the HDD whose rotation of the magnetic disk has been stopped.
- power consumption can be reduced by stopping the rotation of the magnetic disk in two or more HDDs among the HDDs constituting the RAID group.
- the RAID group # 11 managed by RAID1 even if the operation of two of the HDDs 210a to 210e constituting the RAID group # 11 is stopped, the data in the RAID group # 11 is not lost.
- the array controller 108 stops the rotation of the magnetic disks for two of the HDDs 210a to 210e constituting the RAID group # 11. As an example, the array controller 108 stops the rotation of the magnetic disk in each of the HDDs 210d and 210e.
- the array controller 108 continues to accept access to the logical volumes respectively corresponding to the RAID group # 11 in a state where the rotation of the magnetic disk in each of the HDDs 210d and 210e is stopped.
- the array controller 108 temporarily writes the data to the hot spare HDD 210f without writing the data to the HDDs 210d and 210e.
- P-parity Pabc, Q-parity Qdef and divided data Dh to be written to the HDD 210d are written to the hot spare HDD 210f instead of the HDD 210d. Further, the Q-parity Qabc and the divided data Df and Di to be written to the HDD 210e are written to the hot spare HDD 210f instead of the HDD 210e.
- the array controller 108 stops the rotation of the magnetic disk in each of the HDDs 210d and 210e, and temporarily writes the data to be written in the HDDs 210d and 210e to the hot spare HDD 210f. Thereby, the array controller 108 can make data redundant with low power consumption.
- FIG. 8 is a diagram illustrating a third setting example of a RAID group.
- FIG. 9 is a diagram for explaining the control of RAID 1 + 0.
- the RAID group # 21 is configured by the storage areas of the HDDs 210a to 210f.
- the HDD 210g is used as a hot spare and is also used as a temporary storage area for data to be written to the HDD whose rotation of the magnetic disk is stopped among the HDDs 210a to 210f constituting the RAID group # 21.
- RAID group # 21 is managed by RAID 1 + 0, for example.
- RAID 1 + 0 is a method that combines data striping and mirroring. For example, as shown in FIG. 9, it is assumed that the host requests the array controller 108 to write the data D3 to the logical volume corresponding to the RAID group # 21. At this time, the array controller 108 divides the data D3 every predetermined data length to generate divided data Da to Df.
- the array controller 108 writes the divided data Da to Dc in the area having the same stripe number and mirrors it. Similarly, the array controller 108 writes the divided data Dd to Df in the area having the same stripe number and mirrors it. Specifically, the array controller 108 writes the divided data Da to the HDDs 210a and 210b, writes the divided data Db to the HDDs 210c and 210d, and writes the divided data Dc to the HDDs 210e and 210f. The array controller 108 writes the divided data Dd to the HDDs 210a and 210b, writes the divided data De to the HDDs 210c and 210d, and writes the divided data Df to the HDDs 210e and 210f.
- the array controller 108 When the array controller 108 is requested to read data from the logical volume corresponding to the RAID group # 21, the array controller 108 starts from one of the two HDDs in which the divided data is mirrored in advance. Read the divided data. 8 and 9, the array controller 108 reads the divided data from the HDDs 210a, 210c, and 210e.
- one hot spare HDD 210g is used as a temporary storage area for data to be written to the HDD in which the rotation of the magnetic disk is stopped.
- power consumption can be reduced by stopping the rotation of the magnetic disk in two or more HDDs among the HDDs constituting the RAID group.
- RAID group # 21 managed by RAID 1 + 0 even if the operation of two HDDs 210a to 210f constituting RAID group # 21 is stopped, data in RAID group # 21 is not lost.
- up to two HDDs can be stopped from one of the HDDs 210a and 210b, one of the HDDs 210c and 210d, and one of the HDDs 210e and 210f.
- the array controller 108 stops the rotation of the magnetic disks for two of the HDDs 210a to 210f constituting the RAID group # 21. As an example, the array controller 108 stops the rotation of the magnetic disk in each of the HDDs 210b, 210d, and 210f.
- the array controller 108 continues to accept access to the logical volumes respectively corresponding to the RAID group # 21 in a state where the rotation of the magnetic disk in each of the HDDs 210b, 210d, and 210f is stopped.
- the array controller 108 temporarily writes the data to the hot spare HDD 210f without writing the data to the HDDs 210b, 210d, and 210f.
- the mirror data of the divided data Da to Df is written to the hot spare HDD 210g.
- the array controller 108 stops the rotation of the magnetic disk in each of the HDDs 210b, 210d, and 210f, and temporarily writes the data to be written in the HDDs 210b, 210d, and 210f in the hot spare HDD 210g. Thereby, the array controller 108 can make data redundant with low power consumption.
- FIG. 10 is a block diagram illustrating a configuration example of processing functions of the array controller.
- the array controller 108 includes a RAID control unit 130, a write-back control unit 140, and a recovery control unit 150.
- the processing of the RAID control unit 130, the write-back control unit 140, and the recovery control unit 150 is realized, for example, when the CPU 111 provided in the array controller 108 executes a predetermined program (for example, firmware 120 in FIG. 3).
- a predetermined program for example, firmware 120 in FIG. 3
- an LBA (Logical Block Address) table 160 In the processing of the array controller 108, an LBA (Logical Block Address) table 160, table management information 170, a disk management table 180, a RAID management table 190, and a data table 220 are used.
- the LBA table 160 is stored in the RAM 112 of the array controller 108, and the table management information 170, the disk management table 180, and the RAID management table 190 are stored in the nonvolatile memory 113 of the array controller 108.
- the data table 220 includes a temporary storage area for data to be written to the HDD in which the rotation of the magnetic disk is stopped, and is stored in the hot spare HDD.
- HDD 211 an HDD constituting any RAID group
- HDD 212 a hot spare HDD
- operating HDD an HDD in which the magnetic disk is rotating
- inactive HDD an HDD in which the rotation of the magnetic disk is stopped
- the RAID control unit 130 performs processing corresponding to the operation control unit 11 and the access control unit 12 illustrated in FIG.
- the RAID control unit 130 receives an access request to the logical volume corresponding to the RAID group from the host, and executes access processing to the HDD according to the access request.
- the RAID control unit 130 stops the rotation of the magnetic disk in the plurality of HDDs 211 among the HDDs 211 constituting each RAID group to reduce power consumption.
- the RAID control unit 130 stores the data to be written to the HDD 211 in the data table 220 in the hot spare HDD 212 to maintain data redundancy.
- the data table 220 is generated for each data to be written to the stopped HDD 211. Further, the identification number of the data table 220 generated last is registered in the table management information 170 and is referred to by the RAID control unit 130 when searching the data table 220.
- the setting information about the HDD 221 that stops the rotation of the magnetic disk and the hot spare HDD 212 is registered in advance in the disk management table 180, and the setting information about the RAID group is registered in advance in the RAID management table 190.
- the disk management table 180 and the RAID management table 190 are referred to by the RAID control unit 130.
- the RAID control unit 130 registers the original write destination address (that is, the write destination address in the stopped HDD 211) in the LBA table 160.
- the write-back control unit 140 causes the stopped HDD 211 to start rotating the magnetic disk at a predetermined timing, and writes back the data stored in the data table 220 to the HDD 211.
- the recovery control unit 150 executes a recovery process when any HDD 211 or hot spare HDD 212 constituting the RAID group is abnormally stopped. Note that at least part of the processing of the RAID control unit 130, the write-back control unit 140, and the recovery control unit 150 described above may be realized by the CPU 101 of the information processing apparatus 100 executing a predetermined program.
- FIG. 11 is a diagram illustrating an example of the contents of information used in the process of the array controller.
- the data table 220 is registered in the hot spare HDD 212 by the RAID control unit 130 for each data to be written to the stopped HDD 211.
- “disk number”, “write destination LBA”, and “write data” are registered in each data table 220.
- “Write data” is actual data to be written to the stopped HDD 211.
- “Disk number” is the identification number of the stopped HDD 211 that is the original write destination of the write data
- “Write destination LBA” indicates the original write destination address of the write data in the stopped HDD 211.
- the data table 220 stored in the HDD 212 in which the same disk number and write destination LBA are registered is not overwritten, and a new data table 220 is stored. Is registered in the HDD 212.
- the table management information 170 is information used to search the data table 220 registered in the hot spare HDD 212.
- a table number for identifying the data table 220 last registered in the hot spare HDD 212 by the RAID control unit 130 is registered.
- data tables 220 with table numbers “1” to “4” are registered in the hot spare HDD 212.
- “4” is registered as the table number in the table management information 170.
- the initial value of the table number registered in the table management information 170 is “0”.
- the table number assigned to the first data table 220 registered in the hot spare HDD 212 is “1”.
- the table number “0” is registered in the table management information 170, it indicates that the data table 220 is not registered in the hot spare HDD 212.
- the “HS disk number” is an identification number of the HDD 212 used as a hot spare.
- the “stop disk number” is an identification number of the HDD 211 that stops the rotation of the magnetic disk among the HDDs 211 constituting the RAID group.
- the RAID management table 190 is generated for each RAID group.
- “RAID group number”, “RAID level”, “disk number”, and “stripe size” are registered.
- the “RAID group number” is an identification number for identifying the corresponding RAID group.
- “RAID level” indicates the RAID level set for the corresponding RAID group.
- “Disk number” is an identification number of the HDD 211 constituting the corresponding RAID group. Normally, a plurality of “disk numbers” are registered in one RAID management table 190.
- the “stripe size” when the RAID level set in the corresponding RAID group is any of RAID 5, 6, 1 + 0, the size of each HDD 211 in the stripe (that is, the size of the divided data) is registered.
- the LBA table 160 is registered for each stopped HDD 211 by the RAID control unit 130.
- “stop disk number” and “write destination LBA” are registered.
- the “stop disk number” is an identification number of the HDD 211 that stops the rotation of the magnetic disk among the HDDs 211 constituting the RAID group.
- the “write destination LBA” indicates an original write destination address in the stopped HDD 211 when data is written to the corresponding stopped HDD 211.
- the “write destination address” registered in the LBA table 160 is always registered in any data table 220.
- the maximum number of “write destination LBAs” assigned to the stopped HDD 211 is registered in one LBA table 160.
- the write-back control unit 140 searches the data table 220 in order from the tail and performs data write-back. At this time, the LBA corresponding to the data that has been written back is deleted from the LBA table 160. As a result, even when the data table 220 including the same disk number and write destination LBA is registered in duplicate, the write-back control unit 140 only stores the data included in the data table 220 registered most recently. Can be written back.
- FIG. 12 and FIG. 13 are flowcharts showing an example of access control processing by the RAID control unit.
- Step S11 The RAID control unit 130 instructs the HDD 211 indicated by the stop disk number registered in the disk management table 180 of the HDDs 211 constituting the RAID group to stop the rotation of the magnetic disk. Send a command. Thereby, the rotation of the magnetic disk in the HDD 211 indicated by the stop disk number is stopped.
- Step S12 The RAID control unit 130 monitors an access request from the host for the logical volume corresponding to the RAID group set in the RAID management table 190, and executes the process of step S13 when an access request is received. .
- Step S13 When data reading is requested from the host, the process of step S14 is executed, and when data writing is requested, the process of step S31 of FIG. 13 is executed.
- the RAID control unit 130 refers to the RAID management table 190 and determines the RAID level of the RAID group requested to be read.
- the RAID control unit 130 executes the process of step S15 when the RAID level is RAID1 or RAID1 + 0, and executes the process of step S16 when the RAID level is RAID5 or RAID6.
- the RAID control unit 130 reads data requested to be read from the HDD 211 in operation.
- the RAID control unit 130 reads data from the HDD 210a in operation among the HDDs 210a and 210b constituting the RAID group # 01 in FIG.
- the RAID control unit 130 reads the divided data from at least one of the HDDs 210a, 210c, and 210e that are operating among the HDDs 210a to 210f that constitute the RAID group # 21 in FIG.
- the RAID control unit 130 reads the read address and data size on the logical volume instructed by the host, and the number of disk numbers registered in the RAID management table 190 (that is, the number of HDDs 211 constituting the RAID group). On the basis of the stripe size and the stripe size, it is determined in which position of which HDD 211 of the HDDs 211 constituting the RAID group each divided data constituting the data requested to be read is stored.
- the read position determined here is an original read position in the HDD 211 constituting the RAID group, and does not include a temporary storage area in the hot spare HDD 212.
- Step S17 The processing from step S17 to step S22 at the loop end is repeated for each stripe to be read. For example, when the read target region extends over a plurality of stripes, the processing from step S17 to step S22 is repeated a plurality of times.
- Step S18 The RAID control unit 130 determines whether all read target divided data included in the processing target stripe is stored in the active HDD 211 among the HDDs 211 constituting the RAID group requested to be read. To do.
- the RAID control unit 130 executes the process of step S19 when all of the divided data to be read are stored in the operating HDD 211.
- the RAID control unit 130 that is, there is divided data that is the HDD 211 whose original storage position is stopped.
- step S20 the process of step S20 is executed.
- Step S ⁇ b> 19 The RAID control unit 130 reads the divided data to be read from the operating HDD 211. For example, when the stripes including the divided data Da and Db and the parity Pab in FIG. 5 are to be processed and the divided data Da and Db are to be read, the divided data Da and Db are stored in the operating HDDs 210c and 210d, respectively. ing. In this case, “Yes” is determined in step S18, and the divided data Da and Db are read from the operating HDDs 210c and 210d in step S19, respectively.
- Step S20 The RAID control unit 130 reads the divided data and the parity included in the stripe to be processed from the active HDD 211 among the HDDs 211 constituting the RAID group requested to be read.
- Step S21 The RAID control unit 130 calculates the divided data to be read from the stopped HDD 211, based on the divided data and the parity read in Step S20. For example, when the stripe including the divided data Dc and Dd and the parity Pcd in FIG. 5 is a processing target and the divided data Dc and Dd is a reading target, the divided data Dd is not stored in the HDDs 210c and 210d in operation. In this case, “No” is determined in step S18, the divided data Dc and the parity Pcd are read from the HDDs 210c and 210d in operation in step S19, respectively, and the divided data Dd is calculated in step S20.
- step S22 When the processing from step S17 to step S22 is executed for all the stripes to be read, the processing of step S23 is executed.
- step S23 The RAID controller 130 transfers the data requested to be read to the host. Thereafter, the process returns to step S12, and the access request is monitored.
- the read process is performed only from the operating HDD 211 without rotating the magnetic disk in the stopped HDD 211 again. Thereby, it is not necessary to wait until the stopped HDD 211 becomes accessible, and the response speed to the read request from the host can be suppressed from decreasing.
- the RAID control unit 130 may read the divided data that cannot be read from the operating HDD 211 from the hot spare HDD 212. However, in this case, the RAID control unit 130 needs to search the data table 220 in which the divided data is registered from the hot spare HDD 212, and this search processing may increase the response time to the read request from the host.
- the RAID control unit 130 can stably suppress a delay in response time to a read request if the divided data is calculated using parity instead of searching the data table 220.
- the RAID control unit 130 determines whether the write-back processing of data from the hot spare (HS) HDD 212 by the write-back control unit 140 is being executed.
- the RAID control unit 130 executes the process of step S37 when the write-back process is being executed, and executes the process of step S32 when the write-back process is not executed.
- Step S32 The RAID controller 130 determines whether the remaining capacity of the hot spare HDD 212 is equal to or greater than a predetermined threshold.
- the RAID control unit 130 executes the process of step S34 when the remaining capacity is equal to or greater than the threshold value, and executes the process of step S33 when the remaining capacity is less than the threshold value.
- the RAID control unit 130 causes the write-back control unit 140 to start a write-back process of data temporarily stored in the hot spare HDD 212. Thereby, the write-back process by the write-back control unit 140 is executed in parallel with the control process by the RAID control unit 130.
- the threshold value used in step S32 is set to a value equal to or larger than the size of the data table 220 including the maximum data written by one write request.
- the RAID control unit 130 can complete the writing process of step S35 or step S36 after instructing the start of writing back in step S33 and before the stopped HDD 211 becomes writable. Therefore, it is possible to suppress a decrease in write response speed.
- step S32 determines whether the threshold value used in step S32 is set to a smaller value. It cannot be guaranteed that all data to be written to the stopped HDD 211 can be written to the hot spare HDD 212. In this case, the writing can be completed by changing the processing so as to proceed to step S37 after step S33. However, in the processing after step S37, the rotation of the magnetic disk in the stopped HDD 211 is started, and the HDD 211 is It cannot be executed until it becomes writable.
- the RAID control unit 130 refers to the RAID management table 190 and determines the RAID level of the RAID group for which writing has been requested.
- the RAID control unit 130 executes the process of step S35 when the RAID level is RAID1 or RAID1 + 0, and executes the process of step S36 when the RAID level is RAID5 or RAID6.
- Step S35 The RAID control unit 130 executes a write process for RAID1 or RAID1 + 0. Details of this processing will be described with reference to FIG. [Step S36] The RAID control unit 130 executes write processing in the case of RAID5 or RAID6. Details of this processing will be described with reference to FIG.
- step S35 or step S36 the process returns to step S12 and the access request is monitored.
- the RAID control unit 130 writes the write address and data size on the logical volume instructed by the host, and the number of disk numbers registered in the RAID management table 190 (that is, the number of HDDs 211 constituting the RAID group). Based on the stripe size and the stripe size, it is determined in which area of which HDD 211 of the HDDs 211 constituting the RAID group the respective divided data constituting the data requested to be written.
- the write destination area determined here is the original read position in the HDD 211 constituting the RAID group, and does not include the temporary storage area in the hot spare HDD 212.
- Step S38 While the write back is being executed by the write back control unit 140, all the HDDs 211 constituting the RAID group for which writing has been requested are in an operating state. At this time, the RAID control unit 130 does not write to the hot spare HDD 212 but writes to the HDD 211 constituting the RAID group.
- step S38 the RAID control unit 130 first registers the LBA in the LBA table 160 when the LBA included in the write destination area determined in step S37 is registered in the LBA table 160 corresponding to the write destination RAID group. Delete from.
- the RAID control unit 140 writes the old data to the HDD 211 that is operating thereafter. Prevent it from being returned. In other words, when old data requested to be written to the same write destination area has been written to the temporary storage area of the hot spare HDD 212, the old data is discarded.
- the RAID control unit 130 deletes LBA # 1 registered as the write destination LBA in the data table 220 of the table number “1” from the LBA table 160 in step S38.
- the write-back control unit 140 performs write-back only to the LBA registered in the LBA table 160. For this reason, when LBA # 1 is deleted from the LBA table 160, the write-back control unit 140 causes the data table 220 to be included even though the data table 220 including LBA # 1 is registered in the hot spare HDD 212. The write data included in is not written back. This prevents the old data corresponding to the corresponding LBA from being overwritten after the latest data is written to the corresponding LBA in the next step S39.
- step S38 the RAID control unit 130 searches the data table 220 for the old data requested to be written to the same write destination area without searching the data table 220, and the LBA table recorded in the RAM 112 of the array controller 108.
- the determination can be made in a short time. Thereby, the response speed with respect to the write request from the host can be improved.
- Step S39 Since all the HDDs 211 constituting the write-destination RAID group are operating, the RAID control unit 140 performs normal write processing according to the RAID level, that is, to the write area determined in Step S37. Execute the writing process. Thereafter, the process returns to step S12, and the access request is monitored.
- the RAID control unit 130 does not write to the hot spare HDD 212 while the write-back control unit 140 is executing the write-back, but does not write to the HDD 211 constituting the RAID group.
- the RAID control unit 140 simplifies the write processing procedure, such as executing only the write destination LBA deletion processing in step S38 as the table update processing. Therefore, the RAID control unit 130 can complete the data writing in a short time compared to the writing process in step S35 or step S36 described later.
- FIG. 14 is a flowchart illustrating an example of a writing process in the case of RAID1 or RAID1 + 0.
- the process of FIG. 14 corresponds to the process of step S35 of FIG. [Step S51]
- This step S51 is executed only when the RAID level of the RAID group requested to be written is RAID1 + 0.
- the RAID control unit 130 starts from the HDD 211 that constitutes the RAID group for which writing is requested.
- a pair of write destination HDDs 211 is determined.
- the pair of HDDs 211 is a pair of HDDs 211 in which the divided data is mirrored.
- the write destination As the pair of HDDs, a pair of HDD 210a and HDD 210b, a pair of HDD 210c and HDD 210d, and a pair of HDD 210e and HDD 210f are determined.
- Step S52 The RAID control unit 130 writes data to the active HDD 211 among the HDDs 211 constituting the RAID group requested to be written. If the RAID level is RAID 1 + 0, the RAID control unit 130 writes the divided data to the active HDD 211 in the pair of HDDs 211 determined in step S51. By this step S52, data is written to only one of the pair of HDDs 211 whose data is mirrored.
- the RAID control unit 130 performs processing for writing data to be written to the stopped HDD 211 to the hot spare HDD 212. Specifically, the RAID control unit 130 creates a data table 220 for each combination of the disk number indicating the stopped HDD 211 that is the original write destination and the data write destination LBA in the HDD 211. The RAID control unit 130 registers the corresponding disk number, write destination LBA, and write data in each data table 220, and registers each data table 220 in the hot spare HDD 212 in the data write order.
- Step S54 The RAID control unit 130 increments the table number of the table management information 170 by the number of the data tables 220 registered in step S53. Note that the initial value of the table number in the initial state in which no data table 220 is registered is “0”.
- the RAID control unit 130 specifies the LBA table 160 corresponding to each of the stopped HDDs 211 (that is, the HDD 211 indicated by the disk number registered in the data table 220 in Step S53), which is the original data write destination. .
- the RAID control unit 130 registers the write destination LBA registered in the data table 220 in step S53 for each identified LBA table 160. As a result, the write destination LBA in the original HDD 211 for each data temporarily written in the hot spare HDD 212 is registered in the LBA table 160.
- step S55 if the same LBA is already registered in the specified LBA table 160, the RAID control unit 130 skips the registration of the LBA. That is, the same LBA is not registered redundantly in each LBA table 160.
- FIG. 15 is a flowchart illustrating an example of a writing process in the case of RAID5 or RAID6.
- the process in FIG. 15 corresponds to the process in step S36 in FIG. [Step S61]
- the RAID control unit 130 divides the write data received from the host for each stripe size registered in the RAID management table 190, and generates divided data.
- Step S62 The RAID control unit 130 writes the write address and data size on the logical volume instructed by the host, and the number of disk numbers registered in the RAID management table 190 (that is, the number of HDDs 211 constituting the RAID group). Based on the stripe size and the stripe size, it is determined in which area of which HDD 211 of the HDDs 211 constituting the RAID group the respective divided data constituting the data requested to be written.
- the write destination area determined here is the original read position in the HDD 211 constituting the RAID group, and does not include the temporary storage area in the hot spare HDD 212.
- Step S63 The processing from step S63 to step S76 which is the loop end is repeated for each stripe included in the determined write destination area. For example, when the write destination region extends over a plurality of stripes, the processing from step S63 to step S76 is repeated a plurality of times.
- Step S64 The RAID control unit 130 reads out from the operating HDD 211 the divided data not included in the write destination area determined in Step S61 among the divided data included in the stripe to be processed. For example, when the stripe including the divided data Da and Db and the parity Pab in FIG. 5 is a processing target and the divided data Db and the parity Pab are included in the write destination area, the RAID control unit 130 is included in the write destination area.
- the divided data Da that has not been read is read out from the HDD 210c.
- the read divided data Da is used to calculate the latest parity Pab.
- Step S65 The RAID control unit 130 writes, to the corresponding HDD 211, the divided data in which the write destination HDD 211 is operating among the divided data generated in Step S61, which is included in the processing target stripe.
- Step S66 The RAID control unit 130 determines whether there is a stopped HDD 211 among the HDDs 211 to which the divided data included in the stripe to be processed is written.
- the RAID control unit 130 executes the process of step S67 when there is a stopped HDD 211, and executes the process of step S70 when there is no stopped HDD 211.
- the RAID control unit 130 performs processing for writing the divided data to be written to the stopped HDD 211 to the hot spare HDD 212. Specifically, the RAID control unit 130 creates a data table 220 that stores the disk number indicating the stopped HDD 211 that is the original writing destination of the divided data, the data writing destination LBA in the HDD 211, and the divided data. create. The RAID control unit 130 registers the created data table 220 in the hot spare HDD 212.
- step S67 a maximum of two data tables 220 are registered in the hot spare HDD 212.
- the RAID controller 130 increments the table number of the table management information 170 by the number of data tables 220 registered in step S67.
- the RAID control unit 130 specifies the LBA table 160 corresponding to each of the stopped HDDs 211 (that is, the HDD 211 indicated by the disk number registered in the data table 220 in Step S67), which is the original writing destination of the divided data. To do.
- the RAID control unit 130 registers the write destination LBA registered in the data table 220 in step S67 for each identified LBA table 160.
- the write destination LBA in the original HDD 211 for each divided data temporarily written in the hot spare HDD 212 is registered in the LBA table 160.
- step S69 as in step S55 of FIG. 15, the same LBA is not redundantly registered in each LBA table 160.
- the RAID control unit 130 calculates parity. For RAID 6, P-parity and Q-parity are calculated.
- Step S71 The RAID control unit 130 writes the parity in which the write destination HDD 211 is operating among the parity calculated in Step S70 to the corresponding HDD 211.
- Step S72 The RAID control unit 130 determines whether there is a stopped HDD 211 in the HDD 211 that is the parity write destination calculated in Step S70. If there is a stopped HDD 211, the RAID control unit 130 executes the process of step S73. On the other hand, if there is no stopped HDD 211, the process proceeds to step S76.
- the RAID control unit 130 performs processing for writing the parity to be written to the stopped HDD 211 to the hot spare HDD 212. Specifically, the RAID control unit 130 creates a data table 220 that stores the disk number indicating the stopped HDD 211 that is the original parity write destination, the data write destination LBA in the HDD 211, and the parity. . The RAID control unit 130 registers the created data table 220 in the hot spare HDD 212.
- step S73 a maximum of two data tables 220 are registered in the hot spare HDD 212.
- the RAID controller 130 increments the table number of the table management information 170 by the number of data tables 220 registered in step S73.
- the RAID control unit 130 identifies the LBA table 160 corresponding to each of the stopped HDDs 211 (that is, the HDD 211 indicated by the disk number registered in the data table 220 in Step S73), which is the original parity write destination. .
- the RAID control unit 130 registers the write destination LBA registered in the data table 220 in step S73 for each identified LBA table 160. As a result, the write destination LBA in the original HDD 211 for each parity temporarily written in the hot spare HDD 212 is registered in the LBA table 160.
- step S75 as in step S55 of FIG. 14, the same LBA is not redundantly registered in each LBA table 160.
- Step S76 When the processing from step S63 to step S76 has been executed for all stripes included in the write destination area, the write processing ends.
- the RAID control unit 130 can make data redundant while reducing power consumption.
- the temporary storage area of data to be written to the stopped HDD 211 as the hot spare HDD 212 that is a nonvolatile storage area, even if the storage system is restarted after an abnormal stop, for example, the data in the temporary storage area Retained without being erased. Therefore, the RAID control unit 130 can continue the operation of the RAID group while maintaining data redundancy. The processing at the time of restart will be described in detail later.
- FIG. 16 is a flowchart illustrating an example of a write-back process from a hot spare HDD.
- the process in FIG. 16 is executed, for example, when the RAID control unit 130 requests the start of writing back in step S33 in FIG.
- the process of FIG. 16 may be executed at any other timing, for example, outside business hours.
- Step S91 The write-back control unit 140 transmits a command for instructing to rotate the magnetic disk to the stopped HDD 211 indicated by the stopped disk number registered in the disk management table 180. As a result, the rotation of the magnetic disk is started in each stopped HDD 211.
- the write-back control unit 140 identifies the data table 220 indicated by the table number registered in the table management information 170.
- the write-back control unit 140 reads the disk number from the data table 220 identified in step S92, and refers to the LBA table 160 corresponding to the read disk number.
- the write-back control unit 140 determines whether or not the write destination LBA registered in the data table 220 identified in step S92 is registered in the referenced LBA table 160.
- the write-back control unit 140 executes the write-back process in step S94.
- the case where the write destination LBA is not registered indicates that the latest data for the LBA has already been registered in the original HDD 211. In this case, the write-back control unit 140 executes the process of step S96 without writing back the write data registered in the data table 220 specified in step S92.
- Step S94 The write-back control unit 140 transfers the latest data registered in the data table 220 to the position indicated by the disk number and write destination LBA registered in the data table 220 specified in step S92. Write.
- Step S95 The write-back control unit 140 deletes the write destination LBA registered in the data table 220 identified in Step S92 from the LBA table 160 referenced in Step S93.
- Step S96 The write-back control unit 140 decrements the table number registered in the table management information 170 by “1”.
- Step S97 If the post-decrement table number is “1” or more, the write-back control unit 140 returns to step S92 and performs the processing after step S92 while referring to the data table 220 registered immediately before. Execute.
- the data table 220 registered in the hot spare HDD 212 is referred to in descending order (that is, in the reverse order to the registration order), and the latest data corresponding to the same LBA of the same HDD is stored. Is written back to the original HDD 211 that has transitioned to the operating state.
- the write-back control unit 140 executes the process of step S98.
- Step S98 The write-back control unit 140 transmits a command for instructing the HDD 211 that has completed the write-back to stop the rotation of the magnetic disk. As a result, each HDD 211 that has transitioned to the operating state in step S91 again transitions to the stopped state.
- the write-back control unit 140 can write back the data temporarily written in the hot spare HDD 212 to the HDD 211 that should have been originally written and has stopped operating.
- the RAID control unit 130 creates a new data table 220 each time data is written to the same LBA of the same HDD, and creates a hot spare. Is added to the HDD 212. This eliminates the need for the RAID control unit 130 to search the data table 220 in which old data for the same LBA of the same HDD is registered when a data write request is received from the host. Thereby, the response time to the write request from the host can be shortened.
- the write back control unit 140 can write back only the latest data even when data is written to the same LBA of the same HDD a plurality of times.
- the write-back control unit 140 can read and update the LBA table 160 at high speed, and as a result, the time required for the write-back process. Can be shortened.
- This activation process is executed, for example, when the array controller 108 is activated again after the array controller 108 is powered off and normally stopped. Alternatively, it may be executed when the storage system is restarted after the storage system is stopped due to some abnormality.
- FIG. 17 is a flowchart showing a first activation process example of the array controller.
- the LBA table 160 Since the LBA table 160 is stored in the RAM 112, the contents of the LBA table 160 are lost when the power of the array controller 108 is turned off. In the first activation processing example shown in FIG. 17, the contents of the lost LBA table 160 are reconstructed so that the data temporarily written in the hot spare HDD 212 can be used continuously.
- the recovery control unit 150 saves the table number registered in the table management information 170 in the nonvolatile memory 113 in a predetermined storage area (for example, another area on the nonvolatile memory 113).
- Step S112 The recovery control unit 150 registers the LBA table 160 corresponding to the HDD 211 indicated by the stopped disk number registered in the disk management table 180 in the RAM 112. Note that nothing is registered in each registered LBA table 160 at the stage of step S112.
- the table management information 170 is used for reconstructing the LBA table 160.
- the recovery control unit 150 identifies the data table 220 indicated by the table number registered in the table management information 170.
- Step S114 The recovery control unit 150 reads the disk number from the data table 220 identified in step S113, and refers to the LBA table 160 corresponding to the read disk number.
- the recovery control unit 150 registers the write destination LBA registered in the data table 220 identified in step S113 in the referenced LBA table 160. If the write destination LBA read from the data table 220 has already been registered in the LBA table 160, the recovery control unit 150 skips the registration of the write destination LBA.
- Step S115 The recovery control unit 150 decrements the table number registered in the table management information 170 by “1”.
- Step S116 If the post-decrement table number is “1” or more, the recovery control unit 150 returns to step S113 and performs the processing after step S113 while referring to the data table 220 registered immediately before. Execute. By repeating the processes of steps S113 to S116, the data table 220 registered in the hot spare HDD 212 is referred to in descending order, and the LBA table 160 is reconstructed based on the referenced data table 220. Then, the recovery control unit 150 executes the process of step S117 when the table number after the decrement in step S115 becomes “0”.
- Step S117 The recovery control unit 150 re-registers the table number saved in the predetermined storage area in step S111 in the table management information 170.
- the LBA table 160 and the table management information 170 can be restored to the state immediately before the array controller 108 is turned off.
- the array controller 108 can execute the access control processing shown in FIGS. 12 and 13 and the write-back processing shown in FIG.
- the data is not written back from the hot spare HDD 212 to the original HDD 211.
- the time required is reduced.
- FIG. 18 is a flowchart illustrating a second activation process example of the array controller.
- data temporarily written in the hot spare HDD 212 is written back to the original HDD 211 using information remaining in the nonvolatile memory 113, and the temporary storage area and its management are stored. It initializes the information used for the.
- the array controller 108 uses the LBA table 160 whose stored contents have been lost due to power-off for a purpose other than the original purpose used at the time of writing back, thereby temporarily storing it. Allows region initialization.
- Step S121 The recovery control unit 150 registers the LBA table 160 corresponding to each of the HDDs 211 indicated by the stopped disk numbers registered in the disk management table 180 in the RAM 112. Note that nothing is registered in each registered LBA table 160 at the stage of step S121.
- the recovery control unit 150 identifies the data table 220 indicated by the table number registered in the table management information 170. [Step S123] The recovery control unit 150 reads the disk number from the data table 220 identified in step S122, and refers to the LBA table 160 corresponding to the read disk number. The recovery control unit 150 determines whether or not the write destination LBA registered in the data table 220 identified in step S122 is registered in the referenced LBA table 160.
- the recovery control unit 150 executes the process of step S124 to cause the write back control unit 140 to execute the write back process.
- the recovery control unit 150 executes the process of step S127 without executing the write-back process.
- Step S124 The recovery control unit 150 notifies the write-back control unit 140 of the table number of the data table 220 identified in step S122, and instructs execution of the write-back.
- the write-back control unit 140 transfers and writes the latest data registered in the data table 220 to the disk number registered in the data table 220 indicated by the notified table number and the position indicated by the write destination LBA.
- Step S125 The recovery control unit 150 registers the write destination LBA registered in the data table 220 identified in Step S122 in the LBA table 160 referred to in Step S123.
- Step S126 The recovery control unit 150 decrements the table number registered in the table management information 170 by “1”.
- Step S127 When the post-decrement table number is “1” or more, the recovery control unit 150 returns to step S122 and performs the processing after step S122 while referring to the data table 220 registered immediately before. Execute. By repeating the processes in steps S122 to S127, the data table 220 registered in the hot spare HDD 212 is referred to in descending order, and only the latest data corresponding to the same LBA in the same HDD is written in the HDD 211 that is the original write destination. Returned.
- the recovery control unit 150 executes the process of step S128 when the table number after the decrement in step S127 becomes “0”. In this state, since the initial value “0” is registered in the table management information 170, the data table 220 registered in the HDD 212 is invalidated.
- Step S128 The recovery control unit 150 erases the write destination LBA registered in all the LBA tables 160 and initializes each LBA table 160.
- the array controller 108 is in a state where the access control processing shown in FIGS. 12 and 13 can be executed.
- FIG. 19 is a flowchart showing an example of recovery processing when a hot spare HDD fails.
- Step S141 The recovery control unit 150 transmits a command for instructing to rotate the magnetic disk to the stopped HDD 211 indicated by the stopped disk number registered in the disk management table 180. Thereby, in each stopped HDD 211, the rotation of the magnetic disk is started, and each stopped HDD 211 shifts to an operating state.
- Step S142 The recovery control unit 150 should write to the HDD 211 in the operating state based on the data read from the HDDs 211 other than the HDD 211 in the operating state in Step S141 among the HDDs 211 constituting the RAID group. Rebuild the data. Then, the recovery control unit 150 writes the rebuilt data to the HDD 211 that is in the operating state.
- the HDD 210b transitions from the stopped state to the operating state, and the data stored in the HDD 210a is copied to the HDD 210b.
- the HDD 210e transitions from the stopped state to the operating state. Then, for each area having the same stripe number in the HDDs 210c to 210e, data to be written to the HDD 210e is calculated based on the data read from the HDDs 210c and 210d, and the calculated data is written to the HDD 210e. For example, in FIG. 5, a parity Pab is calculated based on the divided data Da and Db, and the parity Pab is written in the HDD 210e. Further, the divided data Dd is calculated based on the divided data Dc and the parity Pcd, and the divided data Dd is written in the HDD 210e.
- the HDDs 210d and 210e transition from the stopped state to the operating state. Then, for each area having the same stripe number in the HDDs 210a to 210e, data to be written to the HDDs 210d and 210e is calculated based on the data read from the HDDs 210a to 210c, and the calculated data is written to the HDDs 210d and 210e.
- P-parity Pabc and Q-parity Qabc are calculated based on the divided data Da to Dc, and P-parity Pabc is written to HDD 210d and Q-parity Qabc is written to HDD 210e. Further, Q-parity Qdef and divided data Df are calculated based on divided data Dd, De and P-parity Pdef, and Q-parity Qdef is written to HDD 210d and divided data Df is written to HDD 210e.
- the HDDs 210b, 210d, and 210f transition from the stopped state to the operating state.
- the data in the HDD 210a is copied to the HDD 210b
- the data in the HDD 210c is copied to the HDD 210d
- the data in the HDD 210e is copied to the HDD 210f.
- Step S143 The recovery control unit 150 determines whether there is another HDD that can be used as a hot spare. When there is an HDD that can be used as a hot spare, the recovery control unit 150 registers the disk number of the HDD in the disk management table 180 as an HS disk number, and incorporates the HDD as the hot spare HDD 212. Then, the recovery control unit 150 executes the process of step S144. On the other hand, when there is no HDD that can be used as a hot spare, the recovery control unit 150 executes the process of step S145.
- the recovery control unit 150 causes the RAID control unit 130 to resume access control in the power saving state.
- the access control in the power saving state is an access executed by stopping a predetermined HDD constituting a RAID group and using the hot spare HDD 212 as a temporary write area. Control.
- the recovery control unit 150 causes the RAID control unit 130 to start access control in a non-power-saving state.
- the access control in the non-power-saving state is a process for performing access control according to the RAID level by setting all HDDs constituting each RAID group to an operating state.
- the array controller 108 can access the logical volume corresponding to each RAID group in response to an access request from the host even when the hot spare HDD 212 used as a temporary write area fails. Control can be resumed.
- FIG. 20 is a flowchart illustrating an example of recovery processing when an operating HDD among the HDDs constituting the RAID group fails.
- the recovery control unit 150 transmits a command for instructing to rotate the magnetic disk to the stopped HDD 211 indicated by the stopped disk number registered in the disk management table 180. Thereby, in each stopped HDD 211, the rotation of the magnetic disk is started, and each stopped HDD 211 shifts to an operating state.
- the recovery control unit 150 causes the write-back control unit 140 to write back from the hot spare HDD 212 to the HDD 211 that has transitioned to the operating state.
- the recovery control unit 150 incorporates the hot spare HDD 212 in which the write-back has been completed, instead of the failed HDD 211. Specifically, the recovery control unit 150 registers the disk number of the HDD 212 used as a hot spare by overwriting the column in which the disk number of the failed HDD 211 is registered in the RAID management table 190. Further, the recovery control unit 150 deletes the disk number of the HDD 212 used as a hot spare from the HS disk number of the disk management table 180. As a result, the HDD 212 used as a hot spare is changed to the HDD 211 constituting the RAID group.
- the recovery control unit 150 rebuilds the data to be written to the newly incorporated HDD 211 in the RAID group to which the failed HDD 211 belongs based on the data recorded in the other HDD 211. Then, the recovery control unit 150 writes the rebuilt data into the newly incorporated HDD 211.
- Step S154 The recovery control unit 150 determines whether there is another HDD that can be used as a hot spare. When there is an HDD that can be used as a hot spare, the recovery control unit 150 registers the disk number of the HDD in the disk management table 180 as an HS disk number, and incorporates the HDD as the hot spare HDD 212. Then, the recovery control unit 150 executes the process of step S155. On the other hand, when there is no HDD that can be used as a hot spare, the recovery control unit 150 executes the process of step S156.
- the recovery control unit 150 causes the RAID control unit 130 to resume access control in the power saving state.
- the recovery control unit 150 causes the RAID control unit 130 to start access control in a non-power-saving state.
- the array controller 108 controls access according to an access request from the host to the logical volume corresponding to each RAID group even when an operating HDD out of the HDDs constituting the RAID group fails. Can be resumed.
- FIG. 21 is a flowchart illustrating an example of recovery processing when a stopped HDD fails.
- the recovery control unit 150 instructs the HDD 211 other than the failed HDD 211 among the stopped HDDs 211 indicated by the stopped disk number registered in the disk management table 180 to rotate the magnetic disk. Send commands for As a result, the rotation of the magnetic disk is started in each HDD 211 that has received the command, and each of these HDDs 211 transitions to an operating state.
- Step S162 The recovery control unit 150 causes the write-back control unit 140 to perform write-back from the hot spare HDD 212 to the HDD 211 that has changed to the operating state in Step S161.
- This write-back process is realized by skipping the write-back with the failed HDD 211 as the write destination in the process of FIG.
- Step S163 The recovery control unit 150 incorporates the hot spare HDD 212 that has been written back in Step S162 in place of the failed HDD 211. As a result, the HDD 212 used as a hot spare is changed to the HDD 211 constituting the RAID group.
- the recovery control unit 150 rebuilds the data to be written to the newly incorporated HDD 211 in the RAID group to which the failed HDD 211 belongs based on the data recorded in the other HDD 211. Then, the recovery control unit 150 writes the rebuilt data into the newly incorporated HDD 211.
- Step S164 The recovery control unit 150 determines whether there is another HDD that can be used as a hot spare. When there is an HDD that can be used as a hot spare, the recovery control unit 150 registers the disk number of the HDD in the disk management table 180 as an HS disk number, and incorporates the HDD as the hot spare HDD 212. Then, the recovery control unit 150 executes the process of step S165. On the other hand, if there is no HDD that can be used as a hot spare, the recovery control unit 150 executes the process of step S166.
- the recovery control unit 150 causes the RAID control unit 130 to resume access control in the power saving state.
- the recovery control unit 150 causes the RAID control unit 130 to start access control in a non-power-saving state.
- the array controller 108 performs access control according to an access request from the host to the logical volume corresponding to each RAID group even when a stopped HDD among the HDDs constituting the RAID group fails. Can be resumed.
- each processing function of the storage control device, the information processing device, and the array controller in the information processing device described in the above embodiments can be realized by a computer.
- a program describing the processing contents of the functions that each device should have is provided, and the processing functions are realized on the computer by executing the program on the computer.
- the program describing the processing contents can be recorded on a computer-readable recording medium.
- the computer-readable recording medium include a magnetic storage device, an optical disk, a magneto-optical recording medium, and a semiconductor memory.
- Examples of the magnetic storage device include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape.
- Optical disks include DVD, DVD-RAM, CD-ROM, CD-R / RW and the like.
- Magneto-optical recording media include MO (Magneto-Optical disk).
- a portable recording medium such as a DVD or CD-ROM in which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.
- the computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. In addition, each time a program is transferred from a server computer connected via a network, the computer can sequentially execute processing according to the received program.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Power Sources (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
低消費電力でデータを冗長化できるようにする。 動作制御部(11)は、各論理記憶領域(31,32)を構成する記憶装置(21~25)のうち、記憶装置(22,25)の動作を停止させる。アクセス制御部(12)は、各論理記憶領域(31,32)を構成する記憶装置のうち、停止中の記憶装置(22,25)へのデータの書き込みが要求されたとき、書き込みが要求された記憶装置(22,25)の代わりに、各論理記憶領域を構成する記憶装置(21~25)とは別の予備用の記憶装置(26)にデータを書き込み、各論理記憶領域(31,32)を構成する記憶装置(21~25)のうち動作中の記憶装置(21,23,24)と予備用の記憶装置(26)とによって、各論理記憶領域(31,32)におけるデータの冗長性が保たれるように制御する。
Description
本発明は、ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラムに関する。
近年、HDD(Hard Disk Drive)などの記憶装置を複数用いたストレージシステムが広く使用されている。このようなストレージシステムでは、一般的に、RAID(Redundant Arrays of Inexpensive Disks)技術を用いて、データが2つ以上の記憶装置に冗長化されるような記録制御が行われる。これにより、記録されるデータの安全性が高められている。
RAID技術を利用したストレージシステムは、多数の記憶装置を備えることから、消費電力が高くなるという問題がある。これに対して、運用ボリューム用の記憶装置とレプリケーション用の記憶装置とを備えるシステムにおいて、通常運用時にはレプリケーション用の記憶装置の電源をオフにしておき、所定のタイミングでレプリケーション用の記憶装置の電源をオンにしてレプリケーションを行うものがある。
また、RAID技術を利用した多くのストレージシステムは、ホットスペア(Hot Spare)と呼ばれる予備用記憶装置を備える。このようなストレージシステムでは、1つの記憶装置が故障すると、故障した記憶装置に記憶されていたデータがリビルドされて、ホットスペアの記憶装置に格納される。これにより、ストレージシステムの運用を短時間で再開できる。
ホットスペアの記憶装置を利用した技術の例としては、RAIDによって制御される複数の記憶装置に格納されたデータの一部を、ホットスペアの記憶装置にも書き込んでおき、データの読み出し時に、RAIDによって制御される各記憶装置だけでなくホットスペアの記憶装置からも読み出しを行うことで、読み出しを高速化するものがある。
上記のように、RAID技術を利用したストレージシステムでは、消費電力が高くなるという問題がある。これに対して、上記のように、通常運用時にレプリケーション用の記憶装置の電源をオフにしておく技術では、レプリケーション用の記憶装置の電源をオンにするまで、データが冗長化されない。
1つの側面では、本発明は、低消費電力でデータを冗長化することが可能なストレージ制御装置、ストレージ制御方法およびストレージ制御プログラムを提供することを目的とする。
1つの案では、それぞれ複数の記憶装置の記憶領域で構成される1つまたは複数の論理記憶領域ごとにデータが異なる記憶装置に冗長化されるように、各論理記憶領域へのデータの書き込みを制御するストレージ制御装置が提供される。このストレージ制御装置は、次のような動作制御部およびアクセス制御部を有する。動作制御部は、各論理記憶領域を構成する記憶装置のうち、複数の記憶装置の動作を停止させる。アクセス制御部は、各論理記憶領域を構成する記憶装置のうち、停止中の記憶装置へのデータの書き込みが要求されたとき、書き込みが要求された記憶装置の代わりに、各論理記憶領域を構成する記憶装置とは別の予備用記憶装置にデータを書き込み、各論理記憶領域を構成する記憶装置のうち動作中の記憶装置と予備用記憶装置とによって、各論理記憶領域におけるデータの冗長性が保たれるように制御する。
また、1つの案では、上記のストレージ制御装置と同様の処理が実行されるストレージ制御方法、および、上記のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
1態様によれば、ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラムにおいて、低消費電力でデータを冗長化することができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
以下、本発明の実施の形態を図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例およびその動作例を示す図である。図1に示すストレージシステムは、ストレージ制御装置10と、複数の記憶装置とを備える。図1のストレージシステムは、例として、6台の記憶装置21~26を備えている。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージシステムの構成例およびその動作例を示す図である。図1に示すストレージシステムは、ストレージ制御装置10と、複数の記憶装置とを備える。図1のストレージシステムは、例として、6台の記憶装置21~26を備えている。
ストレージ制御装置10は、記憶装置21~26へのアクセスを制御する。また、ストレージ制御装置10は、複数台数の記憶装置の記憶領域を1つの論理記憶領域として管理することができる。ストレージ制御装置10は、論理記憶領域ごとにデータが異なる記憶装置に冗長化されるように、各論理記憶領域へのデータの書き込みを制御する。このような論理記憶領域の管理はRAID技術を用いて行われ、論理記憶領域はRAIDグループなどと呼ばれる。
図1の例では、記憶装置21,22の記憶領域が論理記憶領域31として管理され、記憶装置23~25の記憶領域が論理記憶領域32として管理される。論理記憶領域31へのデータの読み書きは、例えばRAID1によって制御される。この場合、ストレージ制御装置10は、記憶装置21,22の両方に同じデータを書き込み、データを記憶装置21,22にミラーリングする。また、論理記憶領域32へのデータの読み書きは、例えばRAID5によって制御される。この場合、ストレージ制御装置10は、論理記憶領域32へ書き込むデータを分割し、連続する2個の分割データとそれらに基づくパリティとを、記憶装置23~25における同一ストライプ番号の領域に分散させて書き込む。
また、ストレージ制御装置10に接続された記憶装置のうち、少なくとも1台は、予備用の記憶装置とされる。図1の例では、記憶装置26が予備用に用意されている。予備用の記憶装置26は、例えば、いずれかの論理記憶領域を構成する記憶装置の1台が故障したとき、故障した記憶装置の代わりに論理記憶領域に組み込まれて使用される。これにより、記憶装置の故障によって一時的にデータが冗長化されなくなった論理記憶領域を、短時間で、データが冗長化される状態に復旧させることができる。
ストレージ制御装置10は、動作制御部11およびアクセス制御部12を備える。
動作制御部11は、ストレージシステム全体の消費電力を低減するために、各論理記憶領域31,32を構成する記憶装置のうち、複数の記憶装置の動作を停止させる。図1の例では、ステップS1として示すように、動作制御部11は、記憶装置22と記憶装置25のそれぞれの動作を停止させる。なお、例えば、記憶装置22,25がHDDの場合、動作制御部11は、記憶装置22,25のそれぞれにおける磁気ディスクの回転を停止させる、あるいは記憶装置22,25の電源をオフにするなどによって、記憶装置22,25の動作を停止させる。
動作制御部11は、ストレージシステム全体の消費電力を低減するために、各論理記憶領域31,32を構成する記憶装置のうち、複数の記憶装置の動作を停止させる。図1の例では、ステップS1として示すように、動作制御部11は、記憶装置22と記憶装置25のそれぞれの動作を停止させる。なお、例えば、記憶装置22,25がHDDの場合、動作制御部11は、記憶装置22,25のそれぞれにおける磁気ディスクの回転を停止させる、あるいは記憶装置22,25の電源をオフにするなどによって、記憶装置22,25の動作を停止させる。
アクセス制御部12は、各論理記憶領域31,32を構成する記憶装置のうち、停止中の記憶装置へのデータの書き込みが要求されたとき、書き込みが要求された記憶装置の代わりに、予備用の記憶装置26にデータを書き込む。例えば、図1にステップS2として示すように、アクセス制御部12は、記憶装置22へのデータの書き込みが要求されたとき、そのデータを記憶装置22の代わりに予備用の記憶装置26に書き込む。また、図1のステップS3として示すように、アクセス制御部12は、記憶装置25へのデータの書き込みが要求されたとき、そのデータを記憶装置25の代わりに予備用の記憶装置26に書き込む。
なお、アクセス制御部12に対するデータの書き込み要求は、例えば、ストレージ制御装置10に接続された外部のホスト装置から送信されてもよいし、あるいは、ストレージ制御装置10の内部で発生されてもよい。
アクセス制御部12は、上記のような書き込みを行うことで、各論理記憶領域31,32を構成する記憶装置のうち動作中の記憶装置21,23,24と予備用の記憶装置26とによって、各論理記憶領域31,32におけるデータの冗長性が保たれるように制御する。
ここで、動作制御部11によって動作が停止される記憶装置は、その記憶装置の動作が停止したときに、その記憶装置が属する論理記憶装置のデータが失われないように決定される。ここで言う「論理記憶装置のデータが失われない」状態とは、論理記憶装置を構成する記憶装置のうち動作中の記憶装置のみから、データをそのまま読み出し可能か、あるいはパリティを用いてデータをリビルド可能である状態を示す。
例えば、RAID1,RAID4,RAID5によって管理される論理記憶領域では、その論理記憶領域を構成する記憶装置のうち、1台のみ動作を停止させることができる。また、RAID6によって管理される論理記憶領域では、その論理記憶領域を構成する記憶装置のうち、2台までの記憶装置の動作を停止させることができる。
このように動作を停止させる記憶装置が決定されることで、アクセス制御部12は、動作を停止させる記憶装置を選択する際に、各論理記憶領域を構成する記憶装置のうち動作中の記憶装置と予備用の記憶装置とによって、各論理記憶領域におけるデータの冗長性が保たれるように制御することが可能になる。
さらに、動作制御部11は、各論理記憶領域を構成する記憶装置のうち、アクセス制御部12によって書き込み先として使用される予備用の記憶装置の台数より多い台数の記憶装置の動作を停止させる。これにより、ストレージシステムにおける電力消費を低減することができる。
以上のストレージ制御装置10の処理によれば、低消費電力でデータを冗長化することができる。
なお、ストレージ制御装置10は、所定のタイミングで、予備用の記憶装置26に書き込まれたデータを、各論理記憶領域を構成する記憶装置の記憶領域のうち、本来の書き込み位置に書き戻すことができる。ストレージ制御装置10は、例えば、予備用の記憶装置26の残容量が所定のしきい値以下になった場合、あるいは、いずれかの論理記憶領域を構成する1台の記憶装置が故障して、故障した記憶装置の代わりに予備用の記憶装置26を使用する必要が生じた場合などに、データの書き戻しを行う。
なお、ストレージ制御装置10は、所定のタイミングで、予備用の記憶装置26に書き込まれたデータを、各論理記憶領域を構成する記憶装置の記憶領域のうち、本来の書き込み位置に書き戻すことができる。ストレージ制御装置10は、例えば、予備用の記憶装置26の残容量が所定のしきい値以下になった場合、あるいは、いずれかの論理記憶領域を構成する1台の記憶装置が故障して、故障した記憶装置の代わりに予備用の記憶装置26を使用する必要が生じた場合などに、データの書き戻しを行う。
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、情報処理装置100とディスクアレイ200とを備える。
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、情報処理装置100とディスクアレイ200とを備える。
ディスクアレイ200は、情報処理装置100からのアクセスの対象となる複数の記憶装置を備えている。本実施の形態では、ディスクアレイ200は、情報処理装置100からのアクセスの対象となる記憶装置としてHDD210を備えるが、例えば、SSD(Solid State Drive)などのHDD以外の不揮発性記憶装置を備えていてもよい。また、情報処理装置100には、複数のディスクアレイ200が接続されていてもよい。
情報処理装置100は、ディスクアレイ200内のHDD210に対してデータの読み書きを実行可能である。情報処理装置100は、次のようなハードウェア構成を有する。
情報処理装置100は、図2に示すようなコンピュータとして実現可能である。情報処理装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス109を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。
情報処理装置100は、図2に示すようなコンピュータとして実現可能である。情報処理装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス109を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、情報処理装置100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、通信インタフェース107およびアレイコントローラ108がある。
HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、情報処理装置100の二次記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置104には、モニタ104aが接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ104aに表示させる。なお、モニタ104aは、例えば、液晶ディスプレイである。
入力インタフェース105には、キーボード105a、マウス105bなどの入力装置が接続されている。入力インタフェース105は、入力装置からの出力信号をCPU101に送信する。
光学ドライブ装置106は、レーザ光などを利用して、光ディスク106aに記録されたデータの読み取りを行う。光ディスク106aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク106aには、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(Rewritable)などがある。
通信インタフェース107は、ネットワーク107aを通じて他の装置との間でデータを送受信する。
アレイコントローラ108は、CPU101からの指示に応じて、ディスクアレイ200内のHDD210へのアクセスを制御する。アレイコントローラ108は、ディスクアレイ200内のHDD210を、RAIDを用いて制御することができる。
アレイコントローラ108は、CPU101からの指示に応じて、ディスクアレイ200内のHDD210へのアクセスを制御する。アレイコントローラ108は、ディスクアレイ200内のHDD210を、RAIDを用いて制御することができる。
図3は、アレイコントローラの内部構成例を示す図である。アレイコントローラ108は、CPU111、RAM112、不揮発性メモリ113、ホストインタフェース114およびディスクインタフェース115を備える。
CPU111は、不揮発性メモリ113に格納されたファームウェア(F/W)120を実行することで、ディスクアレイ200内のHDD210に対するアクセスを制御する。RAM112には、CPU111に実行させるファームウェア120の少なくとも一部や、各種のデータが一時的に格納される。
ホストインタフェース114は、ホストとCPU111との間でデータを送受信する。ホストとは、情報処理装置100のCPU101である。ディスクインタフェース115は、ディスクアレイ200内のHDD210とCPU111との間でデータを送受信する。ディスクインタフェース115は、CPU111の制御の下で、ディスクアレイ200内のHDD210にコマンドを送信することができる。
CPU111は、ディスクアレイ200に搭載された複数のHDD210を、RAIDグループとして管理することができる。RAIDグループとは、複数のHDD210の記憶領域によって構成され、データが異なるHDD210に冗長化されるように管理される論理記憶領域である。各RAIDグループを構成するHDD210の情報や、各RAIDグループの管理で用いられるRAIDレベルの情報などは、不揮発性メモリ113に設定される。
次に、アレイコントローラ108によるHDD210へのアクセス制御について説明する。
アレイコントローラ108は、ディスクアレイ200に搭載されたHDD210のうちの少なくとも1つを、「ホットスペア(Hot Spare)」と呼ばれる予備用のHDDとして使用する。また、アレイコントローラ108は、各RAIDグループを構成するHDD210のうち、あらかじめ決められた複数の記憶装置210における磁気ディスクの回転を停止させる。
アレイコントローラ108は、ディスクアレイ200に搭載されたHDD210のうちの少なくとも1つを、「ホットスペア(Hot Spare)」と呼ばれる予備用のHDDとして使用する。また、アレイコントローラ108は、各RAIDグループを構成するHDD210のうち、あらかじめ決められた複数の記憶装置210における磁気ディスクの回転を停止させる。
アレイコントローラ108は、磁気ディスクの回転が停止されたHDD210へのデータの書き込みが要求された場合、そのデータをホットスペアのHDDに一時的に書き込む。アレイコントローラ108は、各RAIDグループを構成するHDD210のうち磁気ディスクの回転が停止されていないHDDと、ホットスペアのHDDとを用いて、データの冗長性が保たれるように制御を行う。これにより、ストレージシステム全体の消費電力を低減するとともに、各RAIDグループに格納するデータを冗長化することができる。
以下、RAIDグループの設定例と、磁気ディスクの回転を停止させるHDDの選択例を挙げる。
まず、図4は、RAIDグループの第1の設定例を示す図である。また、図5は、RAID5の制御について説明するための図である。
まず、図4は、RAIDグループの第1の設定例を示す図である。また、図5は、RAID5の制御について説明するための図である。
図4の例では、ディスクアレイ200に搭載されたHDDのうち、HDD210a,210bの記憶領域によってRAIDグループ#01が構成され、HDD210c~210eの記憶領域によってRAIDグループ#02が構成されている。また、HDD210fは、ホットスペアとして使用されるとともに、RAIDグループ#01,#02を構成するHDD210a~210eのうち磁気ディスクの回転が停止されたHDDに書き込むべきデータの一時記憶領域としても使用される。
RAIDグループ#01は、例えばRAID1によって管理される。RAID1は、2台のHDDに対して同じデータを書き込んで、データを各HDDにミラーリングする方式である。アレイコントローラ108は、RAIDグループ#01に対応する論理ボリュームに対するデータの書き込み要求をホストから受けたとき、書き込みが要求されたデータをHDD210a,210bの両方に書き込む。また、アレイコントローラ108は、RAIDグループ#01に対応する論理ボリュームからのデータの読み出し要求をホストから受けたとき、HDD210a,210bのうちあらかじめ決められた一方のHDDからデータを読み出す。本実施の形態では、データの読み出しはHDD210aから行われるものとする。
RAIDグループ#02は、例えばRAID5によって管理される。RAID5は、書き込みデータを一定長に分割し、連続する分割データとそれらに基づくパリティとを、複数のHDDにおける同一ストライプ番号の領域に分散させて書き込む方式である。
例えば図5に示すように、ホストからアレイコントローラ108に対して、RAIDグループ#02に対応する論理ボリュームにデータD1を書き込むように要求されたものとする。このとき、アレイコントローラ108は、データD1を所定データ長ごとに分割して、分割データDa~Dfを生成する。
アレイコントローラ108は、分割データDa,DbからパリティPabを、分割データDc,DdからパリティPcdを、分割データDe,DfからパリティPefを、それぞれ計算する。アレイコントローラ108は、分割データDa,Db、パリティPabを、それぞれHDD210c,210d,210eに書き込み、分割データDc、パリティPcd、分割データDdを、それぞれHDD210c,210d,210eに書き込み、パリティPef、分割データDe,Dfを、それぞれHDD210c,210d,210eに書き込む。これにより、連続するストライプにおいてパリティが異なるHDDに分散して格納される。
ところで、図4の例では、1台のホットスペアのHDD210fが、磁気ディスクの回転が停止されたHDDに書き込むべきデータの一時記憶領域として使用される。この場合、RAIDグループを構成するHDDのうち、2台以上のHDDにおける磁気ディスクの回転を停止させることで、消費電力を低減することができる。
一方、RAID1で管理されるRAIDグループ#01では、このRAIDグループ#01を構成するHDD210a,210bのうち1台の動作を停止させても、RAIDグループ#01におけるデータは失われない。また、RAID5で管理されるRAIDグループ#02では、このRAIDグループ#02を構成するHDD210c~210eのうち1台の動作を停止させても、RAIDグループ#02におけるデータは失われない。ここで言う「RAIDグループにおけるデータが失われない」状態とは、RAIDグループに格納済みの分割データが、そのまま読み出し可能またはリビルド可能な状態であり、かつ、その後にRAIDグループに書き込まれるデータも失われない状態であることを示す。
そこで、図4の例では、アレイコントローラ108は、RAIDグループ#01を構成するHDD210a,210bのうちの1台と、RAIDグループ#02を構成するHDD210c~210eのうちの1台の合計2台について、磁気ディスクの回転を停止させる。例として、アレイコントローラ108は、HDD210b,210eのそれぞれにおける磁気ディスクの回転を停止させる。
また、アレイコントローラ108は、HDD210b,210eのそれぞれにおける磁気ディスクの回転を停止させた状態で、RAIDグループ#01,#02にそれぞれ対応する論理ボリュームへのアクセスの受け付けを継続する。アレイコントローラ108は、HDD210bへのデータの書き込みが発生したとき、HDD210bへのデータの書き込みを行わずに、そのデータをホットスペアのHDD210fに一時的に書き込む。また、アレイコントローラ108は、HDD210eへのデータの書き込みが発生したとき、HDD210eへのデータの書き込みを行わずに、そのデータをホットスペアのHDD210fに一時的に書き込む。なお、図5の例では、HDD210eに書き込むべきパリティPabおよび分割データDd,Dfが、HDD210eの代わりにホットスペアのHDD210fに書き込まれる。
このように、アレイコントローラ108は、HDD210b,210eのそれぞれにおける磁気ディスクの回転を停止させ、HDD210b,210eに書き込むべきデータをホットスペアのHDD210fに一時的に書き込む。これによりアレイコントローラ108は、低消費電力でデータを冗長化することができる。
なお、アレイコントローラ108が管理可能な他のRAIDレベルとしては、RAID4がある。RAID4は、RAID5と同様に、書き込みデータを一定長に分割し、連続する分割データとそれらに基づくパリティとを、複数のHDDにおける同一ストライプ番号の領域に書き込む方式である。ただし、RAID5とは異なり、パリティは同一のHDDに書き込まれる。
このようなRAID4で管理されるRAIDグループにおいては、RAID5の場合と同様に、RAIDグループを構成するHDDのうちの1台を停止させることができる。アレイコントローラ108は、例えば、パリティが格納されるHDDにおける磁気ディスクの回転を停止させ、パリティをホットスペアのHDDに一時的に格納する。これによりRAIDグループのデータを冗長化することができる。
図6は、RAIDグループの第2の設定例を示す図である。また、図7は、RAID6の制御について説明するための図である。
図6の例では、ディスクアレイ200に搭載されたHDDのうち、HDD210a~210eの記憶領域によってRAIDグループ#11が構成されている。また、HDD210fは、ホットスペアとして使用されるとともに、RAIDグループ#11を構成するHDD210a~210eのうち磁気ディスクの回転が停止されたHDDに書き込むべきデータの一時記憶領域としても使用される。
図6の例では、ディスクアレイ200に搭載されたHDDのうち、HDD210a~210eの記憶領域によってRAIDグループ#11が構成されている。また、HDD210fは、ホットスペアとして使用されるとともに、RAIDグループ#11を構成するHDD210a~210eのうち磁気ディスクの回転が停止されたHDDに書き込むべきデータの一時記憶領域としても使用される。
RAIDグループ#11は、例えばRAID6によって管理される。RAID6は、書き込みデータを一定長に分割し、連続する分割データとそれらに基づく2種類のパリティ(P-パリティおよびQ-パリティ)とを、複数のHDDにおける同一ストライプ番号の領域に分散させて書き込む方式である。
例えば図7に示すように、ホストからアレイコントローラ108に対して、RAIDグループ#11に対応する論理ボリュームにデータD2を書き込むように要求されたものとする。このとき、アレイコントローラ108は、データD2を所定データ長ごとに分割して、分割データDa~Diを生成する。
アレイコントローラ108は、分割データDa~DcからP-パリティPabcおよびQ-パリティQabcを、分割データDd~DfからP-パリティPdefおよびQ-パリティQdefを、分割データDg~DiからP-パリティPghiおよびQ-パリティQghiを、それぞれ計算する。
アレイコントローラ108は、分割データDa,Db,Dc、P-パリティPabc、Q-パリティQabcを、それぞれHDD210a,210b,210c,210d,210eに書き込み、分割データDd,De、P-パリティPdef、Q-パリティQdef、分割データDfを、それぞれHDD210a,210b,210c,210d,210eに書き込み、分割データDg、P-パリティPghi、Q-パリティQghi、分割データDh,Diを、それぞれHDD210a,210b,210c,210d,210eに書き込む。これにより、連続するストライプにおいてP-パリティおよびQ-パリティがそれぞれ異なるHDDに分散して格納される。
ところで、図6の例では、図4の場合と同様に、1台のホットスペアのHDD210fが、磁気ディスクの回転が停止されたHDDに書き込むべきデータの一時記憶領域として使用される。この場合、RAIDグループを構成するHDDのうち、2台以上のHDDにおける磁気ディスクの回転を停止させることで、消費電力を低減することができる。一方、RAID1で管理されるRAIDグループ#11では、このRAIDグループ#11を構成するHDD210a~210eのうち2台の動作を停止させても、RAIDグループ#11におけるデータは失われない。
そこで、図6の例では、アレイコントローラ108は、RAIDグループ#11を構成するHDD210a~210eのうちの2台について、磁気ディスクの回転を停止させる。例として、アレイコントローラ108は、HDD210d,210eのそれぞれにおける磁気ディスクの回転を停止させる。
また、アレイコントローラ108は、HDD210d,210eのそれぞれにおける磁気ディスクの回転を停止させた状態で、RAIDグループ#11にそれぞれ対応する論理ボリュームへのアクセスの受け付けを継続する。アレイコントローラ108は、HDD210d,210eへのデータの書き込みが発生したとき、HDD210d,210eへのデータの書き込みを行わずに、そのデータをホットスペアのHDD210fに一時的に書き込む。
図7の例では、HDD210dに書き込むべきP-パリティPabc、Q-パリティQdefおよび分割データDhが、HDD210dの代わりにホットスペアのHDD210fに書き込まれる。また、HDD210eに書き込むべきQ-パリティQabcおよび分割データDf,Diが、HDD210eの代わりにホットスペアのHDD210fに書き込まれる。
このように、アレイコントローラ108は、HDD210d,210eのそれぞれにおける磁気ディスクの回転を停止させ、HDD210d,210eに書き込むべきデータをホットスペアのHDD210fに一時的に書き込む。これによりアレイコントローラ108は、低消費電力でデータを冗長化することができる。
図8は、RAIDグループの第3の設定例を示す図である。また、図9は、RAID1+0の制御について説明するための図である。
図8の例では、ディスクアレイ200に搭載されたHDDのうち、HDD210a~210fの記憶領域によってRAIDグループ#21が構成されている。また、HDD210gは、ホットスペアとして使用されるとともに、RAIDグループ#21を構成するHDD210a~210fのうち磁気ディスクの回転が停止されたHDDに書き込むべきデータの一時記憶領域としても使用される。
図8の例では、ディスクアレイ200に搭載されたHDDのうち、HDD210a~210fの記憶領域によってRAIDグループ#21が構成されている。また、HDD210gは、ホットスペアとして使用されるとともに、RAIDグループ#21を構成するHDD210a~210fのうち磁気ディスクの回転が停止されたHDDに書き込むべきデータの一時記憶領域としても使用される。
RAIDグループ#21は、例えばRAID1+0によって管理される。RAID1+0は、データのストライピングとミラーリングとを組み合わせた方式である。例えば図9に示すように、ホストからアレイコントローラ108に対して、RAIDグループ#21に対応する論理ボリュームにデータD3を書き込むように要求されたものとする。このとき、アレイコントローラ108は、データD3を所定データ長ごとに分割して、分割データDa~Dfを生成する。
アレイコントローラ108は、分割データDa~Dcを、同一ストライプ番号の領域に書き込むとともにミラーリングする。同様に、アレイコントローラ108は、分割データDd~Dfを、同一ストライプ番号の領域に書き込むとともにミラーリングする。具体的には、アレイコントローラ108は、分割データDaをHDD210a,210bに書き込み、分割データDbをHDD210c,210dに書き込み、分割データDcをHDD210e,210fに書き込む。また、アレイコントローラ108は、分割データDdをHDD210a,210bに書き込み、分割データDeをHDD210c,210dに書き込み、分割データDfをHDD210e,210fに書き込む。
なお、アレイコントローラ108は、RAIDグループ#21に対応する論理ボリュームからのデータの読み出しが要求された場合には、分割データがミラーリングされた2台のHDDのうちあらかじめ決められた一方のHDDから、分割データを読み出す。図8、図9の例では、アレイコントローラ108は、HDD210a,210c,210eから分割データを読み出すものとする。
ところで、図8の例では、1台のホットスペアのHDD210gが、磁気ディスクの回転が停止されたHDDに書き込むべきデータの一時記憶領域として使用される。この場合、RAIDグループを構成するHDDのうち、2台以上のHDDにおける磁気ディスクの回転を停止させることで、消費電力を低減することができる。
一方、RAID1+0で管理されるRAIDグループ#21では、このRAIDグループ#21を構成するHDD210a~210fのうち2台の動作を停止させても、RAIDグループ#21におけるデータは失われない。ただし、停止させることが可能なHDDは、HDD210a,210bの一方、HDD210c,210dの一方、および、HDD210e,210fの一方の中から、2台までである。
そこで、図8の例では、アレイコントローラ108は、RAIDグループ#21を構成するHDD210a~210fのうちの2台について、磁気ディスクの回転を停止させる。例として、アレイコントローラ108は、HDD210b,210d,210fのそれぞれにおける磁気ディスクの回転を停止させる。
また、アレイコントローラ108は、HDD210b,210d,210fのそれぞれにおける磁気ディスクの回転を停止させた状態で、RAIDグループ#21にそれぞれ対応する論理ボリュームへのアクセスの受け付けを継続する。アレイコントローラ108は、HDD210b,210d,210fへのデータの書き込みが発生したとき、HDD210b,210d,210fへのデータの書き込みを行わずに、そのデータをホットスペアのHDD210fに一時的に書き込む。図9の例では、分割データDa~DfのミラーデータがホットスペアのHDD210gに書き込まれる。
このように、アレイコントローラ108は、HDD210b,210d,210fのそれぞれにおける磁気ディスクの回転を停止させ、HDD210b,210d,210fに書き込むべきデータをホットスペアのHDD210gに一時的に書き込む。これによりアレイコントローラ108は、低消費電力でデータを冗長化することができる。
次に、図10は、アレイコントローラの処理機能の構成例を示すブロック図である。
アレイコントローラ108は、RAID制御部130、書き戻し制御部140および復旧制御部150を備える。RAID制御部130、書き戻し制御部140および復旧制御部150の処理は、例えば、アレイコントローラ108が備えるCPU111が所定のプログラム(例えば、図3のファームウェア120)を実行することで実現される。
アレイコントローラ108は、RAID制御部130、書き戻し制御部140および復旧制御部150を備える。RAID制御部130、書き戻し制御部140および復旧制御部150の処理は、例えば、アレイコントローラ108が備えるCPU111が所定のプログラム(例えば、図3のファームウェア120)を実行することで実現される。
また、アレイコントローラ108の処理の際には、LBA(Logical Block Address)テーブル160、テーブル管理情報170、ディスク管理テーブル180、RAID管理テーブル190およびデータテーブル220が利用される。LBAテーブル160は、アレイコントローラ108のRAM112に格納され、テーブル管理情報170、ディスク管理テーブル180およびRAID管理テーブル190は、アレイコントローラ108の不揮発性メモリ113に格納される。また、データテーブル220は、磁気ディスクの回転が停止されたHDDに書き込むべきデータの一時記憶領域を含むものであり、ホットスペアのHDDに格納される。
なお、以下の説明では、いずれかのRAIDグループを構成するHDDを「HDD211」と表記し、ホットスペアのHDDを「HDD212」と表記する。また、RAIDグループを構成するHDD211のうち、磁気ディスクが回転しているHDDを「動作中のHDD」と呼び、磁気ディスクの回転が停止しているHDDを「停止中のHDD」と呼ぶ。
RAID制御部130は、図1に示した動作制御部11およびアクセス制御部12に対応する処理を行う。RAID制御部130は、ホストから、RAIDグループに対応する論理ボリュームへのアクセス要求を受け付け、アクセス要求に応じたHDDへのアクセス処理を実行する。このとき、RAID制御部130は、各RAIDグループを構成するHDD211のうち複数のHDD211における磁気ディスクの回転を停止させて、消費電力を低減する。そして、RAID制御部130は、停止中のHDD211への書き込みが発生した場合には、そのHDD211へ書き込むべきデータをホットスペアのHDD212内のデータテーブル220に格納して、データの冗長性を保つ。
ここで、データテーブル220は、停止中のHDD211に書き込むべきデータごとに生成される。また、最後に生成されたデータテーブル220の識別番号がテーブル管理情報170に登録され、データテーブル220を検索する際にRAID制御部130によって参照される。
また、磁気ディスクの回転を停止させるHDD221およびホットスペアのHDD212についての設定情報は、ディスク管理テーブル180にあらかじめ登録され、RAIDグループについての設定情報は、RAID管理テーブル190にあらかじめ登録される。ディスク管理テーブル180およびRAID管理テーブル190は、RAID制御部130によって参照される。
また、RAID制御部130は、停止中のHDD211への書き込みが発生した場合に、その本来の書き込み先アドレス(すなわち、停止中のHDD211における書き込み先アドレス)をLBAテーブル160に登録する。
書き戻し制御部140は、所定のタイミングにおいて、停止中のHDD211に磁気ディスクの回転を開始させ、それらのHDD211に対してデータテーブル220に格納されたデータを書き戻す。
復旧制御部150は、RAIDグループを構成するいずれかのHDD211またはホットスペアのHDD212が異常停止した場合などに、復旧のための処理を実行する。
なお、以上のRAID制御部130、書き戻し制御部140および復旧制御部150の処理の少なくとも一部は、情報処理装置100のCPU101が所定のプログラムを実行することで実現されてもよい。
なお、以上のRAID制御部130、書き戻し制御部140および復旧制御部150の処理の少なくとも一部は、情報処理装置100のCPU101が所定のプログラムを実行することで実現されてもよい。
図11は、アレイコントローラの処理の際に利用される情報の内容の例を示す図である。
データテーブル220は、RAID制御部130によって、停止中のHDD211に書き込むべきデータごとに、ホットスペアのHDD212に登録される。各データテーブル220には、「ディスク番号」、「書き込み先LBA」および「書き込みデータ」が登録される。「書き込みデータ」は、停止中のHDD211に書き込むべき実データである。「ディスク番号」は、書き込みデータの本来の書き込み先である停止中のHDD211の識別番号であり、「書き込み先LBA」は、停止中のHDD211における書き込みデータの本来の書き込み先アドレスを示す。
データテーブル220は、RAID制御部130によって、停止中のHDD211に書き込むべきデータごとに、ホットスペアのHDD212に登録される。各データテーブル220には、「ディスク番号」、「書き込み先LBA」および「書き込みデータ」が登録される。「書き込みデータ」は、停止中のHDD211に書き込むべき実データである。「ディスク番号」は、書き込みデータの本来の書き込み先である停止中のHDD211の識別番号であり、「書き込み先LBA」は、停止中のHDD211における書き込みデータの本来の書き込み先アドレスを示す。
なお、停止中の同じHDD211における同じアドレスへの書き込みが発生した場合には、同じディスク番号および書き込み先LBAが登録されたHDD212に格納済みのデータテーブル220は上書きされずに、新たなデータテーブル220がHDD212に登録される。
テーブル管理情報170は、ホットスペアのHDD212に登録されたデータテーブル220を検索するために利用される情報である。テーブル管理情報170には、RAID制御部130によって、ホットスペアのHDD212に最後に登録されたデータテーブル220を識別するテーブル番号が登録される。図11の例では、ホットスペアのHDD212にはテーブル番号「1」から「4」までのデータテーブル220が登録されており、この場合、テーブル管理情報170にテーブル番号として「4」が登録される。
なお、テーブル管理情報170に登録されるテーブル番号の初期値を「0」とする。一方、ホットスペアのHDD212に登録される先頭のデータテーブル220に付与されるテーブル番号を「1」とする。テーブル管理情報170にテーブル番号「0」が登録されていた場合、ホットスペアのHDD212にデータテーブル220が登録されていないことを示す。
ディスク管理テーブル180には、「HSディスク番号」と「停止ディスク番号」とが登録される。「HSディスク番号」は、ホットスペアとして使用されるHDD212の識別番号である。「停止ディスク番号」は、RAIDグループを構成するHDD211のうち磁気ディスクの回転を停止させるHDD211の識別番号である。
RAID管理テーブル190は、RAIDグループごとに生成される。各RAID管理テーブル190には、「RAIDグループ番号」、「RAIDレベル」、「ディスク番号」および「ストライプサイズ」が登録される。「RAIDグループ番号」は、対応するRAIDグループを識別する識別番号である。「RAIDレベル」は、対応するRAIDグループに設定されたRAIDレベルを示す。「ディスク番号」は、対応するRAIDグループを構成するHDD211の識別番号である。通常、1つのRAID管理テーブル190には複数の「ディスク番号」が登録される。「ストライプサイズ」には、対応するRAIDグループに設定されたRAIDレベルがRAID5,6,1+0のいずれかの場合に、ストライプにおけるHDD211ごとのサイズ(すなわち、分割データのサイズ)が登録される。
LBAテーブル160は、RAID制御部130によって、停止中のHDD211ごとに登録される。各LBAテーブル160には、「停止ディスク番号」および「書き込み先LBA」が登録される。「停止ディスク番号」は、RAIDグループを構成するHDD211のうち磁気ディスクの回転を停止させるHDD211の識別番号である。「書き込み先LBA」は、対応する停止中のHDD211にデータの書き込みが発生した場合に、停止中のHDD211における本来の書き込み先アドレスを示す。LBAテーブル160に登録された「書き込み先アドレス」は、いずれかのデータテーブル220にも必ず登録されている。また、1つのLBAテーブル160には、最大で、停止中のHDD211に割り付けられているLBAの数だけの「書き込み先LBA」が登録される。
なお、前述のように、同じ停止中のHDD211における同じアドレスに対するデータの書き込みが複数回発生した場合には、このHDD211およびアドレスが登録されたデータテーブル220が複数登録される。このため、ホットスペアのHDD212には、同じディスク番号および書き込み先LBAを含むデータテーブル220が重複して登録される可能性がある。
書き戻し制御部140は、データテーブル220をその最後尾から順に検索して、データの書き戻しを行うが、その際に、書き戻しが完了したデータに対応するLBAをLBAテーブル160から消去する。これにより、書き戻し制御部140は、同じディスク番号および書き込み先LBAを含むデータテーブル220が重複して登録されている場合でも、それらのうち最も後に登録されたデータテーブル220に含まれるデータのみを書き戻すことができる。
次に、アレイコントローラ108の処理を、フローチャートを用いて説明する。まず、図12および図13は、RAID制御部によるアクセス制御処理の例を示すフローチャートである。
[ステップS11]RAID制御部130は、RAIDグループを構成するHDD211のうち、ディスク管理テーブル180に登録された停止ディスク番号が示すHDD211に対して、磁気ディスクの回転を停止するように指示するためのコマンドを送信する。これにより、停止ディスク番号が示すHDD211における磁気ディスクの回転が停止する。
[ステップS12]RAID制御部130は、RAID管理テーブル190に設定されたRAIDグループに対応する論理ボリュームに対する、ホストからのアクセス要求を監視し、アクセス要求を受信した場合にステップS13の処理を実行する。
[ステップS13]ホストからデータの読み出しが要求された場合には、ステップS14の処理が実行され、データの書き込みが要求された場合には、図13のステップS31の処理が実行される。
[ステップS14]RAID制御部130は、RAID管理テーブル190を参照し、読み出しが要求されたRAIDグループのRAIDレベルを判定する。RAID制御部130は、RAIDレベルがRAID1またはRAID1+0の場合には、ステップS15の処理を実行し、RAIDレベルがRAID5またはRAID6の場合には、ステップS16の処理を実行する。
[ステップS15]RAID制御部130は、動作中のHDD211から、読み出しが要求されたデータを読み出す。
RAID1の場合の例としては、RAID制御部130は、図4のRAIDグループ#01を構成するHDD210a,210bのうち、動作中のHDD210aからデータを読み出す。また、RAID1+0の場合の例としては、RAID制御部130は、図8のRAIDグループ#21を構成するHDD210a~210fのうち、動作中のHDD210a,210c,210eの少なくとも1つから分割データを読み出す。
RAID1の場合の例としては、RAID制御部130は、図4のRAIDグループ#01を構成するHDD210a,210bのうち、動作中のHDD210aからデータを読み出す。また、RAID1+0の場合の例としては、RAID制御部130は、図8のRAIDグループ#21を構成するHDD210a~210fのうち、動作中のHDD210a,210c,210eの少なくとも1つから分割データを読み出す。
[ステップS16]RAID制御部130は、ホストから指示された論理ボリューム上の読み出しアドレスおよびデータサイズと、RAID管理テーブル190に登録されたディスク番号の数(すなわち、RAIDグループを構成するHDD211の台数)およびストライプサイズとを基に、読み出しが要求されたデータを構成する各分割データが、RAIDグループを構成するHDD211のうちのどのHDD211のどの位置に格納されているかを判定する。ここで判定される読み出し位置は、あくまでRAIDグループを構成するHDD211における本来の読み出し位置であり、ホットスペアのHDD212における一時記憶領域を含まない。
[ステップS17]このステップS17からループ端であるステップS22までの処理は、読み出し対象のストライプごとに繰り返される。例えば、読み出し対象の領域が複数のストライプに跨る場合には、ステップS17からステップS22までの処理が複数回繰り返される。
[ステップS18]RAID制御部130は、処理対象のストライプに含まれるすべての読み出し対象の分割データが、読み出しが要求されたRAIDグループを構成するHDD211のうち動作中のHDD211に格納されているかを判定する。RAID制御部130は、読み出し対象の分割データがすべて動作中のHDD211に格納されている場合には、ステップS19の処理を実行する。一方、RAID制御部130は、読み出し対象の分割データの中に動作中のHDD211に格納されていない分割データがある場合(すなわち、本来の格納位置が停止中のHDD211である分割データがある場合)には、ステップS20の処理を実行する。
[ステップS19]RAID制御部130は、読み出し対象の分割データを動作中のHDD211から読み出す。
例えば、図5における分割データDa,DbおよびパリティPabを含むストライプが処理対象であり、分割データDa,Dbが読み出し対象である場合、分割データDa,Dbはそれぞれ動作中のHDD210c,210dに格納されている。この場合、ステップS18において「Yes」と判定され、ステップS19において動作中のHDD210c,210dからそれぞれ分割データDa,Dbが読み出される。
例えば、図5における分割データDa,DbおよびパリティPabを含むストライプが処理対象であり、分割データDa,Dbが読み出し対象である場合、分割データDa,Dbはそれぞれ動作中のHDD210c,210dに格納されている。この場合、ステップS18において「Yes」と判定され、ステップS19において動作中のHDD210c,210dからそれぞれ分割データDa,Dbが読み出される。
[ステップS20]RAID制御部130は、読み出しが要求されたRAIDグループを構成するHDD211のうち動作中のHDD211から、処理対象のストライプに含まれる分割データおよびパリティを読み出す。
[ステップS21]RAID制御部130は、ステップS20で読み出した分割データおよびパリティを基に、停止中のHDD211から読み出すべき分割データを計算する。
例えば、図5における分割データDc,DdおよびパリティPcdを含むストライプが処理対象であり、分割データDc,Ddが読み出し対象である場合、分割データDdは動作中のHDD210c,210dに格納されていない。この場合、ステップS18において「No」と判定され、ステップS19において動作中のHDD210c,210dからそれぞれ分割データDcおよびパリティPcdが読み出され、ステップS20において分割データDdが計算される。
例えば、図5における分割データDc,DdおよびパリティPcdを含むストライプが処理対象であり、分割データDc,Ddが読み出し対象である場合、分割データDdは動作中のHDD210c,210dに格納されていない。この場合、ステップS18において「No」と判定され、ステップS19において動作中のHDD210c,210dからそれぞれ分割データDcおよびパリティPcdが読み出され、ステップS20において分割データDdが計算される。
[ステップS22]読み出し対象のすべてのストライプについてステップS17からステップS22までの処理が実行された場合に、ステップS23の処理が実行される。
[ステップS23]RAID制御部130は、読み出しが要求されたデータをホストに転送する。この後、ステップS12に戻り、アクセス要求が監視される。
[ステップS23]RAID制御部130は、読み出しが要求されたデータをホストに転送する。この後、ステップS12に戻り、アクセス要求が監視される。
以上のステップS14~S23に示した読み出し制御処理では、停止中のHDD211における磁気ディスクを再度回転させず、動作中のHDD211のみから読み出し処理を行う。これにより、停止中のHDD211がアクセス可能になるまで待機する必要がなくなり、ホストからの読み出し要求に対する応答速度が低下することを抑制できる。
なお、ステップS20,S21では、RAID制御部130は、動作中のHDD211から読み出すことができない分割データを、ホットスペアのHDD212から読み出してもよい。ただしこの場合、RAID制御部130は、分割データが登録されたデータテーブル220をホットスペアのHDD212から検索する必要があり、この検索処理によってホストからの読み出し要求に対する応答時間が長くなる可能性がある。RAID制御部130は、データテーブル220を検索する代わりにパリティを用いて分割データを計算する方が、読み出し要求に対する応答時間の遅延を安定的に抑制することができる。
次に、データの書き込みが要求された場合の処理について、図13を用いて説明する。
[ステップS31]RAID制御部130は、書き戻し制御部140によるホットスペア(HS)のHDD212からのデータの書き戻し処理が実行中かを判定する。RAID制御部130は、書き戻し処理が実行中である場合には、ステップS37の処理を実行し、書き戻し処理が実行されていない場合には、ステップS32の処理を実行する。
[ステップS31]RAID制御部130は、書き戻し制御部140によるホットスペア(HS)のHDD212からのデータの書き戻し処理が実行中かを判定する。RAID制御部130は、書き戻し処理が実行中である場合には、ステップS37の処理を実行し、書き戻し処理が実行されていない場合には、ステップS32の処理を実行する。
[ステップS32]RAID制御部130は、ホットスペアのHDD212の残容量が所定のしきい値以上かを判定する。RAID制御部130は、残容量がしきい値以上である場合には、ステップS34の処理を実行し、残容量がしきい値未満である場合には、ステップS33の処理を実行する。
[ステップS33]RAID制御部130は、書き戻し制御部140に、ホットスペアのHDD212に一時記憶されたデータの書き戻し処理を開始させる。これにより、RAID制御部130による制御処理と並行して、書き戻し制御部140による書き戻し処理が実行される。
なお、本実施の形態では、ステップS32で用いられるしきい値は、1回の書き込み要求で書き込まれる最大のデータを含んだデータテーブル220のサイズ以上の値に設定されているものとする。これにより、RAID制御部130は、ステップS33で書き戻しの開始を指示してから、停止中のHDD211が書き込み可能な状態になる前に、ステップS35またはステップS36の書き込み処理を完了させることができ、書き込みの応答速度の低下を抑制できる。
これに対し、ステップS32で用いられるしきい値がより小さい値に設定された場合には、停止中のHDD211に書き込むべきすべてのデータをホットスペアのHDD212に書き込み可能かが保証されない。この場合、ステップS33の次にステップS37に進むように処理を変更することで書き込みを完了できるが、ステップS37以降の処理は、停止中のHDD211における磁気ディスクの回転が開始されて、そのHDD211が書き込み可能な状態になるまで、実行できない。
[ステップS34]RAID制御部130は、RAID管理テーブル190を参照し、書き込みが要求されたRAIDグループのRAIDレベルを判定する。RAID制御部130は、RAIDレベルがRAID1またはRAID1+0の場合には、ステップS35の処理を実行し、RAIDレベルがRAID5またはRAID6の場合には、ステップS36の処理を実行する。
[ステップS35]RAID制御部130は、RAID1またはRAID1+0の場合の書き込み処理を実行する。この処理の詳細については、図14において説明する。
[ステップS36]RAID制御部130は、RAID5またはRAID6の場合の書き込み処理を実行する。この処理の詳細については、図15において説明する。
[ステップS36]RAID制御部130は、RAID5またはRAID6の場合の書き込み処理を実行する。この処理の詳細については、図15において説明する。
ステップS35またはステップS36が実行された後、ステップS12に戻り、アクセス要求が監視される。
[ステップS37]RAID制御部130は、ホストから指示された論理ボリューム上の書き込みアドレスおよびデータサイズと、RAID管理テーブル190に登録されたディスク番号の数(すなわち、RAIDグループを構成するHDD211の台数)およびストライプサイズとを基に、書き込みが要求されたデータを構成する各分割データを、RAIDグループを構成するHDD211のうちのどのHDD211のどの領域に格納すべきかを決定する。ここで決定される書き込み先領域は、あくまでRAIDグループを構成するHDD211における本来の読み出し位置であり、ホットスペアのHDD212における一時記憶領域を含まない。
[ステップS37]RAID制御部130は、ホストから指示された論理ボリューム上の書き込みアドレスおよびデータサイズと、RAID管理テーブル190に登録されたディスク番号の数(すなわち、RAIDグループを構成するHDD211の台数)およびストライプサイズとを基に、書き込みが要求されたデータを構成する各分割データを、RAIDグループを構成するHDD211のうちのどのHDD211のどの領域に格納すべきかを決定する。ここで決定される書き込み先領域は、あくまでRAIDグループを構成するHDD211における本来の読み出し位置であり、ホットスペアのHDD212における一時記憶領域を含まない。
[ステップS38]書き戻し制御部140による書き戻しの実行中では、書き込みが要求されたRAIDグループを構成するすべてのHDD211が動作中の状態になっている。このとき、RAID制御部130は、ホットスペアのHDD212への書き込みを行わずに、RAIDグループを構成するHDD211への書き込みを行う。
ステップS38では、RAID制御部130はまず、書き込み先のRAIDグループに対応するLBAテーブル160に、ステップS37で判定した書き込み先領域に含まれるLBAが登録されている場合に、このLBAをLBAテーブル160から削除する。これにより、RAID制御部140は、同じ書き込み先領域への書き込みが要求された古いデータがホットスペアのHDD212の一時記憶領域に書き込まれていた場合に、その古いデータがその後に動作中のHDD211に書き戻されることを阻止する。換言すると、同じ書き込み先領域への書き込みが要求された古いデータがホットスペアのHDD212の一時記憶領域に書き込まれていた場合に、その古いデータが破棄される。
例えば、図11において、ステップS37で判定した書き込み先領域に含まれるLBAが、テーブル番号「1」のデータテーブル220に登録されていたものとする。このLBAを「LBA#1」とすると、ステップS38においてRAID制御部130は、テーブル番号「1」のデータテーブル220に書き込み先LBAとして登録されていたLBA#1を、LBAテーブル160から削除する。
後述するように、書き戻し制御部140は、LBAテーブル160に登録されているLBAに対してのみ書き戻しを行う。このため、LBA#1がLBAテーブル160から削除されることにより、書き戻し制御部140は、LBA#1を含むデータテーブル220がホットスペアのHDD212に登録されているにもかかわらず、このデータテーブル220に含まれる書き込みデータの書き戻しを行わない。これにより、次のステップS39で該当LBAに最新のデータが書き込まれた後に、該当LBAに対応する古いデータが上書きされることが阻止される。
なお、ステップS38では、RAID制御部130は、同じ書き込み先領域への書き込みが要求された古いデータがあるかを、データテーブル220を検索せずに、アレイコントローラ108のRAM112に記録されたLBAテーブル160を参照することで、短時間で判定することができる。これにより、ホストからの書き込み要求に対する応答速度を向上させることができる。
[ステップS39]書き込み先のRAIDグループを構成するすべてのHDD211が動作中であることから、RAID制御部140は、RAIDレベルに応じた通常の書き込み処理、すなわち、ステップS37で判定された書き込み領域への書き込み処理を実行する。この後、ステップS12に戻り、アクセス要求が監視される。
上記のステップS37~S39に示したように、RAID制御部130は、書き戻し制御部140による書き戻しの実行中では、ホットスペアのHDD212への書き込みを行わずに、RAIDグループを構成するHDD211への書き込みを行う。この場合、RAID制御部140は、テーブルの更新処理としてステップS38での書き込み先LBAの削除処理のみ実行するなど、書き込み処理手順が簡単になる。このため、RAID制御部130は、後述するステップS35またはステップS36での書き込み処理と比較して、データの書き込みを短時間で完了できる。
図14は、RAID1またはRAID1+0の場合の書き込み処理の例を示すフローチャートである。この図14の処理は、図13のステップS35の処理に対応する。
[ステップS51]このステップS51は、書き込みが要求されたRAIDグループのRAIDレベルがRAID1+0である場合のみ、実行される。RAID制御部130は、ホストから指示された論理ボリューム上の書き込みアドレスおよびデータサイズと、RAID管理テーブル190に登録されたストライプサイズとを基に、書き込みが要求されたRAIDグループを構成するHDD211から、書き込み先のHDD211のペアを決定する。
[ステップS51]このステップS51は、書き込みが要求されたRAIDグループのRAIDレベルがRAID1+0である場合のみ、実行される。RAID制御部130は、ホストから指示された論理ボリューム上の書き込みアドレスおよびデータサイズと、RAID管理テーブル190に登録されたストライプサイズとを基に、書き込みが要求されたRAIDグループを構成するHDD211から、書き込み先のHDD211のペアを決定する。
ここで言うHDD211のペアとは、分割データがミラーリングされるHDD211のペアである。例えば、図8に示したRAIDグループ#21に対応する論理ボリュームへの書き込みが要求され、書き込みが要求されたデータから生成される分割データの容量が1ストライプの大きさ以上である場合、書き込み先のHDDのペアとして、HDD210aとHDD210bのペア、HDD210cとHDD210dのペア、HDD210eとHDD210fのペアが決定される。
[ステップS52]RAID制御部130は、書き込みが要求されたRAIDグループを構成するHDD211のうち、動作中のHDD211に対してデータを書き込む。なお、RAID制御部130は、RAIDレベルがRAID1+0の場合には、ステップS51で決定したHDD211のペアのうち動作中のHDD211に対して、分割データを書き込む。このステップS52により、データがミラーリングされるHDD211のペアのうち一方のみにデータが書き込まれる。
[ステップS53]RAID制御部130は、停止中のHDD211に書き込むべきデータをホットスペアのHDD212に書き込むための処理を行う。
具体的には、RAID制御部130は、本来の書き込み先である停止中のHDD211を示すディスク番号およびそのHDD211におけるデータの書き込み先LBAの組み合わせごとに、データテーブル220を作成する。RAID制御部130は、各データテーブル220に、対応するディスク番号および書き込み先LBAと、書き込みデータとを登録し、各データテーブル220をデータの書き込み順にホットスペアのHDD212に登録する。
具体的には、RAID制御部130は、本来の書き込み先である停止中のHDD211を示すディスク番号およびそのHDD211におけるデータの書き込み先LBAの組み合わせごとに、データテーブル220を作成する。RAID制御部130は、各データテーブル220に、対応するディスク番号および書き込み先LBAと、書き込みデータとを登録し、各データテーブル220をデータの書き込み順にホットスペアのHDD212に登録する。
[ステップS54]RAID制御部130は、ステップS53で登録したデータテーブル220の数だけ、テーブル管理情報170のテーブル番号をインクリメントする。なお、データテーブル220が1つも登録されていない初期状態におけるテーブル番号の初期値は「0」である。
[ステップS55]RAID制御部130は、データの本来の書き込み先である停止中のHDD211(すなわち、ステップS53でデータテーブル220に登録したディスク番号が示すHDD211)にそれぞれ対応するLBAテーブル160を特定する。RAID制御部130は、特定した各LBAテーブル160に対して、ステップS53でデータテーブル220に登録した書き込み先LBAを登録する。これにより、ホットスペアのHDD212に一時的に書き込まれた各データについての本来のHDD211における書き込み先LBAが、LBAテーブル160に登録される。
なお、このステップS55では、RAID制御部130は、特定したLBAテーブル160にすでに同一のLBAが登録されていた場合には、そのLBAの登録をスキップする。すなわち、各LBAテーブル160には、同じLBAは重複して登録されない。
図15は、RAID5またはRAID6の場合の書き込み処理の例を示すフローチャートである。この図15の処理は、図13のステップS36の処理に対応する。
[ステップS61]RAID制御部130は、ホストから受信した書き込みデータを、RAID管理テーブル190に登録されたストライプサイズごとに分割して、分割データを生成する。
[ステップS61]RAID制御部130は、ホストから受信した書き込みデータを、RAID管理テーブル190に登録されたストライプサイズごとに分割して、分割データを生成する。
[ステップS62]RAID制御部130は、ホストから指示された論理ボリューム上の書き込みアドレスおよびデータサイズと、RAID管理テーブル190に登録されたディスク番号の数(すなわち、RAIDグループを構成するHDD211の台数)およびストライプサイズとを基に、書き込みが要求されたデータを構成する各分割データを、RAIDグループを構成するHDD211のうちのどのHDD211のどの領域に格納すべきかを決定する。ここで決定される書き込み先領域は、あくまでRAIDグループを構成するHDD211における本来の読み出し位置であり、ホットスペアのHDD212における一時記憶領域を含まない。
[ステップS63]このステップS63からループ端であるステップS76までの処理は、決定された書き込み先領域に含まれるストライプごとに繰り返される。例えば、書き込み先領域が複数のストライプに跨る場合には、ステップS63からステップS76までの処理が複数回繰り返される。
[ステップS64]RAID制御部130は、処理対象のストライプに含まれる分割データのうち、ステップS61で決定された書き込み先領域に含まれていない分割データを、動作中のHDD211から読み出す。例えば、図5における分割データDa,DbおよびパリティPabを含むストライプが処理対象であり、分割データDbおよびパリティPabが書き込み先領域に含まれている場合、RAID制御部130は、書き込み先領域に含まれていない分割データDaをHDD210cから読み出す。読み出された分割データDaは、最新のパリティPabを計算するために使用される。
[ステップS65]RAID制御部130は、処理対象のストライプに含まれる、ステップS61で生成した分割データのうち、書き込み先のHDD211が動作中である分割データを、対応するHDD211に書き込む。
[ステップS66]RAID制御部130は、処理対象のストライプに含まれる分割データの書き込み先となるHDD211の中に、停止中のHDD211があるかを判定する。RAID制御部130は、停止中のHDD211がある場合には、ステップS67の処理を実行し、停止中のHDD211がない場合には、ステップS70の処理を実行する。
[ステップS67]RAID制御部130は、停止中のHDD211に書き込むべき分割データをホットスペアのHDD212に書き込むための処理を行う。
具体的には、RAID制御部130は、分割データの本来の書き込み先である停止中のHDD211を示すディスク番号と、そのHDD211におけるデータの書き込み先LBAと、分割データとを格納したデータテーブル220を作成する。RAID制御部130は、作成したデータテーブル220を、ホットスペアのHDD212に登録する。
具体的には、RAID制御部130は、分割データの本来の書き込み先である停止中のHDD211を示すディスク番号と、そのHDD211におけるデータの書き込み先LBAと、分割データとを格納したデータテーブル220を作成する。RAID制御部130は、作成したデータテーブル220を、ホットスペアのHDD212に登録する。
なお、RAID6の場合には、2台のHDD211が停止中である可能性があることから、ステップS67では最大で2つのデータテーブル220がホットスペアのHDD212に登録される。
[ステップS68]RAID制御部130は、ステップS67で登録したデータテーブル220の数だけ、テーブル管理情報170のテーブル番号をインクリメントする。
[ステップS69]RAID制御部130は、分割データの本来の書き込み先である停止中のHDD211(すなわち、ステップS67でデータテーブル220に登録したディスク番号が示すHDD211)にそれぞれ対応するLBAテーブル160を特定する。RAID制御部130は、特定した各LBAテーブル160に対して、ステップS67でデータテーブル220に登録した書き込み先LBAを登録する。これにより、ホットスペアのHDD212に一時的に書き込まれた各分割データについての本来のHDD211における書き込み先LBAが、LBAテーブル160に登録される。
[ステップS69]RAID制御部130は、分割データの本来の書き込み先である停止中のHDD211(すなわち、ステップS67でデータテーブル220に登録したディスク番号が示すHDD211)にそれぞれ対応するLBAテーブル160を特定する。RAID制御部130は、特定した各LBAテーブル160に対して、ステップS67でデータテーブル220に登録した書き込み先LBAを登録する。これにより、ホットスペアのHDD212に一時的に書き込まれた各分割データについての本来のHDD211における書き込み先LBAが、LBAテーブル160に登録される。
なお、このステップS69では、図15のステップS55と同様に、各LBAテーブル160には、同じLBAは重複して登録されない。
[ステップS70]RAID制御部130は、パリティを計算する。RAID6の場合、P-パリティおよびQ-パリティが計算される。
[ステップS70]RAID制御部130は、パリティを計算する。RAID6の場合、P-パリティおよびQ-パリティが計算される。
[ステップS71]RAID制御部130は、ステップS70で算出したパリティのうち、書き込み先のHDD211が動作中であるパリティを、対応するHDD211に書き込む。
[ステップS72]RAID制御部130は、ステップS70で算出したパリティの書き込み先となるHDD211の中に、停止中のHDD211があるかを判定する。RAID制御部130は、停止中のHDD211がある場合には、ステップS73の処理を実行する。一方、停止中のHDD211がない場合には、ステップS76に進む。
[ステップS73]RAID制御部130は、停止中のHDD211に書き込むべきパリティをホットスペアのHDD212に書き込むための処理を行う。
具体的には、RAID制御部130は、パリティの本来の書き込み先である停止中のHDD211を示すディスク番号と、そのHDD211におけるデータの書き込み先LBAと、パリティとを格納したデータテーブル220を作成する。RAID制御部130は、作成したデータテーブル220を、ホットスペアのHDD212に登録する。
具体的には、RAID制御部130は、パリティの本来の書き込み先である停止中のHDD211を示すディスク番号と、そのHDD211におけるデータの書き込み先LBAと、パリティとを格納したデータテーブル220を作成する。RAID制御部130は、作成したデータテーブル220を、ホットスペアのHDD212に登録する。
なお、RAID6の場合には、2台のHDD211が停止中である可能性があることから、ステップS73では最大で2つのデータテーブル220がホットスペアのHDD212に登録される。
[ステップS74]RAID制御部130は、ステップS73で登録したデータテーブル220の数だけ、テーブル管理情報170のテーブル番号をインクリメントする。
[ステップS75]RAID制御部130は、パリティの本来の書き込み先である停止中のHDD211(すなわち、ステップS73でデータテーブル220に登録したディスク番号が示すHDD211)にそれぞれ対応するLBAテーブル160を特定する。RAID制御部130は、特定した各LBAテーブル160に対して、ステップS73でデータテーブル220に登録した書き込み先LBAを登録する。これにより、ホットスペアのHDD212に一時的に書き込まれた各パリティについての本来のHDD211における書き込み先LBAが、LBAテーブル160に登録される。
[ステップS75]RAID制御部130は、パリティの本来の書き込み先である停止中のHDD211(すなわち、ステップS73でデータテーブル220に登録したディスク番号が示すHDD211)にそれぞれ対応するLBAテーブル160を特定する。RAID制御部130は、特定した各LBAテーブル160に対して、ステップS73でデータテーブル220に登録した書き込み先LBAを登録する。これにより、ホットスペアのHDD212に一時的に書き込まれた各パリティについての本来のHDD211における書き込み先LBAが、LBAテーブル160に登録される。
なお、このステップS75では、図14のステップS55と同様に、各LBAテーブル160には、同じLBAは重複して登録されない。
[ステップS76]書き込み先領域に含まれるすべてのストライプについてステップS63からステップS76までの処理が実行された場合に、書き込み処理が終了する。
[ステップS76]書き込み先領域に含まれるすべてのストライプについてステップS63からステップS76までの処理が実行された場合に、書き込み処理が終了する。
以上の図12~図15において説明したアクセス制御処理によれば、RAID制御部130は、消費電力を低減させつつ、データを冗長化することができる。
また、停止中のHDD211に書き込むべきデータの一時記憶領域を、不揮発性記憶領域であるホットスペアのHDD212とすることで、例えばストレージシステムが異常停止した後に再起動した場合でも、一時記憶領域のデータが消去されずに保持される。このため、RAID制御部130は、データの冗長性を保ったまま、RAIDグループの運用を継続できる。なお、再起動時の処理については、後に詳しく説明する。
また、停止中のHDD211に書き込むべきデータの一時記憶領域を、不揮発性記憶領域であるホットスペアのHDD212とすることで、例えばストレージシステムが異常停止した後に再起動した場合でも、一時記憶領域のデータが消去されずに保持される。このため、RAID制御部130は、データの冗長性を保ったまま、RAIDグループの運用を継続できる。なお、再起動時の処理については、後に詳しく説明する。
これとともに、例えば、一時記憶領域をRAMとした場合と比較して、安価に大容量の記憶領域を一時記憶領域として確保できる。
次に、図16は、ホットスペアのHDDからの書き戻し処理の例を示すフローチャートである。この図16の処理は、例えば、図13のステップS33でRAID制御部130が書き戻しの開始を要求した際に実行される。あるいは、図16の処理は、例えば業務時間外など、他の任意のタイミングで実行されてもよい。
次に、図16は、ホットスペアのHDDからの書き戻し処理の例を示すフローチャートである。この図16の処理は、例えば、図13のステップS33でRAID制御部130が書き戻しの開始を要求した際に実行される。あるいは、図16の処理は、例えば業務時間外など、他の任意のタイミングで実行されてもよい。
[ステップS91]書き戻し制御部140は、ディスク管理テーブル180に登録された停止ディスク番号が示す、停止中のHDD211に対して、磁気ディスクを回転させるように指示するためのコマンドを送信する。これにより、停止中の各HDD211において、磁気ディスクの回転が開始される。
[ステップS92]書き戻し制御部140は、テーブル管理情報170に登録されたテーブル番号が示すデータテーブル220を特定する。
[ステップS93]書き戻し制御部140は、ステップS92で特定されたデータテーブル220から、ディスク番号を読み出し、読み出したディスク番号に対応するLBAテーブル160を参照する。書き戻し制御部140は、参照したLBAテーブル160に、ステップS92で特定されたデータテーブル220に登録されている書き込み先LBAが登録されているかを判定する。
[ステップS93]書き戻し制御部140は、ステップS92で特定されたデータテーブル220から、ディスク番号を読み出し、読み出したディスク番号に対応するLBAテーブル160を参照する。書き戻し制御部140は、参照したLBAテーブル160に、ステップS92で特定されたデータテーブル220に登録されている書き込み先LBAが登録されているかを判定する。
書き戻し制御部140は、書き込み先LBAが登録されている場合には、ステップS94の書き戻し処理を実行する。一方、書き込み先LBAが登録されていない場合とは、そのLBAについての最新のデータが本来のHDD211に登録済みであることを示す。この場合、書き戻し制御部140は、ステップS92で特定されたデータテーブル220に登録されている書き込みデータの書き戻しを行わずに、ステップS96の処理を実行する。
なお、後者のケースとしては、ホットスペアのHDD212に登録されていた最新データが本来のHDD211に書き戻し済みの場合と、書き戻し処理中にそのLBAに対する新たなデータがホストから送信されて本来のHDD211に書き込まれた場合(図13のステップS37~S39が実行された場合)とがある。
[ステップS94]書き戻し制御部140は、ステップS92で特定されたデータテーブル220に登録されたディスク番号および書き込み先LBAが示す位置へ、このデータテーブル220に登録されている最新データを転送して書き込む。
[ステップS95]書き戻し制御部140は、ステップS93で参照したLBAテーブル160から、ステップS92で特定されたデータテーブル220に登録された書き込み先LBAを削除する。
[ステップS96]書き戻し制御部140は、テーブル管理情報170に登録されたテーブル番号を「1」だけデクリメントする。
[ステップS97]書き戻し制御部140は、デクリメント後のテーブル番号が「1」以上の場合には、ステップS92に戻り、1つ前に登録されたデータテーブル220を参照しながらステップS92以降の処理を実行する。ステップS92~S97の処理が繰り返されることで、ホットスペアのHDD212に登録されたデータテーブル220が降順に(すなわち、登録順とは逆の順序で)参照され、同一HDDの同一LBAに対応する最新データのみが、動作状態に遷移した本来のHDD211に書き戻される。そして、書き戻し制御部140は、ステップS96でのデクリメント後のテーブル番号が「0」になった場合に、ステップS98の処理を実行する。
[ステップS97]書き戻し制御部140は、デクリメント後のテーブル番号が「1」以上の場合には、ステップS92に戻り、1つ前に登録されたデータテーブル220を参照しながらステップS92以降の処理を実行する。ステップS92~S97の処理が繰り返されることで、ホットスペアのHDD212に登録されたデータテーブル220が降順に(すなわち、登録順とは逆の順序で)参照され、同一HDDの同一LBAに対応する最新データのみが、動作状態に遷移した本来のHDD211に書き戻される。そして、書き戻し制御部140は、ステップS96でのデクリメント後のテーブル番号が「0」になった場合に、ステップS98の処理を実行する。
[ステップS98]書き戻し制御部140は、書き戻しが完了したHDD211に対して、磁気ディスクの回転を停止するように指示するためのコマンドを送信する。これにより、ステップS91で動作状態に遷移した各HDD211は、再度停止状態に遷移する。
以上の図16の処理によれば、書き戻し制御部140は、ホットスペアのHDD212に一時的に書き込んだデータを、動作を停止させていた、本来書き込むべきHDD211に書き戻すことができる。
また、前述のように、本実施の形態のRAID制御部130は、同一HDDの同一LBAに対して複数回データの書き込みが発生した場合でも、その都度新たなデータテーブル220を作成して、ホットスペアのHDD212に追記する。これにより、RAID制御部130は、ホストからデータの書き込み要求を受けたときに、同一HDDの同一LBAについての古いデータが登録されたデータテーブル220を検索する必要がなくなる。これにより、ホストからの書き込み要求に対する応答時間を短縮できる。
一方、書き戻し制御部140は、LBAテーブル160を利用することで、同一HDDの同一LBAに対して複数回データの書き込みが発生した場合でも、最新のデータのみを書き戻すことができる。また、LBAテーブル160が不揮発性メモリ113ではなくRAM112に格納されることで、書き戻し制御部140はLBAテーブル160の読み取りおよび更新を高速に行うことができ、その結果、書き戻し処理に要する時間を短縮することができる。
次に、停止状態にあるアレイコントローラ108の電源をオンにしてアレイコントローラ108が起動する際の処理について説明する。この起動処理は、例えば、アレイコントローラ108の電源をオフにしてアレイコントローラ108を正常に停止させた後、アレイコントローラ108を再度起動させた場合に実行される。あるいは、ストレージシステムが何らかの異常の発生によって停止した後、ストレージシステムが再起動した場合に実行されてもよい。
以下、アレイコントローラ108の起動処理として、2つの処理例を示す。
まず、図17は、アレイコントローラの第1の起動処理例を示すフローチャートである。
まず、図17は、アレイコントローラの第1の起動処理例を示すフローチャートである。
LBAテーブル160はRAM112に格納されているため、アレイコントローラ108の電源がオフになると、LBAテーブル160の内容は消失する。図17に示す第1の起動処理例は、消失したLBAテーブル160の内容を再構築して、ホットスペアのHDD212に一時的に書き込まれたデータを継続して使用可能にするものである。
[ステップS111]復旧制御部150は、不揮発性メモリ113内のテーブル管理情報170に登録されているテーブル番号を、所定の記憶領域(例えば、不揮発性メモリ113上の別の領域)に退避させる。
[ステップS112]復旧制御部150は、ディスク管理テーブル180に登録された停止ディスク番号が示すHDD211にそれぞれ対応するLBAテーブル160を、RAM112に登録する。なお、このステップS112の段階では、登録された各LBAテーブル160の中には何も登録されていない。
以下のステップS112~S116では、テーブル管理情報170がLBAテーブル160の再構築のために使用される。
[ステップS113]復旧制御部150は、テーブル管理情報170に登録されたテーブル番号が示すデータテーブル220を特定する。
[ステップS113]復旧制御部150は、テーブル管理情報170に登録されたテーブル番号が示すデータテーブル220を特定する。
[ステップS114]復旧制御部150は、ステップS113で特定されたデータテーブル220から、ディスク番号を読み出し、読み出したディスク番号に対応するLBAテーブル160を参照する。復旧制御部150は、参照したLBAテーブル160に、ステップS113で特定されたデータテーブル220に登録されている書き込み先LBAを登録する。なお、復旧制御部150は、データテーブル220から読み出した書き込み先LBAがLBAテーブル160にすでに登録されていた場合には、書き込み先LBAの登録をスキップする。
[ステップS115]復旧制御部150は、テーブル管理情報170に登録されたテーブル番号を「1」だけデクリメントする。
[ステップS116]復旧制御部150は、デクリメント後のテーブル番号が「1」以上の場合には、ステップS113に戻り、1つ前に登録されたデータテーブル220を参照しながらステップS113以降の処理を実行する。ステップS113~S116の処理が繰り返されることで、ホットスペアのHDD212に登録されたデータテーブル220が降順に参照され、参照されたデータテーブル220に基づいてLBAテーブル160が再構築される。そして、復旧制御部150は、ステップS115でのデクリメント後のテーブル番号が「0」になった場合に、ステップS117の処理を実行する。
[ステップS116]復旧制御部150は、デクリメント後のテーブル番号が「1」以上の場合には、ステップS113に戻り、1つ前に登録されたデータテーブル220を参照しながらステップS113以降の処理を実行する。ステップS113~S116の処理が繰り返されることで、ホットスペアのHDD212に登録されたデータテーブル220が降順に参照され、参照されたデータテーブル220に基づいてLBAテーブル160が再構築される。そして、復旧制御部150は、ステップS115でのデクリメント後のテーブル番号が「0」になった場合に、ステップS117の処理を実行する。
[ステップS117]復旧制御部150は、ステップS111で所定記憶領域に退避させたテーブル番号を、テーブル管理情報170に再登録する。
以上の第1の起動処理例によれば、LBAテーブル160およびテーブル管理情報170を、アレイコントローラ108の電源がオフになる直前の状態に復旧させることができる。これにより、アレイコントローラ108は、図12、図13に示したアクセス制御処理や、図16に示した書き戻し処理を実行可能な状態になる。
以上の第1の起動処理例によれば、LBAテーブル160およびテーブル管理情報170を、アレイコントローラ108の電源がオフになる直前の状態に復旧させることができる。これにより、アレイコントローラ108は、図12、図13に示したアクセス制御処理や、図16に示した書き戻し処理を実行可能な状態になる。
また、上記の第1の起動処理例では、次の図18に示す第2の起動処理例のように、ホットスペアのHDD212から本来のHDD211へのデータの書き戻しが実行されない分だけ、起動処理に要する時間が短縮される。
図18は、アレイコントローラの第2の起動処理例を示すフローチャートである。
図18に示す第2の起動処理例は、不揮発性メモリ113に残された情報を用いて、ホットスペアのHDD212に一時的に書き込まれたデータを本来のHDD211に書き戻し、一時記憶領域およびその管理に利用される情報を初期化するものである。この第2の起動処理例では、アレイコントローラ108は、電源オフによって記憶内容が失われたLBAテーブル160を、書き戻し時に使用される本来の目的とは別の目的で使用することで、一時記憶領域の初期化を可能にする。
図18に示す第2の起動処理例は、不揮発性メモリ113に残された情報を用いて、ホットスペアのHDD212に一時的に書き込まれたデータを本来のHDD211に書き戻し、一時記憶領域およびその管理に利用される情報を初期化するものである。この第2の起動処理例では、アレイコントローラ108は、電源オフによって記憶内容が失われたLBAテーブル160を、書き戻し時に使用される本来の目的とは別の目的で使用することで、一時記憶領域の初期化を可能にする。
[ステップS121]復旧制御部150は、ディスク管理テーブル180に登録された停止ディスク番号が示すHDD211にそれぞれ対応するLBAテーブル160を、RAM112に登録する。なお、このステップS121の段階では、登録された各LBAテーブル160の中には何も登録されていない。
[ステップS122]復旧制御部150は、テーブル管理情報170に登録されたテーブル番号が示すデータテーブル220を特定する。
[ステップS123]復旧制御部150は、ステップS122で特定されたデータテーブル220からディスク番号を読み出し、読み出したディスク番号に対応するLBAテーブル160を参照する。復旧制御部150は、参照したLBAテーブル160に、ステップS122で特定されたデータテーブル220に登録されている書き込み先LBAが登録されているかを判定する。
[ステップS123]復旧制御部150は、ステップS122で特定されたデータテーブル220からディスク番号を読み出し、読み出したディスク番号に対応するLBAテーブル160を参照する。復旧制御部150は、参照したLBAテーブル160に、ステップS122で特定されたデータテーブル220に登録されている書き込み先LBAが登録されているかを判定する。
復旧制御部150は、書き込み先LBAが登録されていない場合には、ステップS124の処理を実行して、書き戻し制御部140に書き戻し処理を実行させる。一方、復旧制御部150は、書き込み先LBAが登録されていた場合には、書き戻し処理を実行させずに、ステップS127の処理を実行する。
すなわち、図18の第2の起動処理例では、LBAテーブル160に書き込み先LBAが登録されている場合、その書き込み先LBAに対応するHDD211の領域にはすでに最新のデータが書き戻し済みであって、書き戻しを実行する必要がないことを示す。
[ステップS124]復旧制御部150は、ステップS122で特定されたデータテーブル220のテーブル番号を書き戻し制御部140に通知して、書き戻しの実行を指示する。書き戻し制御部140は、通知されたテーブル番号が示すデータテーブル220に登録されたディスク番号および書き込み先LBAが示す位置へ、このデータテーブル220に登録されている最新データを転送して書き込む。
[ステップS125]復旧制御部150は、ステップS123で参照したLBAテーブル160に、ステップS122で特定されたデータテーブル220に登録された書き込み先LBAを登録する。
[ステップS126]復旧制御部150は、テーブル管理情報170に登録されたテーブル番号を「1」だけデクリメントする。
[ステップS127]復旧制御部150は、デクリメント後のテーブル番号が「1」以上の場合には、ステップS122に戻り、1つ前に登録されたデータテーブル220を参照しながらステップS122以降の処理を実行する。ステップS122~S127の処理が繰り返されることで、ホットスペアのHDD212に登録されたデータテーブル220が降順に参照され、同一HDDの同一LBAに対応する最新データのみが、本来の書き込み先であるHDD211に書き戻される。
[ステップS127]復旧制御部150は、デクリメント後のテーブル番号が「1」以上の場合には、ステップS122に戻り、1つ前に登録されたデータテーブル220を参照しながらステップS122以降の処理を実行する。ステップS122~S127の処理が繰り返されることで、ホットスペアのHDD212に登録されたデータテーブル220が降順に参照され、同一HDDの同一LBAに対応する最新データのみが、本来の書き込み先であるHDD211に書き戻される。
そして、復旧制御部150は、ステップS127でのデクリメント後のテーブル番号が「0」になった場合に、ステップS128の処理を実行する。この状態では、テーブル管理情報170には初期値「0」が登録されているので、HDD212に登録されていたデータテーブル220は無効化される。
[ステップS128]復旧制御部150は、すべてのLBAテーブル160に登録されている書き込み先LBAを消去して、各LBAテーブル160を初期化する。
以上の第2の起動処理例が実行されることで、アレイコントローラ108は、図12、図13に示したアクセス制御処理を実行可能な状態になる。
以上の第2の起動処理例が実行されることで、アレイコントローラ108は、図12、図13に示したアクセス制御処理を実行可能な状態になる。
次に、RAID制御部130によるアクセス制御処理が実行されている状態において、いずれかのHDDが故障した場合の復旧処理について説明する。まず、図19は、ホットスペアのHDDが故障した場合の復旧処理の例を示すフローチャートである。
[ステップS141]復旧制御部150は、ディスク管理テーブル180に登録された停止ディスク番号が示す、停止中のHDD211に対して、磁気ディスクを回転させるように指示するためのコマンドを送信する。これにより、停止中の各HDD211において、磁気ディスクの回転が開始され、停止中の各HDD211が動作状態に遷移する。
[ステップS142]復旧制御部150は、RAIDグループを構成するHDD211のうち、ステップS141で動作状態になったHDD211を除く他のHDD211から読み出したデータを基に、動作状態になったHDD211に書き込むべきデータをリビルドする。そして、復旧制御部150は、リビルドされたデータを動作状態になったHDD211に書き込む。
例えば、図4に示すRAIDグループ#01においては、HDD210bが停止状態から動作状態に遷移し、HDD210aに格納されたデータがHDD210bにコピーされる。
また、図4に示すRAIDグループ#02においては、HDD210eが停止状態から動作状態に遷移する。そして、HDD210c~210eにおける同一ストライプ番号の領域ごとに、HDD210c,210dから読み出したデータを基にHDD210eに書き込むべきデータが計算され、算出されたデータがHDD210eに書き込まれる。例えば図5において、分割データDa,Dbを基にパリティPabが計算され、パリティPabがHDD210eに書き込まれる。また、分割データDcとパリティPcdとを基に分割データDdが計算され、分割データDdがHDD210eに書き込まれる。
また、図6に示すRAIDグループ#11においては、HDD210d,210eが停止状態から動作状態に遷移する。そして、HDD210a~210eにおける同一ストライプ番号の領域ごとに、HDD210a~210cから読み出したデータを基にHDD210d,210eに書き込むべきデータが計算され、算出されたデータがHDD210d,210eに書き込まれる。
例えば図7において、分割データDa~Dcを基にP-パリティPabcおよびQ-パリティQabcが計算され、P-パリティPabcがHDD210dに、Q-パリティQabcがHDD210eにそれぞれ書き込まれる。また、分割データDd,DeおよびP-パリティPdefを基にQ-パリティQdefおよび分割データDfが計算され、Q-パリティQdefがHDD210dに、分割データDfがHDD210eにそれぞれ書き込まれる。
また、図8に示すRAIDグループ#21においては、HDD210b,210d,210fが停止状態から動作状態に遷移する。そして、HDD210aのデータがHDD210bに、HDD210cのデータがHDD210dに、HDD210eのデータがHDD210fに、それぞれコピーされる。
[ステップS143]復旧制御部150は、ホットスペアとして使用可能なHDDが他に存在するかを判定する。復旧制御部150は、ホットスペアとして使用可能なHDDがある場合には、そのHDDのディスク番号をディスク管理テーブル180にHSディスク番号として登録し、そのHDDをホットスペアのHDD212として組み込む。そして、復旧制御部150は、ステップS144の処理を実行する。一方、復旧制御部150は、ホットスペアとして使用可能なHDDがない場合には、ステップS145の処理を実行する。
[ステップS144]復旧制御部150は、RAID制御部130に、省電力状態でのアクセス制御を再開させる。省電力状態でのアクセス制御とは、図12、図13に示したように、RAIDグループを構成する所定のHDDを停止状態にし、ホットスペアのHDD212を一時的な書き込み領域として用いて実行されるアクセス制御である。
[ステップS145]復旧制御部150は、RAID制御部130に、非省電力状態でのアクセス制御を開始させる。非省電力状態でのアクセス制御とは、各RAIDグループを構成するすべてのHDDを動作状態にして、RAIDレベルに応じたアクセス制御を行う処理である。
以上の図19の処理により、アレイコントローラ108は、一時的な書き込み領域として使用していたホットスペアのHDD212が故障した場合でも、各RAIDグループに対応する論理ボリュームに対するホストからのアクセス要求に応じたアクセス制御を再開することができる。
図20は、RAIDグループを構成するHDDのうち動作中のHDDが故障した場合の復旧処理の例を示すフローチャートである。
[ステップS151]復旧制御部150は、ディスク管理テーブル180に登録された停止ディスク番号が示す、停止中のHDD211に対して、磁気ディスクを回転させるように指示するためのコマンドを送信する。これにより、停止中の各HDD211において、磁気ディスクの回転が開始され、停止中の各HDD211が動作状態に遷移する。
[ステップS151]復旧制御部150は、ディスク管理テーブル180に登録された停止ディスク番号が示す、停止中のHDD211に対して、磁気ディスクを回転させるように指示するためのコマンドを送信する。これにより、停止中の各HDD211において、磁気ディスクの回転が開始され、停止中の各HDD211が動作状態に遷移する。
[ステップS152]復旧制御部150は、ホットスペアのHDD212から、動作状態に遷移したHDD211への書き戻しを、書き戻し制御部140に実行させる。
[ステップS153]復旧制御部150は、故障したHDD211の代わりに、書き戻しが完了したホットスペアのHDD212を組み込む。具体的には、復旧制御部150は、ホットスペアとして使用していたHDD212のディスク番号を、RAID管理テーブル190において故障したHDD211のディスク番号が登録されていた欄に、上書きして登録する。また、復旧制御部150は、ホットスペアとして使用していたHDD212のディスク番号を、ディスク管理テーブル180のHSディスク番号から削除する。これにより、ホットスペアとして使用されていたHDD212は、RAIDグループを構成するHDD211に変更される。
[ステップS153]復旧制御部150は、故障したHDD211の代わりに、書き戻しが完了したホットスペアのHDD212を組み込む。具体的には、復旧制御部150は、ホットスペアとして使用していたHDD212のディスク番号を、RAID管理テーブル190において故障したHDD211のディスク番号が登録されていた欄に、上書きして登録する。また、復旧制御部150は、ホットスペアとして使用していたHDD212のディスク番号を、ディスク管理テーブル180のHSディスク番号から削除する。これにより、ホットスペアとして使用されていたHDD212は、RAIDグループを構成するHDD211に変更される。
さらに、復旧制御部150は、故障したHDD211が属していたRAIDグループにおいて、新たに組み込まれたHDD211に書き込むデータを、他のHDD211に記録されたデータを基にリビルドする。そして、復旧制御部150は、リビルドされたデータを、新たに組み込まれたHDD211に書き込む。
[ステップS154]復旧制御部150は、ホットスペアとして使用可能なHDDが他に存在するかを判定する。復旧制御部150は、ホットスペアとして使用可能なHDDがある場合には、そのHDDのディスク番号をディスク管理テーブル180にHSディスク番号として登録し、そのHDDをホットスペアのHDD212として組み込む。そして、復旧制御部150は、ステップS155の処理を実行する。一方、復旧制御部150は、ホットスペアとして使用可能なHDDがない場合には、ステップS156の処理を実行する。
[ステップS155]復旧制御部150は、RAID制御部130に、省電力状態でのアクセス制御を再開させる。
[ステップS156]復旧制御部150は、RAID制御部130に、非省電力状態でのアクセス制御を開始させる。
[ステップS156]復旧制御部150は、RAID制御部130に、非省電力状態でのアクセス制御を開始させる。
以上の図20の処理により、アレイコントローラ108は、RAIDグループを構成するHDDのうち動作中のHDDが故障した場合でも、各RAIDグループに対応する論理ボリュームに対するホストからのアクセス要求に応じたアクセス制御を再開することができる。
図21は、停止中のHDDが故障した場合の復旧処理の例を示すフローチャートである。
[ステップS161]復旧制御部150は、ディスク管理テーブル180に登録された停止ディスク番号が示す、停止中のHDD211のうち、故障したHDD211以外のHDD211に対して、磁気ディスクを回転させるように指示するためのコマンドを送信する。これにより、コマンドを受信した各HDD211において、磁気ディスクの回転が開始され、これらの各HDD211が動作状態に遷移する。
[ステップS161]復旧制御部150は、ディスク管理テーブル180に登録された停止ディスク番号が示す、停止中のHDD211のうち、故障したHDD211以外のHDD211に対して、磁気ディスクを回転させるように指示するためのコマンドを送信する。これにより、コマンドを受信した各HDD211において、磁気ディスクの回転が開始され、これらの各HDD211が動作状態に遷移する。
[ステップS162]復旧制御部150は、ホットスペアのHDD212から、ステップS161で動作状態に遷移したHDD211への書き戻しを、書き戻し制御部140に実行させる。この書き戻し処理は、図16の処理において、故障したHDD211を書き込み先とする書き戻しをスキップすることで実現される。
[ステップS163]復旧制御部150は、故障したHDD211の代わりに、ステップS162での書き戻しが完了したホットスペアのHDD212を組み込む。これにより、ホットスペアとして使用されていたHDD212は、RAIDグループを構成するHDD211に変更される。
さらに、復旧制御部150は、故障したHDD211が属していたRAIDグループにおいて、新たに組み込まれたHDD211に書き込むデータを、他のHDD211に記録されたデータを基にリビルドする。そして、復旧制御部150は、リビルドされたデータを、新たに組み込まれたHDD211に書き込む。
[ステップS164]復旧制御部150は、ホットスペアとして使用可能なHDDが他に存在するかを判定する。復旧制御部150は、ホットスペアとして使用可能なHDDがある場合には、そのHDDのディスク番号をディスク管理テーブル180にHSディスク番号として登録し、そのHDDをホットスペアのHDD212として組み込む。そして、復旧制御部150は、ステップS165の処理を実行する。一方、復旧制御部150は、ホットスペアとして使用可能なHDDがない場合には、ステップS166の処理を実行する。
[ステップS165]復旧制御部150は、RAID制御部130に、省電力状態でのアクセス制御を再開させる。
[ステップS166]復旧制御部150は、RAID制御部130に、非省電力状態でのアクセス制御を開始させる。
[ステップS166]復旧制御部150は、RAID制御部130に、非省電力状態でのアクセス制御を開始させる。
以上の図21の処理により、アレイコントローラ108は、RAIDグループを構成するHDDのうち停止中のHDDが故障した場合でも、各RAIDグループに対応する論理ボリュームに対するホストからのアクセス要求に応じたアクセス制御を再開することができる。
なお、上記の各実施の形態に示したストレージ制御装置、情報処理装置、およびこの情報処理装置内のアレイコントローラの各処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD-RAM、CD-ROM、CD-R/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
10 ストレージ制御装置
11 動作制御部
12 アクセス制御部
21~26 記憶装置
31,32 論理記憶領域
11 動作制御部
12 アクセス制御部
21~26 記憶装置
31,32 論理記憶領域
Claims (20)
- それぞれ複数の記憶装置の記憶領域で構成される1つまたは複数の論理記憶領域ごとにデータが異なる記憶装置に冗長化されるように、前記各論理記憶領域へのデータの書き込みを制御するストレージ制御装置において、
前記各論理記憶領域を構成する記憶装置のうち、複数の記憶装置の動作を停止させる動作制御部と、
前記各論理記憶領域を構成する記憶装置のうち、停止中の記憶装置へのデータの書き込みが要求されたとき、書き込みが要求された記憶装置の代わりに、前記各論理記憶領域を構成する記憶装置とは別の予備用記憶装置にデータを書き込み、前記各論理記憶領域を構成する記憶装置のうち動作中の記憶装置と前記予備用記憶装置とによって、前記各論理記憶領域におけるデータの冗長性が保たれるように制御するアクセス制御部と、
を有することを特徴とするストレージ制御装置。 - 前記各論理記憶領域を構成する記憶装置のうち、停止中の記憶装置の動作を開始させ、前記予備用記憶装置に格納されたデータごとに、前記各論理記憶領域を構成するいずれかの記憶装置における書き込み位置が登録された書き込み位置情報に基づいて、前記予備用記憶装置に格納されたデータを、対応する前記書き込み位置が示す記憶領域に書き戻す書き戻し制御部をさらに有することを特徴とする請求の範囲第1項記載のストレージ制御装置。
- 前記アクセス制御部は、前記予備用記憶装置に格納されたデータを、対応する前記書き込み位置が示す記憶領域に書き戻す処理が実行されている間に、いずれかの前記論理記憶領域へのデータの書き込みが要求された場合には、書き込みが要求された前記論理記憶領域を構成する記憶装置へデータを書き込むとともに、書き込み先の記憶装置に書き戻すべきデータが前記予備用記憶装置に格納されている場合には、当該データを破棄することを特徴とする請求の範囲第2項記載のストレージ制御装置。
- 前記アクセス制御部は、
前記各論理記憶領域を構成する記憶装置のうち、停止中の記憶装置へのデータの書き込みが要求されたとき、当該停止中の記憶装置への書き込み位置を示す前記書き込み位置情報を、書き込みが要求されたデータに対応付けて前記予備用記憶装置に書き込むとともに、所定の記憶領域にも前記書き込み位置情報を登録し、
前記各論理記憶領域を構成する記憶装置のうち、停止中の同じ記憶装置内の同じアドレスへのデータの書き込みが要求されるたびに、書き込みが要求されたデータとこれに対応付けた前記書き込み位置情報とを前記予備用記憶装置に追記し、
前記書き戻し制御部は、
前記予備用記憶装置に書き込まれたデータおよびこれに対応付けられた前記書き込み位置情報を、前記予備用記憶装置への書き込み順とは逆の順序で読み出し、
読み出した前記書き込み位置情報が前記所定の記憶領域にも登録されている場合には、当該書き込み位置情報に対応付けられたデータを当該書き込み位置情報が示す記憶装置の記憶領域に書き戻すとともに、当該書き込み位置情報を前記所定の記憶領域から削除し、
読み出した前記書き込み位置情報が前記所定の記憶領域に登録されていない場合には、当該書き込み位置情報に対応付けられたデータを破棄する、
ことを特徴とする請求の範囲第2項記載のストレージ制御装置。 - 前記アクセス制御部は、前記予備用記憶装置に格納されたデータを対応する前記書き込み位置が示す記憶領域に書き戻す処理が実行されている間に、いずれかの前記論理記憶領域へのデータの書き込みが要求された場合には、書き込みが要求された前記論理記憶領域を構成する記憶装置へデータを書き込むとともに、当該データの書き込み先を示す前記書き込み位置情報が前記所定の記憶領域に登録されている場合には、当該書き込み位置情報を前記所定の記憶領域から削除することを特徴とする請求の範囲第4項記載のストレージ制御装置。
- 前記所定の記憶領域は揮発性の記憶領域であり、
前記アクセス制御部は、前記所定の記憶領域に登録された前記書き込み位置情報が失われたとき、前記予備用記憶装置からデータに対応付けられた前記書き込み位置情報を読み出して、前記所定の記憶領域に再登録する、
ことを特徴とする請求の範囲第4項または第5項記載のストレージ制御装置。 - 前記所定の記憶領域は揮発性の記憶領域であり、
前記アクセス制御部は、
前記所定の記憶領域に登録された前記書き込み位置情報が失われたとき、前記予備用記憶装置に書き込まれたデータおよびこれに対応付けられた前記書き込み位置情報を、前記予備用記憶装置への書き込み順とは逆の順序で読み出し、
読み出した前記書き込み位置情報が前記所定の記憶領域に登録されていない場合には、当該書き込み位置情報に対応付けられたデータを当該書き込み位置情報が示す記憶装置の記憶領域に書き戻すとともに、当該書き込み位置情報を前記所定の記憶領域に登録し、
読み出した前記書き込み位置情報が前記所定の記憶領域にも登録されている場合には、当該書き込み位置情報に対応付けられたデータを破棄する、
ことを特徴とする請求の範囲第4項または第5項記載のストレージ制御装置。 - 前記書き戻し制御部は、前記予備用記憶装置の残容量が所定のしきい値より小さくなったとき、前記予備用記憶装置に格納されたデータを、対応する前記書き込み位置が示す記憶領域に書き戻すことを特徴とする請求の範囲第2項~第7項のいずれか1項に記載のストレージ制御装置。
- 前記アクセス制御部は、いずれかの前記論理記憶領域に格納されたデータの読み出しが要求されたとき、読み出しが要求された論理記憶領域を構成する記憶装置のうち、動作中の記憶装置からデータを読み出すことを特徴とする請求の範囲第1項~第8項のいずれか1項に記載のストレージ制御装置。
- 前記アクセス制御部は、前記予備用記憶装置が故障したとき、停止中の記憶装置の動作を開始させ、動作を開始させた記憶装置と同じ前記論理記憶領域を構成する他の記憶装置に格納されたデータを基に、前記予備用記憶装置に格納されていたデータをリビルドし、リビルドされたデータを、動作を開始させた記憶装置に格納することを特徴とする請求の範囲第1項~第9項のいずれか1項に記載のストレージ制御装置。
- それぞれ複数の記憶装置の記憶領域で構成される1つまたは複数の論理記憶領域ごとにデータが異なる記憶装置に冗長化されるように、前記各論理記憶領域へのデータの書き込みを制御するストレージ制御装置におけるストレージ制御方法であって、
前記各論理記憶領域を構成する記憶装置のうち、複数の記憶装置の動作を停止させ、
前記各論理記憶領域を構成する記憶装置のうち、停止中の記憶装置へのデータの書き込みが要求されたとき、書き込みが要求された記憶装置の代わりに、前記各論理記憶領域を構成する記憶装置とは別の予備用記憶装置にデータを書き込み、前記各論理記憶領域を構成する記憶装置のうち動作中の記憶装置と前記予備用記憶装置とによって、前記各論理記憶領域におけるデータの冗長性が保たれるように制御する、
ことを特徴とするストレージ制御方法。 - 前記各論理記憶領域を構成する記憶装置のうち、停止中の記憶装置の動作を開始させ、
前記予備用記憶装置に格納されたデータごとに、前記各論理記憶領域を構成するいずれかの記憶装置における書き込み位置が登録された書き込み位置情報に基づいて、前記予備用記憶装置に格納されたデータを、対応する前記書き込み位置が示す記憶領域に書き戻す、
処理をさらに含むことを特徴とする請求の範囲第11項記載のストレージ制御方法。 - 前記予備用記憶装置に格納されたデータを、対応する前記書き込み位置が示す記憶領域に書き戻す処理が実行されている間に、いずれかの前記論理記憶領域へのデータの書き込みが要求された場合には、書き込みが要求された前記論理記憶領域を構成する記憶装置へデータを書き込むとともに、書き込み先の記憶装置に書き戻すべきデータが前記予備用記憶装置に格納されている場合には、当該データを破棄することを特徴とする請求の範囲第12項記載のストレージ制御方法。
- 前記予備用記憶装置にデータを書き込む処理は、
前記各論理記憶領域を構成する記憶装置のうち、停止中の記憶装置へのデータの書き込みが要求されたとき、当該停止中の記憶装置への書き込み位置を示す前記書き込み位置情報を、書き込みが要求されたデータに対応付けて前記予備用記憶装置に書き込むとともに、所定の記憶領域にも前記書き込み位置情報を登録し、
前記各論理記憶領域を構成する記憶装置のうち、停止中の同じ記憶装置内の同じアドレスへのデータの書き込みが要求されるたびに、書き込みが要求されたデータとこれに対応付けた前記書き込み位置情報とを前記予備用記憶装置に追記する、
処理を含み、
前記書き戻し処理は、
前記予備用記憶装置に書き込まれたデータおよびこれに対応付けられた前記書き込み位置情報を、前記予備用記憶装置への書き込み順とは逆の順序で読み出し、
読み出した前記書き込み位置情報が前記所定の記憶領域にも登録されている場合には、当該書き込み位置情報に対応付けられたデータを当該書き込み位置情報が示す記憶装置の記憶領域に書き戻すとともに、当該書き込み位置情報を前記所定の記憶領域から削除し、
読み出した前記書き込み位置情報が前記所定の記憶領域に登録されていない場合には、当該書き込み位置情報に対応付けられたデータを破棄する、
処理を含むことを特徴とする請求の範囲第12項記載のストレージ制御方法。 - 前記予備用記憶装置に格納されたデータを対応する前記書き込み位置が示す記憶領域に書き戻す処理が実行されている間に、いずれかの前記論理記憶領域へのデータの書き込みが要求された場合には、書き込みが要求された前記論理記憶領域を構成する記憶装置へデータを書き込むとともに、当該データの書き込み先を示す前記書き込み位置情報が前記所定の記憶領域に登録されている場合には、当該書き込み位置情報を前記所定の記憶領域から削除することを特徴とする請求の範囲第14項記載のストレージ制御方法。
- 前記所定の記憶領域は揮発性の記憶領域であり、また、
前記所定の記憶領域に登録された前記書き込み位置情報が失われたとき、前記予備用記憶装置からデータに対応付けられた前記書き込み位置情報を読み出して、前記所定の記憶領域に再登録する、
処理をさらに含むことを特徴とする請求の範囲第14項または第15項記載のストレージ制御方法。 - 前記所定の記憶領域は揮発性の記憶領域であり、また、
前記所定の記憶領域に登録された前記書き込み位置情報が失われたとき、前記予備用記憶装置に書き込まれたデータおよびこれに対応付けられた前記書き込み位置情報を、前記予備用記憶装置への書き込み順とは逆の順序で読み出し、
読み出した前記書き込み位置情報が前記所定の記憶領域に登録されていない場合には、当該書き込み位置情報に対応付けられたデータを当該書き込み位置情報が示す記憶装置の記憶領域に書き戻すとともに、当該書き込み位置情報を前記所定の記憶領域に登録し、
読み出した前記書き込み位置情報が前記所定の記憶領域にも登録されている場合には、当該書き込み位置情報に対応付けられたデータを破棄する、
処理をさらに含むことを特徴とする請求の範囲第14項または第15項記載のストレージ制御方法。 - 前記書き戻し処理では、前記予備用記憶装置の残容量が所定のしきい値より小さくなったとき、前記予備用記憶装置に格納されたデータを、対応する前記書き込み位置が示す記憶領域に書き戻すことを特徴とする請求の範囲第12項~第17項のいずれか1項に記載のストレージ制御方法。
- いずれかの前記論理記憶領域に格納されたデータの読み出しが要求されたとき、読み出しが要求された論理記憶領域を構成する記憶装置のうち、動作中の記憶装置からデータを読み出す、
処理をさらに含むことを特徴とする請求の範囲第11項~第18項のいずれか1項に記載のストレージ制御方法。 - それぞれ複数の記憶装置の記憶領域で構成される1つまたは複数の論理記憶領域ごとにデータが異なる記憶装置に冗長化されるように、前記各論理記憶領域へのデータの書き込みを制御するためのストレージ制御プログラムにおいて、
コンピュータに、
前記各論理記憶領域を構成する記憶装置のうち、複数の記憶装置の動作を停止させ、
前記各論理記憶領域を構成する記憶装置のうち、停止中の記憶装置へのデータの書き込みが要求されたとき、書き込みが要求された記憶装置の代わりに、前記各論理記憶領域を構成する記憶装置とは別の予備用記憶装置にデータを書き込み、前記各論理記憶領域を構成する記憶装置のうち動作中の記憶装置と前記予備用記憶装置とによって、前記各論理記憶領域におけるデータの冗長性が保たれるように制御する、
処理を実行させることを特徴とするストレージ制御プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014522236A JP5843010B2 (ja) | 2012-06-25 | 2012-06-25 | ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム |
PCT/JP2012/066140 WO2014002160A1 (ja) | 2012-06-25 | 2012-06-25 | ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム |
US14/565,491 US20150095572A1 (en) | 2012-06-25 | 2014-12-10 | Storage control apparatus and storage control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/066140 WO2014002160A1 (ja) | 2012-06-25 | 2012-06-25 | ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/565,491 Continuation US20150095572A1 (en) | 2012-06-25 | 2014-12-10 | Storage control apparatus and storage control method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014002160A1 true WO2014002160A1 (ja) | 2014-01-03 |
Family
ID=49782396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/066140 WO2014002160A1 (ja) | 2012-06-25 | 2012-06-25 | ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150095572A1 (ja) |
JP (1) | JP5843010B2 (ja) |
WO (1) | WO2014002160A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140351510A1 (en) * | 2013-05-22 | 2014-11-27 | Asmedia Technology Inc. | Disk array system and data processing method |
JP2015176575A (ja) * | 2014-03-18 | 2015-10-05 | 富士通株式会社 | ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747177B2 (en) * | 2014-12-30 | 2017-08-29 | International Business Machines Corporation | Data storage system employing a hot spare to store and service accesses to data having lower associated wear |
US9836232B1 (en) * | 2015-09-30 | 2017-12-05 | Western Digital Technologies, Inc. | Data storage device and method for using secondary non-volatile memory for temporary metadata storage |
JP6233427B2 (ja) * | 2016-02-08 | 2017-11-22 | 日本電気株式会社 | 制御装置 |
JP6928247B2 (ja) * | 2017-09-11 | 2021-09-01 | 富士通株式会社 | ストレージ制御装置およびストレージ制御プログラム |
US11188231B2 (en) * | 2019-03-01 | 2021-11-30 | International Business Machines Corporation | Data placement on storage devices |
FR3100347B1 (fr) | 2019-09-04 | 2022-07-22 | St Microelectronics Rousset | Détection d'erreurs |
FR3100346B1 (fr) | 2019-09-04 | 2022-07-15 | St Microelectronics Rousset | Détection d'erreurs |
KR20230168390A (ko) * | 2022-06-07 | 2023-12-14 | 삼성전자주식회사 | 스토리지 장치 및 전자 시스템 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11184643A (ja) * | 1997-12-22 | 1999-07-09 | Nec Corp | ディスクアレイ装置の管理方法及びプログラムを記録した機械読み取り可能な記録媒体 |
JP2005099995A (ja) * | 2003-09-24 | 2005-04-14 | Fujitsu Ltd | 磁気ディスク装置のディスク共有方法及びシステム |
WO2006098036A1 (ja) * | 2005-03-17 | 2006-09-21 | Fujitsu Limited | 省電力制御装置、省電力制御方法および省電力制御プログラム |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432922A (en) * | 1993-08-23 | 1995-07-11 | International Business Machines Corporation | Digital storage system and method having alternating deferred updating of mirrored storage disks |
DE69418984T2 (de) * | 1993-11-30 | 2000-01-27 | Hitachi, Ltd. | Speicherplattenanordnung mit auf einer Vielzahl von Leiterplatten verteilten Speicherplatten, die bei einer Entfernung eines Teils der Leiterplatten zugänglich bleiben |
JPH1083614A (ja) * | 1996-07-18 | 1998-03-31 | Hitachi Ltd | 磁気ディスク装置の制御方法およびディスクアレイ装置の制御方法ならびにディスクアレイ装置 |
DE69727173T2 (de) * | 1996-07-18 | 2004-11-18 | Hitachi, Ltd. | Magnetplattenspeicheranordnungssteuerverfahren, Plattennetzanordnungssteuerverfahren und Plattennetzanordnung |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US6732232B2 (en) * | 2001-11-26 | 2004-05-04 | International Business Machines Corporation | Adaptive resource allocation in multi-drive arrays |
US7406487B1 (en) * | 2003-08-29 | 2008-07-29 | Symantec Operating Corporation | Method and system for performing periodic replication using a log |
JP4518541B2 (ja) * | 2004-01-16 | 2010-08-04 | 株式会社日立製作所 | ディスクアレイ装置及びディスクアレイ装置の制御方法 |
US7343519B2 (en) * | 2004-05-03 | 2008-03-11 | Lsi Logic Corporation | Disk drive power cycle screening method and apparatus for data storage system |
US7363532B2 (en) * | 2004-08-20 | 2008-04-22 | Dell Products L.P. | System and method for recovering from a drive failure in a storage array |
WO2006080059A1 (ja) * | 2005-01-26 | 2006-08-03 | Fujitsu Limited | ディスク選択方法、ディスク選択プログラム、raid制御装置、raidシステム及びそのディスク装置 |
JP2006236001A (ja) * | 2005-02-24 | 2006-09-07 | Nec Corp | ディスクアレイ装置 |
JPWO2006123416A1 (ja) * | 2005-05-19 | 2008-12-25 | 富士通株式会社 | ディスク故障復旧方法及びディスクアレイ装置 |
JP4788528B2 (ja) * | 2005-09-22 | 2011-10-05 | 富士通株式会社 | ディスク制御装置、ディスク制御方法、ディスク制御プログラム |
US7386666B1 (en) * | 2005-09-30 | 2008-06-10 | Emc Corporation | Global sparing of storage capacity across multiple storage arrays |
JP2008071189A (ja) * | 2006-09-14 | 2008-03-27 | Toshiba Corp | ディスクアレイ装置、raidコントローラおよびディスクアレイ装置のディスクアレイ構築方法 |
US20090071547A1 (en) * | 2007-09-19 | 2009-03-19 | Bermad Cs Ltd. | Standpipe hydraulic float valve |
US7966451B2 (en) * | 2008-02-05 | 2011-06-21 | International Business Machines Corporation | Power conservation in a composite array of data storage devices |
JP5141278B2 (ja) * | 2008-02-08 | 2013-02-13 | 日本電気株式会社 | ディスクアレイシステム,ディスクアレイ制御方法及びディスクアレイ制御用プログラム |
US7970994B2 (en) * | 2008-03-04 | 2011-06-28 | International Business Machines Corporation | High performance disk array rebuild |
JP2009252114A (ja) * | 2008-04-09 | 2009-10-29 | Hitachi Ltd | ストレージシステム及びデータ退避方法 |
JP2010204885A (ja) * | 2009-03-03 | 2010-09-16 | Nec Corp | ディスクアレイ装置及びその制御方法 |
US8464090B2 (en) * | 2010-09-21 | 2013-06-11 | International Business Machines Corporation | Recovery of failed disks in an array of disks |
US8726261B2 (en) * | 2011-04-06 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Zero downtime hard disk firmware update |
US8812902B2 (en) * | 2012-02-08 | 2014-08-19 | Lsi Corporation | Methods and systems for two device failure tolerance in a RAID 5 storage system |
US20160179403A1 (en) * | 2013-07-17 | 2016-06-23 | Hitachi, Ltd. | Storage controller, storage device, storage system, and semiconductor storage device |
-
2012
- 2012-06-25 JP JP2014522236A patent/JP5843010B2/ja not_active Expired - Fee Related
- 2012-06-25 WO PCT/JP2012/066140 patent/WO2014002160A1/ja active Application Filing
-
2014
- 2014-12-10 US US14/565,491 patent/US20150095572A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11184643A (ja) * | 1997-12-22 | 1999-07-09 | Nec Corp | ディスクアレイ装置の管理方法及びプログラムを記録した機械読み取り可能な記録媒体 |
JP2005099995A (ja) * | 2003-09-24 | 2005-04-14 | Fujitsu Ltd | 磁気ディスク装置のディスク共有方法及びシステム |
WO2006098036A1 (ja) * | 2005-03-17 | 2006-09-21 | Fujitsu Limited | 省電力制御装置、省電力制御方法および省電力制御プログラム |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140351510A1 (en) * | 2013-05-22 | 2014-11-27 | Asmedia Technology Inc. | Disk array system and data processing method |
US9459811B2 (en) * | 2013-05-22 | 2016-10-04 | Asmedia Technology Inc. | Disk array system and data processing method |
JP2015176575A (ja) * | 2014-03-18 | 2015-10-05 | 富士通株式会社 | ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム |
US9846654B2 (en) | 2014-03-18 | 2017-12-19 | Fujitsu Limited | Storage apparatus, cache control method, and computer-readable recording medium having cache control program recorded thereon |
Also Published As
Publication number | Publication date |
---|---|
US20150095572A1 (en) | 2015-04-02 |
JPWO2014002160A1 (ja) | 2016-05-26 |
JP5843010B2 (ja) | 2016-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5843010B2 (ja) | ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム | |
US7975115B2 (en) | Method and apparatus for separating snapshot preserved and write data | |
US9542272B2 (en) | Write redirection in redundant array of independent disks systems | |
US6467023B1 (en) | Method for logical unit creation with immediate availability in a raid storage environment | |
US9104334B2 (en) | Performance improvements in input/output operations between a host system and an adapter-coupled cache | |
US9383940B1 (en) | Techniques for performing data migration | |
US8234467B2 (en) | Storage management device, storage system control device, storage medium storing storage management program, and storage system | |
JP5768587B2 (ja) | ストレージシステム、ストレージ制御装置およびストレージ制御方法 | |
US7783850B2 (en) | Method and apparatus for master volume access during volume copy | |
US7721143B2 (en) | Method for reducing rebuild time on a RAID device | |
JP2007156597A (ja) | ストレージ装置 | |
US20070159897A1 (en) | Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array | |
JP2012509521A (ja) | ソリッドステートドライブデータを回復するためのシステム及び方法 | |
US20150074371A1 (en) | Storage array system and non-transitory recording medium storing control program | |
JP4792490B2 (ja) | 記憶制御装置及びraidグループの拡張方法 | |
JP2002259062A (ja) | 記憶装置システム及び記憶装置システムにおけるデータの複写方法 | |
JP2005293363A (ja) | ディスクアレイコントローラおよび情報処理装置 | |
KR20090096406A (ko) | 전역 핫 스패어 디스크를 이용한 연결단절된 드라이브의 재구성 및 카피백 시스템 및 방법 | |
JP6011153B2 (ja) | ストレージシステム、ストレージ制御方法およびストレージ制御プログラム | |
JP2015225603A (ja) | ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム | |
US20180307427A1 (en) | Storage control apparatus and storage control method | |
JP2009163562A (ja) | ストレージシステム、ストレージシステムの制御部、ストレージシステムの制御方法 | |
US7293193B2 (en) | Array controller for disk array, and method for rebuilding disk array | |
JP5712535B2 (ja) | ストレージ装置、制御部およびストレージ装置制御方法 | |
JP2006285527A (ja) | ストレージ装置およびプログラム。 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12879895 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2014522236 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12879895 Country of ref document: EP Kind code of ref document: A1 |