Patent US1011319A successfully refreshed from Google Patents.
Patent US5657468A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5657468A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for improving performance in a reduntant array of independent disks

Assignee: Xenogenic Development LLC
•
Filing: 1995-08-17
•
Granted: 1997-08-12
•
Expires: 2015-08-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A RAID disk array that is adaptable to host I/O traffic, wherein the RAID configuration is hidden from the host computer. The system dynamically determines the RAID configuration used to store host data to maximize response time performance and minimize the loss of disk space used for data protection. To maximize response time and avoid a write penalty, small write operations are mapped into RAID 1 configurations, and medium and large write operations are mapped into RAID 3 configurations. These segments are migrated into RAID 5 configurations as a background operation, to minimize the disk space lost. The system hides configuration changes necessary for the addition and/or deletion of disks to the disk array. While these changes are in progress, the disk array remains on-line and all host data is available for access and modification.

Inventors

  • 👤 David C. Stallmo
  • 👤 Randy K. Hall

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 03:56
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F11/1096; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/061; G06F3/0613; G06F3/0628; G06F3/0629; G06F3/0631; G06F3/0638; G06F3/064; G06F3/0668; G06F3/0671; G06F3/0683; G06F3/0689; G06F11/16; G06F11/20; G06F11/2053; G06F11/2056; G06F11/2087

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 142 words
In an array of storage devices accessible from a host computer system, wherein data stored by said host computer system on each one of said storage devices is distributed by said array across all storage devices in said array, a method of organizing storage devices within said array, said method comprising the steps of: (a) organizing data blocks on said storage devices into at least one block group and a block pool, wherein each of said storage devices contains at least part of said block group and at least part of said block pool; (b) when data is written to said array, allocating blocks from said block pool to form a group of allocated blocks to store said data; (c) when data is not being written to said array, placing data from said allocated blocks into said at least one block group.
Claim 2
Dependent Claim 142 words
In an array of storage devices accessible from a host computer system, wherein data stored by said host computer system on each one of said storage devices is distributed by said array across all storage devices in said array, a method of organizing storage devices within said array, said method comprising the steps of: (a) organizing data blocks on said storage devices into at least one block group and a block pool, wherein each of said storage devices contains at least part of said block group and at least part of said block pool; (b) when data is written to said array, allocating blocks from said block pool to form a group of allocated blocks to store said data; (c) when data is not being written to said array, placing data from said allocated blocks into said at least one block group.
Claim 3
Dependent Claim 22 words
The method of claim 1 wherein step (c) comprises the step of copying said data to said at least one block group.
Claim 4
Dependent Claim 25 words
The method of claim 1 wherein step (c) comprises the step of exchanging blocks from said at least one block group with said allocated blocks.
Claim 5
Dependent Claim 26 words
The method of claim 1 wherein a size of each of said at least one block group is dynamically changable by a user of said method.
Claim 6
Dependent Claim 27 words
The method of claim 1 wherein a protection status of each of said at least one block group is dynamically changable by a user of said method.
Claim 7
Dependent Claim 34 words
The method of claim 1 wherein data stored in said at least one block group is stored in a first configuration and data stored in said allocated blocks is stored in a second configuration.
Claim 8
Dependent Claim 18 words
The method of claim 6 wherein said first configuration and said second configuration are selected by said array.
Claim 9
Dependent Claim 63 words
The method of claim 1 wherein step (b) further comprises the steps of: (b1) when said data being written is not located sequentially after data previously written, allocating more blocks than necessary to contain said data being written; and (b1) when said data being written is located sequentially after data previously written, writing said data into allocated blocks containing said previously written data.
Claim 10
Dependent Claim 62 words
The method of claim 1 wherein step (b) further comprises the steps of: (b1) when said data being written is no larger than an amount of data that can be stored on a single disk within said array, allocating an amount of said blocks sufficient to allow said data to be written twice, wherein said data is duplicated within said allocated blocks.
Claim 11
Dependent Claim 52 words
The method of claim 1 wherein step (b) further comprises the steps of: (b1) when said data being written is an amount of data that requires writing to all disks of said array, writing said data in said at least one block group, wherein no blocks are allocated from said block pool.
Claim 12
Dependent Claim 277 words
In an array of storage devices accessible from a host computer system, wherein data stored by said host computer system on each one of said storage devices is distributed by said array across all storage devices in said array, a method of organizing storage devices within said array, said method comprising the steps of: (a) organizing data blocks on said storage devices into at least one block group and a block pool, wherein each of said storage devices contains at least part of said block group and at Least part of said block pool; (b) when data is written to said array and said data is an amount of data that requires writing to all disks of said array, writing said data in said at least one block group; (c) when data is written to said array and said data is no larger than an amount of data that can be stored on a single disk within said array, allocating an amount of blocks from said block pool to form a group of allocated blocks, wherein said amount of blocks is sufficient to allow said data to be written twice, wherein said data is duplicated within said allocated blocks; (d) when data is written to said array and said data is an amount of data that requires writing to more than one disk of said array, but does not require writing to all disks of said array, allocating blocks from said block pool to form a group of allocated blocks to store said data; (e) when data is not being written to said array, placing data from said allocated blocks into said at least one block group.
Claim 13
Dependent Claim 277 words
In an array of storage devices accessible from a host computer system, wherein data stored by said host computer system on each one of said storage devices is distributed by said array across all storage devices in said array, a method of organizing storage devices within said array, said method comprising the steps of: (a) organizing data blocks on said storage devices into at least one block group and a block pool, wherein each of said storage devices contains at least part of said block group and at Least part of said block pool; (b) when data is written to said array and said data is an amount of data that requires writing to all disks of said array, writing said data in said at least one block group; (c) when data is written to said array and said data is no larger than an amount of data that can be stored on a single disk within said array, allocating an amount of blocks from said block pool to form a group of allocated blocks, wherein said amount of blocks is sufficient to allow said data to be written twice, wherein said data is duplicated within said allocated blocks; (d) when data is written to said array and said data is an amount of data that requires writing to more than one disk of said array, but does not require writing to all disks of said array, allocating blocks from said block pool to form a group of allocated blocks to store said data; (e) when data is not being written to said array, placing data from said allocated blocks into said at least one block group.
Claim 14
Dependent Claim 22 words
The method of claim 11 wherein step (e) comprises the step of copying said data to said at least one block group.
Claim 15
Dependent Claim 25 words
The method of claim 11 wherein step (e) comprises the step of exchanging blocks from said at least one block group with said allocated blocks.
Claim 16
Dependent Claim 26 words
The method of claim 11 wherein a size of each of said at least one block group is dynamically changeable by a user of said method.
Claim 17
Dependent Claim 27 words
The method of claim 11 wherein a protection status of each of said at least one block group is dynamically changeable by a user of said method.
Claim 18
Dependent Claim 34 words
The method of claim 11 wherein data stored in said at least one block group is stored in a first configuration and data stored in said allocated blocks is stored in a second configuration.
Claim 19
Dependent Claim 18 words
The method of claim 16 wherein said first configuration and said second configuration are selected by said array.
Claim 20
Dependent Claim 63 words
The method of claim 11 wherein step (c) further comprises the steps of: (c1) when said data being written is not located sequentially after data previously written, allocating more blocks than necessary to contain said data being written; and (c1) when said data being written is located sequentially after data previously written, writing said data into allocated blocks containing said previously written data.

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag