Methods and apparatus to improve resource allocation for virtualized server systems
US-2019227845-A1 · Jul 25, 2019 · US
US11868248B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11868248-B2 |
| Application number | US-202217681449-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 25, 2022 |
| Priority date | Feb 25, 2022 |
| Publication date | Jan 9, 2024 |
| Grant date | Jan 9, 2024 |
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.
A garbage collection process is performed in a storage system which comprises a storage control node, and storage nodes which implement a striped volume comprising a plurality of stripes having strips that are distributed over the storage nodes. The storage control node selects a victim stripe for garbage collection, and an empty stripe in the striped volume. The storage control node determines a data strip of the victim stripe having predominantly valid data based on a specified threshold, and sends a copy command to a target storage node which comprises the predominantly valid data strip, to cause the target storage node to copy the predominantly valid data strip to a data strip of the empty stripe which resides on the target storage node. The storage control node writes valid data blocks of the victim stripe to remaining data strips of the empty stripe, and releases the victim stripe for reuse.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: performing a garbage collection process in a data storage system, wherein the data storage system comprises a storage control node and a plurality of storage nodes, wherein the storage nodes are configured to implement a striped volume comprising a plurality of stripes which have strips that are distributed over the plurality of storage nodes, wherein the garbage collection process comprises: selecting, by the storage control node, at least one stripe of the plurality of stripes of the striped volume, as a victim stripe for garbage collection; selecting, by the storage control node, at least one empty stripe of the striped volume; selecting, by the storage control node, a data strip of the victim stripe, which is determined to have an amount of valid data content which at least one of meets and exceeds a specified data validity threshold; sending, by the storage control node, a copy command to a target storage node of the plurality of storage nodes, which comprises the selected data strip of the victim stripe, to thereby cause the target storage node to copy the selected data strip to a data strip of the selected empty stripe which resides on the target storage node; writing, by the storage control node, valid data blocks of the victim stripe to remaining data strips of the selected empty stripe to thereby generate a new stripe populated with valid data; and releasing, by the storage control node, the victim stripe for reuse. 2. The method of claim 1 , wherein the striped volume comprises one of a RAID (Redundant Array of Independent Drives) array, and a log-structured RAID array. 3. The method of claim 1 , wherein selecting at least one empty stripe of the striped volume comprises selecting an empty stripe having strips that reside on a same set of storage nodes which contain the strips of the victim stripe. 4. The method of claim 1 , wherein writing valid data blocks of the victim stripe to remaining data strips of the selected empty stripe to thereby generate a new stripe populated with valid data, comprises: condensing the valid data blocks of the victim stripe into one or more data stripes of the selected empty stripe; and writing additional data to the remaining data strips of the empty stripe. 5. The method of claim 4 , wherein writing additional data to the remaining data strips of the empty stripe comprises writing at least one of (i) new data of received input/output (I/O) write requests and (ii) valid data of at least one other victim stripe, to the remaining data strips of the empty stripe to write a full stripe. 6. The method of claim 1 , further comprising: computing, by the storage control node, parity information based on the valid data of the new stripe; and writing, by the storage control node, at least one parity strip of the new stripe to include the computed parity information. 7. The method of claim 1 , wherein selecting a data strip of the victim stripe, which is determined to have an amount of valid data content which at least one of meets and exceeds a specified data validity threshold, comprises selecting, by the storage control node, each data strip of the victim stripe having an amount of valid data content which at least one of meets and exceeds the specified data validity threshold. 8. The method of claim 1 , wherein the specified data validity threshold is no less than about 0.9. 9. An article of manufacture comprising a non-transitory processor- readable storage medium having stored therein program code of one or more software programs, wherein the program code is executable by one or more processors to implement a method which comprises: performing a garbage collection process in a data storage system, wherein the data storage system comprises a storage control node and a plurality of storage nodes, wherein the storage nodes are configured to implement a striped volume comprising a plurality of stripes which have strips that are distributed over the plurality of storage nodes, wherein the garbage collection process comprises: selecting, by the storage control node, at least one stripe of the plurality of stripes of the striped volume, as a victim stripe for garbage collection; selecting, by the storage control node, at least one empty stripe of the striped volume; selecting, by the storage control node, a data strip of the victim stripe, which is determined to have an amount of valid data content which at least one of meets and exceeds a specified data validity threshold; sending, by the storage control node, a copy command to a target storage node of the plurality of storage nodes, which comprises the selected data strip of the victim stripe, to thereby cause the target storage node to copy the selected data strip with predominantly valid data to a data strip of the selected empty stripe which resides on the target storage node; writing, by the storage control node, valid data blocks of the victim stripe to remaining data strips of the selected empty stripe to thereby generate a new stripe populated with valid data; and releasing, by the storage control node, the victim stripe for reuse. 10. The article of manufacture of claim 9 , wherein the striped volume comprises one of a RAID (Redundant Array of Independent Drives) array, and a log-structured RAID array. 11. The article of manufacture of claim 9 , wherein the program code for selecting at least one empty stripe of the striped volume comprises program conde for selecting an empty stripe having strips that reside on a same set of storage nodes which contain the strips of the victim stripe. 12. The article of manufacture of claim 9 , wherein the program code for writing valid data blocks of the victim stripe to remaining data strips of the selected empty stripe to thereby generate a new stripe populated with valid data, comprises: program code for condensing the valid data blocks of the victim stripe into one or more data stripes of the selected empty stripe; and program code for writing additional data to the remaining data strips of the empty stripe. 13. The article of manufacture of claim 12 , wherein the program code for writing additional data to the remaining data strips of the empty stripe comprises program code for writing at least one of (i) new data of received input/output (I/O) write requests and (ii) valid data of at least one other victim stripe, to the remaining data strips of the empty stripe to write a full stripe. 14. The article of manufacture of claim 9 , further comprising program code which is executable by the one or more processors to implement a method which comprises: computing, by the storage control node, parity information based on the valid data of the new stripe; and writing, by the storage control node, at least one parity strip of the new stripe to include the computed parity information. 15. The article of manufacture of claim 9 , wherein the program code for selecting a data strip of the victim stripe, which is determined to have an amount of valid data content which at least one of meets and exceeds a specified data validity threshold, comprises program code for selecting, by the storage control node, each data strip of the victim stripe having an amount of valid data content which at least one of meets and exceeds the specified data validity threshold. 16. A system, comprising: a storage control node, and a plurality of storage nodes, wherein the storage nodes are configured to implement a striped volume comprising a plurality of stripes which have strips that are distributed over the plurality of storage node
Garbage collection, i.e. reclamation of unreferenced memory · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
Organizing or formatting or addressing of data · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
Cleaning, compaction, garbage collection, erase control · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.