Method and apparatus for improving performance in a reduntant array of independent disks
First Claim
1. 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.
10 Assignments
0 Petitions
Accused Products
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.
214 Citations
18 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. 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. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
Specification