Determining when to rebalance slices across memory devices
US-2019303006-A1 · Oct 3, 2019 · US
US2022222002A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2022222002-A1 |
| Application number | US-202117144314-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jan 8, 2021 |
| Priority date | Jan 8, 2021 |
| Publication date | Jul 14, 2022 |
| Grant date | — |
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.
The described technology is generally directed towards rebalancing fragments (components) of a protection group among storage entities (e.g., nodes or disks) based on affinity levels in response to a scale out event that expands the storage entities e.g., nodes or disks) of a system. Affinity levels (e.g., maintained in an affinity matrix) represent dependency relationships between the storage entities with respect to storing distributed protection group fragments. A protection group's components are rebalanced based on the new storage entities such that the affinity level between any pair of storage entities is approximately the same as any other pair. In the event of a storage entity failure, as a result of the affinity-based distribution of the protection group components needed for data recovery, a larger number of the other storage entities can be involved in the data recovery. The technology facilitates improved capacity load balancing and faster data recovery.
Opening claim text (preview).
What is claimed is: 1 . A system, comprising: a processor, and a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, the operations comprising: obtaining an affinity dataset comprising affinity levels that represent dependence of protection groups among storage entities of a data storage system, the protection groups comprising fragments; detecting a scale out event that increases the storage entities in the data storage system by adding at least one new storage entity to legacy storage entities of the data storage system; and in response to the detecting, rebalancing the fragments, comprising obtaining a layout for the fragments based on leveling the affinity levels in the affinity dataset, selecting a protection group to be rebalanced resulting in a selected protection group, moving a fragment of the selected protection group, based on the layout, from a legacy storage entity to a new storage entity, and updating the affinity dataset based on the moving of the fragment. 2 . The system of claim 1 , wherein the obtaining the layout comprises adjusting a first layout into a second layout to avoid moving the fragment from a first legacy storage entity to a second legacy storage entity. 3 . The system of claim 1 , wherein the selecting the protection group to be rebalanced comprises determining the selected protection group from among candidate protection groups based on fragment intersection with the layout. 4 . The system of claim 1 , wherein the selecting the protection group to be rebalanced comprises determining the selected protection group from among candidate protection groups based on avoiding moving the fragment from a first older storage entity to a second older storage entity. 5 . The system of claim 1 , wherein the affinity dataset comprises a matrix data structure having a first dimension based on a number of storage entities available for storage of the protection groups and a second dimension based on the number of storage entities. 6 . The system of claim 1 , wherein the updating the affinity dataset based on the moving of the fragment comprises increasing the affinity level between a legacy storage entity that retains a non-moved fragment and the new storage entity. 7 . The system of claim 1 , wherein the storage entities comprise nodes. 8 . The system of claim 1 , wherein the storage entities comprise storage drives. 9 . A method, comprising: obtaining, by a data storage system comprising a processor, a layout of storage entities for storage of components of a protection group, wherein the storage entities comprise legacy storage entities and additional storage entities added via a scale-out event, and wherein the layout group is based on affinity data that represents respective affinity levels associated with respective pairs of storage entities of the storage entities; selecting a protection group, the protection group comprising legacy protection components to be rebalanced among the storage entities based on the layout; storing the legacy protection components among the storage entities based on the layout, comprising moving a legacy protection component from a legacy storage entity of the legacy storage entities to an additional storage entity of the additional storage entities; and updating the affinity data, based on the storing of the protection components, resulting in updated affinity data. 10 . The method of claim 9 , wherein the obtaining the layout comprises determining the layout based on reducing an affinity level of two legacy storage devices. 11 . The method of claim 9 , wherein the obtaining the layout comprises adjusting a first layout into a second layout to avoid moving the legacy protection component from a first legacy storage entity to a second legacy storage entity. 12 . The method of claim 11 , wherein the adjusting the layout comprises updating a copy of the affinity data to an updated copy based on an intersection of the legacy protection components of the legacy protection group with a first layout of the storage entities and on first additional storage entities in the first layout, and using the updated copy to replace the second storage entity with a third storage entity in the second layout. 13 . The method of claim 9 , wherein the selecting the protection group comprises determining an intersection of the legacy protection components of the protection group with the layout of the storage entities. 14 . The method of claim 9 , further comprising maintaining a group of candidate protection groups, and wherein the selecting the legacy protection group comprises determining which of the candidate protection groups intersect with the layout of the storage entities. 15 . The method of claim 11 , wherein the updating the affinity data comprises incrementing the affinity level between a first legacy storage device that retains a non-moved component of the protection group and the additional storage entity to which the legacy protection component was moved, and decrementing the affinity level between the legacy storage device from which the legacy protection component was moved and the first legacy storage device. 16 . The method of claim 15 , wherein the affinity data is maintained as a symmetrical matrix data structure of values comprising dimensions based on a number of storage entities that store protection components in the data storage system, and wherein the incrementing the affinity level comprises, for the respective pairs of storage entities, incrementing a respective first matrix value indexed by the first legacy storage device that retains at least one protection component and the additional storage entity to which the legacy protection component was moved. 17 . A non-transitory machine-readable medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, the operations comprising: rebalancing a data storage system based on a scale-out event that adds additional storage entities to a group of legacy storage entities, the rebalancing comprising: obtaining a first layout of data storage entities based on affinity levels that correspond to a number of common protection group components maintained by respective pairs of storage entities; selecting a protection group from a group of candidate protection groups based on the first layout and the legacy storage entities that store components of the protection group, the selecting resulting in a selected protection group; determining whether the components of the selected protection group are accommodated by the first layout without moving a component from a first legacy storage entity to a second legacy storage entity, and in response to determining that the components of the selected protection group are accommodated by the first layout, moving one or more of the components of the selected protection group to one or more of additional storage entities based on the first layout; and in response to determining that the components of the selected protection group are not accommodated by the first layout, adjusting the first layout to a second layout based on adjusted affinity levels, and moving the one or more of the components of the selected protection group to the one or more of the additional storage entities based on the second layout. 18 . The non-transitory machine-readable medium of claim 17 , wherein the selecting the protection group comprises determining intersection of the first layout with t
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
in relation to data integrity, e.g. data losses, bit errors · CPC title
Replication mechanisms · CPC title
Single storage device · 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.