WO2020100883A1 - ディスクアレイシステム、制御装置、およびデータ入出力方法 - Google Patents
ディスクアレイシステム、制御装置、およびデータ入出力方法 Download PDFInfo
- Publication number
- WO2020100883A1 WO2020100883A1 PCT/JP2019/044304 JP2019044304W WO2020100883A1 WO 2020100883 A1 WO2020100883 A1 WO 2020100883A1 JP 2019044304 W JP2019044304 W JP 2019044304W WO 2020100883 A1 WO2020100883 A1 WO 2020100883A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- sector
- unit data
- unit
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Definitions
- the present invention relates to a disk array system, a control device, and a data input / output method.
- RAID Redundant Array of Inexpensive Disks
- HDD hard disk drive
- Patent Document 1 discloses an information processing device that speeds up the reading speed from a disk regardless of the size of the data to be read in RAID 1 in which a plurality of disks are mirrored. That is, when RAID 1 is configured with two hard disk drives (HDD), when reading data larger than a predetermined size, the first half data is read from one HDD and the latter half data is read simultaneously from the other HDD. A technique for improving the reading speed is disclosed.
- Patent Document 2 discloses a technique in which the data read speed is increased in a RAID 1 storage medium that is mirror-configured with a plurality of hard disk drives (HDD).
- the RAID controller of the storage device stores a correspondence between a logical address and a sector address of two hard disk drives (HDD), and a predetermined number of blocks are used as a read unit in a block unit composed of a plurality of sectors. By reading out in parallel, high-speed reading processing is realized.
- HDD hard disk drives
- RAID 1 of the mirroring method according to Patent Document 1 when reading data of a predetermined size, one of the two HDDs is read, so availability is improved, but the read performance of the entire storage device is not improved. .. Further, in the RAID0 configuration, since different data is written in a plurality of HDDs, the read speed is improved but the availability is not improved. In Patent Document 2, since the RAID controller accesses the continuous blocks of the two HDDs in parallel for each block (every two sectors), the read speed is improved, but the availability is not improved.
- the control device applied to the disk array system including a plurality of hard disks includes a writing unit that writes write target data including a plurality of unit data in a plurality of hard disks in a distributed manner. And a reading unit for simultaneously reading out a plurality of unit data in parallel from a plurality of hard disks.
- the writing unit disperses and writes data in a plurality of sectors in a plurality of hard disks without changing the arrangement of a plurality of unit data, and the reading unit writes a continuous unit data group in a plurality of hard disk arrays in a plurality of hard disks.
- the next unit data group is simultaneously read from a sector different from the predetermined sector.
- the read sector of the unit data is set to one sector of another hard disk, and the sector to read the other unit data is set to one. Set it to another sector of your hard disk.
- the writing unit may arrange an array of a plurality of unit data so that the reading unit can simultaneously read a continuous unit data group in an array of a plurality of unit data in a predetermined sector order in a plurality of sectors of a plurality of hard disks. It may be changed and written to the plurality of sectors of a plurality of hard disks. In this case, the reading unit simultaneously reads a continuous unit data group in an array of a plurality of unit data in a predetermined sector order from the plurality of hard disks.
- the arrangement of the plurality of unit data in the write target data including the plurality of unit data is not changed.
- Write to multiple sectors in multiple hard disks and simultaneously read a continuous unit data group in an array of multiple unit data from a predetermined sector in multiple hard disks, and write the next unit data group as a predetermined sector.
- the read sector of the unit data is set to one sector of another hard disk, and the sector to read the other unit data is set to one. Set it to another sector of your hard disk.
- a plurality of unit data groups can be read at the same time in a predetermined sector order in a plurality of sectors of a plurality of hard disks in write target data composed of a plurality of unit data so that a continuous unit data group can be read at the same time.
- the continuous unit data groups in the plurality of unit data arrays are simultaneously read from the plurality of hard disks in a predetermined sector order.
- the disk array system includes a plurality of hard disks and a control device that controls reading and writing of a plurality of unit data with respect to the plurality of hard disks.
- the control device disperses and writes a plurality of unit data in a plurality of sectors in the plurality of hard disks without changing the arrangement of the plurality of unit data, and a plurality of unit data groups in the plurality of unit data arrays.
- a reading unit for simultaneously reading data from a predetermined sector and reading the next unit data group from a sector different from the predetermined sector at the same time.
- the reading unit When the reading unit detects an abnormality in the unit data stored in one sector of one hard disk of the plurality of hard disks, the reading unit sets the read sector of the unit data to the sector of another hard disk and sets the other unit data The sector to be read is set to another sector of the one hard disk.
- control device changes the array of the plurality of unit data so that a continuous unit data group in the array of the plurality of unit data can be simultaneously read in a predetermined sector order in a plurality of sectors of a plurality of hard disks,
- a writing unit that writes data in a plurality of sectors of a plurality of hard disks
- a reading unit that simultaneously reads a continuous unit data group in an array of a plurality of unit data in a predetermined sector order from the plurality of hard disks.
- FIG. 7 is an explanatory diagram illustrating a hard disk rebuild process according to the first embodiment of the present invention. It is explanatory drawing explaining the data input / output method which concerns on 2nd embodiment of this invention. 7 shows two types of tables showing the data storage order for each sector of a plurality of HDDs according to the second embodiment of the present invention.
- FIG. 9 is an explanatory diagram showing a data storage order by three HDDs in the second embodiment of the present invention. It is a block diagram which shows the minimum structure of the control apparatus in embodiment of this invention.
- FIG. 1 is a block diagram showing the configuration of an information processing system 100 according to the embodiment of the present invention.
- the information processing system 100 includes a host device 1, a RAID controller 2, and a disk array device 3.
- the host device 1 includes a CPU (Central Processing Unit) 13 including an operating system (OS) 11 and a driver 12.
- the OS 11 executes an IO (Input / Output) instruction that issues an application or the like executed by the host device 1, and instructs writing or reading to or from the disk array device 3.
- the driver 12 is a device driver of the RAID controller 2.
- the OS 11 and the driver 12 are realized by software. For example, the functions of the OS 11 and the driver 12 are realized by the CPU 13 reading and executing a program stored in the disk array device 13.
- the RAID controller 2 includes a write controller 21 and a read controller 22.
- the write controller 21 and the read controller 22 are realized by software (firmware) having the functions necessary for the mirroring type RAID 1. As will be described later, the write controller 21 and the read controller 22 have a function of accelerating the read process in addition to the data redundancy function of RAID1.
- the RAID controller 2 is connected to the disk array device 3.
- the disk array device 3 includes two hard disk drives HDD # 0 and HDD # 1, and the HDD # 0 and HDD # 1 constitute one logical disk that guarantees data redundancy.
- the write controller 21 and the read controller 22 are. Input / output (IO) processing to the HDD # 01 and HDD # 02 is executed.
- IO Input / output
- the driver 12 outputs the IO command to the RAID controller 2 to request execution of input / output processing.
- the IO command is the write process (WRITE)
- the write controller 21 writes the same data to the HDD # 0 and the HDD # 1. This ensures the same data redundancy as in the RAID1 configuration.
- the read controller 22 simultaneously reads a part of the read target data from each of the HDD # 0 and the HDD # 1 in parallel.
- the read controller 22 can read data at twice the speed of the RAID 1 configuration in which all of the read target data is read from one of the two HDDs.
- FIG. 1 is an explanatory diagram illustrating a data input / output method according to the first embodiment of the present invention.
- the string of numbers on the arrow and the numbers in HDD # 0 and HDD # 1 indicate the structure of write data and the structure of read data.
- the write target data is “data 0”, “data 1”, “data 2”, “data 3”, “data 4”, “data 5”, “data 5”, It is shown that it is composed of "data 6" and "data 7".
- Each of the "data 0" to "data 7" is called unit data for convenience.
- eight unit data are arranged in the order of “data 0” to “data 7”.
- the read controller 22 reads unit data in parallel from different sectors of the HDD # 0 and HDD # 1. For example, the read controller 22 reads unit data (data 0, 2, 4, 6) to which an even number is attached from the even sector (sectors 0, 2, 4, 6) of the HDD # 0, and also reads the HDD # 1. The unit data (data 1, 3, 5, 7) to which an odd code is added is simultaneously read from the odd-numbered sectors (sectors 1, 3, 5, 7).
- the read controller 22 sequentially reads the data of the sector 0, the sector 2, the sector 4, and the sector 6 from the HDD # 0, and sequentially reads the data of the sector # 1, sector 3, sector 5, and sector 7 from the HDD # 1. read out.
- the read controller 22 simultaneously reads adjacent (or continuous) unit data in the array of unit data in the write target data.
- the read controller 22 simultaneously reads two unit data (data 0 and data 1) from sector 0 of HDD # 0 and sector 1 of HDD # 1.
- the read controller 22 simultaneously reads the two read unit data (data 0 and data 1) and transmits them to the host device 1 which is the read request source.
- the read controller 22 simultaneously reads the data 2 and the data 3 from the sector 2 of the HDD # 0 and the sector 3 of the HDD # 1, and transmits them to the host device 1 at the same time. Similarly, the read controller 22 reads the data 4 and the data 5 from the sector 4 of the HDD # 0 and the sector 5 of the HDD # 1 at the same time and transmits them to the host device 1 at the same time, and finally, the sector 6 and the HDD of the HDD # 0. Data 6 and data 7 are simultaneously read from sector # 1 and transmitted to the host device 1 at the same time. In this way, unit data for 8 sectors is read from HDD # 0 and HDD # 1. By such processing, it is possible to read data at twice the speed as compared with the case of reading data from only one of the two HDDs while ensuring redundancy of a plurality of data.
- the data stored in the storage device has spatial locality (the data required for information processing is stored collectively in the storage locations where the addresses are close to each other), and therefore the units are stored in a meaningful order. Data is arranged, and writing and reading are performed.
- adjacent unit data for example, data 0 and data 1, data 2 and data 3, etc.
- the processing of the OS 11 after data reading is also fast.
- a method has been proposed in which data having a length of 8 sectors is divided into first half data (data 0 to data 3) and second half data (data 4 to data 7), and the first half data and the second half data are read out in parallel one sector at a time.
- Patent Document 1 (For example, Patent Document 1).
- the first data 0 of the first half data and the first data 4 of the second half data are simultaneously read and transmitted to the read request source, and then the data 1 and data 5 are read and transmitted to the request source. repeat.
- a waiting time occurs until data 1 is read from sector 1 after sector 1.
- the waiting time that occurs when reading continuous unit data can be reduced and the read processing can be speeded up.
- FIG. 3 is an explanatory diagram illustrating a data input / output method according to the first embodiment of the present invention.
- the read controller 22 reads the data 0 and the data 1 from the sector 0 of the HDD # 0 and the sector 1 of the HDD # 1 at the same time in the normal read process. Send to the read request source at the same time.
- the read controller 22 simultaneously reads the data 2 and the data 3 from the sector 2 of the HDD # 0 and the sector 3 of the HDD # 1, but when the read controller 22 detects that the data 2 is corrupted, the read controller 22 , Data 2 and data 3 are once discarded. After that, the read controller 22 switches the read destination of the data 2 in which the abnormality is detected from the sector 2 of the HDD # 0 to the sector 2 of the HDD # 1, and sets the read target sector of the HDD # 0 to the sector 2 ahead of the sector 2. Shift and set to sector 3.
- the read controller 22 detects an abnormality in the data 2 stored in the sector 2 of the HDD # 0, it changes the read target sector of the HDD # 0 to an odd sector in the subsequent reading of the unit data, and the HDD # The read target sector of 1 is changed to an even sector.
- the read controller 22 reads the data 1 from the sector 1 of the HDD # 1 and then simultaneously reads the data 2 and the data 3 from the sector 2 of the HDD # 1 and the sector 3 of the HDD # 0 to the read request source. Send at the same time.
- the read controller 22 simultaneously reads the data 4 and the data 5 from the sector 4 of the HDD # 1 and the sector 5 of the HDD # 0, and transmits them simultaneously to the read request source. In this way, the read controller 22 reads data 0, data 3, data 5, and data 7 from the HDD # 0, and reads data 1, data 2, data 4, and data 6 from the HDD # 1.
- the read controller 22 once discards the data 2 and the data 3 read from the HDD # 0 and the HDD # 1, changes the read sector of the HDD # 0 and the HDD # 1, and writes the data 2 and the data.
- the read controller 22 By reading the data 3 again, although there is a delay for reading the unit data of one sector, it is possible to read consecutive unit data from the HDD # 0 and the HDD # 1 at the same time. It is possible to realize high-speed data read processing equivalent to
- FIG. 4 is an explanatory diagram illustrating a data input / output method according to the first embodiment of the present invention.
- the read controller 22 sequentially reads the unit data from the sector 0 to the sector 7 of the HDD # 1, and transmits the data 0 to the data 7 to the read request source (host device 1) every time the unit data of one sector is read. To do.
- the write controller 21 writes data 0 to data 7 in the unblocked HDD # 1 as shown in the table of FIG. Further, the reading process and the writing process at the time of HDD failure are the same as those of RAID1.
- FIG. 5 is an explanatory diagram illustrating a hard disk rebuild process according to the first embodiment of the present invention.
- the HDD # 0 fails, the HDD # 0 is replaced and the same data as the data written in the HDD # 1 is written in the new HDD # 0.
- the process of writing data to the new HDD # 0 and reconfiguring it to the RAID1 state by the new HDD # 0 and HDD # 1 is called rebuild process.
- the read controller 22 reads unit data from the HDD # 1 in sector order and sends it to the write controller 21.
- the write controller 21 writes the unit data written in the same sector of HDD # 1 to each sector of HDD # 0 in which no data is written.
- the same unit data has been written in both HDD # 0 and HDD # 1.
- the same unit data is written in the same sector of HDD # 0 and HDD # 1 at the time of writing, and the even unit sector of HDD # 0 and the odd number of HDD # 1 at the time of reading. Control is performed such that unit data is read from the sectors at the same time.
- the redundancy of the disk array device 3 according to the first embodiment and the high-speed reading process can be realized.
- the same data is written in a plurality of HDDs included in the disk array device to maintain redundancy, and at the same time, another unit data is read out from the plurality of HDDs to read the data.
- the processing speed can be increased.
- since continuous unit data can be read simultaneously from a plurality of HDDs it is possible to speed up the processing after reading the data.
- the example in which the disk array device is configured with two HDDs is shown, but the number of HDDs may be three or more. In that case, the read controller 22 controls to simultaneously read the unit data from the sectors shifted by one with respect to the sectors of the plurality of HDDs.
- FIG. 6 is an explanatory diagram illustrating a data input / output method according to the second embodiment of the present invention.
- FIG. 7 shows two types of tables showing the data storage order for each sector of two HDDs according to the second embodiment of the present invention. Also in the second embodiment, description will be given based on the configuration of the information processing system 100 in FIG. 1. However, in the second embodiment, since the write controller 21 and the read controller 22 of the first embodiment exhibit different functions, they are referred to as a write controller 21a and a read controller 22a as shown in FIGS. 8 to 10. .
- the write controller 21a When a write request of 8 sector length (data 0 to data 7) is made to the disk array device 3, the write controller 21a writes unit data for 8 sectors to both HDD # 0 and HDD # 1.
- the write controller 21a exchanges the order of the unit data to be written in the HDD # 0 and the HDD # 1 in advance. That is, when the read controller 22a reads the unit data in sector order starting from the same sector in the HDD # 0 and the HDD # 1, the adjacent unit data in the original unit data array (data 0 to data 7) before writing The order of unit data to be written in the HDD # 0 and the HDD # 1 is exchanged in advance so that the data can be read simultaneously.
- the write controller 21a when the write controller 21a stores a plurality of unit data in the HDD # 0, the unit data is arranged as the first half data while maintaining the arrangement order of the unit data with even numbers, and the unit data with odd numbers is Arrange as the latter half data while maintaining the order of arrangement.
- the original array of unit data (data 0 to data 7) is replaced with the first half data (data 0, data 2, data 4, data 6) and the second half data (data 1, data 3, data 5, data 7). ), And the first half data and the second half data are stored in the HDD # 0 in sector order (see the upper part of the table in FIG. 7A).
- the write controller 21a stores a plurality of unit data in the HDD # 1
- the unit data is arranged as the first half data while maintaining the order of the unit data to which the odd number is attached, and the unit data to which the even number is attached.
- the original array of unit data (data 0 to data 7) is replaced with the first half data (data 1, data 3, data 5, data 7) and the second half data (data 0, data 2, data 4, data 6). ),
- the first half data and the second half data are stored in the HDD # 1 in sector order (see the lower part of the table in FIG. 7A).
- FIG. 6 shows the above-mentioned write processing
- the table of FIG. 7 (a) shows a state in which 8-sector data is written in HDD # 0 and HDD # 1. That is, data 0 is stored in sector 0 of HDD # 0, and data 1 is stored in sector 0 of HDD # 1. Further, the data # 2 is stored in the HDD # 0 sector 1, and the data # 3 is stored in the sector # 1 of the HDD # 1. In this way, the data 0, the data 2, the data 4, the data 6, the data 1, the data 3, the data 5, and the data 7 are stored in the sectors 0 to 7 of the HDD # 0, and the sectors 0 to 7 of the HDD # 1 are stored.
- Data 1, data 3, data 5, data 7, data 0, data 2, data 4, and data 6 are stored in the sector 7.
- the read controller 22a arranges the original data array so that continuous unit data can be obtained at the same time when the unit data is sequentially read from the sector 0 of the HDD # 0 and the HDD # 1. Instead, a plurality of unit data are written in the HDD # 0 and the HDD # 1, respectively.
- the read controller 22a since the write sector differs depending on the sector length to be written in the HDD # 0 and the HDD # 1, the read controller 22a also writes the sector length information in the HDD # 0 and the HDD # 1 at the same time (in association with the write start sector). Hold.
- the table of FIG. 7B shows unit data write sectors when writing unit data of 4 sector length to HDD # 0 and HDD # 1.
- the read controller 22a Upon receiving a data read instruction of 8-sector length from the host device 1, the read controller 22a reads unit data from the same sector of the HDD # 0 and the HDD # 1 in parallel at the same time. In the table of FIG. 7A, the read controller 22 first reads the unit data from the sector 0 of the HDD # 0 and the HDD # 1 at the same time. The read controller 22a simultaneously transmits the unit data (data 0 and data 1) read from the sector 0 of the HDD # 0 and the HDD # 1 to the read request source (host device 1).
- the read controller 22a simultaneously reads data 2 and data 3 from sector 1 of HDD # 0 and HDD # 1, and sends them to the read request source. Further, the read controller 22a simultaneously reads the data 4 and the data 5 from the sector 2 of the HDD # 0 and the HDD # 1 and transmits them to the read request source. Finally, the read controller 22a simultaneously reads the data 6 and the data 7 from the sectors 3 of the HDD # 0 and the HDD # 1 and sends them to the read request source. In this way, the read controller 22a reads unit data (data 0 to data 7) for 8 sectors from the HDD # 0 and HDD # 1.
- the read processing according to the first embodiment and the second embodiment will be compared.
- unit data is read simultaneously from the even sector of HDD # 0 and the odd sector of HDD # 1. Focusing on one HDD, one-part data is read by skipping one sector. Due to the nature of the HDD, when data is read from discontinuous sectors, a process of searching the sectors again is performed. From this point of view, in the read processing of the first embodiment, the read speed is slightly reduced due to the necessity of searching again.
- the read controller 22a sequentially reads data from consecutive sectors in HDD # 0 and HDD # 1. Therefore, it is not necessary to search the HDD for discontinuous sectors again, and high-speed read processing can be performed.
- FIG. 8 is an explanatory diagram illustrating a data input / output method according to the second embodiment of the present invention.
- the read controller 22a When there is a read request for data of 8 sectors from the read request source, in a normal read process, the read controller 22a first simultaneously reads data 0 and data 1 from sector 0 of HDD # 0 and sector 0 of HDD # 1. Read and send simultaneously to the read request source.
- the read controller 22a detects that the data 2 is corrupted when the data 2 and the data 3 are simultaneously read from the sector 1 of the HDD # 0 and the sector 1 of the HDD # 1, the read controller 22a determines that the data 2 is corrupted. 2 and data 3 are once discarded. After that, the read controller 22a switches the read destination of the data 2 in which the abnormality is detected from the HDD # 0 to the HDD # 1. Specifically, the read sector of the data 2 is set to the sector 1 of the HDD # 0 to the sector 5 of the HDD # 1. Further, the read sector of HDD # 0 is also set to sector 5.
- the read controller 22a simultaneously reads the data 3 and the data 2 from the sector 5 of the HDD # 0 and the sector 5 of the HDD # 1 and transmits them simultaneously to the read request source.
- the read controller 22a simultaneously reads the data 5 and the data 4 from the sector 6 of the HDD # 0 and the sector 6 of the HDD # 1 and transmits them to the read request source at the same time.
- the read controller 22a simultaneously reads the data 7 and the data 6 from the sector 7 of the HDD # 0 and the sector 7 of the HDD # 1 and transmits them simultaneously to the read request source.
- the read controller 22a reads unit data with even-numbered symbols from the HDD # 0 and simultaneously reads unit data with odd-numbered symbols from the HDD # 0 before detecting abnormal data. .. Then, after the abnormal data is detected, the read controller 22a controls the HDD # 0 to read the unit data with the odd code and the unit data with the even code from the HDD # 1 at the same time. change.
- FIG. 9 is an explanatory diagram illustrating a data input / output method according to the second embodiment of the present invention.
- the RAID controller 2 closes the HDD # 0 as in the normal RAID1 configuration.
- the write controller 21a performs the write process only on the unblocked HDD # 1. At this time, as described above, the write controller 21a rearranges a plurality of unit data according to the sector length and writes the unit data to the HDD # 1 together with the sector length information.
- the write controller 21a rearranges data 0 to data 7 in the order of data 1, data 3, data 5, data 7, data 0, data 2, data 4, and data 6 and writes them in the HDD # 1.
- the write controller 21a rearranges data 0 to data 7 in the order of data 1, data 3, data 5, data 7, data 0, data 2, data 4, and data 6 and writes them in the HDD # 1.
- the write controller 21a rearranges data 0 to data 7 in the order of data 1, data 3, data 5, data 7, data 0, data 2, data 4, and data 6 and writes them in the HDD # 1.
- the read controller 22a performs a data read process only from the HDD # 1.
- the read controller 22a reads the unit data from the HDD # 1 in the original array order before writing and transmits the unit data to the read request source (host device 1).
- the read controller 22a reads data 0 to data 7 in the order of sector 4, sector 0, sector 5, sector 1, sector 6, sector 2, sector 7, and sector 3, and reads the host device 1 for each unit data read. Send to.
- FIG. 10 is an explanatory diagram illustrating a hard disk rebuilding process according to the second embodiment of the present invention.
- the HDD # 0 fails, the HDD # 0 is replaced with a new HDD # 0 and a rebuild process is performed.
- the read controller 22a reproduces the original array (data 0 to data 7) from the appropriate sector of HDD # 1 into a plurality of units.
- the data is read and sent to the write controller 21a together with the information on the sector length (“8” in this example).
- the write controller 21a rearranges the data for the HDD # 0 according to the sector length and writes the data to the HDD # 0, as described in the above "data writing process”.
- the unit data is written in consecutive sectors in the HDD # 0 and the HDD # 1 in the array as illustrated in FIGS. 6 and 7A.
- the read controller 22a simultaneously reads unit data from the same sector of HDD # 0 and HDD # 1, and executes data reading in sector order. As a result, the redundancy of the hard disk according to the second embodiment and the high-speed reading process can be realized.
- the availability and read performance of the disk array device 3 can be improved as in the first embodiment. Further, in the second embodiment, the data read speed can be increased as compared with the first embodiment.
- the disk array device 3 is composed of two HDDs (HDD # 0 and HDD # 1) is shown, but the same is true even if the number of HDDs is increased to three or more.
- Write control and read control can be realized.
- 8-sector length data data 0 to data 7
- HDD # 0, HDD # 1, HDD # 2 three HDDs
- the write controller 21a rearranges the unit data in the order of data 0, data 3, data 6, data 2, data 5, (vacant), data 1, data 4, and data 7 for HDD # 0.
- the data is stored in sectors 0 to 8 (sector 5 is a free sector).
- the write controller 21a rearranges the unit data in the order of data 1, data 4, data 7, data 0, data 3, data 6, data 2, data 5, (vacant) for the HDD # 1 and starts sector 0 through sector 0. Store in sector 8 (sector 8 is a free sector). Further, the write controller 21a rearranges the unit data in the order of data 2, data 5, (vacant), data 1, data 4, data 7, data 0, data 3, and data 6 in the HDD # 2, and then sector 0 to sector 0. Store in sector 8 (sector 2 is a free sector).
- FIG. 12 is a block diagram showing the minimum configuration of the control device 200 in the above-described embodiment.
- the control device 200 includes at least a writing unit 210 and a reading unit 220.
- the writing unit 210 disperses and writes write target data composed of a plurality of unit data in a plurality of hard disks.
- the reading unit 220 reads unit data from a plurality of hard disks in parallel in a predetermined order. For example, the reading unit 220 simultaneously reads adjacent unit data from different hard disks in the original data array before writing. As an example, the reading unit 220 may simultaneously read unit data from different sectors in a plurality of hard disks.
- the reading unit 220 when the reading unit 220 reads unit data in sector order starting from the same sector in each of a plurality of hard disks, the writing unit 210 simultaneously reads adjacent unit data in the original data array before writing. The order of the unit data may be changed so that the data can be written in each of the plurality of hard disks.
- the control device 200 corresponds to the RAID controller 2
- the writing unit 210 corresponds to the writing controllers 21 and 21a
- the reading unit 220 corresponds to the reading controllers 22 and 22a.
- write target data composed of a plurality of unit data is distributed and stored in predetermined sectors.
- a plurality of unit data may be distributed and stored at predetermined storage positions.
- a pair of continuous unit data is read out simultaneously from the same sector of two HDDs, but the first group of unit data is read out simultaneously from the first sectors of a plurality of HDDs, and The unit data of a group may be read simultaneously from the same sector of a plurality of HDDs for each unit data group, such that the unit data is read from a second sector that follows the first sector.
- a plurality of unit data are serially numbered, divided into a data group having an even number and a data group having an odd number, and distributed and stored in a plurality of HDDs.
- the division method of the plurality of unit data is not limited to this, and the continuous number of the plurality of unit data is divided into the first half portion and the second half portion, or divided every other number order, A desired division method can be applied.
- the constituent elements may be appropriately replaced with known constituent elements.
- the present invention is not limited to the above-described embodiment, and the present invention also encompasses various design changes and modifications within the scope not departing from the spirit of the invention defined in the claims. ..
- the present invention is applied to a RAID 1 configuration of a mirroring system composed of a plurality of hard disk drives (HDD), but it is also applicable to RAID configurations other than RAID 1. Further, in a configuration in which a storage medium other than a hard disk drive (HDD) is combined, it can be applied to an information processing system in which a plurality of data are distributed and arranged at different storage positions (addresses) and writing and reading processes are performed. You can
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)
- Hardware Redundancy (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
複数のハードディスクを備えたディスクアレイシステムに適用される制御装置であって、複数の単位データからなる書込対象データを複数のハードディスクに分散して書き込む書込部と、複数のハードディスクから並行して複数の単位データを同時に読み出す読出部と、を備える。読出部は、複数の単位データの配列において連続する単位データ群を複数のハードディスクにおける所定のセクタから同時に読み出すとともに、次の単位データ群は前記所定のセクタと異なるセクタから同時に読み出す。複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、単位データの読み出しセクタを他のハードディスクの一のセクタに設定し、他の単位データを読み出すセクタを一のハードディスクの他のセクタに設定する。
Description
本発明は、ディスクアレイシステム、制御装置、およびデータ入出力方法に関する。
ハードディスクドライブ(HDD)の可用性や入出力性能を向上するための技術として、RAID(Redundant Array of Inexpensive Disks)が開発されている。例えば、ストライピング方式のRAID0では、複数のディスクにデータを分散して書き込むことにより、書き込み速度を向上することができる。また、ミラー方式のRAID1では、複数のディスクに同じデータを書き込むことにより可用性を向上させている。
特許文献1は、複数のディスクでミラーリング構成したRAID1において、読み込むデータのサイズによらずに、ディスクからの読み取り速度を高速化する情報処理装置を開示している。つまり、2つのハードディスクドライブ(HDD)でRAID1を構成した場合、所定サイズより大きなデータを読み出すときに、前半のデータを一方のHDDから読み出すとともに、後半のデータを他方のHDDから同時に読み出すことにより、読み出し速度を向上した技術を開示している。特許文献2は、複数のハードディスクドライブ(HDD)でミラーリング構成したRAID1の記憶媒体において、データの読み出し速度を高速化した技術を開示している。記憶装置のRAIDコントローラには論理アドレスと2台のハードディスクドライブ(HDD)のセクタアドレスとの対応付けが格納されており、複数のセクタにより構成されるブロック単位に所定数のブロックを読み出し単位としてデータを並列に読み出すことで、読み出し処理の高速化を実現している。
特許文献1に係るミラーリング方式のRAID1では、所定サイズのデータを読み出す場合には、2台のHDDのうち一方のHDDから読み出すため、可用性を向上するものの、記憶装置全体としての読み出し性能は向上しない。また、RAID0構成では、複数のHDDに別々のデータを書き込むため、読み出し速度は向上するが可用性は向上しない。特許文献2では、RAIDコントローラが2台のHDDの連続ブロックに対して、ブロック毎(2セクタ毎)に並列でアクセスしているため、読み出し速度は向上するが、可用性は向上しない。
本発明の第一態様によれば、複数のハードディスクを備えたディスクアレイシステムに適用される制御装置は、複数の単位データからなる書込対象データを、複数のハードディスクに分散して書き込む書込部と、複数のハードディスクから並行して複数の単位データを同時に読み出す読出部と、を備える。書込部は、複数の単位データの配列を変更せずに複数のハードディスク内の複数のセクタに分散して書き込み、読出部は、複数の単位データの配列において連続する単位データ群を複数のハードディスクにおける所定のセクタから同時に読み出すとともに、次の単位データ群は所定のセクタと異なるセクタから同時に読み出す。複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、単位データの読み出しセクタを他のハードディスクの一のセクタに設定し、他の単位データを読み出すセクタを一のハードディスクの他のセクタに設定する。或いは、書込部は、読出部が複数のハードディスクの複数のセクタにおいて所定セクタ順序で複数の単位データの配列において連続する単位データ群を同時に読み出すことができるように、複数の単位データの配列を変更して、複数のハードディスクの前記複数のセクタに書き込んでもよい。この場合、読出部は、複数のハードディスクから所定のセクタ順序で複数の単位データの配列において連続する単位データ群を同時に読み出す。
本発明の第二態様によれば、複数のハードディスクを備えたディスクアレイシステムに適用されるデータ入出力方法において、複数の単位データからなる書込対象データにおける複数の単位データの配列を変更せずに複数のハードディスク内の複数のセクタに分散して書き込み、複数の単位データの配列において連続する単位データ群を複数のハードディスクにおける所定のセクタから同時に読み出すとともに、次の単位データ群は所定のセクタと異なるセクタから同時に読み出す。複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、単位データの読み出しセクタを他のハードディスクの一のセクタに設定し、他の単位データを読み出すセクタを一のハードディスクの他のセクタに設定する。或いは、複数の単位データからなる書込対象データにおける複数のハードディスクの複数のセクタにおいて所定セクタ順序で複数の単位データの配列において連続する単位データ群を同時に読み出すことができるように、複数の単位データの配列を変更して、複数のハードディスクの複数のセクタに書き込み、複数のハードディスクから所定のセクタ順序で前記複数の単位データの配列において連続する単位データ群を同時に読み出す。
本発明の第三態様によれば、ディスクアレイシステムは、複数のハードディスクと、複数のハードディスクに対して複数の単位データの読み出しと書き込みを制御する制御装置と、を備える。制御装置は、複数の単位データの配列を変更せずに前記複数のハードディスク内の複数のセクタに分散して書き込む書込部と、複数の単位データの配列において連続する単位データ群を複数のハードディスクにおける所定のセクタから同時に読み出すとともに、次の単位データ群は所定のセクタと異なるセクタから同時に読み出す読出部と、を備える。読出部は、複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、単位データの読み出しセクタを他のハードディスクの一のセクタに設定し、他の単位データを読み出すセクタを前記一のハードディスクの他のセクタに設定する。或いは、制御装置は、複数のハードディスクの複数のセクタにおいて所定セクタ順序で複数の単位データの配列において連続する単位データ群を同時に読み出すことができるように、複数の単位データの配列を変更して、複数のハードディスクの複数のセクタに書き込む書込部と、複数のハードディスクから所定のセクタ順序で複数の単位データの配列において連続する単位データ群を同時に読み出す読出部と、を備える。
本発明によれば、ディスクアレイシステムの可用性や読み出し性能を向上するという効果を奏する。
本発明に係るディスクアレイシステムの制御装置およびデータ入出力方法について、添付図面を参照して実施例とともに詳細に説明する。複数の図面において、同一の構成部分については同一の符号を付して、その説明を適宜割愛する。
図1は、本発明の実施形態に係る情報処理システム100の構成を示すブロック図である。情報処理システム100は、ホスト装置1と、RAIDコントローラ2と、ディスクアレイ装置3と、を備える。ホスト装置1は、オペレーティングシステム(OS)11とドライバ12を具備するCPU(Central Processing Unit)13を備えている。OS11は、ホスト装置1で実行されるアプリケーションなどを発行するIO(Input/Output)命令を実行し、ディスクアレイ装置3への書き込みや読み出しを指示する。ドライバ12は、RAIDコントローラ2のデバイスドライバである。なお、OS11とドライバ12は、ソフトウェアにより実現される。例えば、CPU13がディスクアレイ装置13に格納されているプログラムを読出して実行することにより、OS11とドライバ12の機能を実現する。
RAIDコントローラ2は、書き込みコントローラ21と、読み出しコントローラ22と、を備える。書き込みコントローラ21と読み出しコントローラ22は、ミラーリング方式のRAID1に必要な機能を有するソフトウェア(ファームウェア)により実現される。後述するように、書き込みコントローラ21と読み出しコントローラ22は、RAID1によるデータの冗長化機能に加えて、読出処理を高速化する機能を備えている。RAIDコントローラ2は、ディスクアレイ装置3に接続されている。ディスクアレイ装置3は、2台のハードディスクドライブHDD#0とHDD#1を備えており、HDD#0とHDD#1はデータの冗長性を保証する1つの論理ディスクを構成している。書き込みコントローラ21と読み出しコントローラ22は。HDD#01とHDD#02への入出力(IO)処理を実行する。
次に、情報処理システム100における入出力処理について説明する。ホスト装置1において、OS11がIO命令を発行すると、ドライバ12がそのIO命令をRAIDコントローラ2に出力して、入出力処理の実行を要求する。IO命令が書き込み処理(WRITE)の場合、書き込みコントローラ21は、HDD#0とHDD#1に同じデータを書き込む。これにより、RAID1構成と同様のデータの冗長性が確保される。IO命令が読み出し処理(READ)の場合、読み出しコントローラ22は、HDD#0とHDD#1の各々から読み出し対象データの一部ずつを同時に並行して読み出す。2台のHDDのうち一方のHDDから読み出し対象データの全てを読み出すRAID1構成に比べて、読み出しコントローラ22は、2倍の速度でデータを読み出すことができる。
[第一実施形態]
次に、本発明の第一実施形態に係る制御装置として、RAIDコントローラ2の処理について詳細に説明する。図1は、本発明の第一実施形態に係るデータ入出力方法を説明する説明図である。図2において、矢印上の数字列やHDD#0とHDD#1内の数字は、書き込みデータの構成や読み出しデータの構成を示している。例えば、書き込みコントローラ21への入力データ「01234567」は、書き込み対象データが、「データ0」、「データ1」、「データ2」、「データ3」、「データ4」、「データ5」、「データ6」、「データ7」により構成されていることを示す。この「データ0」乃至「データ7」の各々を便宜的に単位データと呼ぶ。図2に例示する書き込み対象データでは、8個の単位データが「データ0」乃至「データ7」の順に配列されている。
次に、本発明の第一実施形態に係る制御装置として、RAIDコントローラ2の処理について詳細に説明する。図1は、本発明の第一実施形態に係るデータ入出力方法を説明する説明図である。図2において、矢印上の数字列やHDD#0とHDD#1内の数字は、書き込みデータの構成や読み出しデータの構成を示している。例えば、書き込みコントローラ21への入力データ「01234567」は、書き込み対象データが、「データ0」、「データ1」、「データ2」、「データ3」、「データ4」、「データ5」、「データ6」、「データ7」により構成されていることを示す。この「データ0」乃至「データ7」の各々を便宜的に単位データと呼ぶ。図2に例示する書き込み対象データでは、8個の単位データが「データ0」乃至「データ7」の順に配列されている。
(データ書き込み処理)
ディスクアレイ装置3への8セクタ長のデータ(データ0~データ7)の書き込み要求があると、書き込みコントローラ21は、HDD#0とHDD#1の両方に、8セクタ分のデータ書き込み処理を実行する。書き込みコントローラ21は、書き込み対象データ(データ0~データ7)を取得すると、この配列の状態で書き込み対象データをHDD#0とHDD#1のそれぞれに書き込む。このとき、書き込みコントローラ21は、HDD#0とHDD#1の同じセクタ位置にそれぞれの単位データを順に書き込む。図2の表は、HDD#0とHDD#1におけるセクタ位置と、書き込みコントローラ21により書き込まれる単位データとの関係を示す。図2の表に示すように、HDD#0とHDD#1の両方において、セクタ0にはデータ0が格納され、セクタ1にはデータが格納される。つまり、セクタNにはデータN(N=0~7)が格納される。第一実施形態では、書き込みコントローラ21の動作は、RAID1構成に対する書き込み処理と同一である。
ディスクアレイ装置3への8セクタ長のデータ(データ0~データ7)の書き込み要求があると、書き込みコントローラ21は、HDD#0とHDD#1の両方に、8セクタ分のデータ書き込み処理を実行する。書き込みコントローラ21は、書き込み対象データ(データ0~データ7)を取得すると、この配列の状態で書き込み対象データをHDD#0とHDD#1のそれぞれに書き込む。このとき、書き込みコントローラ21は、HDD#0とHDD#1の同じセクタ位置にそれぞれの単位データを順に書き込む。図2の表は、HDD#0とHDD#1におけるセクタ位置と、書き込みコントローラ21により書き込まれる単位データとの関係を示す。図2の表に示すように、HDD#0とHDD#1の両方において、セクタ0にはデータ0が格納され、セクタ1にはデータが格納される。つまり、セクタNにはデータN(N=0~7)が格納される。第一実施形態では、書き込みコントローラ21の動作は、RAID1構成に対する書き込み処理と同一である。
(通常時のデータ読み出し処理)
次に、通常時(非障害時)のデータ読み出し処理について説明する。RAIDコントローラ2がホスト装置1から8セクタ長のデータ読み出し指示を受けると、読み出しコントローラ22は、HDD#0とHDD#1の異なるセクタから並行して単位データの読み出しを行う。例えば、読み出しコントローラ22は、HDD#0の偶数セクタ(セクタ0、2、4、6)から偶数の符号が付された単位データ(データ0、2、4、6)を読み出すとともに、HDD#1の奇数セクタ(セクタ1、3、5、7)から奇数の符号が付された単位データ(データ1、3、5、7)を同時に読み出す。具体的には、読み出しコントローラ22は、HDD#0からセクタ0、セクタ2、セクタ4、セクタ6のデータを順に読み出し、HDD#1からセクタ1、セクタ3、セクタ5、セクタ7のデータを順に読み出す。このとき、読み出しコントローラ22は、書き込み対象データにおける単位データの配列において隣り合う(又は、連続する)単位データを同時に読み出す。具体的には、読み出しコントローラ22は、HDD#0のセクタ0とHDD#1のセクタ1から2個の単位データ(データ0とデータ1)を同時に読み出す。そして、読み出しコントローラ22は、2個の読み出した単位データ(データ0とデータ1)を同時に読み出して読み出し要求元であるホスト装置1へ送信する。
次に、通常時(非障害時)のデータ読み出し処理について説明する。RAIDコントローラ2がホスト装置1から8セクタ長のデータ読み出し指示を受けると、読み出しコントローラ22は、HDD#0とHDD#1の異なるセクタから並行して単位データの読み出しを行う。例えば、読み出しコントローラ22は、HDD#0の偶数セクタ(セクタ0、2、4、6)から偶数の符号が付された単位データ(データ0、2、4、6)を読み出すとともに、HDD#1の奇数セクタ(セクタ1、3、5、7)から奇数の符号が付された単位データ(データ1、3、5、7)を同時に読み出す。具体的には、読み出しコントローラ22は、HDD#0からセクタ0、セクタ2、セクタ4、セクタ6のデータを順に読み出し、HDD#1からセクタ1、セクタ3、セクタ5、セクタ7のデータを順に読み出す。このとき、読み出しコントローラ22は、書き込み対象データにおける単位データの配列において隣り合う(又は、連続する)単位データを同時に読み出す。具体的には、読み出しコントローラ22は、HDD#0のセクタ0とHDD#1のセクタ1から2個の単位データ(データ0とデータ1)を同時に読み出す。そして、読み出しコントローラ22は、2個の読み出した単位データ(データ0とデータ1)を同時に読み出して読み出し要求元であるホスト装置1へ送信する。
次に、読み出しコントローラ22は、HDD#0のセクタ2とHDD#1のセクタ3からデータ2とデータ3を同時に読み出して、ホスト装置1へ同時に送信する。同様に、読み出しコントローラ22は、HDD#0のセクタ4とHDD#1のセクタ5からデータ4とデータ5を同時に読み出してホスト装置1へ同時に送信し、最後に、HDD#0のセクタ6とHDD#1のセクタ7からデータ6とデータ7を同時に読み出してホスト装置1へ同時に送信する。このようにして、HDD#0とHDD#1から8セクタ分の単位データを読み出す。このような処理により、複数のデータの冗長性を確保しつつ、2台のHDDのうち一方のHDDからのみデータを読み出す場合に比べて、2倍の速度でデータを読み出すことができる。
情報処理システムでは、記憶装置に格納されるデータには空間的局所性(情報処理に必要なデータはアドレスが近接した記憶位置に纏まって記憶される性質)があるため、意味のある順番で単位データが配列されて、書き込みや読み出しが行われる。上記の読み出しコントローラ22による読み出し処理では、隣接する単位データ(例えば、データ0とデータ1、データ2とデータ3、など)を同時に取得することができるので、データ読み出し後のOS11の処理においても高速化が期待できる。例えば、8セクタ長のデータを前半データ(データ0乃至データ3)と後半データ(データ4乃至データ7)に分割し、前半データと後半データを1セクタずつ同時に並行して読み出す方法が提案されている(例えば、特許文献1)。この読み出し方法では、前半データの先頭のデータ0と後半データの先頭のデータ4を同時に読み出して読み出し要求元へ送信し、次に、データ1とデータ5を読み出して要求元へ送信するような手順を繰り返す。この読み出し方法では、読み出し要求元側の処理においてデータ0とデータ1が必要な場合、セクタ1の後のセクタ1からデータ1を読み出すまでの待ち時間が発生する。これに対して、第一実施形態では、連続する単位データを高速に読み出すことができるため、連続する単位データを読み出すときに発生する待ち時間を低減し、読み出し処理を高速化することができる。
(データ異常検出時の読み出し処理)
次に、ある単位データ(以下の例では、HDD#0のセクタ2に格納されているデータ2)が壊れており、正常にデータを読み出すことができない場合(データ異常検出時)の動作について説明する。図3は、本発明の第一実施形態に係るデータ入出力方法を説明する説明図である。例えば、8セクタ分のデータの読み出し要求があると、通常時の読み出し処理では、読み出しコントローラ22は、HDD#0のセクタ0とHDD#1のセクタ1からデータ0とデータ1を同時に読み出して、読み出し要求元へ同時に送信する。次に、読み出しコントローラ22は、HDD#0のセクタ2とHDD#1のセクタ3からデータ2とデータ3を同時に読み出すことになるが、データ2が壊れていることを検出すると、読み出しコントローラ22は、データ2とデータ3を一旦破棄する。その後、読み出しコントローラ22は、異常が検出されたデータ2の読み出し先をHDD#0のセクタ2からHDD#1のセクタ2に切り替えるとともに、HDD#0の読み出し対象セクタをセクタ2から1つ先にずらしてセクタ3に設定する。つまり、読み出しコントローラ22は、HDD#0のセクタ2に格納されたデータ2の異常を検出すると、それ以降の単位データの読み出しにおいて、HDD#0の読み出し対象セクタを奇数セクタに変更し、HDD#1の読み出し対象セクタを偶数セクタに変更する。これにより、読み出しコントローラ22は、HDD#1のセクタ1からデータ1を読み出した後、HDD#1のセクタ2とHDD#0のセクタ3からデータ2とデータ3を同時に読み出して、読み出し要求元へ同時に送信する。次に、読み出しコントローラ22は、HDD#1のセクタ4とHDD#0のセクタ5からデータ4とデータ5を同時に読み出して、読み出し要求元へ同時に送信する。このようにして、読み出しコントローラ22は、HDD#0からデータ0、データ3、データ5、データ7を読み出し、HDD#1からデータ1、データ2、データ4、データ6を読み出す。
次に、ある単位データ(以下の例では、HDD#0のセクタ2に格納されているデータ2)が壊れており、正常にデータを読み出すことができない場合(データ異常検出時)の動作について説明する。図3は、本発明の第一実施形態に係るデータ入出力方法を説明する説明図である。例えば、8セクタ分のデータの読み出し要求があると、通常時の読み出し処理では、読み出しコントローラ22は、HDD#0のセクタ0とHDD#1のセクタ1からデータ0とデータ1を同時に読み出して、読み出し要求元へ同時に送信する。次に、読み出しコントローラ22は、HDD#0のセクタ2とHDD#1のセクタ3からデータ2とデータ3を同時に読み出すことになるが、データ2が壊れていることを検出すると、読み出しコントローラ22は、データ2とデータ3を一旦破棄する。その後、読み出しコントローラ22は、異常が検出されたデータ2の読み出し先をHDD#0のセクタ2からHDD#1のセクタ2に切り替えるとともに、HDD#0の読み出し対象セクタをセクタ2から1つ先にずらしてセクタ3に設定する。つまり、読み出しコントローラ22は、HDD#0のセクタ2に格納されたデータ2の異常を検出すると、それ以降の単位データの読み出しにおいて、HDD#0の読み出し対象セクタを奇数セクタに変更し、HDD#1の読み出し対象セクタを偶数セクタに変更する。これにより、読み出しコントローラ22は、HDD#1のセクタ1からデータ1を読み出した後、HDD#1のセクタ2とHDD#0のセクタ3からデータ2とデータ3を同時に読み出して、読み出し要求元へ同時に送信する。次に、読み出しコントローラ22は、HDD#1のセクタ4とHDD#0のセクタ5からデータ4とデータ5を同時に読み出して、読み出し要求元へ同時に送信する。このようにして、読み出しコントローラ22は、HDD#0からデータ0、データ3、データ5、データ7を読み出し、HDD#1からデータ1、データ2、データ4、データ6を読み出す。
上記の読み出し制御により、読み出しコントローラ22は、HDD#0とHDD#1から読み出したデータ2とデータ3を一度破棄して、HDD#0とHDD#1の読み出しセクタを変更して、データ2とデータ3を読み出しなおすことにより、1セクタの単位データ読み出し分の遅れは生じるものの、HDD#0とHDD#1から同時に連続する単位データを順次読み出すことができるため、データ異常検出時においても通常時と同等な高速のデータ読み出し処理を実現することができる。
(HDD障害時)
次に、HDDの一部のセクタの異常ではなく、HDD全体(以下の例では、HDD#0)が固定的に故障した場合の動作について説明する。図4は、本発明の第一実施形態に係るデータ入出力方法を説明する説明図である。HDD#0が故障している場合、RAIDコントローラ2は、通常のRAID1と同様に、HDD#0を閉塞する。そして、8セクタ分のデータの読み出し要求があると、読み出しコントローラ22は、HDD#1からのみ全ての単位データの読み出しを行う。つまり、読み出しコントローラ22は、HDD#1のセクタ0乃至セクタ7から順に単位データを読み出して、1セクタの単位データを読み出す度に、読み出し要求元(ホスト装置1)へデータ0乃至データ7を送信する。なお、単位データの書き込みについては、書き込みコントローラ21が、閉塞されていないHDD#1に対して図2の表に示したようにデータ0乃至データ7を書き込む。また、HDD障害時の読み出し処理と書き込み処理はRAID1と同様である。
次に、HDDの一部のセクタの異常ではなく、HDD全体(以下の例では、HDD#0)が固定的に故障した場合の動作について説明する。図4は、本発明の第一実施形態に係るデータ入出力方法を説明する説明図である。HDD#0が故障している場合、RAIDコントローラ2は、通常のRAID1と同様に、HDD#0を閉塞する。そして、8セクタ分のデータの読み出し要求があると、読み出しコントローラ22は、HDD#1からのみ全ての単位データの読み出しを行う。つまり、読み出しコントローラ22は、HDD#1のセクタ0乃至セクタ7から順に単位データを読み出して、1セクタの単位データを読み出す度に、読み出し要求元(ホスト装置1)へデータ0乃至データ7を送信する。なお、単位データの書き込みについては、書き込みコントローラ21が、閉塞されていないHDD#1に対して図2の表に示したようにデータ0乃至データ7を書き込む。また、HDD障害時の読み出し処理と書き込み処理はRAID1と同様である。
(リビルド処理)
図5は、本発明の第一実施形態によるハードディスクのリビルド処理を説明する説明図である。HDD#0が故障した場合、HDD#0を交換して、新たなHDD#0にHDD#1に書き込まれたデータと同じデータを書き込む。なお、新たなHDD#0にデータを書き込んで新たなHDD#0とHDD#1によるRAID1の状態に再構成する処理をリビルド処理という。具体的には、読み出しコントローラ22は、HDD#1からセクタ順に単位データを読み出して、書き込みコントローラ21へ送る。書き込みコントローラ21は、データが書き込まれていないHDD#0の各セクタへHDD#1の同じセクタに書き込まれた単位データを書き込む。ハードディスクのリビルド処理が終了すると、HDD#0とHDD#1の両者に同一の単位データが書き込まれたことになる。リビルド処理後は、図2を用いて説明したように、書き込み時には、HDD#0とHDD#1の同じセクタに同じ単位データを書き込み、読み出し時には、HDD#0の偶数セクタとHDD#1の奇数セクタから同時に単位データを読み出すような制御を行う。これにより、第一実施形態によるディスクアレイ装置3の冗長性の確保と、高速読み出し処理を実現することができる。
図5は、本発明の第一実施形態によるハードディスクのリビルド処理を説明する説明図である。HDD#0が故障した場合、HDD#0を交換して、新たなHDD#0にHDD#1に書き込まれたデータと同じデータを書き込む。なお、新たなHDD#0にデータを書き込んで新たなHDD#0とHDD#1によるRAID1の状態に再構成する処理をリビルド処理という。具体的には、読み出しコントローラ22は、HDD#1からセクタ順に単位データを読み出して、書き込みコントローラ21へ送る。書き込みコントローラ21は、データが書き込まれていないHDD#0の各セクタへHDD#1の同じセクタに書き込まれた単位データを書き込む。ハードディスクのリビルド処理が終了すると、HDD#0とHDD#1の両者に同一の単位データが書き込まれたことになる。リビルド処理後は、図2を用いて説明したように、書き込み時には、HDD#0とHDD#1の同じセクタに同じ単位データを書き込み、読み出し時には、HDD#0の偶数セクタとHDD#1の奇数セクタから同時に単位データを読み出すような制御を行う。これにより、第一実施形態によるディスクアレイ装置3の冗長性の確保と、高速読み出し処理を実現することができる。
上述のように、第一実施形態によれば、ディスクアレイ装置に備わる複数のHDDに同一のデータを書き込むことで冗長性を保ちつつ、複数のHDDから同時に別の単位データを読み出すことで、読み出し処理の高速化を図ることができる。特に、第一実施形態では、複数のHDDから連続する単位データを同時に読み出すことができるので、データ読み出し後の処理の高速化を図ることができる。なお、第一実施形態では、ディスクアレイ装置を2台のHDDで構成する例を示したが、HDDの数を3台以上としてもよい。その場合、読み出しコントローラ22は、複数のHDDのセクタについて1ずつずらしたセクタから同時に単位データを読み出す制御を行う。
[第二実施形態]
第一実施形態では、読み出しコントローラ22は、HDD#0の偶数セクタとHDD#1の奇数セクタから同時に単位データを読み出す制御について説明した。第二実施形態では、HDD#0とHDD#1の同一セクタから同時に単位データを読み出す制御について説明する。図6は、本発明の第二実施形態に係るデータ入出力方法を説明する説明図である。図7は、本発明の第二実施形態による2台のHDDのセクタ毎のデータ格納順序を現す2種類の表を示す。第二実施形態においても、図1の情報処理システム100の構成に基づいて説明を行う。但し、第二実施形態では、第一実施例の書き込みコントローラ21と読出しコントローラ22と異なる機能を発揮しているので、図8乃至図10に示すように、書き込みコントローラ21aと読出しコントローラ22aと表記する。
第一実施形態では、読み出しコントローラ22は、HDD#0の偶数セクタとHDD#1の奇数セクタから同時に単位データを読み出す制御について説明した。第二実施形態では、HDD#0とHDD#1の同一セクタから同時に単位データを読み出す制御について説明する。図6は、本発明の第二実施形態に係るデータ入出力方法を説明する説明図である。図7は、本発明の第二実施形態による2台のHDDのセクタ毎のデータ格納順序を現す2種類の表を示す。第二実施形態においても、図1の情報処理システム100の構成に基づいて説明を行う。但し、第二実施形態では、第一実施例の書き込みコントローラ21と読出しコントローラ22と異なる機能を発揮しているので、図8乃至図10に示すように、書き込みコントローラ21aと読出しコントローラ22aと表記する。
(データの書き込み処理)
ディスクアレイ装置3への8セクタ長(データ0乃至データ7)の書き込み要求があると、書き込みコントローラ21aは、HDD#0とHDD#1の両方に8セクタ分の単位データを書き込む。第二実施形態では、書き込みコントローラ21aは、HDD#0とHDD#1に書き込む単位データの順序を予め入れ替える。つまり、読出しコントローラ22aがHDD#0とHDD#1における同一のセクタを始点として単位データをセクタ順に読み出した場合、書き込み前の元の単位データの配列(データ0乃至データ7)において隣接する単位データを同時に読み出すことができるように、HDD#0とHDD#1に書き込む単位データの順序を予め入れ替える。例えば、書き込みコントローラ21aが複数の単位データをHDD#0に格納する場合、偶数の符号が付された単位データの並び順を維持したまま前半データとして配列し、奇数の符号が付された単位データの並び順を維持したまま後半データとして配列する。具体的には、元の単位データの配列(データ0乃至データ7)を、前半データ(データ0、データ2、データ4、データ6)と後半データ(データ1、データ3、データ5、データ7)に並び替えて、前半データと後半データをセクタ順にHDD#0に格納する(図7(a)の表の上段参照)。
ディスクアレイ装置3への8セクタ長(データ0乃至データ7)の書き込み要求があると、書き込みコントローラ21aは、HDD#0とHDD#1の両方に8セクタ分の単位データを書き込む。第二実施形態では、書き込みコントローラ21aは、HDD#0とHDD#1に書き込む単位データの順序を予め入れ替える。つまり、読出しコントローラ22aがHDD#0とHDD#1における同一のセクタを始点として単位データをセクタ順に読み出した場合、書き込み前の元の単位データの配列(データ0乃至データ7)において隣接する単位データを同時に読み出すことができるように、HDD#0とHDD#1に書き込む単位データの順序を予め入れ替える。例えば、書き込みコントローラ21aが複数の単位データをHDD#0に格納する場合、偶数の符号が付された単位データの並び順を維持したまま前半データとして配列し、奇数の符号が付された単位データの並び順を維持したまま後半データとして配列する。具体的には、元の単位データの配列(データ0乃至データ7)を、前半データ(データ0、データ2、データ4、データ6)と後半データ(データ1、データ3、データ5、データ7)に並び替えて、前半データと後半データをセクタ順にHDD#0に格納する(図7(a)の表の上段参照)。
一方、書き込みコントローラ21aが複数の単位データをHDD#1に格納する場合、奇数の符号が付された単位データの並び順を維持したまま前半データとして配列し、偶数の符号が付された単位データの並び順を維持したまま後半データとして配列する。具体的には、元の単位データの配列(データ0乃至データ7)を、前半データ(データ1、データ3、データ5、データ7)と後半データ(データ0、データ2、データ4、データ6)に並び替えて、前半データと後半データをセクタ順にHDD#1に格納する(図7(a)の表の下段参照)。
図6は、上記の書き込み処理を示しており、図7(a)の表は、8セクタ長のデータをHDD#0とHDD#1に書き込んだ状態を示している。すなわち、HDD#0のセクタ0にはデータ0が格納され、HDD#1のセクタ0にはデータ1が格納される。また、HDD#0セクタ1にはデータ2が格納され、HDD#1のセクタ1にはデータ3が格納される。このようにして、HDD#0のセクタ0乃至セクタ7にはデータ0、データ2、データ4、データ6、データ1、データ3、データ5、データ7が格納され、HDD#1のセクタ0乃至セクタ7にはデータ1、データ3、データ5、データ7、データ0、データ2、データ4、データ6が格納される。これにより、HDD#0とHDD#1の同一セクタから同時に単位データを読み取ると、元のデータ配列(データ0乃至データ7)において連続する単位データを取得することができる。このように、第二実施形態では、読出しコントローラ22aが、HDD#0とHDD#1のセクタ0から順に単位データを読み出したときに連続する単位データが同時に得られるように元のデータ配列を並び替えて、複数の単位データをHDD#0とHDD#1にそれぞれ書き込む。また、HDD#0とHDD#1に書き込むセクタ長により書き込みセクタは異なるため、読み出しコントローラ22aは、セクタ長の情報も同時に(書き込み開始セクタと対応付けて)HDD#0とHDD#1に書き込んで保持する。図7(b)の表は、HDD#0とHDD#1に4セクタ長の単位データ書き込む場合の、単位データ書き込みセクタを示す。
(通常時の読み出し処理)
次に、本発明の第二実施形態に係る読み出し処理について説明する。まず、通常時(非障害時)の動作について説明する。ホスト装置1から8セクタ長のデータ読み出し指示を受けると、読み出しコントローラ22aは、HDD#0とHDD#1の同一セクタから並行して同時に単位データを読み出す。図7(a)の表では、読み出しコントローラ22は、まず、HDD#0とHDD#1のセクタ0から同時に単位データを読み出す。読み出しコントローラ22aは、HDD#0とHDD#1のセクタ0から読み出した単位データ(データ0とデータ1)を同時に読み出し要求元(ホスト装置1)へ送信する。
次に、本発明の第二実施形態に係る読み出し処理について説明する。まず、通常時(非障害時)の動作について説明する。ホスト装置1から8セクタ長のデータ読み出し指示を受けると、読み出しコントローラ22aは、HDD#0とHDD#1の同一セクタから並行して同時に単位データを読み出す。図7(a)の表では、読み出しコントローラ22は、まず、HDD#0とHDD#1のセクタ0から同時に単位データを読み出す。読み出しコントローラ22aは、HDD#0とHDD#1のセクタ0から読み出した単位データ(データ0とデータ1)を同時に読み出し要求元(ホスト装置1)へ送信する。
次に、読出しコントローラ22aは、HDD#0とHDD#1のセクタ1からデータ2とデータ3を同時に読み出して、読み出し要求元へ送信する。また、読出しコントローラ22aは、HDD#0とHDD#1のセクタ2からデータ4とデータ5を同時に読み出して、読み出し要求元へ送信する。最後に、読出しコントローラ22aは、HDD#0とHDD#1のセクタ3からデータ6とデータ7を同時に読み出して、読み出し要求元へ送信する。このようにして、読出しコントローラ22aは、HDD#0とHDD#1から8セクタ分の単位データ(データ0乃至データ7)を読み出す。上記の読み出し処理により、第二実施形態では、第一実施形態と同様に、HDDに格納されるデータの冗長性を確保しつつ、2台のHDDのうち一方のHDDからのみデータを読み出す場合に比べて、2倍の速度でデータを読み出すことができる。
ここで、第一実施形態と第二実施形態に係る読み出し処理について比較する。第一実施形態では、HDD#0の偶数セクタとHDD#1の奇数セクタから同時に単位データを読み出している。1つのHDDに着目すると、セクタを1つ飛ばして単為データを読み込むことになる。HDDの性質として、不連続なセクタからデータを読み出す場合には、セクタを再度サーチする処理が行われる。この観点から、第一実施形態の読み出し処理には、再度サーチする必要性から若干読み出し速度の低下が発生する。一方、第二実施形態では、読出しコントローラ22aは、HDD#0とHDD#1において連続するセクタから順次データを読み出している。そのため、HDDについて不連続なセクタを再度サーチする必要がなく、高速な読み出し処理が可能となる。
(データ異常検出時の読み出し処理)
次に、ある単位データ(以下の例では、HDD#0のセクタ1に格納されているデータ2)が壊れており正常に読み出すことができなかった場合の動作について説明する。図8は、本発明の第二実施形態に係るデータ入出力方法を説明する説明図である。読み出し要求元から8セクタ分のデータの読み出し要求があると、通常の読み出し処理では、読み出しコントローラ22aは、まず、HDD#0のセクタ0とHDD#1のセクタ0からデータ0とデータ1を同時に読み出して読み出し要求元へ同時に送信する。次に、読み出しコントローラ22aは、HDD#0のセクタ1とHDD#1のセクタ1からデータ2とデータ3を同時に読み出したときにデータ2が壊れていることを検出すると、読み出しコントローラ22aは、データ2とデータ3を一旦破棄する。その後、読み出しコントローラ22aは、異常が検出されたデータ2の読み出し先をHDD#0からHDD#1へ切り替える。具体的には、データ2の読み出しセクタを、HDD#0のセクタ1をHDD#1のセクタ5へ設定する。また、HDD#0の読み出しセクタもセクタ5に設定する。そして、読み出しコントローラ22aは、HDD#0のセクタ5とHDD#1のセクタ5からデータ3とデータ2を同時に読み出して読み出し要求元へ同時に送信する。次に、読み出しコントローラ22aは、HDD#0のセクタ6とHDD#1のセクタ6からデータ5とデータ4を同時に読み出して読み出し要求元に同時に送信する。最後に、読み出しコントローラ22aは、HDD#0のセクタ7とHDD#1のセクタ7からデータ7とデータ6を同時に読み出して読み出し要求元へ同時に送信する。
次に、ある単位データ(以下の例では、HDD#0のセクタ1に格納されているデータ2)が壊れており正常に読み出すことができなかった場合の動作について説明する。図8は、本発明の第二実施形態に係るデータ入出力方法を説明する説明図である。読み出し要求元から8セクタ分のデータの読み出し要求があると、通常の読み出し処理では、読み出しコントローラ22aは、まず、HDD#0のセクタ0とHDD#1のセクタ0からデータ0とデータ1を同時に読み出して読み出し要求元へ同時に送信する。次に、読み出しコントローラ22aは、HDD#0のセクタ1とHDD#1のセクタ1からデータ2とデータ3を同時に読み出したときにデータ2が壊れていることを検出すると、読み出しコントローラ22aは、データ2とデータ3を一旦破棄する。その後、読み出しコントローラ22aは、異常が検出されたデータ2の読み出し先をHDD#0からHDD#1へ切り替える。具体的には、データ2の読み出しセクタを、HDD#0のセクタ1をHDD#1のセクタ5へ設定する。また、HDD#0の読み出しセクタもセクタ5に設定する。そして、読み出しコントローラ22aは、HDD#0のセクタ5とHDD#1のセクタ5からデータ3とデータ2を同時に読み出して読み出し要求元へ同時に送信する。次に、読み出しコントローラ22aは、HDD#0のセクタ6とHDD#1のセクタ6からデータ5とデータ4を同時に読み出して読み出し要求元に同時に送信する。最後に、読み出しコントローラ22aは、HDD#0のセクタ7とHDD#1のセクタ7からデータ7とデータ6を同時に読み出して読み出し要求元へ同時に送信する。
上述のように、読み出しコントローラ22aは、異常データの検出前は、HDD#0から偶数の符号が付された単位データを読み出すとともに、HDD#1から奇数の符号が付された単位データを同時に読み出す。そして、異常データの検出後は、読み出しコントローラ22aは、HDD#0から奇数の符号が付された単位データを読み出すとともに、HDD#1から偶数の符号が付された単位データを同時に読み出すよう制御を変更する。
これにより、第二実施形態では、データ2とデータ3を一旦破棄して読み直すことによる1セクタ分のデータ読み出し分の遅れは生じるものの、その後、読み出しセクタを変更してHDD#0とHDD#1から同時に連続する単位データを読み出すことができるため、異常検出時においても通常時と同様に、高速なデータ読み出しを継続することができる。
(HDD障害時)
次に、2台のHDDのうちの一方のHDD(以下の例では、HDD#0)全体が固定的に故障した場合の動作について説明する。図9は、本発明の第二実施形態に係るデータ入出力方法を説明する説明図である。HDD#0が故障している場合、通常のRAID1構成と同様に、RAIDコントローラ2は、HDD#0を閉塞する。読み出し要求元から8セクタ分のデータ書き込み要求があると、書き込みコントローラ21aは、閉塞されていないHDD#1にのみ書き込み処理を行う。このとき、上記で説明したように、書き込みコントローラ21aは、複数の単位データをセクタ長に応じた並べ替えを行ってセクタ長情報とともにHDD#1へ書き込む。例えば、書き込みコントローラ21aは、データ0乃至データ7をデータ1、データ3、データ5、データ7、データ0、データ2、データ4、データ6の順に並び替えてHDD#1に書き込む。このように、通常時と同様にデータの並び替えを行ってHDD#1に書き込むことにより、リビルド処理後に、図6や図7(a)で例示したディスク構成を再現することができる。
次に、2台のHDDのうちの一方のHDD(以下の例では、HDD#0)全体が固定的に故障した場合の動作について説明する。図9は、本発明の第二実施形態に係るデータ入出力方法を説明する説明図である。HDD#0が故障している場合、通常のRAID1構成と同様に、RAIDコントローラ2は、HDD#0を閉塞する。読み出し要求元から8セクタ分のデータ書き込み要求があると、書き込みコントローラ21aは、閉塞されていないHDD#1にのみ書き込み処理を行う。このとき、上記で説明したように、書き込みコントローラ21aは、複数の単位データをセクタ長に応じた並べ替えを行ってセクタ長情報とともにHDD#1へ書き込む。例えば、書き込みコントローラ21aは、データ0乃至データ7をデータ1、データ3、データ5、データ7、データ0、データ2、データ4、データ6の順に並び替えてHDD#1に書き込む。このように、通常時と同様にデータの並び替えを行ってHDD#1に書き込むことにより、リビルド処理後に、図6や図7(a)で例示したディスク構成を再現することができる。
そして、8セクタ分のデータの読み出し要求があると、読み出しコントローラ22aは、HDD#1からのみデータの読み出し処理を行う。ここで、読み出しコントローラ22aは、書き込み前の元の配列順にHDD#1から単位データを読み出して、読み出し要求元(ホスト装置1)へ送信する。例えば、読み出しコントローラ22aは、セクタ4、セクタ0、セクタ5、セクタ1、セクタ6、セクタ2、セクタ7、セクタ3の順にデータ0乃至データ7を読み出して、単位データ読み出し毎に、ホスト装置1へ送信する。
(リビルド処理)
図10は、本発明の第二実施形態によるハードディスクのリビルド処理を説明する説明図である。ここで、HDD#0が故障した場合に、HDD#0を新たなHDD#0に交換してリビルド処理を行う。具体的には、上記の「HDD障害時」に説明したように、読み出しコントローラ22aは、元の配列(データ0乃至データ7)を再現するように、HDD#1の適切なセクタから複数の単位データを読み出して、セクタ長(この例では、「8」)の情報とともに書き込みコントローラ21aへ送る。書き込みコントローラ21aは、上述の「データの書き込み処理」で説明したように、セクタ長に応じたHDD#0用のデータ並び替えを行って、HDD#0へ書き込む。HDD#0に対するリビルド処理が終了すると、HDD#0とHDD#1には図6や図7(a)に例示したような配列で、連続するセクタに単位データが書き込まれる。その後、読み出しコントローラ22aは、HDD#0とHDD#1の同一セクタから単位データを同時に読み出し、セクタ順にデータ読み出しを実行する。これにより、第二実施形態によるハードディスクの冗長性の確保と、高速な読み出し処理を実現することができる。
図10は、本発明の第二実施形態によるハードディスクのリビルド処理を説明する説明図である。ここで、HDD#0が故障した場合に、HDD#0を新たなHDD#0に交換してリビルド処理を行う。具体的には、上記の「HDD障害時」に説明したように、読み出しコントローラ22aは、元の配列(データ0乃至データ7)を再現するように、HDD#1の適切なセクタから複数の単位データを読み出して、セクタ長(この例では、「8」)の情報とともに書き込みコントローラ21aへ送る。書き込みコントローラ21aは、上述の「データの書き込み処理」で説明したように、セクタ長に応じたHDD#0用のデータ並び替えを行って、HDD#0へ書き込む。HDD#0に対するリビルド処理が終了すると、HDD#0とHDD#1には図6や図7(a)に例示したような配列で、連続するセクタに単位データが書き込まれる。その後、読み出しコントローラ22aは、HDD#0とHDD#1の同一セクタから単位データを同時に読み出し、セクタ順にデータ読み出しを実行する。これにより、第二実施形態によるハードディスクの冗長性の確保と、高速な読み出し処理を実現することができる。
第二実施形態によれば、第一実施形態と同様に、ディスクアレイ装置3の可用性と読出し性能の向上を実現することができる。また、第二実施形態では、第一実施形態に比べて、データ読み出し速度を高速化することができる。
なお、第二実施形態では、ディスクアレイ装置3を2台のHDD(HDD#0とHDD#1)で構成する例を示したが、HDDの数を3台以上に増設しても、同様の書き込み制御と読み出し制御を実現することができる。例えば、3台のHDD(HDD#0、HDD#1、HDD#2)に8セクタ長のデータ(データ0乃至データ7)を書き込む場合、図11に示すような配列に単位データを並び替えて3台のHDDに書き込んでもよい。具体的には、書き込みコントローラ21aは、HDD#0について、データ0、データ3、データ6、データ2、データ5、(空き)、データ1、データ4、データ7の順に単位データを並び替えてセクタ0乃至セクタ8に格納する(セクタ5は空きセクタとする)。また、書き込みコントローラ21aは、HDD#1について、データ1、データ4、データ7、データ0、データ3、データ6、データ2、データ5、(空き)の順に単位データを並び替えてセクタ0乃至セクタ8に格納する(セクタ8は空きセクタとする)。さらに、書き込みコントローラ21aは、HDD#2について、データ2、データ5、(空き)、データ1、データ4、データ7、データ0、データ3、データ6の順に単位データを並び替えてセクタ0乃至セクタ8に格納する(セクタ2は空きセクタとする)。
図12は、上述の実施形態における制御装置200の最小構成を示すブロック図である。図12に示すように、制御装置200は、少なくとも書込部210と読出部220を備える。書込部210は、複数の単位データにより構成される書き込み対象データを、複数のハードディスクに分散して書き込む。読出部220は、複数のハードディスクから並行して単位データを所定順序で読み出す。例えば、読出部220は、書き込み前の元のデータ配列において、隣接する単位データを異なるハードディスクから同時に読み出す。一例として、読出部220は、複数のハードディスクにおいて1ずつ異なるセクタから単位データを同時に読み出してもよい。別の例では、書込部210は、読出部220が複数のハードディスクのそれぞれにおける同一のセクタを始点としてセクタ順に単位データを読み出す場合、書き込み前の元のデータ配列において隣接する単位データを同時に読み出すことができるように単位データの順序を変更して、複数のハードディスクの各々に書き込んでもよい。なお、制御装置200はRAIDコントローラ2に対応し、書込部210は書き込みコントローラ21、21aに対応し、読出部220は読み出しコントローラ22、22aに対応する。
上述の実施例は、複数のハードディスクドライブ(HDD)をRAID1構成で備えたディスクアレイ装置において、複数の単位データから構成される書き込み対象データを所定のセクタに分散記憶するものであるが、HDD以外のメモリや記録媒体などの記憶媒体を並列に組み合わせたメモリアレイ構成において、複数の単位データを所定の記憶位置に分散記憶するようにしてもよい。また、上述の実施例では、2台のHDDの同一のセクタから一対の連続する単位データを同時に読み出していたが、複数のHDDの第一セクタから第1群の単位データを同時に読み出し、第2群の単位データは、第一セクタに連続する第二セクタから読み出すように、単位データ群ごとに複数のHDDの同一セクタから同時に読み出すようにしてもよい。また、上述の実施形態では、複数の単位データに連続番号を付して、偶数の番号が付されたデータ群と奇数の番号が付されたデータ群に分割して複数のHDDに分散記憶したが、複数の単位データの分割方法は、これに限定されるものではなく、複数の単位データの連続番号を前半部分と後半部分に分割するか、或いは、1つ置きの番号順に分割するなど、所望の分割方法を適用できる。
最後に、上述の実施形態において、構成要素を公知の構成要素に適宜置き換えてもよい。また、本発明は上述の実施形態に限定されるものではなく、本発明は、特許請求の範囲に規定される発明の趣旨を逸脱しない範囲における種々の設計変更や改変をも包含するものである。
本願は、2018年11月16日に、日本国に出願された特願2018-215857号に基づき優先権を主張し、その内容をここに援用する。
本発明は、複数のハードディスクドライブ(HDD)よりなるミラーリング方式のRAID1構成に適用されるものであるが、RAID1以外のRAID構成にも適用可能である。また、ハードディスクドライブ(HDD)以外の記憶媒体を組み合わせた構成において、複数のデータを異なる記憶位置(アドレス)に分散配置して、書き込み処理と読み出し処理を行うような情報処理システムにも適用することができる。
100 情報処理システム
1 ホスト装置
2 RAIDコントローラ
3 ディスクアレイ装置
11 オペレーティングシステム(OS)
12 ドライバ
13 CPU
21、21a 書き込みコントローラ
22、22a 読み出しコントローラ
200 制御装置
210 書込部
220 読出部
1 ホスト装置
2 RAIDコントローラ
3 ディスクアレイ装置
11 オペレーティングシステム(OS)
12 ドライバ
13 CPU
21、21a 書き込みコントローラ
22、22a 読み出しコントローラ
200 制御装置
210 書込部
220 読出部
Claims (9)
- 複数のハードディスクを備えたディスクアレイシステムに適用される制御装置であって、
複数の単位データからなる書込対象データを、前記複数のハードディスクに分散して書き込む書込部と、
前記複数のハードディスクから並行して前記複数の単位データを同時に読み出す読出部と、を備え、
前記書込部は、前記複数の単位データの配列を変更せずに前記複数のハードディスク内の複数のセクタに分散して書き込み、前記読出部は、前記複数の単位データの配列において連続する単位データ群を前記複数のハードディスクにおける所定のセクタから同時に読み出すとともに、次の単位データ群は前記所定のセクタと異なるセクタから同時に読み出し、
前記複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、前記単位データの読み出しセクタを他のハードディスクの一のセクタに設定し、他の単位データを読み出すセクタを前記一のハードディスクの他のセクタに設定する、制御装置。 - 複数のハードディスクを備えたディスクアレイシステムに適用される制御装置であって、
複数の単位データからなる書込対象データを、前記複数のハードディスクに分散して書き込む書込部と、
前記複数のハードディスクから並行して前記複数の単位データを同時に読み出す読出部と、を備え、
前記書込部は、前記読出部が前記複数のハードディスクの複数のセクタにおいて所定セクタ順序で前記複数の単位データの配列において連続する単位データ群を同時に読み出すことができるように、前記複数の単位データの配列を変更して、前記複数のハードディスクの前記複数のセクタに書き込み、
前記読出部は、前記複数のハードディスクから前記所定のセクタ順序で前記複数の単位データの配列において連続する単位データ群を同時に読み出し、
前記複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、前記単位データの読み出しセクタを他のハードディスクにおける他のセクタに設定し、他の単位データを読み出すセクタを前記一のハードディスクの他のセクタに設定する、制御装置。 - 前記複数のハードディスクのうち前記一のハードディスクが故障して、前記一のハードディスクを閉塞して新たなハードディスクに交換した場合、前記書込部は、前記他のハードディスクに書き込まれた前記複数の単位データを同一の順序で前記新たなハードディスクに書き込む、請求項1又は2に記載の制御装置。
- 前記書込部は、前記複数の単位データに連続する符号を付している場合、偶数の符号を付した第一データ群と奇数の符号を付した第二データ群に分割して、前記一のハードディスクには前記第一データ群に続いて前記第二データ群を前記複数のセクタに書き込み、前記他のハードディスクには前記第二データ群に続いて前記第一データ群を前記複数のセクタに書き込むようにした、請求項2に記載の制御装置。
- 複数のハードディスクを備えたディスクアレイシステムに適用されるデータ入出力方法であって、
複数の単位データからなる書込対象データにおいて、前記複数の単位データの配列を変更せずに前記複数のハードディスク内の複数のセクタに分散して書き込み、
前記複数の単位データの配列において連続する単位データ群を前記複数のハードディスクにおける所定のセクタから同時に読み出すとともに、次の単位データ群は前記所定のセクタと異なるセクタから同時に読み出し、
前記複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、前記単位データの読み出しセクタを他のハードディスクの一のセクタに設定し、他の単位データを読み出すセクタを前記一のハードディスクの他のセクタに設定する、データ入出力方法。 - 複数のハードディスクを備えたディスクアレイシステムに適用されるデータ入出力方法であって、
複数の単位データからなる書込対象データにおいて、前記複数のハードディスクの複数のセクタにおいて所定セクタ順序で前記複数の単位データの配列において連続する単位データ群を同時に読み出すことができるように、前記複数の単位データの配列を変更して、前記複数のハードディスクの前記複数のセクタに書き込み、
前記複数のハードディスクから前記所定のセクタ順序で前記複数の単位データの配列において連続する単位データ群を同時に読み出し、
前記複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、前記単位データの読み出しセクタを他のハードディスクにおける他のセクタに設定し、他の単位データを読み出すセクタを前記一のハードディスクの他のセクタに設定する、データ入出力方法。 - 前記複数の単位データに連続する符号を付している場合、偶数の符号を付した第一データ群と奇数の符号を付した第二データ群に分割して、前記一のハードディスクには前記第一データ群に続いて前記第二データ群を前記複数のセクタに書き込み、前記他のハードディスクには前記第二データ群に続いて前記第一データ群を前記複数のセクタに書き込むようにした、請求項6に記載のデータ入出力方法。
- 複数のハードディスクと、
前記複数のハードディスクに対して複数の単位データの読み出しと書き込みを制御する制御装置と、を備えたディスクアレイシステムであって、
前記制御装置は、前記複数の単位データの配列を変更せずに前記複数のハードディスク内の複数のセクタに分散して書き込む書込部と、
前記複数の単位データの配列において連続する単位データ群を前記複数のハードディスクにおける所定のセクタから同時に読み出すとともに、次の単位データ群は前記所定のセクタと異なるセクタから同時に読み出す読出部と、を備え、
前記読出部は、前記複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、前記単位データの読み出しセクタを他のハードディスクの一のセクタに設定し、他の単位データを読み出すセクタを前記一のハードディスクの他のセクタに設定するようにした、ディスクアレイシステム。 - 複数のハードディスクと、
前記複数のハードディスクに対して複数の単位データの読み出しと書き込みを制御する制御装置と、を備えたディスクアレイシステムであって、
前記制御装置は、前記複数のハードディスクの複数のセクタにおいて所定セクタ順序で前記複数の単位データの配列において連続する単位データ群を同時に読み出すことができるように、前記複数の単位データの配列を変更して、前記複数のハードディスクの前記複数のセクタに書き込む書込部と、
前記複数のハードディスクから前記所定のセクタ順序で前記複数の単位データの配列において連続する単位データ群を同時に読み出す読出部と、を備え、
前記読出部は、前記複数のハードディスクのうち一のハードディスクの一のセクタに記憶された単位データに異常を検出すると、前記単位データの読み出しセクタを他のハードディスクにおける他のセクタに設定し、他の単位データを読み出すセクタを前記一のハードディスクの他のセクタに設定する、ディスクアレイシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018-215857 | 2018-11-16 | ||
| JP2018215857A JP6662530B1 (ja) | 2018-11-16 | 2018-11-16 | 制御装置、ディスクアレイシステム及びデータ入出力方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020100883A1 true WO2020100883A1 (ja) | 2020-05-22 |
Family
ID=69998121
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2019/044304 Ceased WO2020100883A1 (ja) | 2018-11-16 | 2019-11-12 | ディスクアレイシステム、制御装置、およびデータ入出力方法 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP6662530B1 (ja) |
| WO (1) | WO2020100883A1 (ja) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003108316A (ja) * | 2001-09-26 | 2003-04-11 | Toshiba Corp | ディスクアレイ装置およびホットスペア制御方法 |
| JP2006507603A (ja) * | 2002-11-26 | 2006-03-02 | インテル コーポレイション | Bios記憶アレイ |
| US20090216946A1 (en) * | 2008-02-22 | 2009-08-27 | Zhi-Ming Sun | Raid1 system and reading method for enhancing read performance |
| JP2010015195A (ja) * | 2008-06-30 | 2010-01-21 | Toshiba Corp | 記憶制御装置及び記憶制御方法 |
| JP2012103856A (ja) * | 2010-11-09 | 2012-05-31 | Nippon Hoso Kyokai <Nhk> | 記録装置 |
-
2018
- 2018-11-16 JP JP2018215857A patent/JP6662530B1/ja active Active
-
2019
- 2019-11-12 WO PCT/JP2019/044304 patent/WO2020100883A1/ja not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003108316A (ja) * | 2001-09-26 | 2003-04-11 | Toshiba Corp | ディスクアレイ装置およびホットスペア制御方法 |
| JP2006507603A (ja) * | 2002-11-26 | 2006-03-02 | インテル コーポレイション | Bios記憶アレイ |
| US20090216946A1 (en) * | 2008-02-22 | 2009-08-27 | Zhi-Ming Sun | Raid1 system and reading method for enhancing read performance |
| JP2010015195A (ja) * | 2008-06-30 | 2010-01-21 | Toshiba Corp | 記憶制御装置及び記憶制御方法 |
| JP2012103856A (ja) * | 2010-11-09 | 2012-05-31 | Nippon Hoso Kyokai <Nhk> | 記録装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP6662530B1 (ja) | 2020-03-11 |
| JP2020086598A (ja) | 2020-06-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7971013B2 (en) | Compensating for write speed differences between mirroring storage devices by striping | |
| US8151014B2 (en) | RAID performance using command descriptor block pointer forwarding technique | |
| US9286174B2 (en) | Disk array having mirror configuration and rebuilding method therefor | |
| US7770076B2 (en) | Multi-platter disk drive controller and methods for synchronous redundant data operations | |
| CN100407123C (zh) | 数据存储设备、重构控制设备、重构控制方法 | |
| US7133965B2 (en) | Raid storage device | |
| CN103699336A (zh) | 一种磁盘阵列数据分布与重建方法及系统 | |
| JP2005148854A (ja) | ファイルシステム及びプログラム | |
| US20140304470A1 (en) | Reverse mirroring in raid level 1 | |
| JP2006201915A (ja) | ディスク装置及びホットスワップ方法 | |
| US20180307427A1 (en) | Storage control apparatus and storage control method | |
| JP7729835B2 (ja) | フルストライド・デステージのためのプリエンプティブ・ステージング | |
| EP3516496B1 (en) | Data protection for a cold storage system | |
| KR100364895B1 (ko) | 데이터 액세스 제어 방법 및 시스템 | |
| JP6662530B1 (ja) | 制御装置、ディスクアレイシステム及びデータ入出力方法 | |
| US7401193B1 (en) | System for storing data | |
| JP5505329B2 (ja) | ディスクアレイ装置及びその制御方法 | |
| JP2007052509A (ja) | ディスクアレイ装置における媒体エラーリカバリ装置、方法、及びプログラム | |
| JP4788492B2 (ja) | ストレージ装置の容量拡張方法、プログラム、およびストレージ装置 | |
| JP2012194867A (ja) | ストレージ装置および制御装置 | |
| JP2009223355A (ja) | ハードディスクとシリコンディスクのミラーリングを行うディスク制御システム | |
| JP4714720B2 (ja) | ストレージ装置及びその制御方法、並びにディスク装置 | |
| JPH1074129A (ja) | ディスクアレイ装置 | |
| JP2012103856A (ja) | 記録装置 | |
| JP2014071636A (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: 19884654 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19884654 Country of ref document: EP Kind code of ref document: A1 |