Performing storage object recovery
US-9842028-B1 · Dec 12, 2017 · US
US9990261B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9990261-B2 |
| Application number | US-201615142999-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 29, 2016 |
| Priority date | Apr 29, 2016 |
| Publication date | Jun 5, 2018 |
| Grant date | Jun 5, 2018 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and techniques for recovering a storage array are disclosed. These systems and techniques include determining a size corresponding to a storage stripe of the storage array. Pieces assigned to the storage stripe are identified. A storage configuration corresponding to the pieces assigned to the storage stripe is detected. Ordinal information and parity information are determined corresponding to the pieces assigned to the storage stripe. The size determined corresponding to the storage stripe, identification of the pieces assigned to the storage stripe, the storage configuration, the ordinal information, and the parity information is stored in a data store to reconstruct lost or corrupted metadata corresponding to the storage array.
Opening claim text (preview).
What is claimed is: 1. A method comprising: determining a size corresponding to a storage stripe by parsing data from an array of physical storage devices that store the storage stripe; associating pieces with the storage stripe; parsing the pieces associated with the storage stripe to detect a storage configuration corresponding to the storage stripe and determine ordinal information corresponding to the pieces; and in response to loss or corruption of metadata describing the storage stripe, reconstructing the metadata based on the determined size corresponding to the storage stripe, the pieces associated with the storage stripe, the detected storage configuration, and the determined ordinal information. 2. The method of claim 1 , wherein determining the size corresponding to the storage stripe includes determining a size of a storage stripe piece, the determining of the size of the storage stripe piece comprising: identifying a contiguous portion of sectors that are associated with a same write sequence number; and determining a size of the contiguous portion of sectors. 3. The method of claim 1 , wherein determining the size corresponding to the storage stripe comprises determining a size of a RAID piece, the determining of the size of the RAID piece comprising: reading a descriptor of a first sector to identify a data portion that is stored in the first sector that extends to a first offset of another sector; and reading descriptors corresponding to other sectors to locate a second sector that includes a second portion that begins at a second offset, wherein the second offset is located at an address that immediately follows the first offset. 4. The method of claim 1 , wherein associating the pieces with the storage stripe comprises: creating a data structure that is associated with a storage device included in the array of physical storage devices; populating the data structure with a write sequence number that is read from a piece of the storage stripe; performing a matching corresponding to the write sequence number to identify other pieces that include the write sequence number; and associating each piece that includes the write sequence number with the storage stripe. 5. The method of claim 1 , wherein detecting the storage configuration comprises: reading a plurality of descriptors of sectors corresponding to the pieces associated with the storage stripe to detect indications corresponding to mirroring and parity. 6. The method of claim 1 , wherein determining the ordinal information comprises: reading a descriptor of a first sector to identify a data portion that is stored in the first sector that extends to a first offset of a second sector, wherein the first sector is a last sector of a first piece that is associated with the storage stripe, and wherein the second sector is a first sector of a second piece that is associated with the storage stripe; and reading a descriptor of the second sector to identify that the second sector includes second portion that begins at a second offset, wherein the second offset is located at an address that immediately follows the first offset. 7. The method of claim 1 , further comprising: generating an expected parity corresponding to the pieces associated with the storage stripe; and matching the expected parity with parity information stored in one or more other pieces that have not been assigned to any storage stripe. 8. The method of claim 1 , further comprising: mapping the storage stripe to a volume, the mapping including reading logical block address (LBA) information from a footer of a piece that is associated with the storage stripe. 9. The method of claim 1 , further comprising validating the pieces associated with the storage stripe, the validating including: generating a parity corresponding to the pieces associated with the storage stripe; and comparing the generated parity with parity information stored in at least one parity piece associated with the storage stripe. 10. A non-transitory machine readable medium having stored thereon instructions for performing a method comprising machine executable code which when executed by at least one machine, causes the machine to: determine a size corresponding to a storage stripe by parsing data from an array of physical storage devices that store the storage stripe; associate pieces with the storage stripe; parse the pieces associated with the storage stripe to detect a storage configuration corresponding to the storage stripe and determine ordinal information corresponding to the pieces; and in response to loss or corruption of metadata describing the storage stripe, reconstruct the metadata based on the determined size corresponding to the storage stripe, the pieces associated with the storage stripe, the detected storage configuration, and the determined ordinal information. 11. The non-transitory machine readable medium of claim 10 , wherein determining the size corresponding to the storage stripe includes determining a size of a storage stripe piece, the determining of the size of the storage stripe piece comprising: identifying a contiguous portion of sectors that are associated with a same write sequence number; and determining a size of the contiguous portion of sectors. 12. The non-transitory machine readable medium of claim 10 , wherein determining the size corresponding to the storage stripe comprises determining a size of a RAID piece, the determining of the size of the RAID piece comprising: reading a descriptor of a first sector to identify a data portion that is stored in a first sector that extends to a first offset of another sector; and reading descriptors corresponding to other sectors to locate a second sector that includes a second portion that begins at a second offset, wherein the second offset is located at an address that immediately follows the first offset. 13. The non-transitory machine readable medium of claim 10 , wherein associating the pieces with the storage stripe comprises: creating a data structure that is associated with a storage device included in the array of physical storage devices; populating the data structure with a write sequence number that is read from a piece of the storage stripe; performing a matching corresponding to the write sequence number to identify other pieces that include the write sequence number; and associating each piece that includes the write sequence number with the storage stripe. 14. The non-transitory machine readable medium of claim 10 , further comprising: determining a size of a RAID piece by reading a plurality of descriptors of sectors to identify a descriptor that stores a nonconsecutive value, wherein the nonconsecutive value indicates an end of the RAID piece; and determining ordinal information corresponding to the RAID piece by identifying descriptors of the RAID piece and one or more other RAID pieces that store consecutive values. 15. The non-transitory machine readable medium of claim 10 , wherein determining the ordinal information comprises: reading a descriptor of a first sector to identify a data portion that is stored in the first sector that extends to a first offset of a second sector, wherein the first sector is a last sector of a first piece that is associated with the storage stripe, and wherein the second sector is a first sector of a second piece that is associated with the storage stripe; and reading a descriptor of the second sector to identify that the second sector includes second portion that begins at a second offset, wherein the second offset is located
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
Metadata, i.e. metadata associated with RAID systems with parity · CPC title
Management of state, configuration or failover · CPC title
in relation to data integrity, e.g. data losses, bit errors · CPC title
Real-time · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.