Method and apparatus for ensuring data consistency
US-10365856-B2 · Jul 30, 2019 · US
US11656776B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11656776-B2 |
| Application number | US-202117318359-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 12, 2021 |
| Priority date | Nov 27, 2020 |
| Publication date | May 23, 2023 |
| Grant date | May 23, 2023 |
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.
In creating an extent array in a storage system, in response to receiving a request to generate an extent array using idle extents in storage devices, a width of an extent stripe is determined, and a size of the extent array is designated by the storage system. A first extent group and a second extent group are respectively selected from the storage devices based on the width to form a first extent stripe and a second extent stripe, and a first extent at a given position in the first extent group and a second extent at a given position in the second extent group are respectively located in different storage devices. Based on the first extent stripe and the second extent stripe, an address mapping representing the extent array is generated. The address mapping includes association between extent identifiers of extents and extent indexes of the extents.
Opening claim text (preview).
The invention claimed is: 1. A method of generating an extent array in a storage system that comprises a plurality of storage devices, the method comprising: determining, in response to receiving a request to generate an extent array using idle extents in the plurality of storage devices, a width of an extent stripe in the extent array, wherein a size of the extent array is designated by the storage system; respectively selecting a first group of extents and a second group of extents from the plurality of storage devices based on the width to form a first extent stripe and a second extent stripe, wherein respectively selecting the first group of extents and the second group of extents includes assigning extent identifiers to extents in the plurality of storage devices, each extent identifier indicating (i) a corresponding extent stripe and (ii) a position in the corresponding extent stripe, the position being a relative placement in an ordered list of extents forming the corresponding extent stripe, wherein a first extent at a given position in the first extent stripe and a second extent at a given position in the second extent stripe are respectively located in different storage devices among the plurality of storage devices, the given position in the first extent stripe being equal to the given position in the second extent stripe; wherein the method further comprises: generating an address mapping representing the extent array based on the first extent stripe and the second extent stripe, wherein the address mapping comprises an association relationship between the extent identifiers and extent indexes of the extents in the extent array; wherein assigning the extent identifiers includes assigning, to the extents, (i) extent stripe numbers indicating corresponding extent stripes and (ii) position numbers indicating positions in the corresponding extent stripes; and wherein generating the address mapping includes calculating respective values of the extent indexes using the extent stripe numbers and the position numbers. 2. The method according to claim 1 , wherein selecting the first group of extents and the second group of extents comprises: selecting the first group of extents from a first set of storage devices in the plurality of storage devices based on the width; determining a number of a second set of storage devices other than the first set of storage devices in the plurality of storage devices; and selecting the second group of extents from the second set of storage devices in response to a determination that the number of the second set of storage devices is not less than the width. 3. The method according to claim 1 , wherein selecting the first group of extents and the second group of extents includes: selecting the first group of extents from a first set of storage devices in the plurality of storage devices based on the width; determining a number of a second set of storage devices other than the first set of storage devices in the plurality of storage devices; and in response to a determination that the number of the second set of storage devices is less than the width: selecting a part of the second group of extents from the second set of storage devices based on the number of the second set of storage devices; and selecting a remaining part of the second group of extents from the first set of storage devices based on a difference between the width and the number of the second part of storage devices. 4. The method according to claim 2 , further comprising: sorting the plurality of storage devices; and determining, based on the width, the first set of storage devices and the second set of storage devices in the plurality of storage devices that are sorted. 5. The method according to claim 1 , wherein generating the address mapping comprises: creating the address mapping of the extent array based on extent identifiers of the extents in the first group of extents and the second group of extents. 6. The method according to claim 5 , wherein the extent identifiers comprise identifiers of stripes where the extents are located and positions of the extents in the stripes, and creating the address mapping comprises: determining the extent indexes of the extents in the extent array based on the identifiers of the stripes, the positions, and the width. 7. The method according to claim 1 , wherein the plurality of storage devices are divided into a first domain and a second domain, and wherein respectively selecting the first group of extents and the second group of extents comprises: selecting the first group of extents from a plurality of storage devices located in the first domain; and selecting the second group of extents from a plurality of storage devices located in the second domain. 8. The method according to claim 1 , further comprising: in response to a determination that an offline storage device appears in the plurality of storage devices, determining, based on the address mapping, an index of at least one offline extent located in the offline storage device in the extent array; determining, based on the index, an address range of a group of extents involved in reconstruction in the extent array; and reconstructing data in the extent array based on the address range. 9. The method according to claim 1 , further comprising: in response to a determination that an abnormal storage device appears in the plurality of storage devices, wherein the abnormal storage device is accessible and there is an access abnormality, determining, based on the address mapping, an index of at least one abnormal extent located in the abnormal storage device in the extent array; determining, based on the index, an address range of a group of extents involved in migration in the extent array; and migrating data in the extent array based on the address range. 10. The method according to claim 1 , further comprising: determining the number of stripes that should be comprised in the extent array according to the size of the extent array and the width; in response to the number of current stripes in the extent array being less than the number of the stripes, selecting a third group of extents from the plurality of storage devices based on the width to form a third group of stripes; and adding the third group of stripes to the extent array. 11. An electronic device, comprising: at least one processor; and a memory coupled to the at least one processor, wherein the memory has instructions stored therein which, when executed by the at least one processor, cause the device to perform a method of generating an extent array in a storage system that comprises a plurality of storage devices, and the method comprises: determining, in response to receiving a request to generate an extent array using idle extents in the plurality of storage devices, a width of an extent stripe in the extent array, wherein a size of the extent array is designated by the storage system; respectively selecting a first group of extents and a second group of extents from the plurality of storage devices based on the width to form a first extent stripe and a second extent stripe, respectively selecting a first group of extents and a second group of extents from the plurality of storage devices based on the width to form a first extent stripe and a second extent stripe, wherein respectively selecting the first group of extents and the second group of extents includes assigning extent identifiers to extents in the plurality of storage devices, each extent identifier indicating (i) a corresponding extent stripe and (ii) a position in the corresponding extent stripe, the position being a relat
Disk arrays, e.g. RAID, JBOD · CPC title
Management of blocks · CPC title
Organizing or formatting or addressing of data · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Management of space entities, e.g. partitions, extents, pools · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.