1. Field of the Invention
The present invention relates to a device for dynamically controlling an access to the disk array of a disk array device, constituting a plurality of disk arrays by combining the disk devices of a disk device group and a method thereof.
2. Description of the Related Art
Conventionally, in order to improve the performance, such as an access time, flexibility in composition, and the like, of a disk array device, a plurality of I/Fs (hereinafter called “device adapter (DA)”) for accessing a disk device group is provided, and the disk device group is accessed via one of the DAs.
The disk array device shown in
The disk device group 90 shown in
In this case, which DA takes charge of which RAID is generally determined uniquely by its slot number or a RAID number. For example, which DA that takes charge of which RAID is uniquely determined by whether the slot number or RAID number is odd or even.
Japanese Patent Application No. H06-124175 discloses a semiconductor disk device capable of realizing writing speed equivalent to or higher than that of a hard disk device by simultaneously implementing data transfer from the outside to buffer memory, data transfer from the buffer memory to flash memory and the erasure of the flash memory.
Japanese Patent Application No. 2002-116936 discloses a disk array device for equalizing a load due to the read requests of a plurality of HDDs and improving the response performance of a disk array device.
However, in the above-described method, unless disk devices must be consecutively mounted on the disk device mounting slots from one end to the other, there will be unbalance among RAIDs taken charge of by DAs and unbalance among the loads of the DAs. For example, disk devices are mounted every another slot, loads are charged only on DAs with odd (or even) slot numbers and no load is charged on the other slot numbers. Therefore, only performance for one DA can be effectively used, which is a problem.
It is an object of the present invention to provide a disk array access dynamic control device for improving the performance of a disk array device by distributing the loads of I/Fs accessing a disk device group in order to solve the above-described problem and a method thereof.
In order to solve the above-described problem, in a disk array device constituting a plurality of disk arrays by combining the disk devices of a disk device group and having a plurality of device adapters which is an interface for accessing the disk devices, the disk array access dynamic control device of the present invention comprises a composition information storage unit for storing the combination information of the disk devices constituting the disk array and disk weight indicating the average times of accesses to the disk devices constituting the disk array, a responsible-device adapter control unit for allocating the disk array to a responsible device adapter in such a way that the loads of the device adapters accessing a predetermined disk array become uniform, based on the combination information and disk weight, and an access unit for accessing the disk devices constituting the disk array via the responsible device adapter.
According to the present invention, the responsible-device adapter control unit refers to the composition information storage unit and obtains the combination information of disk devices constituting a disk array and disk weight indicating the average times of accesses to the disk devices constituting the disk array. Then, since the responsible-device adapter control unit assigns the disk array to a responsible device adapter in such a way that the loads of responsible device adapters become uniform, based on the combination information and disk weight, the loads of device adapters accessing a disk device group can be distributed.
As a result, the performance of the disk array device (such as the speed of a reading/writing process) can be improved.
As described above, according to the present invention, a disk array access dynamic control device and a method for improving the performance of a disk array device can be provided by distributing the loads of I/Fs accessing a disk device group.
The preferred embodiments of the present invention are described below with reference to
A disk array access dynamic control device 1 comprises a composition information storage unit 3 for storing composition information, such as the combination information of the disk devices constituting a RAID in a disk device group 2, a responsible DA control unit 4 for allocating DAs, being interfaces for accessing each RAID according to this composition information or the like, and an access unit 6 for reading/writing data from/into the disk device group 2 (hereinafter calling this process “access”) according to the instruction of an information processing device 5.
The disk device group 2 is composed of a plurality of disk devices, and generates a plurality of RAIDs according to the composition information stored in the composition information storage unit.
The composition information storage unit 3 stores an average times of access (hereinafter called “disk weight”) to each disk device constituting a RAID, from a DA in addition to the combination information of disk devices constituting the RAID in the disk device group 2.
The responsible DA control unit 4 refers to the composition information stored in the composition information storage unit 3 and obtains the disk weight. Then, the responsible DA control unit 4 controls the assignment of RAIDs to be taken charge of, to each DA in such a way that the loads of the DAs (device adapter weight, hereinafter called “DA weight”) may become uniform, according to this disk weight. In the following description, a DA that takes charge of accesses to one or a plurality of predetermined RAIDs is called “responsible DA”.
The access unit 6 accesses the disk device group 2 via a responsible DA assigned by the responsible DA control unit 4, according to an instruction from the information processing device 5.
The disk array device comprises the disk array access dynamic control device 1 and disk device group 2 which are described above.
The responsible DA control unit 4 of the disk array access dynamic control device 1 shown in
Therefore, the responsible DA control unit 4 obtains disk weight by referring to the composition information storage unit 3 and calculates the RAID weight of each RAID which is generated in the disk device group 2 according to this disk weight.
Furthermore, DA weight is calculated based on the RAID weight, and also assigns RAIDs to the responsible DA in such a way that all DA weights may become uniform.
Thus access loads from each DA to the disk device group 2 can be uniformly distributed, and the performance of the disk array device (particularly, access performance) can be improved.
The composition information storage unit 3 described above can be realized by memory 18 shown in
The responsible DA control unit 4 can be realized by a CM 14. The access unit 6 can be realized by CAs 13 and a CM 14, DAs 15, an RTs 16 and an FC switches 17.
A disk array device 10 shown in
Each CA 13 comprises an I/F with the information processing device 11 or 12. For the CA 13 of this preferred embodiment, one for FC is used. However, the CA 13 is not limited to this, and for example, one for iSCSI can also be used.
The CM 14 controls the disk array device 10. More particularly, the CM 14 controls data transfer between the CM 14 and the disk device group 2 by controlling the DA 15. The CM 14 further comprises memory 18, which stores a program needed to control the disk array device 10, composition information 20, and data to be written into or read from the disk device group 2.
The DA 15 is an I/F with the disk device group 2. When writing data into a RAID constituting the RAID 5, the DA 15 generates a data stripe. The RT 16 is a multiplexer for connecting the CA 13, CM 14 and DA 15 with each other by a PCI path.
The DA 15 and the disk device group 2 are connected via the FC switch 17. They are connected in so-called fabric type.
In the above-described configuration, if for example, a reading process is performed, the CM 14 transmits data to the information processing device 11 via the RT 16 and CA 13 according to an instruction from the information processing device 11 if there is corresponding data on the memory 18.
If there is no corresponding data on the memory 18, the CM 14 reads corresponding data from the disk device group 2 via the FC switch 17, DA 15 and RT 16 and stores the data in the memory 18. Simultaneously, the CM 14 transmits the data to the information processing device 11 via the RT 16 and CA 13.
When a writing process is performed, the data is transmitted from the information processing device 11 to the CM 14 via the CA 13 and RT 16, and is stored in the memory 18. Then, data is read from the disk device group 2 via the FC switch 17, DA 15 and RT 16, as requested, and is written into the disk device group 2 via the RT 16, DA 15 and FC switch 17 by a bandwidth writing process.
Although the same number of data buses between the DA15 and the FC switch 17 and between the disk device group 2 and the FC switch 17 as device enclosures (DE) exist, the data buses are typically shown in
Since the disk array device of this preferred embodiment is provided with the maximum of eight DEs, each DA 15 has eight data buses, and is connected to each FC switch by four data buses. Each FC switch 17 is connected to the disk device group 2 by eight data buses.
The number of each of the information processing device 11 or 12, CA 13, CM 14, DA 15, RT 16, FC switch 17 and memory 18 are not limited to those shown in
The composition information 20 shown in
The parenthesized description of the RAID type indicates the disk device composition of each RAID. For example, RAID with RAID number #01 mirrors four disk devices and total eight disk devices constitute RAID 0+1. RAID with RAID number #07 constitutes RAID 5 in which of four disk devices, an arbitrary one is used for parity data.
RAID 1 indicates a disk array which always writes the same contents in two disks. RAID0+1 indicates a disk array obtained by combining DAID0 with RAID1, which divides data into blocks and distributes/records the data to/on a plurality of disks. RAID 5 indicates a disk array which generates parity data for the striping data of RAID0 and distributes/records the parity data to/on an arbitrary disk.
The disk weight of a disk device constituting each RAID can be calculated as follows. The RAID type is divided into two groups; one group of RAID0+1 and RAID1 (hereinafter called “mirror system RAID”), and the other group of RAIDS, and is described. In the following calculation of each weight, it is assumed for convenience' sake that the average times of accesses in the case where a DA accesses all disk devices constituting a RAID is 1.0 (reference).
In the Case where Raid Type is Mirror System Raid
When reading, the average times of accesses to one disk device, viewed from a DA become 0.5 (=1*½) since either a primary disk or secondary disk is accessed.
When writing, the average times of accesses to one disk device, viewed from a DA become 1.0 since the primary and secondary disks are simultaneously accessed.
If it is assumed that the ratio between reading and writing processes is 1:1, the average times of accesses to one disk device (disk weight), viewed from a DA become 0.75 (=0.5*0.5+1.0*0.5).
Therefore, since, for example, RAID with RAID number #01, shown in
(2) In the Case where Raid Type is Raid5
RAID5(3+1P) is described below for convenience' sake.
When reading, the average times of accesses to one disk device, viewed from a DA become 0.75 (=1.0*¾) since a disk device storing data (disk device other than one used to store parity data) is accessed unless there is no failure in the disk device.
When writing, if a DA completes the data stripe of the RAID5, a bandwidth writing process is performed and a writing process is simultaneously applied to all disk devices. Therefore, the average times of accesses to one disk device, viewed from a DA become 1.0.
If a DA does not complete the data stripe of the RAIDS, specifically if the size of the data stripe is below that of the predetermined data stripe size, the bandwidth writing process is performed after the data stripe is completed. In this case, the reading process of reading data from a disk device (all devices containing a device for parity data) accompanies. Therefore, if the size of the data stripe is below that of the predetermined data stripe size, the average times of accesses to one disk device, viewed from a DA are the sum of the average times of accesses 1.0 of one disk device, viewed from a DA when reading and the average times of accesses 1.0 of one disk device, viewed from a DA when writing and become 2.0.
If it is assumed that the ratio between reading and writing processes is 1:1 and the establishment ratio of bandwidth writing is 50%, the average times of accesses to one disk device (disk weight), viewed from a DA are 1.125 (=0.75*0.5+(1.0+2.0)*0.5*0.5) since they are 0.75*0.5 when reading and (1.0+2.0)*0.5*0.5 when writing.
Thus, since, for example, RAID with RAID number #07, shown in
Although in the above description, disk devices constituting each RAID all have the same performance (such as the same rotation speed of a magnetic disk), RAID weight can also be calculated according to the performance of each disk device constituting the RAID.
For example, it is assumed that the reference rotation speed of a disk device is 10,000 rotations/minute. If the rotation speed of a disk device constituting RAID with RAID number #01 is 15,000 rotations/minute, performance of 1.5 times the reference rotation speed can be obtained. Therefore, the RAID weight of RAID with RAID number #01 can also be calculated 9.0 (=6.0*1.5).
Similarly, if the rotation speed of a disk device constituting RAID with RAID number #07 is 15,000 rotations/minute, performance of 1.5 times the reference rotation speed can also be obtained. Therefore, the RAID weight of RAID with RAID number#07 can also be calculated 6.75 (=4.5*1.5).
The disk device group 2 shown in
Therefore, a slot number indicates the mounting position of the print-wired board with eight disk devices, and a DE number indicates the mounting position of a disk device of each slot.
In the disk device group 2 shown in
Each disk device 21 constituting the disk device group 2 shown in
Therefore, two paths exist for accessing the same disk device. Hereinafter, these paths are called “DA paths”, and are distinguished by DA path numbers “P#00” and “P#01”.
The detailed process of the disk array access dynamic control device 1 in the disk array device 10 with the above-described configuration is described below with reference to
The DA weight is calculated as the sum of RAID weights to be taken charge of by each responsible DA. Then, the responsible-DA assignment table 22 is generated in such a way DA weights may become uniform, by the following process.
Firstly, in step S500 shown in
In step S501, the disk array access dynamic control device 1 calculates the RAID weight of each RAID (for example, each of RAID numbers #01-09 shown in
In step S502, the disk array access dynamic control device 1 sorts the calculated RAID weights in descending order, and furthermore, in step S503, it sequentially assigns RAIDs to each DA.
For example, as shown in DA path P#00 of
Then, when RAID assignment to DA#00-07 is completed once, the process proceeds to step S504.
In step S504, the disk array access dynamic control device 1 checks whether all RAIDs are assigned to each responsible DA. If the assignment of all RAIDs is completed, the process proceeds to step S505.
If the assignment of all RAIDs is not completed, the process returns to step S503, and RAIDs are assigned to each DA in the order the reversal of the process previously performed in step S503. For example, as shown in DA path P#00 of
By the processes in steps S501 through S504, described above, the process of assigning RAIDs to the responsible DA of DA path P#00 is completed.
In step S505, the disk array access dynamic control device 1 generates a responsible DA assignment table 22 for DA path P#01 by reversing the ascending/descending order of the DA numbers for DA path P#00 generated in steps S501 through S504.
By the above-described process, as shown in
The DA weights of the responsible DA assignment table 22 generated by the above-described process are distributed between 9.0 and 10.5. However, since the average of all RAID weights shown in
Then, in step S505, the disk array access dynamic control device 1 generates a responsible DA assignment table 23 shown in
The RAID assignment table 23 shown in
For example, for access to RAID number #01, DA#00 (P#00) and DA#07 (P#01) are used as responsible DAs. For access to RAID number #07, DA#03 (P#01) and DA#04 (P#00) are used as responsible DAs.
Therefore, the CM 14 (access unit 6) refers to the RAID assignment table 23 stored in the memory 18 and obtains a responsible DA of a RAID to be accessed and a DA path and accesses the RAID.
The respective accesses to a mirror system RAID and RAID5 made according to the RAID assignment table 23 shown in
RAID with RAID number #01 shown in
Since each disk device is compatible with a dual port, it has DA paths P#00 and P#01 for left and right FC switches, respectively. Although all disk devices are physically connected to the left and right FC switches 17,
Then, disk devices connected to DA#00 to enable them to communicate with each other are indicated by solid lines, and disk devices connected to DA#07 to enable them to communicate with each other are indicated by one-point broken lines.
As shown in
(3) If its slot number is odd and also if its DA number is even, DA path #01 is used, which is not shown in
In
RAID with RAID number #01 shown in
Since each disk device shown in
Then, disk devices connected to DA#04 to enable them to communicate with each other are indicated by solid lines, and disk devices connected to DA#03 to enable them to communicate with each other are indicated by one-point broken lines.
When accessing RAIDS, (1) if an address smaller than a predetermined logical block address (LBA) is accessed, DA path #00 is used. (2) If an address larger than a predetermined logical block address (LBA) is accessed, DA path #01 is used.
As the predetermined logical block address, a half or a third of the maximum logical block address can be set beforehand, as requested.
By the above-described process, tuning can be automatically performed in such a way to uniformly balance the loads (DA weight) of responsible DAs of each RAID. As a result, access performance to the disk device group 2 can be improved.
Since there in no need to assign each RAID to each responsible DA according to a slot number or a RAID number (for example, whether a slot is even or odd), a RAID number can be assigned regardless of the composition of disk devices and RAIDs in the disk device group 2.
Number | Date | Country | Kind |
---|---|---|---|
2005-185574 | Jun 2005 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5412592 | Krishnamoorthy et al. | May 1995 | A |
5680521 | Pardo et al. | Oct 1997 | A |
5720028 | Matsumoto et al. | Feb 1998 | A |
5761526 | Sakaura et al. | Jun 1998 | A |
5768623 | Judd et al. | Jun 1998 | A |
6622252 | Klaassen et al. | Sep 2003 | B1 |
6912635 | Patterson et al. | Jun 2005 | B2 |
6970973 | Katsuragi et al. | Nov 2005 | B2 |
7096286 | Suzuki et al. | Aug 2006 | B2 |
7181578 | Guha et al. | Feb 2007 | B1 |
20020166005 | Errico | Nov 2002 | A1 |
20030210620 | Yamanaka | Nov 2003 | A1 |
20050172073 | Voigt et al. | Aug 2005 | A1 |
20050172097 | Voigt et al. | Aug 2005 | A1 |
Number | Date | Country |
---|---|---|
6-124175 | Jun 1994 | JP |
8-63298 | Mar 1996 | JP |
8-328759 | Dec 1996 | JP |
9-81527 | Mar 1997 | JP |
2002-116936 | Apr 2002 | JP |
2002-140169 | May 2002 | JP |
2002-533831 | Oct 2002 | JP |
2004-5634 | Jan 2004 | JP |
2004-46352 | Feb 2004 | JP |
2004-102823 | Apr 2004 | JP |
Number | Date | Country | |
---|---|---|---|
20060294303 A1 | Dec 2006 | US |