Sequential resilvering of storage devices with reduced restarts
First Claim
1. A method of resilvering a plurality of failed devices in a storage pool, the method comprising:
- detecting a failure of a first storage device in the storage pool;
determining a plurality of data blocks that are stored on the first storage device;
coarsely sorting the plurality of data blocks into one or more buckets in an order in which the plurality of data blocks are located on the first storage device based on disk addresses, such that blocks within each of the one or more buckets are not required to be in disk address order;
detecting a failure of a second storage device in the storage pool after detecting the failure of the first storage device;
determining that one or more of the plurality of data blocks are also located on the second storage device; and
reusing at least part of the one or more buckets to resilver the second storage device.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of resilvering a plurality of failed devices in a storage pool may include detecting a failure of a first storage device in the storage pool, and determining a plurality of data blocks that are stored on the first storage device. The method may also include sorting the plurality of data blocks into one or more buckets in an order in which the plurality of data blocks are located on the first storage device, and detecting a failure of a second storage device in the storage pool after detecting the failure of the first storage device. The method may further include determining that one or more of the plurality of data blocks are also located on the second storage device, and reusing at least part of the one or more buckets to resilver the second storage device.
-
Citations
20 Claims
-
1. A method of resilvering a plurality of failed devices in a storage pool, the method comprising:
-
detecting a failure of a first storage device in the storage pool; determining a plurality of data blocks that are stored on the first storage device; coarsely sorting the plurality of data blocks into one or more buckets in an order in which the plurality of data blocks are located on the first storage device based on disk addresses, such that blocks within each of the one or more buckets are not required to be in disk address order; detecting a failure of a second storage device in the storage pool after detecting the failure of the first storage device; determining that one or more of the plurality of data blocks are also located on the second storage device; and reusing at least part of the one or more buckets to resilver the second storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A non-transitory, computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
-
detecting a failure of a first storage device in the storage pool; determining a plurality of data blocks that are stored on the first storage device; sorting the plurality of data blocks into one or more buckets in an order in which the plurality of data blocks are located on the first storage device; detecting a failure of a second storage device in the storage pool after detecting the failure of the first storage device; determining that one or more of the plurality of data blocks are also located on the second storage device; determining that each data block in a first bucket in the one or more buckets is also located on the second storage device; and reusing at least part of the one or more buckets to resilver the second storage device, including; determining that each data block in the first bucket is in the same order on the first storage device as on the second storage device; and reusing the first bucket to resilver the second storage device without requiring the first bucket to be resorted. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15)
-
-
16. A system comprising:
-
one or more hardware processors; and one or more memory devices comprising instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations comprising; detecting a failure of a first storage device in the storage pool; determining a plurality of data blocks that are stored on the first storage device; sorting the plurality of data blocks into one or more buckets in an order in which the plurality of data blocks are located on the first storage device; detecting a failure of a second storage device in the storage pool after detecting the failure of the first storage device; determining that one or more of the plurality of data blocks are also located on the second storage device; and reusing at least part of the one or more buckets to resilver the second storage device, wherein buckets in the one or more buckets that are not used to resilver the second storage device are deleted prior to resilvering the second storage device. - View Dependent Claims (17, 18, 19, 20)
-
Specification