A compact data processing system suitable for long-term use that enables the maintenance of failure resistance without having to mount many spare disks or replace disks; a data processing method; and a storage apparatus for this data processing system are provided. In the data processing system, which has a host system and a storage apparatus that provides first memory areas for storing data read/written by the host system, the storage apparatus has a reservation unit that dynamically reserves one of the first memory areas as a spare second memory area when a failure occurs in any one of the first memory areas and there is no spare second memory area to migrate the data stored in that faulty memory area to.
|
15. A storage apparatus for providing one or more first memory areas for storing data read/written by a host system, comprising:
a reservation unit that executes, when any one of the memory areas is determined to be faulty, a first search that searches for a spare memory area that serves as a replacement for the faulty memory area, and, if a spare memory area is found in the first search, rebuilds a content of the faulty memory area in the spare memory area and then executes a second search that searches for a second spare memory area, and, if no second spare memory area is found in the second search, dynamically reserves one of the memory areas as the second spare memory area.
1. A data processing system comprising: a host system; and
a storage apparatus that provides one or more first memory areas storing data read/written by the host system,
wherein the storage apparatus includes a reservation unit that executes, when any one of the memory areas is determined to be faulty, a first search that searches for a spare memory area that serves as a replacement for the faulty memory area, and, if a snare memory area is found in the first search, rebuilds a content of the faulty memory area in the snare memory area and then executes a second search that searches for a second spare memory area, and, if no second spare memory area is found in the second search, dynamically reserves one of the memory areas as the second spare memory area.
8. A data processing method performed in a data processing system comprising a host system and a storage apparatus that provides one or more first memory areas for storing data read/written by the host system, the method comprising:
a step where the storage apparatus executes, when any one of the memory areas is determined to be faulty, a first search that searches for a spare memory area that serves as a replacement for the faulty memory area, and, if a spare memory area is found in the first search, rebuilds a content of the faulty memory area in the spare memory area and then executes a second search that searches for a second spare memory area, and, if no second spare memory area is found in the second search, dynamically reserves one of the memory areas as the second spare memory area.
2. A data processing system according to
3. The data processing system according to
4. The data processing system according to
5. The data processing system according to
6. A data processing system according to
7. The data processing system according to
9. The data processing system according to
10. The data processing method according to
11. The data processing method according to
12. The data processing method according to
13. The data processing system according to
14. The data processing method according to
16. The storage area according to
17. The storage apparatus according to
wherein the first memory areas constitute a logical volume; and
the reservation unit migrates the data previously stored in one of the first memory areas to another memory area from among the first memory areas, thereby reserving a second memory area in the logical volume.
18. The storage apparatus according to
wherein the first memory areas also constitute a logical volume storing parity data; and
the reservation unit deletes the parity data to reserve a second memory area in that logical volume.
19. The storage apparatus according to
wherein the first memory areas constitute a plurality of logical volumes; and
the reservation unit reserves an unused logical volume with no data from among the logical volumes as a second memory area.
20. The storage apparatus according to
wherein the first memory areas constitute a dynamically-expandable virtual volume;
one of the first memory areas accessed by the host system constitutes a dynamically-expandable pool volume; and
the reservation unit reduces the size of the pool volume and a second memory area is reserved.
21. The storage apparatus according to
|
This application relates to and claims priority from Japanese Patent Application No. 2006-180256, filed on Jun. 29, 2006, the entire disclosure of which is incorporated herein by reference.
1. Field of the Invention
The invention relates to a RAID (Redundant Array of Inexpensive Disks) configuration-adopting data processing system, data processing method, and storage apparatus; particularly to a data processing system, data processing method and storage apparatus where some or all disk drives (hereinafter simply referred to as ‘disks’) are non-replaceably mounted.
2. Description of Related Art
Conventionally, there have been storage apparatuses where RAID configurations are adopted as prevention measure against data loss resulting from disk failures (see, for example, the non-patent document “A Case for Redundant Arrays of Inexpensive Disks (RAID)” by David A. Patterson, Garth Gibson, and Randy H. Katz, University of California Berke.). There also have been storage apparatuses including spare disks for instant RAID recovery from disk failures (see, for example, Japanese Patent Laid-Open Publication No. 1995-146760).
The foregoing storage apparatuses are based on the premise that faulty disks are replaced by built-in spare disks and new spare disks are added in the event of disk failures. Accordingly, with storage apparatuses incapable of disk replacement (hereinafter called ‘non-replaceable disk storage apparatuses’, there is a problem in that spare disks cannot be added and failure resistance degrades.
Although it is possible to mount as many spare disks as possible in non-replaceable disk storage apparatuses, it increases the cost and the size of the storage apparatuses.
This invention aims to provide a compact data processing system suitable for long-term use and capable of maintaining failure resistance without replacing disks or having to mount many spare disks; and a data processing method and storage apparatus for the data processing system.
In order to achieve the foregoing goal, this invention provides a data processing system having a host system; and a storage apparatus that provides one or more first memory areas storing data read/written by the host system. The storage apparatus includes a reservation unit that dynamically reserves one of the first memory areas as a spare second memory area when a failure occurs in any one of the first memory areas and there is no spare second memory area to migrate the data in that faulty first memory area to.
With the data processing system according to this invention, because a spare memory area can be dynamically reserved from among the memory areas of existing disks, the data processing system can be compact, can be used for a long time, and its failure resistance can be maintained.
This invention also provides a data processing method performed in a data processing system having a host system; and a storage apparatus that provides one or more first memory areas for storing data read/written by the host system. This the method includes a step where the storage apparatus dynamically reserves one of the first memory areas as a spare second memory area when a failure occurs in any one of the first memory areas and there is no spare second memory area to migrate the data stored in that faulty first memory area to.
With the data processing method according to this invention, because a spare memory area can be dynamically reserved from among the memory areas of existing disks, failure resistance can be maintained for a compact data processing system suitable for long-term use.
This invention further provides a storage apparatus that provides one or more first memory areas for storing data read/written by a host system. The storage apparatus includes a reservation unit that dynamically reserves one of the first memory areas as a spare second memory area when a failure occurs in any one of the first memory areas and there is no spare second memory area to migrate the data in that faulty first memory area to.
According to this invention, because a spare memory area can be dynamically reserved from among the memory areas of existing disks, a storage apparatus can be compact and used for a long time and the failure resistance can be maintained.
According to this invention, spare disks or spare areas can be reserved without mounting many disks or replacing disks, thereby enabling the maintenance of the failure resistance of a compact data processing system or storage apparatus suitable for long-term use.
Also, even when there is a possibility of not being able to maintain the failure resistance (e.g., when no spare disk or spare area can be reserved) a notification that a replacement storage apparatus has to be prepared is performed.
Embodiments 1 to 4 of this invention are explained below with reference to the attached drawings.
The storage apparatus 1 also has storage controllers 171 and 172 so that a large amount of data can be input/output from/to the storage network at a time.
Incidentally, there may be any number of storage controllers, depending on the type of embodiment.
The storage apparatus 1 also includes a plurality of disks D0, D1, D2 . . . DN. The storage controllers 171 and 172 are connected to these disks D0 to DN via a connection interface 6. Accordingly, the storage controllers 171 and 172 and disks D0 to DN input/output data to each other. The connection between the storage controllers 171 and 172 and disks D0 to DN may be realized by a communication path appropriate for data transfer, such as SATA (Serial ATA), SAS (Serial Attached SCSI), or Fibre Channel.
A control program operating in the storage controllers 171 and 172 controls the input/output of data to/from the disks D0 to DN. The storage controllers 171 and 172 manage the RAID configuration of the disks D0 to DN. They also communicate with the management terminal 2 and send/receive various kinds of data to/from it.
The disks D0 to DN can be connected to the storage controllers via SATA, SAS, or Fibre Channel.
The management terminal 2 is a computer having a CPU, memory, memory device, interface, input device, and display. Based on a management program operating inside, the management terminal 2 recognizes the operation status of the storage apparatus 1 and controls its operation. Incidentally, a client program such as a Web browser may also operate on the management terminal 2 so that the management terminal 2 can control the operation of the storage apparatus 1 based on a management program (Common Gateway Interface or Java (registered trademark) etc.) provided by the storage apparatus 1.
The viewing screen 21 is displayed on the display in the management terminal 2.
The host computers 3 are host systems each having a CPU, memory, memory device and interface; and make database services and web services available using the data supplied from the storage apparatus 1.
The storage network 4 enables communication using protocols appropriate for data transfer, such as SAS protocol and Fibre Channel protocol.
The management LAN 5 can transmit data and control information between computers using TCP/IP (Transmission Control Protocol/Internet Protocol) and an example of the management LAN 5 is an Ethernet (registered trademark) LAN.
The front face of the storage apparatus 1 is covered with a bezel 12 having a plurality of inlets. This bezel 12 also has power buttons 13 and 14 for powering on/off the storage apparatus 1 and a beep-stopping button 15 for stopping the beeping sound of a buzzer that starts when a failure occurs.
Incidentally, although not shown in
The storage controller 171 has a CPU 1901, memory 1902, parity generator/data transfer controller 1905, data buffer 1908, front-end connection interface controller 1906, backend connection interface controller 1907, and LAN interface controller 1909. These components are connected to one another via data transfer paths that are suitably mounted in the storage controller.
The CPU 1901 reads a control program 1903 and management table 1904 stored in the memory 1902 and executes various kinds of controls in the storage apparatus 1.
Based on instructions from the CPU 1901, the parity generator/data transfer controller 1905 transfers data between the memory 1902, front-end connection interface controller 1906, backend connection interface controller 1907, and data buffer 1908. It also calculates parity for predetermined data using the data buffer 1908.
The front-end connection interface 1906 controls the data input/output between the host computers 3 shown in
The backend connection interface 1907 inputs/outputs data to/from the disks D0 to DN and stores/fetches data in/from the data buffer 1908 as necessary.
The data buffer 1908 is memory composed of, for example, DIMMs (Dual Inline Memory Modules) etc. and is made to be non-volatile using batteries etc.
The LAN interface controller 1909—an interface controller—and the management terminal 2 input/output data and control information to each other.
The storage controller 172 in Embodiment 1 has the same structure as the foregoing storage controller 171, therefore its explanation has been omitted. Also, the block configuration in the storage controller shown in
The control program 1903 is composed of a RAID control program 1911, RAID group configuration program 1912, LU configuration program 1913 and management/notification program 1914.
The management table 1904 is composed of a disk information management table T1, RAID group information management table T2, and LU information management table T3.
Based on the control program 1903 and management table 1904, the CPU 1901 processes data input/output from/to the host computer 3 and sends/receives data to/from the disks D0 to DN. The CPU 1901 carries out failure recovery processing based on the control program 1903 and management table 1904.
Based on the instructions from the management terminal 2 and CPU 1901, the RAID group configuration program 1912 creates/deletes a RAID group or makes a change in a RAID group using the RAID group information management table T2.
Based on the instructions from the management terminal 2 and CPU 1901, the LU group configuration program 1913 creates/deletes an LU or makes a change in an LU using the LU information management table T3.
The management/notification program 1914 sends/receives data and control information to/from the management terminal 2.
The disk information management table T1 stores various kinds of information for the disks D0 to DN. The RAID group information management table T2 stores various kinds of information for RAID groups composed of the disks D0 to DN. The LU information management table T3 stores various kinds of information for LUs (logical units), which are logical disks set for RAID group.
LUs are volumes made by logical dividing a RAID group into a plurality of sections. The host computers see the respective LUs as disks so the LUs are also called logical disks.
In the example shown in
In the RAID-5 configuration, parity blocks are located in the respective disks. Accordingly, the parity blocks are stored in a staggered fashion, for example, the parity block in the first row is stored in the disk 4 and the parity block in the second row is stored in the disk 3.
Incidentally, if the number entered in the RAID group number field for a disk is 0 or a positive integer, it means that the disk belongs to the RAID group having that RAID group number; however, if the entered number is −1, it means that the disk is a spare disk; if the entered number is −2, it means that the disk is a faulty disk; and if the entered number is −3, it means that the disk is not being used.
The disk information management table T1 is stored in the memory 1902 and its content can be checked via the management terminal 2.
The RAID group information management table T1 is stored in the memory 1902 and its content can be checked via the management terminal 2.
The LU information management table T3 is, like the disk information management table T1, stored in the memory 1902 and can be checked via the management terminal 2.
More specifically, for example, when the CPU 1901 detects a disk failure, such as when data reading or writing from/in the disk is impossible, the disk is powered off, or the number of times that data is unable to be read from the disk exceeds a threshold value (S1000), it changes the status of that disk to ‘faulty’ in the disk information management table T1 (S1001). The CPU 1901 also changes the status of the RAID group the faulty disk belongs to to ‘degenerate’ in the RAID group information management table T2 (S1002). Then, it calls the management/notification program 1914 and notifies the management terminal 2 that the disk has a problem and the RAID group is ‘degenerate’ (S1003).
The CPU 1901 then searches for a spare disk in the storage apparatus, by referring to the disk management information table T1 (S1004). If there is a spare disk (S1005: Yes), it changes the number ‘−1’ (spare disk) entered in the RAID group number field in the disk information management table T1 to the number of the faulty RAID group (S1006) and rebuilds the content of the faulty disk in this spare disk. In other words, the CPU 1901 reconstructs the RAID structure (S1007).
Once the reconstruction is complete, the CPU 1901 changes the number of the RAID group the faulty disk belongs to to ‘−2’ (faulty disk) in the disk information management table T1 (S1008). Then, it changes the status of the RAID group from ‘degenerate’ to ‘normal’ in the RAID group information management table T2 (S1009).
Then, the CPU 1901 calls the management/notification program 1914 and notifies the management terminal 2 that the RAID group has recovered to a normal state (S1010).
Next, the CPU 1901 carries out second spare disk search in order to search for another spare disk in the storage apparatus 1 (S1011). If there is another spare disk (S1012: Yes), the CPU 1901 finishes the failure recovery processing.
Meanwhile, if no spare disk is found in the first spare disk search (S1005: No), the CPU 1901 checks whether an external replacement storage apparatus is connected to the storage apparatus 1. If one is (S1110: Yes), the CPU 1901 starts migrating the data to that external replacement storage apparatus. If one isn't (S1100: No), the CPU 1901 calls the management/notification program 1914 and notifies the management terminal 2 that a replacement storage apparatus is required (S1102), and finishes the failure recovery processing.
If no spare disk is found in the second spare disk search (S1012: No), the CPU 1901 judges whether there is a granularity-reducible RAID group, by referring to the disk information management table T1 and RAID group information management table T2 (S1200).
If there is a granularity-reducible RAID group (S1201: Yes), the CPU 1901 reduces the granularity of the first-found RAID group or the RAID group for which a high priority has been set by the management terminal 2 (S1202), and then finishes the failure recovery processing.
If there is no granularity-reducible RAID group (S1201: No), the CPU 1901 calls the management/notification program 1914 and notifies the management terminal 2 that a replacement storage apparatus is required (S1102), and finishes the failure recovery processing.
More specifically, the CPU 1901 calculates the number of rows ‘a’ existing in a target RAID group using the formula ‘a’=(the capacity of one disk)/(stripe block size) (S2000). Here, the capacity of one disk is the physical capacity of one disk in the RAID group and the stripe block size is a constant previously set by the CPU 1901. The number of stripe rows ‘a’ is a value which may include a decimal number, so the CPU 1901 rounds up the number after the decimal point and sets the value—integer—as a variable X (S2001).
The CPU 1901 then calculates the number of stripe rows ‘b’ after the granularity reduction using the formula ‘b’=(current number of rows) multiplied by (increase rate). In other words, the number of stripe rows ‘b’ is obtained by the formula ‘b’=(LU-allocated capacity/stripe block size/number of data disks) multiplied by {(number of data disks+number of parity disks)/(number of data disks+number of parity disks −1)} (S2002). Here, the number of parity disks is a value automatically set depending on the RAID level of the RAID group, so if the RAID group is based on RAID-5 configuration, the number of parity disks is 1. The number of stripe rows ‘b’ is a value that may include decimal numbers, so the CPU 1901 rounds up the number after the decimal point and sets the value—integer—as Y (S2003).
The CPU 1901 then compares X and Y and if Y≦X (S2004: Yes), it judges that granularity reduction is possible (S2005). Meanwhile, if Y>X (S2004: No), it judges that granularity reduction is not possible (S2007).
The CPU 1901 then judges whether all the RAID groups have been checked (S2006) and if the judgment is positive (S2006: Yes), it completes the processing. If the judgment is negative (S2006: No), it carries out the same judgment processing for the next RAID group.
The CPU 1901 reads the data blocks in the first stripe row from the disks constituting a target RAID group to the data buffer 1908 (S3000). For example, as shown in
If the currently-reading stripe row is the final stripe in the LU-allocated area (S3004: Yes), the CPU 1901 creates new parity p′x using the data blocks remaining in the data buffer 1908 (S3005) and writes them in the disks (S3006).
Then, in the RAID group information management table T2, the CPU 1901 reduces the number of data disks in the current RAID group by one (S3007). Also, in the disk information management table T1, it changes the number entered in the RAID group number field for the disk that has become an unused disk as a result of the foregoing stripe row rewriting, to ‘−1’ (spare disk) (S3008), and finishes the processing.
Meanwhile, if the stripe row being currently-read is not the final stripe row (S3004: No), the CPU 1901 returns to step S3001 and repeats the processing.
As explained above, with the data processing system according to Embodiment 1, even if there is no spare disk, a spare disk can be reserved by carrying out granularity reduction for an existing disk and making the existing disk into a spare disk. Accordingly, the failure resistance of the storage apparatus 1 can be maintained for a long time. Also, because a spare disk is created using the existing disk, the storage apparatus can be compact.
Meanwhile, if there is a possibility that the failure resistance cannot be maintained anymore (i.e., a spare disk can no longer be reserved), the management terminal 2 can be informed of the necessity of a replacement storage apparatus.
Embodiment 2 of this invention is a method for reserving a new spare disk by changing the RAID level in the storage apparatus 1. For example, RAID-6 (nD+2P) configuration is changed to RAID-5 (nD+1P) configuration to make the disk left in this change a spare disk. This embodiment is explained with reference to
Steps S1000 to S1012 and steps S100 to S102 are the same as those in Embodiment 1 above, so their explanations have been omitted.
If no spare disk is found in the second spare disk search (S1012: No), the CPU 1901 refers to the RAID information management table T2 to judge whether there is a RAID group whose RAID level can be changed, and if there is one (S4100: Yes), it changes its RAID level (S4101). Incidentally, if more than one such RAID group exists, the CPU 1901 selects the RAID group found first or the RAID group for which a high priority has been set by the management terminal 2, and changes its RAID level.
When the CPU 1901 reads the data blocks d and parity blocks p and q in the first stripe row into the data buffer 1908 (S5000), it abandons the parity block q from the data buffer 1908. For example, from among the data blocks d1, d2, d3 and parity blocks p1 and q1 in the first stripe row stored in the disks 6 to 10 as shown in
The CPU 1901 then changes the RAID level of the RAID group written in the RAID group information management table T2 (S5005). It also changes, in the disk information management table T1, the number written in the RAID group number field for the disk that has become an unused disk to ‘−1’ (spare disk) (S5006), and finishes the processing.
Meanwhile, if the stripe row currently read into the data buffer 1908 is not the final stripe row in the LU-allocated area (S5003: No), the CPU 1901 reads the data blocks and parity blocks p and 1 in the next stripe row into the data buffer 1908 (S5007) and returns to step S5001 to repeat the same processing.
As explained above, with the data processing system according to Embodiment 2, even if there is no spare disk, the RAID level is changed so that stable performance can be ensured and a spare disk can be reserved from among the existing disks. Accordingly, the failure resistance of the storage apparatus 1 can be maintained for a long time. Also, because a spare disk can be reserved from among the existing disks, the storage apparatus can be compact.
Meanwhile, if there is a possibility that the failure resistance cannot be maintained anymore (i.e., a spare disk cannot be reserved), the management terminal 2 can be informed of the necessity of a replacement storage apparatus.
Embodiment 3 of this invention is a method for reserving a spare area as an LU, not as a disk. In Embodiments 1 and 2, the data content of a faulty disk is rebuilt in a physical disk, however, in Embodiment 3, it is rebuilt in an LU, i.e., in a logical disk. A method for reserving an LU as a spare area (hereinafter called a ‘spare LU’) has an advantage over Embodiments 1 and 2 in that the spare area can be easily reserved without having to move the existing data blocks. However, because access is made by changing an original LU address (LBA) in a faulty disk to an address in a spare LU, the performance may be inferior to that in Embodiments 1 and 2. Embodiment 3 is explained with reference to
The control program 1903 according to Embodiment 3 is composed of a RAID control program 1911, RAID group configuration program 1912, LU configuration program 1913, and management/notification program 1914.
The management table 1904 is composed of a disk information management table T1, RAID group information management table T2, LU information management table T3, spare LU management table T4 and LBA-LBA conversion table T5.
Incidentally, the spare LU management table T4 and LU information management table T3 are stored in the memory 1902. The information in these tables can be checked via the management terminal 2.
Steps S1000 to S1012 and steps S1100 to S1102 are the same as in the foregoing embodiments, so their explanations will be omitted.
If no spare disk is found in the first spare disk search (S1005: No), the PCU 1901 searches the spare LU management table T4 for an unused spare LU (S6100). If there is an unused spare LU (S6101: Yes), it rebuilds the data in the faulty disk in the spare LU and carries out RAID recovery (S6102).
The CPU 1901 then updates the LBA-LBA conversion table T5 with respect to the foregoing spare LU (S6103). Then, it changes the usage status of the spare LU written in the spare LU management table T4 to ‘used’ (S6104) and executes the processing following the step S1008.
Meanwhile, if no spare disk is found in the second spare disk search (S1012: No), the CPU 1901 searches the disk information management table T1 and RAID information management table T2 for a RAID group whose unused capacity is larger than the capacity of one disk (S6200). Here, even if an unused LU exists in the RAID group the faulty disk belongs to, the CPU 1901 basically does not use that LU as a spare disk but searches for another LU in another RAID group. However, if it is necessary to use that unused LU as a spare disk, the CPU 1901 assigns that LU as a spare disk as long as the RAID group the faulty disk belongs to includes, in addition to that LU having the capacity corresponding to one disk, unused capacity that can be used even when the RAID group is degenerated.
If such a RAID group is found (S6201: Yes), the CPU 1901 changes, in the RAID information management table T2, the LU-allocated capacity and unused capacity for that RAID group and reserves capacity for the spare LU. More precisely, the CPU 1901 increases the LU-allocated capacity by an amount corresponding to the capacity of one disk, and reduces the unused capacity by the same amount (S6202). For example, if the spare LU needs to have the capacity of 100 GB, the CPU 1901 increases the LU-allocated capacity by 100 GB and decreases the non-allocated capacity by 100 GB in the RAID information management table T2.
The CPU 1901 then registers the LU reserved in step S6202 in the spare LU management table T4 (S6203) and finishes the processing.
As described above, with the data processing system according to Embodiment 3, even if there is no spare disk, a RAID group having an unused capacity equal to or larger than the capacity of one disk is searched for so that a spare LU (spare area) can be reserved from among the existing disks in that RAID group. Accordingly, the failure resistance of the storage apparatus 1 can be maintained for a long time. Moreover, because a spare area can be reserved from among the existing disks, the storage apparatus can be compact.
Furthermore, when there is a possibility that the failure resistance cannot be maintained anymore (i.e., a spare disk cannot be reserved), the management terminal 2 can be informed of the necessity of a replacement storage apparatus.
Embodiment 4 of this invention is the case where this invention is applied in a storage apparatus where capacity is dynamically allocated.
A storage apparatus that dynamically allocates capacity manages the capacities of a plurality of RAID groups as one capacity pool and dynamically allocates small and equal size of LUs called extents to the places data is actually written. In this storage apparatus, spare areas are formed as a set of unused extents. In Embodiment 3, when reserving a spare LU from a single RAID group, that RAID group has to have unused capacity the same or larger than the capacity of one disk. In Embodiment 4, however, because a spare area is reserved in the extent pool (a set of extents), the spare area does not have to be reserved from among the areas in a single RAID group and it can also be reserved from among discontinuous areas. Embodiment 4 is explained with reference to
The control program 1903 according to Embodiment 4 is composed of a RAID control program 1911, RAID group configuration program 1912, LU configuration program 1913, and management/notification program 1914.
The management table 1904 is composed of a disk information management table T1, RAID group information management table T2, LU information management table T3, extent management table T6, number-of-extents management table T7, virtual-LU/access destination extent correspondence table T8, and spare LU/extent correspondence table T9.
The extent management table T6 and RAID information management table T2 are stored in the memory 1902.
Incidentally, the number-of-extents management table T7 and extent management table T6 are stored in the memory 1902.
The virtual LU/access destination extent correspondence table T8 and extent management table T6 are stored in the memory 1902.
The capacity pool management viewing screen V2 shows the capacities of extents allocated to virtual LUs and the capacities of unused extents and indicates the usage rates of the respective virtual LUs in a volume. For example, the virtual LU 0 consumes 500 GB. The total capacity of unused extents is 1200 GB. When more spare areas are reserved and the number of unused extents (unused capacities) has decreased, the capacity pool viewing screen V2 shows a message window 16 showing that fact.
The CPU 1901 compares the capacity of one disk with (the number of non-allocated extents multiplied by extent size) and judges whether a spare LU can be reserved in the non-allocated extent group, which is the set of non-allocated extents (S7000). Here, the extent size is a constant previously determined by the CPU 1901.
If the size of the capacity of one disk is the same as (the number of non-allocated extents multiplied by extent size) or smaller than that, i.e., the capacity of one disk ≦(the number of non-allocated extents multiplied by extent size) (S7000: Yes), the CPU 1901 reduces, in the number-of-extents management table T7, the number of non-allocated extents by (the capacity of one disk/extent size), increases the number of extents allocated to spare areas by (the capacity of one disk/extent size), changes the statuses of the extents to ‘allocated’ (S7001), and changes the extent counter (S7002). In other words, the CPU 1901 changes the allocation status in the extent management table T6 to ‘allocated,’ reduces the number of unused extents in the number-of-extents management table T7, and increases the number of extents allocated to spare areas.
The CPU 1901 then updates the spare LU/access destination extent correspondence table T9 (S7003). Then, it calls the management/notification program 1914 and notifies the management terminal 2 of the fact that the capacity pool decreases (S7004). This fact is shown on the capacity pool management viewing screen V2 and this processing is complete.
Meanwhile, if there is no unused area corresponding to the capacity of one disk is found in step S7000, i.e., the capacity of one disk>(the number of non-allocated extents multiplied by extent size) (S7000: No), the CPU 1901 calls the management/notification program 1914, notifies the management terminal 2 that a replacement storage apparatus is required (S7005), and finishes the processing.
As explained above, with the data processing system according to Embodiment 4, even if there is no spare disk, a spare area can be reserved dynamically in the extent pool. Accordingly, the failure resistance of the storage apparatus 1 can be maintained for a long time. Moreover, because a spare area can be reserved from among the existing disks, the storage apparatus 1 can be compact.
Furthermore, even when there is a possibility that the failure resistance cannot be maintained anymore (i.e., a spare disk cannot be reserved), the management terminal 2 can be informed of the necessity of a replacement storage apparatus.
Embodiments 1 to 4 have been explained for the case where the storage apparatus has a search unit that carries out the steps S1000 to S1012; and a reservation unit that dynamically reserves a memory area when failure occurs in one of a plurality of first memory areas—data blocks and parity blocks, and the data stored in that area is migrated to a second memory area—a spare disk or spare area. However, this invention is not limited to this case and it is also possible to store the data destined to be stored in a faulty memory area in a spare disk or spare area.
This invention can be widely applied to one or more storage apparatuses or a data processing system having one or more storage apparatuses.
Patent | Priority | Assignee | Title |
7925845, | Apr 20 2007 | Hitachi, Ltd. | Storage apparatus and management unit setting method |
8099623, | Oct 08 2008 | NetApp, Inc | Efficient distributed hot sparing scheme in a parity declustered RAID organization |
8176289, | May 21 2009 | Red Hat Israel, Ltd.; Red Hat Israel, Ltd | Method to support sparse volumes or thin provisioned volumes in real time |
8392754, | Oct 11 2010 | International Business Machines Corporation | Disaster recovery production takeover |
8656215, | Oct 11 2010 | International Business Machines Corporation | Disaster recovery production takeover |
9983963, | Nov 09 2015 | Alibaba Group Holding Limited | System and method for exploiting hard disk drive capacity reserve and extending operating life thereof |
Patent | Priority | Assignee | Title |
5774643, | Oct 13 1995 | Hewlett Packard Enterprise Development LP | Enhanced raid write hole protection and recovery |
6275898, | May 13 1999 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Methods and structure for RAID level migration within a logical unit |
6976187, | Nov 08 2001 | AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD | Rebuilding redundant disk arrays using distributed hot spare space |
7120826, | Mar 29 2002 | International Business Machines Corporation | Partial mirroring during expansion thereby eliminating the need to track the progress of stripes updated during expansion |
7130973, | Aug 08 2003 | Oracle America, Inc | Method and apparatus to restore data redundancy and utilize spare storage spaces |
20020073297, | |||
20030088803, | |||
20050108475, | |||
EP462917, | |||
EP518603, | |||
JP2002157093, | |||
JP2002236560, | |||
JP2002297322, | |||
JP2003186630, | |||
JP2005099995, | |||
JP2005149374, | |||
JP7146760, | |||
WO2006050455, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 21 2006 | ARAI, MASAHIRO | Hitachi, LTD | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 018280 | /0130 | |
Sep 06 2006 | Hitachi, Ltd. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
May 04 2010 | ASPN: Payor Number Assigned. |
Mar 07 2013 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 13 2017 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Jun 14 2021 | REM: Maintenance Fee Reminder Mailed. |
Nov 29 2021 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Oct 27 2012 | 4 years fee payment window open |
Apr 27 2013 | 6 months grace period start (w surcharge) |
Oct 27 2013 | patent expiry (for year 4) |
Oct 27 2015 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 27 2016 | 8 years fee payment window open |
Apr 27 2017 | 6 months grace period start (w surcharge) |
Oct 27 2017 | patent expiry (for year 8) |
Oct 27 2019 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 27 2020 | 12 years fee payment window open |
Apr 27 2021 | 6 months grace period start (w surcharge) |
Oct 27 2021 | patent expiry (for year 12) |
Oct 27 2023 | 2 years to revive unintentionally abandoned end. (for year 12) |