Systems and methods for sequential resilvering
First Claim
1. A method of reconstructing data from a failed storage device in a storage pool, the method comprising:
- identifying a plurality of data blocks that are stored on the failed storage device;
locating the plurality of data blocks on one or more redundant storage devices;
sorting and storing the plurality of data blocks from the one or more redundant storage devices into a plurality of temporary objects in a first order in which the plurality of data blocks are located on the failed storage device, wherein a second order in which the plurality of data blocks are stored on the one or more redundant storage devices is different from the first order of the plurality of data blocks after sorting, wherein each of the plurality of data blocks is associated with an I/O operation, and wherein sorting the plurality of data blocks comprises;
sorting the plurality of data blocks into one or more buckets by performing a first sorting operation that coarsely sorts data blocks into each of the one or more buckets based on disk address, such that blocks within each of the one or more buckets are not required to be in disk address order; and
performing a second sorting operation that sorts the blocks within each of the one or more buckets according to disk address order;
grouping the I/O operations for the plurality of data blocks into sequential I/O operations based on the order in which the plurality of data blocks are located on the failed storage device; and
executing the sequential I/O operations to resilver a new storage device replacing the failed storage device.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of reconstructing data from a failed storage device in a storage pool includes identifying a plurality of data blocks that are stored on the failed storage device, and sorting the plurality of data blocks in an order in which the plurality of data blocks are located on the failed storage device. Each of the plurality of data blocks may be associated with an I/O operation. The method may also include grouping the I/O operations for the plurality of data blocks into sequential I/O operations based on the order in which the plurality of data blocks are located on the failed storage device, and executing the sequential I/O operations to resilver a new storage device replacing the failed storage device.
27 Citations
16 Claims
-
1. A method of reconstructing data from a failed storage device in a storage pool, the method comprising:
-
identifying a plurality of data blocks that are stored on the failed storage device; locating the plurality of data blocks on one or more redundant storage devices; sorting and storing the plurality of data blocks from the one or more redundant storage devices into a plurality of temporary objects in a first order in which the plurality of data blocks are located on the failed storage device, wherein a second order in which the plurality of data blocks are stored on the one or more redundant storage devices is different from the first order of the plurality of data blocks after sorting, wherein each of the plurality of data blocks is associated with an I/O operation, and wherein sorting the plurality of data blocks comprises; sorting the plurality of data blocks into one or more buckets by performing a first sorting operation that coarsely sorts data blocks into each of the one or more buckets based on disk address, such that blocks within each of the one or more buckets are not required to be in disk address order; and performing a second sorting operation that sorts the blocks within each of the one or more buckets according to disk address order; grouping the I/O operations for the plurality of data blocks into sequential I/O operations based on the order in which the plurality of data blocks are located on the failed storage device; and executing the sequential I/O operations to resilver a new storage device replacing the failed storage device. - View Dependent Claims (2, 3, 4, 5)
-
-
6. 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:
-
identifying a plurality of data blocks that are stored on a failed storage device in a storage pool; sorting the plurality of data blocks in an order in which the plurality of data blocks are located on the failed storage device, wherein each of the plurality of data blocks is associated with an I/O operation, and wherein sorting the plurality of data blocks comprises sorting the plurality of data blocks into a plurality of temporary objects; grouping the I/O operations for the plurality of data blocks into sequential I/O operations based on the order in which the plurality of data blocks are located on the failed storage device; and executing the sequential I/O operations to resilver a new storage device replacing the failed storage device. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. 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; identifying a plurality of data blocks that are stored on a failed storage device in a storage pool; sorting the plurality of data blocks in an order in which the plurality of data blocks are located on the failed storage device, wherein each of the plurality of data blocks is associated with an I/O operation; grouping the I/O operations for the plurality of data blocks into sequential I/O operations based on the order in which the plurality of data blocks are located on the failed storage device; and executing the sequential I/O operations to resilver a new storage device replacing the failed storage device, wherein executing the sequential I/O operations comprises sequentially traversing the plurality of data blocks in logical block order to reconstruct data for which the I/O operations were not successfully completed for the failed storage device. - View Dependent Claims (13, 14, 15, 16)
-
Specification