Systems and methods for sequential resilvering
First Claim
1. A method for reconstructing data comprising:
- discovering a plurality of blocks for resilvering using at least one computing device, the blocks corresponding to input/output requests not successfully completed for a failed storage device;
coarse grained sorting the plurality of blocks using the at least one computing device, the coarse grained sorting based on a block location of each of the plurality of blocks on the failed storage device;
storing the block location of each of the plurality of blocks on disk according to the coarse grained sorting;
fine grained sorting the coarse grained sorted plurality of blocks further based on the block location using the at least one computing device; and
resilvering the fine grained sorted plurality of blocks sequentially according to the block location using the at least one computing device.
1 Assignment
0 Petitions
Accused Products
Abstract
Implementations claimed and described herein provide systems and methods for the efficient rebuilding of a failed storage device through sequential resilvering. In one implementation, blocks for resilvering are discovered. The blocks correspond to input/output requests not successfully completed for a failed storage device. A coarse grained sorting of the blocks is performed based on a block location of each of the blocks on the failed storage device. The block locations of the blocks are stored in memory according to the coarse grained sorting. A fine grained sorting of the blocks is performed based on the coarse grained sorting of the blocks. The blocks are sequentially resilvered based on the fine grained sorting.
-
Citations
20 Claims
-
1. A method for reconstructing data comprising:
-
discovering a plurality of blocks for resilvering using at least one computing device, the blocks corresponding to input/output requests not successfully completed for a failed storage device; coarse grained sorting the plurality of blocks using the at least one computing device, the coarse grained sorting based on a block location of each of the plurality of blocks on the failed storage device; storing the block location of each of the plurality of blocks on disk according to the coarse grained sorting; fine grained sorting the coarse grained sorted plurality of blocks further based on the block location using the at least one computing device; and resilvering the fine grained sorted plurality of blocks sequentially according to the block location using the at least one computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. One or more tangible non-transitory computer-readable storage media storing computer-executable instructions for performing a computer process on a computing system, the computer process comprising:
-
discovering a plurality of blocks for resilvering; storing an object array having a first temporary object on disk; sorting a first subset of the plurality of blocks into the first temporary object based on a block location of each of the plurality of blocks; reading each of the plurality of blocks in the first temporary object into a sorted tree; resilvering each of the plurality of blocks in the first temporary object sequentially based on the sorted tree; and deleting the first temporary object following the sequential resilvering of the plurality of blocks in the first subset. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A system for reconstructing data comprising:
-
a storage pool having a plurality of storage devices configured to store data; and a file system in communication with the storage pool and having at least one processing unit configured to identify a failed device in the plurality of storage devices, the failed device corresponding to plurality of blocks for which input/output requests were not successfully completed, and to sequentially resilver the plurality of blocks based on a plurality of sorted trees, each of the plurality of sorted trees corresponding to one of a plurality of temporary objects in an object array. - View Dependent Claims (17, 18, 19, 20)
-
Specification