Use of activity bins to increase the performance of disk arrays
First Claim
1. A method of operating a RAID volume having an addressable storage space, the method comprising:
- (a) receiving a write operation directed to a target address range;
(b) determining, based at least upon a value stored in a nonvolatile memory element separate from the target address range, that at least a portion of the target address range may not have been previously written to comply with a RAID standard; and
(c) in response to (b), processing at least the target address range to conform to the RAID standard, whereby processing of write operations is enabled before substantially all of the addressable storage space has been configured to be compliant with the RAID standard.
4 Assignments
0 Petitions
Accused Products
Abstract
A disk array controller reliably improves performance in RAID configurations without the need for a battery backup. Write completion interrupts are queued until a write cache flush has been performed and are then sent to a host system. States of ranges of disk addresses (activity bins) are stored in nonvolatile storage elements associated with the ranges. The states allow rebuild times to be reduced after power failures and drive failures. A range is in a Changing state if at least one of the addresses is the target of a write operation that has been initiated but not completed. The range is in a Stable state if no addresses are the target of an uncompleted write operation. Two additional states are used to identify ranges of disk addresses that have been zeroed or never been written to. The additional states allow substantial reductions in RAID volume creation times.
-
Citations
34 Claims
-
1. A method of operating a RAID volume having an addressable storage space, the method comprising:
-
(a) receiving a write operation directed to a target address range;
(b) determining, based at least upon a value stored in a nonvolatile memory element separate from the target address range, that at least a portion of the target address range may not have been previously written to comply with a RAID standard; and
(c) in response to (b), processing at least the target address range to conform to the RAID standard, whereby processing of write operations is enabled before substantially all of the addressable storage space has been configured to be compliant with the RAID standard. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of operating a RAID volume having an addressable storage space, the method comprising:
-
(a) receiving a write operation directed to an address range;
(b) in response to (a), zeroing at least the address range to which the write operation is directed;
(c) subsequent to (b), performing the write operation, whereby processing of write operations is enabled before substantially all of the addressable storage space has been configured to be compliant with a RAID standard. - View Dependent Claims (8, 9)
-
-
10. A method of operating a RAID volume, the method comprising:
-
initiating a zeroing process to zero substantially the entire RAID volume;
receiving a write operation from a host system, wherein the write operation is directed to a logical address of the RAID volume; and
writing write data of the write operation to disk media of the RAID volume before the zeroing process has been completed, whereby processing of write operations is enabled before substantially all of the addressable storage space has been configured to be compliant with a RAID standard. - View Dependent Claims (11, 12)
-
-
13. A method of operating a RAID volume, the method comprising:
-
for each of a plurality of ranges of multiple addresses representing substantially the entire addressable storage space of the RAID volume, maintaining an associated memory element in nonvolatile storage;
for each of the ranges of addresses, maintaining, in the associated memory element, state information reflective of whether data stored in the respective range of addresses conforms to a RAID standard; and
using the state information stored in the memory elements to do at least one of the following;
(a) identify ranges of addresses that need not be rebuilt during a rebuild operation, so that rebuild times may be reduced, (b) defer zeroing of address ranges so that write operations may commence following RAID volume creation before zeroing of the RAID volume is complete.- View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A method of operating a RAID volume, the method comprising:
-
for each of a plurality of ranges of multiple addresses representing substantially the entire addressable storage space of the RAID volume, maintaining an associated memory element in nonvolatile storage;
for each of the ranges of addresses, setting the associated memory element to indicate at least that the range has not been written to since the RAID volume was created;
identifying a write command directed to at least one of the ranges of addresses; and
for at least one range of addresses to which the write command is directed;
zeroing the at least one range of addresses, and setting each of the memory elements associated with the at least one range of addresses to indicate at least that the range of addresses associated with the memory element has been zeroed. - View Dependent Claims (21, 22)
writing write data associated with the write command to disk media of the RAID volume, and setting each of the memory elements associated with the at least one range of addresses to indicate at least that data has been written to disk media associated with the range of addresses associated with the memory element.
-
-
22. The method of claim 21, further comprising, prior to writing the write data, setting each of the memory elements associated with the at least one range of addresses to indicate at least that a write operation directed to the range of addresses associated with the memory element has been initiated.
-
23. A RAID array comprising:
-
a plurality of disk drives;
a binmap comprising a plurality of storage elements maintained in nonvolatile memory, wherein each storage element is associated with an activity bin; and
at least one processor configured to;
operate the disk drives in a RAID configuration, map disk addresses to activity bins, and store disk activity data in the binmap;
wherein the at least one processor is further configured to skip the rebuilding of at least one range of addresses associated with a target activity bin based at least upon activity data stored in association with the target activity bin. - View Dependent Claims (24, 25, 26, 27)
-
-
28. A RAID array comprising:
-
a plurality of disk drives;
a binmap comprising a plurality of storage elements maintained in nonvolatile memory, wherein each storage element is associated with an activity bin; and
at least one processor configured to;
operate the disk drives in a RAID configuration, map disk addresses to activity bins, and store disk activity data in the binmap;
wherein the at least one processor is further configured to zero a range of addresses associated with a target activity bin at least in response to a receipt of a write operation directed to the target activity bin. - View Dependent Claims (29, 30, 31)
-
-
32. A method of operating a disk array, comprising:
-
executing a background task to zero address ranges of the disk array, such that the background task executes concurrently with the processing of write operations to the disk array;
maintaining state information separately from the address ranges of the disk array, said state information indicating which of the address ranges have been zeroed; and
in response to receipt of a write operation to a target address range, using the state information to determine whether the target address range has been zeroed. - View Dependent Claims (33, 34)
-
Specification