Claims
- 1. A method of writing data in a storage unit having a plurality of drives, in a form of combination of a plurality of write data and an error correcting code, comprising:
(a) generating at least one error correcting code from (m−1) write data supplied from an upper unit; (b) writing, as one data group, said (m−1) write data and said error correcting code in m space fields each belonging to one of m drives within said plurality of drives; (c) responsive to an update request issued by said upper unit for one (old write data) of said (m−1) write data, writing new write data designated by said update request into two space fields belonging to two drives within said plurality of drives other than said m drives as a pair of duplicated write data belonging to said data group; (d) reading out three data including one of said pair of duplicated write data, said old write data, and said error correcting data (old error correcting data) from three of the plurality of drives, holding said three data, at a proper timing after execution of said writing step (c); (e) generating a new error correcting code by using said read out three data for said one data group after updating of said old write data by said new write data; (f) updating said old error correcting code written at said step (b) by said generated new error correcting code; and (g) after the updating of said old error correcting code by said new error correcting code, releasing a first field holding said old write data and a second field storing one of said pair of duplicated write data to make the first and second fields be space fields.
- 2. A method according to claim 1, further comprising the step of:
(d) informing said upper unit of completion of updating requested by said update request, after said step (c) and before said reading step (d).
- 3. A method according to claim 1, further comprising the steps of:
monitoring a frequency of occurrence of read/write requests from said upper unit to said storage unit; and controlling the timing at which said step (d) is executed in accordance with said monitored frequency.
- 4. A method according to claim 3, wherein said controlling step includes a step of starting said step (d) when said monitored frequency is not greater than a predetermined value.
- 5. A method according to claim 1, further comprising the steps of:
when a failure occurs at one of said m drives 48 after said writing of said pair of duplicated write data at step (c) and before said updating of said old error correcting code by said new error correcting code at step (f), reconstructing one of said (m−1) write data or said old error correcting code held in said failed drive, by using (m−1) data each being one of said (m−1) write data or said old error correcting code, held in (m−1) drives other than said failed drive; writing said reconstructed one of said (m−1) write data or said reconstructed old error correcting code in a normal drive to be used in place of said failed drive, as data to be used in place of said one of said (m−1) write data or said old error correcting code held in said failed-drive; and when a failure occurs at one of said two drives holding said pair of duplicated write data after said writing of said pair of duplicated write data at step (c) and before said updating of said old error correcting code by said new error correcting code at step (f), copying one of said pair of duplicated write data held in another of said two drives to a normal drive to be used in place of said failed drive, as duplicated write data to be used in place of another of said part of duplicated write data held in said failed one of said two drives.
- 6. A method according to claim 1, further comprising the steps of:
responsive to a new update request issued by said upper unit for said one data group after execution of said releasing step (g), executing said steps (c) to (g) for new write data designated by said new update request; and responsive to a new update request issued by said upper unit after said writing of said pair of duplicated write data at step (c) and before said releasing step (g), executing said steps (c) to (g) for new write data designated by said new update request after completion of execution of said step (g) for an update request preceding to said new update request.
- 7. A method according to claim 1, wherein said m fields and said two space fields are fields having a same physical address of (m+2) drives.
- 8. A method according to claim 1, further comprising the steps of:
executing said steps (a) to (g) for each of a plurality of data groups each inclusive of (m-l) write data requested by said upper unit; and wherein space fields distributed in said (m+2) drives are used each as a space field for holding an error correcting codes for one of data groups, and pairs of space fields distributed in said (m+2) drives are used each as a pair of two space fields for holding a pair of duplicated write data for one of said plurality of data groups.
- 9. A disk drive having a plurality of drives for holding data in a form of a combination of a plurality of write data and an error correcting code, comprising:
(a) first error correcting code generating means for generating at least one error correcting code from (m−1) write data supplied from an upper unit; (b) first writing means for writing one data group constituted by said (m−1) write data and said error correcting code in m space fields each belonging to each of m drives; (c) second writing means responsive to an update request issued by said upper unit for one (old write data) of said (m−1) write data by said upper unit, for writing new write data designated by said update request in two space fields belonging to two drives other than said m drives as a pair of duplicated write data belonging to said data group, (d) means for reading out three data including one of said pair of duplicated write data, said old write data, and said error correcting data (old error correcting data) from drives holding said three data, at a proper timing after writing of said pair of duplicated write data; (e) second error correcting code generating means for generating by using said read out three data, a new error correcting code for said data group after updating of said old write data by said new write data; (f) means for updating said old error correcting code written by said first writing means by said new error correcting code; and (g) means for releasing, after updating said old error correcting code by said new error correcting code, a first field holding said old write data and a second field holding one of said pair of duplicated write data, so as to make the first and second fields be space fields.
- 10. A disk drive according to claim 9, further comprising:
means for informing said upper unit of completion of updating requested by said update request, after said pair of duplicated write data is written and before said three data are read out.
- 11. A disk array system according to claim 9, further comprising;
means for monitoring a frequency of occurrence of read/write requests from said upper unit to said disk array system; and means for controlling start of an operation of said reading means in accordance with said monitored frequency.
- 12. A disk array system according to claim 11, wherein said controlling means includes means for starting the operation of said reading means when said monitored occurrence frequency is not greater than a predetermined value.
- 13. A disk array system according to claim 9, further comprising:
means responsive to occurrence of a failure at one of said m drives after writing of said pair of duplicated write data and before updating of said old error correcting code by said new error correcting code, for reconstructing one of said (m−1) write data or said old error correcting code held in said failed drive, by using (m−1) data each being one of said (m−1) write data or said old error correcting code held in (m−1) drives other than said failed drive; third writing means for writing said reconstructed one of said (m−1) write data or said reconstructed old error correcting code in a normal drive to be used in place of said failed drive, as the data to be used in place of said one of said (m−1) write data or said old error correcting code held in said failed drive; and means responsive to occurrence of a failure at one of said two drives holding said pair of duplicated write data after writing said pair of duplicated write data and before updating said old error correcting code by said new error correcting code, for copying one of said pair of duplicated write data held in another of said-two drives, a normal drive to be used in place of said failed drive, as duplicated write data to be used in place of another of said pair of duplicated write data held in said failed one of said two drives.
- 14. A disk array system according to claim 9, further comprising:
means responsive to a new update request issued by said upper unit for said data group after releasing said space fields, for causing said second writing means, said reading means, said second error correcting means, said updating means, and said releasing means to operate for new write data designated by said new update request; and means responsive to a new update request issued by said upper unit after writing of said pair of duplicated write data and before releasing of said space fields, for causing said second writing means to start writing of said new data designated by said new update request after releasing by said releasing means is over for an update request preceding to said new update request.
- 15. A disk array system according to claim 9, wherein said m fields and said two space fields are fields of a same physical address of (m+2) drives.
- 16. A disk array system according to claim 9, further comprising:
means for causing said first error correcting code generating means, said first writing means, said second writing means, said reading means, said second error correcting means, said updating means, and said releasing means to operate for each of a plurality of data groups each inclusive of (m−1) write data requested by said upper unit; and wherein space fields distributed in said (m+2) drives are used each as a space field for holding an error correcting codes for one of data groups, and pairs of space fields distributed in said (m+2) drives are used each as a pair of two space fields for holding a pair of duplicated write data for one of said plurality of data groups.
Priority Claims (2)
Number |
Date |
Country |
Kind |
05-125766 |
May 1993 |
JP |
|
04-348301 |
Dec 1992 |
JP |
|
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This is a Continuation-in-part of application Ser. No. 08/173,557 filed Dec. 22, 1993 the subject matter of which is incorporated herein by reference.
[0002] This application is related to U.S. application Ser. No. 07/979,275 filed Nov. 20, 1992 and No. 08/034,389 filed Mar. 18, 1993 and U.S. application entitled “FILE DATA MULTIPLEXING METHOD AND DATA PROCESSING SYSTEM” based on Japanese patent application No. 5-125773 filed May 27, 1993, the contents of which are incorporated herein by reference.
Continuations (4)
|
Number |
Date |
Country |
Parent |
09862608 |
May 2001 |
US |
Child |
10388634 |
Mar 2003 |
US |
Parent |
09444562 |
Nov 1999 |
US |
Child |
09862608 |
May 2001 |
US |
Parent |
08626332 |
Apr 1996 |
US |
Child |
09444562 |
Nov 1999 |
US |
Parent |
08248452 |
May 1994 |
US |
Child |
08626332 |
Apr 1996 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
08173557 |
Dec 1993 |
US |
Child |
08248452 |
May 1994 |
US |