IP Library Granted Patent US 11,740,824
Granted Patent B2
US 11,740,824 · App. 17/182,942 · Granted Aug 29, 2023

Performing wear leveling between storage systems of a storage cluster

Inventors: Chi Chen (Chengdu, CN); Hailan Dong (Chengdu, CN)
Assignee: Dell Products L.P.
G06F3/0647G06F3/067G06F3/0616G06F16/182
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,740,824
App. No.
17/182,942
Filed
Feb 23, 2021
Granted
Aug 29, 2023
Kind
B2
Art Unit
2136
USPC
711/165
Abstract

An apparatus comprises at least one processing device comprising a processor coupled to a memory. The at least one processing device is configured to obtain usage information for each of two or more storage systems of a storage cluster, and to determine a wear level of each of the storage systems of the storage cluster based at least in part on the obtained usage information. The at least one processing device is also configured to identify a wear level imbalance of the storage cluster based at least in part on the determined wear levels of each of the storage systems of the storage cluster. The at least one processing device is further configured, responsive to the identified wear level imbalance of the storage cluster being greater than an imbalance threshold, to move storage objects between the storage systems of the storage cluster.

Claims (71)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to perform steps of:

obtaining usage information for each of two or more storage systems of a storage cluster;

determining a wear level of each of the two or more storage systems of the storage cluster based at least in part on the obtained usage information, wherein the wear level for a given one of the two or more storage systems is determined based at least in part on a combination of (i) capacity usage information for the given storage system, (ii) input-output temperature information characterizing a number of input-output requests within a specified time period for the given storage system, and (iii) cumulative write requests count information for the given storage system;

identifying a wear level imbalance of the storage cluster based at least in part on the determined wear levels of each of the two or more storage systems of the storage cluster; and

based at least in part on the identified wear level imbalance of the storage cluster being greater than an imbalance threshold, moving one or more storage objects between the two or more storage systems of the storage cluster;

wherein moving the one or more storage objects between the two or more storage systems of the storage cluster is further based at least in part on a determination of a projected change in at least one of: a first wear level of a first one of the two or more storage systems of the storage cluster resulting from movement of the one or more storage objects; and a second wear level of a second one of the two or more storage systems of the storage cluster resulting from movement of the one or more storage objects; and

wherein identifying the wear level imbalance of the storage cluster comprises determining an imbalance rate of the storage cluster based at least in part on a function of a first statistical measure of the wear levels of the two or more storage systems of the storage cluster and a second statistical measure of the wear levels of the two or more storage systems of the storage cluster, the second statistical measure being different than the first statistical measure.

2. The apparatus of claim 1 wherein the obtained usage information comprises:

capacity usage information for each of the two or more storage systems of the storage cluster;

input-output temperature information characterizing a number of input-output requests within the specified time period for each of the two or more storage systems of the storage cluster; and

cumulative write requests count information for each of the two or more storage systems of the storage cluster.

3. The apparatus of claim 1 wherein determining the wear level of the given storage system comprises computing a weighted sum of the capacity usage information for the given storage system, the input-output temperature information for the given storage system, and the cumulative write requests count information for the given storage system.

4. The apparatus of claim 3 wherein a first weight assigned to the capacity usage information for the given storage system is lower than a second weight assigned to the input-output temperature information and a third weight assigned to the cumulative write requests count information for the given storage system.

5. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to perform steps of:

obtaining usage information for each of two or more storage systems of a storage cluster;

determining a wear level of each of the two or more storage systems of the storage cluster based at least in part on the obtained usage information;

identifying a wear level imbalance of the storage cluster based at least in part on the determined wear levels of each of the two or more storage systems of the storage cluster; and

based at least in part on the identified wear level imbalance of the storage cluster being greater than an imbalance threshold, moving one or more storage objects between the two or more storage systems of the storage cluster;

wherein moving the one or more storage objects between the two or more storage systems of the storage cluster is further based at least in part on a determination of a projected change in at least one of: a first wear level of a first one of the two or more storage systems of the storage cluster resulting from movement of the one or more storage objects; and a second wear level of a second one of the two or more storage systems of the storage cluster resulting from movement of the one or more storage objects;

wherein identifying the wear level imbalance of the storage cluster comprises determining an imbalance rate of the storage cluster based at least in part on a function of a first statistical measure of the wear levels of the two or more storage systems of the storage cluster and a second statistical measure of the wear levels of the two or more storage systems of the storage cluster, the second statistical measure being different than the first statistical measure;

wherein the first statistical measure comprises an average of the wear levels of the two or more storage systems of the storage cluster;

wherein the second statistical measure comprises a standard deviation of the wear levels of the two or more storage systems of the storage cluster; and

wherein the function comprises a ratio of the standard deviation and the average of the wear levels of the two or more storage systems of the storage cluster.

6. The apparatus of claim 1 wherein moving the one or more storage objects between the two or more storage systems of the storage cluster comprises:

selecting the first one of the two or more storage systems of the storage cluster as a source storage system;

selecting the second one of the two or more storage systems of the storage cluster as a destination storage system; and

selecting a given storage object stored on the first storage system to be moved to the second storage system.

7. The apparatus of claim 6 wherein the first storage system has a higher determined wear level than the second storage system.

8. The apparatus of claim 6 wherein selecting the given storage object comprises:

determining, for each of at least a subset of storage objects stored on the first storage system, hot degree information characterizing a number of write requests per unit capacity; and

selecting the given storage object from among the subset of storage objects stored on the first storage system based at least in part on the determined hot degree information.

9. The apparatus of claim 6 wherein moving the one or more storage objects between the two or more storage systems of the storage cluster further comprises:

determining the first and second wear levels of the first storage system and the second storage system under an assumption that the given storage object is moved from the first storage system to the second storage system; and

moving the given storage object from the first storage system to the second storage system based at least in part on the determined first wear level of the first storage system being less than or equal to the determined second wear level of the second storage system.

10. The apparatus of claim 1 wherein moving the one or more storage objects between the two or more storage systems comprises performing two or more iterations of:

selecting the first storage system and the second storage system of the storage cluster as respective source and destination storage systems for moving at least one of the one or more storage objects;

determining, if the at least one storage object were moved from the first storage system to the second storage system, whether the first wear level of the first storage system will be less than or equal to the second wear level of the second storage system; and

moving the at least one storage object from the first storage system to the second storage system based at least in part on determining that the first wear level of the first storage system will be less than or equal to the second wear level of the second storage system.

11. The apparatus of claim 10 wherein the at least one storage object is selected based at least in part on (i) amounts of input-output requests directed to storage objects stored on the first storage system; and (ii) sizes of the storage objects stored on the first storage system.

12. The apparatus of claim 10 wherein performing the two or more iterations continues until a given iteration where it is determined that, if the at least one storage object were moved from the first storage system to the second storage system, the first wear level of the first storage system will be greater than the second wear level of the second storage system.

13. The apparatus of claim 1 wherein a first one of the two or more storage systems is part of a first distributed filesystem and a second one of the two or more storage systems is part of a second distributed filesystem different than the first distributed filesystem.

14. The apparatus of claim 1 wherein a first one of the two or more storage systems utilizes block-based storage and a second one of the two or more storage systems utilizes file-based storage, and wherein the first and second storage systems supply block and file storage services independent of one another.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

obtaining usage information for each of two or more storage systems of a storage cluster;

determining a wear level of each of the two or more storage systems of the storage cluster based at least in part on the obtained usage information, wherein the wear level for a given one of the two or more storage systems is determined based at least in part on a combination of (i) capacity usage information for the given storage system, (ii) input-output temperature information characterizing a number of input-output requests within a specified time period for the given storage system, and (iii) cumulative write requests count information for the given storage system;

identifying a wear level imbalance of the storage cluster based at least in part on the determined wear levels of each of the two or more storage systems of the storage cluster; and

based at least in part on the identified wear level imbalance of the storage cluster being greater than an imbalance threshold, moving one or more storage objects between the two or more storage systems of the storage cluster;

wherein moving the one or more storage objects between the two or more storage systems of the storage cluster is further based at least in part on a determination of a projected change in at least one of: a first wear level of a first one of the two or more storage systems of the storage cluster resulting from movement of the one or more storage objects; and a second wear level of a second one of the two or more storage systems of the storage cluster resulting from movement of the one or more storage objects; and

wherein identifying the wear level imbalance of the storage cluster comprises determining an imbalance rate of the storage cluster based at least in part on a function of a first statistical measure of the wear levels of the two or more storage systems of the storage cluster and a second statistical measure of the wear levels of the two or more storage systems of the storage cluster, the second statistical measure being different than the first statistical measure.

16. The computer program product of claim 15 wherein moving the one or more storage objects between the two or more storage systems comprises performing two or more iterations of:

selecting the first storage system and the second storage system of the storage cluster as respective source and destination storage systems for moving at least one of the one or more storage objects;

determining, if the at least one storage object were moved from the first storage system to the second storage system, whether the first wear level of the first storage system will be less than or equal to the second wear level of the second storage system; and

moving the at least one storage object from the first storage system to the second storage system based at least in part on determining that the first wear level of the first storage system will be less than or equal to the second wear level of the second storage system.

17. The computer program product of claim 16 wherein the at least one storage object is selected based at least in part on (i) amounts of input-output requests directed to storage objects stored on the first storage system; and (ii) sizes of the storage objects stored on the first storage system.

18. A method comprising:

obtaining usage information for each of two or more storage systems of a storage cluster;

determining a wear level of each of the two or more storage systems of the storage cluster based at least in part on the obtained usage information, wherein the wear level for a given one of the two or more storage systems is determined based at least in part on a combination of (i) capacity usage information for the given storage system, (ii) input-output temperature information characterizing a number of input-output requests within a specified time period for the given storage system, and (iii) cumulative write requests count information for the given storage system;

identifying a wear level imbalance of the storage cluster based at least in part on the determined wear levels of each of the two or more storage systems of the storage cluster; and

based at least in part on the identified wear level imbalance of the storage cluster being greater than an imbalance threshold, moving one or more storage objects between the two or more storage systems of the storage cluster;

wherein moving the one or more storage objects between the two or more storage systems of the storage cluster is further based at least in part on a determination of a projected change in at least one of: a first wear level of a first one of the two or more storage systems of the storage cluster resulting from movement of the one or more storage objects; and a second wear level of a second one of the two or more storage systems of the storage cluster resulting from movement of the one or more storage objects;

wherein identifying the wear level imbalance of the storage cluster comprises determining an imbalance rate of the storage cluster based at least in part on a function of a first statistical measure of the wear levels of the two or more storage systems of the storage cluster and a second statistical measure of the wear levels of the two or more storage systems of the storage cluster, the second statistical measure being different than the first statistical measure; and

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

19. The method of claim 18 wherein moving the one or more storage objects between the two or more storage systems comprises performing two or more iterations of:

selecting the first storage system and the second storage system of the storage cluster as respective source and destination storage systems for moving at least one of the one or more storage objects;

determining, if the at least one storage object were moved from the first storage system to the second storage system, whether the first wear level of the first storage system will be less than or equal to the second wear level of the second storage system; and

moving the at least one storage object from the first storage system to the second storage system based at least in part on determining that the first wear level of the first storage system will be less than or equal to the second wear level of the second storage system.

20. The method of claim 19 wherein the at least one storage object is selected based at least in part on (i) amounts of input-output requests directed to storage objects stored on the first storage system; and (ii) sizes of the storage objects stored on the first storage system.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2021
From: CHEN, CHI; DONG, HAILAN
To: DELL PRODUCTS L.P.
Reel/Frame 055375/0865 →
Priority Claims (1)
CN 202110158120.4 · Feb 4, 2021 · national
Continuity (1)
Related Publication 20220244877A1 · Aug 4, 2022