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

Raid-configured disk drive array wherein array control occurs at the disk drive level

Assignee: International Business Machines Corp
•
Filing: 1996-12-06
•
Granted: 1998-11-10
•
Expires: 2016-12-06
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data processing system incorporating the invention hereof, includes a host processor or server, connected to an array of disk drives which are further interconnected via a network. Each disk drive is logically divided into plural logical memory segments and, in the preferred embodiment, corresponding logical memory segments in each disk drive are arranged as a parity set in a RAID fashion. The host processor includes a driver which generates read and write commands to the array of disk drives. The commands include addresses which are in accord with ranges of addresses assigned to logical memory segments in each disk drive. Each disk drive stores an array configuration page which includes data that identifies a logical memory segment size; a first identifier for the disk drive that incorporates the respective memory segment; and a second identifier for the last disk drive which stores parity for the parity set including the logical memory segment. Each disk drive includes a controller for determining from the logical memory segment size and the second identifier, which logical memory segment in the respective memory stores parity data. The controller responds to an address accompanying a read or write command by mapping the address to a logical memory segment, other than the logical memory segment in the respective memory which stores parity data. Further, the controller, upon performing a write action to a logical memory segment, communicates directly with the disk drive that stores parity for the parity set of which the logical memory segment is a part and causes an update of that parity segment in accordance with the write action.

Inventors

  • 👤 Paul Hodges

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 16:56
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F2211/00; G06F2211/10; G06F2211/1002; G06F2211/1054

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 285 words
A data processing system including a host processor and an array of storage devices coupled to each other and the host processor via communication means, each storage device logically divided into N logical memory segments, where N is an integer greater than 1, and corresponding ones of said logical memory segments (i.e., a "parity set") across P storage devices including at least one logical memory segment which stores parity for P-1 logical memory segments of said parity set, said data processing system comprising: driver means in said host processor for generating read and write commands to said array of storage device, said commands including addresses which are in accord with ranges of addresses assigned to logical memory segments in each storage device; memory means in each said storage device for storing array configuration data which includes data identifying: a logical memory segment size; a first identifier for the storage device incorporating the respective memory means; and a second identifier for a last storage device which stores parity; control means in each said storage device for determining from said logical memory segment size and said second identifier which logical memory segment in said respective memory means stores parity data, and for responding to an address accompanying a read or write command by mapping said address to a logical memory segment other than said logical memory segment in said respective memory means which stores parity data, said control means, upon performing a write action to a logical memory segment in said parity set, communicating directly with the storage device that stores parity for the logical memory segment that was subject to the write action and causing an update of said parity in accordance with said write action.
Claim 2
Dependent Claim 285 words
A data processing system including a host processor and an array of storage devices coupled to each other and the host processor via communication means, each storage device logically divided into N logical memory segments, where N is an integer greater than 1, and corresponding ones of said logical memory segments (i.e., a "parity set") across P storage devices including at least one logical memory segment which stores parity for P-1 logical memory segments of said parity set, said data processing system comprising: driver means in said host processor for generating read and write commands to said array of storage device, said commands including addresses which are in accord with ranges of addresses assigned to logical memory segments in each storage device; memory means in each said storage device for storing array configuration data which includes data identifying: a logical memory segment size; a first identifier for the storage device incorporating the respective memory means; and a second identifier for a last storage device which stores parity; control means in each said storage device for determining from said logical memory segment size and said second identifier which logical memory segment in said respective memory means stores parity data, and for responding to an address accompanying a read or write command by mapping said address to a logical memory segment other than said logical memory segment in said respective memory means which stores parity data, said control means, upon performing a write action to a logical memory segment in said parity set, communicating directly with the storage device that stores parity for the logical memory segment that was subject to the write action and causing an update of said parity in accordance with said write action.
Claim 3
Dependent Claim 33 words
The data processing system as recited in claim 1, wherein said control means determines the storage device which stores parity for said parity set from data in said array configuration page stored therewith.
Claim 4
Dependent Claim 44 words
. The data processing system as recited in claim 1, wherein said array configuration data in each storage device enables each associated control means to calculate a corresponding address in a logical memory segment in an associated one of said P-1 logical memory segments.
Claim 5
Dependent Claim 86 words
The data processing system as recited in claim 1, wherein said array configuration data further includes a third entry which identifies one of said P storage device as evidencing a failed operational state, said control means upon receiving a read command for data in a logical memory segment, issuing read commands to other storage device evidencing an operational state, to read data at corresponding logical memory segment locations, and, upon receiving such data, regenerating data previously available from said storage device evidencing a failed operational state.
Claim 6
Dependent Claim 41 words
The data processing system as recited in claim 1, wherein said one logical memory segment which stores parity for P-1 logical memory segments of said parity set is invariably stored in an initial range of physical addresses of a storage device.
Claim 7
Dependent Claim 47 words
The data processing system as recited in claim 1, wherein said driver means accompanies each write command with a configuration identifier and each array configuration data set also includes a configuration identifier, said control means executing said write command only if each configuration identifier is the same.
Claim 8
Independent Claim 284 words
A method for controlling an array of intercoupled disk drives in a data processing system which includes a host processor, each disk drive logically divided into N logical memory segments, where N is an integer greater than 1, and corresponding ones of said logical memory segments (i.e., a "Parity set") across P storage device include at least one logical memory segment which stores parity for P-1 logical memory segments of said parity set, said method comprising the steps of: causing said host processor to generate read and write commands to said array of disk drives, said commands including addresses which are in accord with ranges of addresses assigned to logical memory segments in each disk drive; storing in memory in each said disk drive an array configuration page which includes data identifying: a logical memory segment size; a first identifier for the disk drive incorporating the respective memory; and a second identifier for a last disk drive which stores parity; operating a control means in each said disk drive to determine from said logical memory segment size and said second identifier which logical memory segment in said respective memory stores parity data, and for responding to an address accompanying a read or write command by mapping said address to a logical memory segment other than said logical memory segment in said respective memory which stores parity data, and further causing said control means, upon performing a write action to a logical memory segment in said parity set, to communicate directly with the disk drive that stores parity for the logical memory segment that was subject to the write action and to further cause an update of said parity in accordance with said write action.
Claim 9
Independent Claim 284 words
A method for controlling an array of intercoupled disk drives in a data processing system which includes a host processor, each disk drive logically divided into N logical memory segments, where N is an integer greater than 1, and corresponding ones of said logical memory segments (i.e., a "Parity set") across P storage device include at least one logical memory segment which stores parity for P-1 logical memory segments of said parity set, said method comprising the steps of: causing said host processor to generate read and write commands to said array of disk drives, said commands including addresses which are in accord with ranges of addresses assigned to logical memory segments in each disk drive; storing in memory in each said disk drive an array configuration page which includes data identifying: a logical memory segment size; a first identifier for the disk drive incorporating the respective memory; and a second identifier for a last disk drive which stores parity; operating a control means in each said disk drive to determine from said logical memory segment size and said second identifier which logical memory segment in said respective memory stores parity data, and for responding to an address accompanying a read or write command by mapping said address to a logical memory segment other than said logical memory segment in said respective memory which stores parity data, and further causing said control means, upon performing a write action to a logical memory segment in said parity set, to communicate directly with the disk drive that stores parity for the logical memory segment that was subject to the write action and to further cause an update of said parity in accordance with said write action.
Claim 10
Dependent Claim 36 words
The method as recited in claim 7, wherein said operating step causes said control means to determine the disk drive which stores parity for said parity set from data in said array configuration page stored therewith.
Claim 11
Dependent Claim 42 words
The method as recited in claim 7, wherein said array configuration page data in each disk drive enables each associated control means to calculate a corresponding address in a logical memory segment in an associated one of said P-1 logical memory segments.
Claim 12
Dependent Claim 91 words
The method as recited in claim 7, wherein said array configuration page further includes a third entry which identifies one of said P storage device as evidencing a failed operational state, and said operating step further causes said control means, upon receiving a read command for data in a logical memory segment, to issue read commands to other disk drives evidencing an operational state, to read data at corresponding logical memory segment locations, and, upon receiving such data, regenerating data previously available from said disk drive evidencing a failed operational state.
Claim 13
Dependent Claim 45 words
The method as recited in claim 7, wherein each write command includes a configuration identifier and each array configuration page also includes a configuration identifier, said operating step causing said control means to execute said write command only if each configuration identifier is the same.
Claim 14
Dependent Claim 315 words
A memory media for operation in conjunction with computation means for controlling an array of intercoupled disk drives in a data processing system which includes a host processor, each disk drive logically divided into N logical memory segments, where N is an integer greater than 1, and corresponding ones of said logical memory segments (i.e., a "parity set") across P storage device include at least one logical memory segment which stores parity for P-1 logical memory segments of said parity set, said memory media comprising: first means for operation with said computation means for causing said host processor to generate read and write commands to said array of disk drives, said commands including addresses which are in accord with ranges of addresses assigned to logical memory segments in each disk drive; second means for operation with said computation means for causing storage in memory in each said disk drive of an array configuration data which includes data identifying: a logical memory segment size; a first identifier for the disk drive incorporating the respective memory; and a second identifier for a last disk drive which stores parity; third means for operating a control means in each said disk drive to determine from said logical memory segment size and said second identifier which logical memory segment in said respective memory stores parity data, and for responding to an address accompanying a read or write command by mapping said address to a logical memory segment other than said logical memory segment in said respective memory which stores parity data, said third means further causing said control means, upon performing a write action to a logical memory segment in said parity set, to communicate directly with the disk drive that stores parity for the logical memory segment that was subject to the write action and to further cause an update of said parity in accordance with said write action.
Claim 15
Dependent Claim 315 words
A memory media for operation in conjunction with computation means for controlling an array of intercoupled disk drives in a data processing system which includes a host processor, each disk drive logically divided into N logical memory segments, where N is an integer greater than 1, and corresponding ones of said logical memory segments (i.e., a "parity set") across P storage device include at least one logical memory segment which stores parity for P-1 logical memory segments of said parity set, said memory media comprising: first means for operation with said computation means for causing said host processor to generate read and write commands to said array of disk drives, said commands including addresses which are in accord with ranges of addresses assigned to logical memory segments in each disk drive; second means for operation with said computation means for causing storage in memory in each said disk drive of an array configuration data which includes data identifying: a logical memory segment size; a first identifier for the disk drive incorporating the respective memory; and a second identifier for a last disk drive which stores parity; third means for operating a control means in each said disk drive to determine from said logical memory segment size and said second identifier which logical memory segment in said respective memory stores parity data, and for responding to an address accompanying a read or write command by mapping said address to a logical memory segment other than said logical memory segment in said respective memory which stores parity data, said third means further causing said control means, upon performing a write action to a logical memory segment in said parity set, to communicate directly with the disk drive that stores parity for the logical memory segment that was subject to the write action and to further cause an update of said parity in accordance with said write action.
Claim 16
Dependent Claim 37 words
The memory media as recited in claim 12, wherein said third means causes said control means to determine the disk drive which stores parity for said parity set from data in said array configuration data stored therewith.
Claim 17
Dependent Claim 47 words
The memory media as recited in claim 12, wherein said array configuration data in each disk drive enables said third means to operate each associated control means to calculate a corresponding address in a logical memory segment in an associated one of said P-1 logical memory segments.
Claim 18
Dependent Claim 92 words
The memory media as recited in claim 12, wherein said array configuration data further includes a third entry which identifies one of said P storage devices as evidencing a failed operational state, and said third means further causes said control means, upon receiving a read command for data in a logical memory segment, to issue read commands to other disk drives evidencing an operational state, to read data at corresponding logical memory segment locations, and, upon receiving such data, regenerating data previously available from said disk drive evidencing a failed operational state.
Claim 19
Dependent Claim 46 words
The memory media as recited in claim 12, wherein each write command includes a configuration identifier and each array configuration page also includes a configuration identifier, said third means causing said control means to execute said write command only if each configuration identifier is the same.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-11-09 2002-05-11 2002-11-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-11-09 2006-05-11 2006-11-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-11-09 2010-05-11 2010-11-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag