Sequential resilvering of storage devices with reduced restarts

US2017192864A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017192864-A1
Application numberUS-201715407979-A
CountryUS
Kind codeA1
Filing dateJan 17, 2017
Priority dateJun 9, 2014
Publication dateJul 6, 2017
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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; 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. 2 . The method of claim 1 , wherein the storage pool comprises a Redundant Array of Independent Disks (RAID). 3 . The method of claim 1 , wherein determining the plurality of data blocks that are stored on the first storage device comprises traversing a file system to discover a physical location of each leaf node. 4 . The method of claim 1 , wherein sorting the plurality of data blocks into one or more buckets comprises 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. 5 . The method of claim 4 , wherein sorting the plurality of data blocks into one or more buckets comprises performing a second sorting operation that sorts the blocks within each of the one or more buckets according to disk address order. 6 . The method of claim 5 , wherein the blocks within each of the one or more buckets are sorted into Adelson-Velsky Landis (AVL) tree. 7 . The method of claim 1 , 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. 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; and reusing at least part of the one or more buckets to resilver the second storage device. 9 . The non-transitory computer-readable medium according to claim 8 comprising additional instruction that cause the one or more processors to perform additional operations comprising: determining that each block in a bucket in the one or more buckets is also located on the second storage device. 10 . The non-transitory computer-readable medium according to claim 9 comprising additional instruction that cause the one or more processors to perform additional operations comprising: determining that each block in the bucket is in the same order on the first storage device as on the second storage device; and reusing the bucket to resilver the second storage device without requiring the bucket to be resorted. 11 . The non-transitory computer-readable medium according to claim 9 comprising additional instruction that cause the one or more processors to perform additional operations comprising: determining that blocks in the bucket are in a different order on the first storage device than on the second storage device; using the bucket to resilver the first storage device without requiring the bucket to be resorted; sorting, after resilvering the first storage device, the blocks in the bucket to be in order according to the second storage device; and using the bucket to resilver the second storage device. 12 . The non-transitory computer-readable medium according to claim 8 comprising additional instruction that cause the one or more processors to perform additional operations comprising: determining that at least one block in a bucket in the one or more buckets is also located on the second storage device; determining that at least one block in the bucket is not located on the second storage device; and removing, after resilvering the first storage device, the at least one block in the bucket that is not located on the second storage device. 13 . The non-transitory computer-readable medium according to claim 8 comprising additional instruction that cause the one or more processors to perform additional operations comprising: determining that a first block in a bucket in the one or more buckets is also located on the second storage device; determining that a second block that should be sorted into the bucket from the second device is not in the bucket; and adding the second block to the bucket after resilvering the first storage device. 14 . The non-transitory computer-readable medium according to claim 8 comprising additional instruction that cause the one or more processors to perform additional operations comprising: determining that no blocks in a bucket in the one or more buckets are also located on the second storage device; deleting the blocks in the bucket after resilvering the first storage device; and sorting new blocks from the second storage device into the bucket. 15 . A system comprising: one or more processors; and one or more memory devices comprising instructions that, when executed by the 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; and reusing at least part of the one or more buckets to resilver the second storage device. 16 . The system of claim 15 wherein: the storage pool comprises a Redundant Array of Independent Disks (RAID); and determining a plurality of data blocks that are stored on the first storage device comprises traversing a file system to discover a physical location of each leaf node. 17 . The system of claim 15 wherein: sorting the plurality of data blocks into one or more buckets comprises 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; sorting the plurality of data blocks into one or more buckets comprises performing a second sorting operation that sorts the blocks within each of the one or more buckets according to disk address order; and the blocks within each of the one or more buckets are sorted into Adelson-Velsky Landis (AVL) tree. 18 . The system of claim 15 wherein buckets in the one or more buckets that are not used to resilver the se

Assignees

Inventors

Classifications

  • Data synchronisation · CPC title

  • Redundant storage or storage space (G06F11/2056 takes precedence) · CPC title

  • using a plurality of controllers · CPC title

  • Real-time · CPC title

  • Solving problems relating to consistency · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2017192864A1 cover?
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…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/2082. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jul 06 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).