← Back to Patent Explorer
US5644767A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for determining and maintaining drive status from codes written to disk drives of an arrayed storage subsystem

Assignee: Taiwan Semiconductor Manufacturing Co TSMC Ltd
•
Filing: 1995-02-07
•
Granted: 1997-07-01
•
Expires: 2015-02-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method whereby a host computer system is informed of the drive status in a disk array when one or more of the disk drives fail. A data pattern (timestamp or status code) is written on each of the disk drives in service in the array when an event occurs which changes the operating state of an array. The state of an array changes only when the array is configured, unconfigured, a disk drive fails, parity is marked inconsistent or the array is restored. The timestamp includes a binary number to allow the system to determine the status of each disk drive in the array. At each state, the timestamp on each of the operating disk drives is updated to reflect the number of operating disk drives and the status of the parity data. The distinct binary numbers that result when the array changes states allow the system to maintain the data integrity of the array.

Inventors

  • 👤 Dale F. Rathunde

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 10:24
CPC Classifications
G; G11; G11C; G11C29/00; G11C29/70; G11C29/88; G06; G06F; G06F11/00; G06F11/07; G06F11/0703; G06F11/0706; G06F11/0727; G06F11/0766; G06F11/08; G06F11/10; G06F11/1076; G06F11/1096; G06F11/30; G06F11/3003; G06F11/3034; G06F11/3051; G06F11/3055; G06F11/34; G06F11/3466; G06F11/3485

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 234 words
In a computer system including an array of disk drives connected to said computer system, a method operable within said computer system for determining the status of the array drives; said method comprising the steps of: writing a status code onto a plurality of disk drives in the array upon initialization of said array, wherein said plurality of disk drives numbers greater than two disk drives, and wherein said status code having an initial value, and wherein said status code is indicative of a number of said plurality of disk drives in an non-active state; detecting occurrence of an event, wherein said event is one of a plurality of events including a failure of an operating disk drive, a disk array configuration operation, and a disk array restoration operation; updating the value of said status code saved to each drive of said plurality of disk drives in the array which is in an active state upon the occurrence of said event which changes the operating state of the disk array; reading the status codes stored on each drive of said plurality of disk drives within the array upon configuration of the array; identifying drives within the array having status codes which have not been updated; and determining the operability of the array in accordance with the number of non-active disk drives identified in response to reading of said status codes stored on each drive.
Claim 2
Dependent Claim 234 words
In a computer system including an array of disk drives connected to said computer system, a method operable within said computer system for determining the status of the array drives; said method comprising the steps of: writing a status code onto a plurality of disk drives in the array upon initialization of said array, wherein said plurality of disk drives numbers greater than two disk drives, and wherein said status code having an initial value, and wherein said status code is indicative of a number of said plurality of disk drives in an non-active state; detecting occurrence of an event, wherein said event is one of a plurality of events including a failure of an operating disk drive, a disk array configuration operation, and a disk array restoration operation; updating the value of said status code saved to each drive of said plurality of disk drives in the array which is in an active state upon the occurrence of said event which changes the operating state of the disk array; reading the status codes stored on each drive of said plurality of disk drives within the array upon configuration of the array; identifying drives within the array having status codes which have not been updated; and determining the operability of the array in accordance with the number of non-active disk drives identified in response to reading of said status codes stored on each drive.
Claim 3
Dependent Claim 113 words
The method in accordance with claim 1, wherein: said status code comprises a binary data pattern; and said step of updating the value of said status codes comprises the step of incrementing the binary value of said status codes upon the occurrence of a disk drive failure event; said step of updating the value of said status codes comprises the step of decrementing the binary value of said status codes upon the occurrence of a disk array configuration operation event; and said step of updating the value of said status codes comprises the step of decrementing the binary value of said status codes upon the occurrence of a disk array restoration operation event.
Claim 4
Dependent Claim 114 words
The method of claim 1 wherein said status code on each of said plurality of disk drives includes a portion indicating that said plurality of disk drives includes at least one hot spare disk drive and wherein the method further comprises the steps of: setting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate using said at least one hot spare disk drive; and resetting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate without a hot spare disk drive.
Claim 5
Dependent Claim 217 words
In a computer system including an array of disk drives connected to said computer system, a method operable within said computer system for determining the status of the array; the method comprising the steps of: detecting occurrence of an event, wherein said event is one of a plurality of events including a failure of an operating disk drive, a disk array configuration operation, and a disk array restoration operation to restore the information content of a replacement disk drive with the information content of a failed disk drive; writing a status codes onto a plurality of disk drives in the array upon the occurrence of said event, said status code having one of a plurality of values, each value corresponding to one of said plurality of events, wherein said plurality of disk drives numbers greater than two disk drives, and wherein said status code written on ones of said plurality of disk drives in an active state is indicative of a number of said plurality of disk drives in an non-active state; reading the status code stored on each drive of said plurality of disk drives within the disk array; and determining the status of said disk array from the status code read from each active drive of said plurality of disk drives within the disk array.
Claim 6
Dependent Claim 217 words
In a computer system including an array of disk drives connected to said computer system, a method operable within said computer system for determining the status of the array; the method comprising the steps of: detecting occurrence of an event, wherein said event is one of a plurality of events including a failure of an operating disk drive, a disk array configuration operation, and a disk array restoration operation to restore the information content of a replacement disk drive with the information content of a failed disk drive; writing a status codes onto a plurality of disk drives in the array upon the occurrence of said event, said status code having one of a plurality of values, each value corresponding to one of said plurality of events, wherein said plurality of disk drives numbers greater than two disk drives, and wherein said status code written on ones of said plurality of disk drives in an active state is indicative of a number of said plurality of disk drives in an non-active state; reading the status code stored on each drive of said plurality of disk drives within the disk array; and determining the status of said disk array from the status code read from each active drive of said plurality of disk drives within the disk array.
Claim 7
Dependent Claim 114 words
The method of claim 4 wherein said status code on each of said plurality of disk drives includes a portion indicating that said plurality of disk drives includes at least one hot spare disk drive and wherein the method further comprises the steps of: setting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate using said at least one hot spare disk drive; and resetting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate without a hot spare disk drive.
Claim 8
Dependent Claim 165 words
In a computer system including an array of disk drives connected to said computer system, a method operable within said computer system for identifying a failed array drive; the method comprising the steps of: writing a status code onto a plurality of disk drives in the array wherein said plurality of disk drives numbers greater than two disk drives; incrementing each array drive status code saved to each drive of said plurality of disk drives in the array which is in an active state following the occurrence of an I/O error within the disk array, whereby the status code written to an array drive which is in a non-active state is not incremented; and reading the status codes written to each array drive of said plurality of disk drives, said array drive which is in a non-active state being identified by a status code having a value which differs from the status code value written to each array drive which is in an active state.
Claim 9
Dependent Claim 165 words
In a computer system including an array of disk drives connected to said computer system, a method operable within said computer system for identifying a failed array drive; the method comprising the steps of: writing a status code onto a plurality of disk drives in the array wherein said plurality of disk drives numbers greater than two disk drives; incrementing each array drive status code saved to each drive of said plurality of disk drives in the array which is in an active state following the occurrence of an I/O error within the disk array, whereby the status code written to an array drive which is in a non-active state is not incremented; and reading the status codes written to each array drive of said plurality of disk drives, said array drive which is in a non-active state being identified by a status code having a value which differs from the status code value written to each array drive which is in an active state.
Claim 10
Dependent Claim 114 words
The method of claim 6 wherein said status code on each of said plurality of disk drives includes a portion indicating that said plurality of disk drives includes at least one hot spare disk drive and wherein the method further comprises the steps of: setting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate using said at least one hot spare disk drive; and resetting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate without a hot spare disk drive.
Claim 11
Dependent Claim 239 words
In a computer system including an array of disk drives connected to said computer system, a method operable within said computer system for identifying disk drive failures and parity errors within said disk array; the method comprising the steps of: writing a status code onto a plurality of disk drives in the array wherein said plurality of disk drives numbers greater than two disk drives, said status code including a first binary value associated with disk drive status and a second binary value associated with parity status; incrementing the first binary value of each status code saved to each drive of said plurality of disk drives in the array which is in an active state following the occurrence of a disk drive I/O error within the disk array, whereby the status code written to an array drive which is in a non-active state is not incremented; incrementing the second binary value of each status code following the occurrence of a parity error within the disk array; and reading the status codes written to each array drive of said plurality of disk drives, an array drive which is in a non-active state being identified by a status code having a first binary value which differs from the status code first binary value written to each array drive which is in an active state, and a parity error being identified by an incremented second binary value read from said array drives.
Claim 12
Dependent Claim 239 words
In a computer system including an array of disk drives connected to said computer system, a method operable within said computer system for identifying disk drive failures and parity errors within said disk array; the method comprising the steps of: writing a status code onto a plurality of disk drives in the array wherein said plurality of disk drives numbers greater than two disk drives, said status code including a first binary value associated with disk drive status and a second binary value associated with parity status; incrementing the first binary value of each status code saved to each drive of said plurality of disk drives in the array which is in an active state following the occurrence of a disk drive I/O error within the disk array, whereby the status code written to an array drive which is in a non-active state is not incremented; incrementing the second binary value of each status code following the occurrence of a parity error within the disk array; and reading the status codes written to each array drive of said plurality of disk drives, an array drive which is in a non-active state being identified by a status code having a first binary value which differs from the status code first binary value written to each array drive which is in an active state, and a parity error being identified by an incremented second binary value read from said array drives.
Claim 13
Dependent Claim 114 words
The method of claim 8 wherein said status code on each of said plurality of disk drives includes a portion indicating that said plurality of disk drives includes at least one hot spare disk drive and wherein the method further comprises the steps of: setting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate using said at least one hot spare disk drive; and resetting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate without a hot spare disk drive.
Claim 14
Dependent Claim 263 words
In a computer system including an array of disk drives connected to said computer system, apparatus for determining the status of the array drives comprising: storage means associated with each of said disk drives for saving a status code; means in said computer system for writing a status code onto said storage means of a plurality of disk drives in the array upon initialization of said array wherein said plurality of disk drives numbers greater than two disk drives, said status code having an initial value, and wherein said status code is indicative of a number of said plurality of disk drives in an non-active state; means in said computer system for detecting occurrence of an event, wherein said event is one of a plurality of events including a failure of an operating disk drive, a disk array configuration operation, and a disk array restoration operation; means in said computer system for updating the value of said status code saved to said storage means of each of said plurality of disk drives in the array which is in an active state upon the occurrence of said event; means in said computer system for reading the status codes stored in said storage means on each of said plurality of disk drives within the array upon configuration of the array; and means in said computer system for determining the operability of the array in accordance with the number of non-active disk drives identified in response to reading of said status codes stored in said storage means on said each of said plurality of disk drives.
Claim 15
Dependent Claim 263 words
In a computer system including an array of disk drives connected to said computer system, apparatus for determining the status of the array drives comprising: storage means associated with each of said disk drives for saving a status code; means in said computer system for writing a status code onto said storage means of a plurality of disk drives in the array upon initialization of said array wherein said plurality of disk drives numbers greater than two disk drives, said status code having an initial value, and wherein said status code is indicative of a number of said plurality of disk drives in an non-active state; means in said computer system for detecting occurrence of an event, wherein said event is one of a plurality of events including a failure of an operating disk drive, a disk array configuration operation, and a disk array restoration operation; means in said computer system for updating the value of said status code saved to said storage means of each of said plurality of disk drives in the array which is in an active state upon the occurrence of said event; means in said computer system for reading the status codes stored in said storage means on each of said plurality of disk drives within the array upon configuration of the array; and means in said computer system for determining the operability of the array in accordance with the number of non-active disk drives identified in response to reading of said status codes stored in said storage means on said each of said plurality of disk drives.
Claim 16
Dependent Claim 83 words
The apparatus in accordance with claim 10, wherein: said status code comprises a binary data pattern; and the means for updating further comprises: means for incrementing the binary value of said status codes upon the occurrence of a disk drive failure event; means for decrementing the binary value of said status codes upon the occurrence of a disk array configuration operation event; and means for decrementing the binary value of said status codes upon the occurrence of a disk array restoration operation event.
Claim 17
Dependent Claim 115 words
The apparatus of claim 10 wherein said status code on each of said plurality of disk drives includes a portion indicating that said plurality of disk drives includes at least one hot spare disk drive and wherein the apparatus further comprises: means for setting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate using said at least one hot spare disk drive; and means for resetting said portion of said status code on said each of said plurality of disk drives in response to an event configuring said disk array to operate without a hot spare disk drive.

References Cited (Backward Citations)

US4642760A Cited
US4819205A Cited
US4885677A Cited
US4989130A Cited
US5325497A Cited
US5430866A Cited
US5220569A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-06-30 2000-12-30 2001-07-01 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-06-30 2004-12-30 2005-07-01 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-06-30 2008-12-30 2009-07-01 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag