IP Library Granted Patent US 11,977,734
Granted Patent B2
US 11,977,734 · App. 16/830,469 · Granted May 7, 2024

Storage block balancing using volume part migration

Inventors: Roi Tagar (Haifa, IL); Evgeny Katz (Haifa, IL); Gil BenZeev (Haifa, IL); Zeev Shusterman (Haifa, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0608G06F3/0644G06F3/0647G06F3/067
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,977,734
App. No.
16/830,469
Granted
May 7, 2024
Kind
B2
Abstract

Techniques are provided for implementing storage block balancing using volume part migration. One method comprises obtaining a capacity utilization of storage blocks each storing a portion of one or more storage volumes; and when the capacity utilization of a given storage block is above an upper target threshold, migrating a volume part of the given storage block to a different storage block having a capacity utilization below a lower target threshold, wherein the different storage block is within a same storage pool as the given storage block, and wherein the volume part comprises a subset of a storage volume. A volume part from a first storage block may also (or alternatively) be migrated to a second storage block when: (i) a number of blocks exceed a first threshold; (ii) a plurality of volume parts of the first storage block fit in one or more additional storage blocks in the same storage pool that are below the lower target threshold; and/or (iii) a storage block having a lowest utilization in the storage pool is smaller than a second threshold.

Claims (29)

1. A method, comprising:

obtaining, by at least one entity of a metadata manager on at least one server node of a storage system, a capacity utilization of a plurality of storage blocks each storing at least a portion of one or more storage volumes, wherein the capacity utilization of a given storage block of the plurality of storage blocks is based at least in part on an amount of storage of the given storage block that is storing the at least the portion of the one or more storage volumes stored by the given storage block and corresponding snapshots of the at least the portion of the one or more storage volumes stored by the given storage block, wherein the storage system further comprises one or more storage nodes separate from the at least one server node, wherein the storage nodes comprise a plurality of storage devices, and wherein the plurality of storage devices comprise the plurality of storage blocks; and

in response to the capacity utilization of the given storage block being above an upper target threshold, migrating, by the at least one entity of the metadata manager on the server node, a volume part of the given storage block of at least one storage node to a different storage block of at least one different storage node, wherein the different storage block has a capacity utilization below a lower target threshold and is within a same storage pool as the given storage block, wherein the different storage block is selected based at least in part on an evaluation of a relative capacity utilization among the storage blocks, of the at least one different storage node, that have a capacity utilization that is below the lower target threshold, and wherein the volume part comprises a subset of a storage volume, wherein the at least one entity of the metadata manager is configured to: (i) migrate the volume part of the given storage block to the different storage block within the same storage pool; and (ii) migrate one or more different volume parts to one or more target storage blocks of a different storage pool, wherein the capacity utilization of the given storage block is above the upper target threshold;

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

2. The method of claim 1 , further comprising creating a new storage block in response to no storage block being below the lower target threshold.

3. The method of claim 1 , wherein the given storage block has a highest capacity utilization among a plurality of storage blocks.

4. The method of claim 1 , wherein the different storage block below the lower target threshold has a highest capacity utilization, among the storage blocks of the at least one different storage node, that is below the lower target threshold.

5. The method of claim 1 , further comprising migrating a volume part from a first storage block to a second storage block in response to one or more of: (i) a number of blocks exceeding a first threshold; (ii) a plurality of volume parts of the first storage block fitting in one or more additional storage blocks in the same storage pool that are below the lower target threshold; and (iii) a storage block having a lowest utilization in the storage pool being smaller than a second threshold.

6. The method of claim 1 , further comprising migrating a volume part from a first storage block to a second storage block and wherein the first storage block has a lowest capacity utilization among the plurality of storage blocks and wherein the second storage block has a highest capacity utilization among the plurality of storage blocks below the lower target threshold.

7. The method of claim 1 , further comprising migrating a volume part from a first storage block to a second storage block in response to a storage block having a lowest utilization in the storage pool being smaller than a second threshold and wherein the second threshold is set to: a first value when a number of blocks in a storage system comprising the plurality of storage blocks is below a third threshold, a second value when the number of blocks is above a fourth threshold, and a third value based on a linear expression when the number of blocks is between the third and fourth thresholds.

8. The method of claim 1 , further comprising migrating a volume part from a first storage block to a second storage block and reclaiming the given storage block in response to the given storage block being empty after the migration.

9. An apparatus comprising:

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

the at least one processing device being configured to implement the following steps:

obtaining, by at least one entity of a metadata manager on at least one server node of a storage system, a capacity utilization of a plurality of storage blocks each storing at least a portion of one or more storage volumes, wherein the capacity utilization of a given storage block of the plurality of storage blocks is based at least in part on an amount of storage of the given storage block that is storing the at least the portion of the one or more storage volumes stored by the given storage block and corresponding snapshots of the at least the portion of the one or more storage volumes stored by the given storage block, wherein the storage system further comprises one or more storage nodes separate from the at least one server node, wherein the storage nodes comprise a plurality of storage devices, and wherein the plurality of storage devices comprise the plurality of storage blocks; and

in response to the capacity utilization of the given storage block being above an upper target threshold, migrating, by the at least one entity of the metadata manager on the server node, a volume part of the given storage block of at least one storage node to a different storage block of at least one different storage node, wherein the different storage block has a capacity utilization below a lower target threshold and is within a same storage pool as the given storage block, wherein the different storage block is selected based at least in part on an evaluation of a relative capacity utilization among the storage blocks, of the at least one different storage node, that have a capacity utilization that is below the lower target threshold, and wherein the volume part comprises a subset of a storage volume, wherein the at least one entity of the metadata manager is configured to: (i) migrate the volume part of the given storage block to the different storage block within the same storage pool; and (ii) migrate one or more different volume parts to one or more target storage blocks of a different storage pool, wherein the capacity utilization of the given storage block is above the upper target threshold.

10. The apparatus of claim 9 , further comprising migrating a volume part from a first storage block to a second storage block in response to one or more of: (i) a number of blocks exceeding a first threshold; (ii) a plurality of volume parts of the first storage block fitting in one or more additional storage blocks in the same storage pool that are below the lower target threshold; and (iii) a storage block having a lowest utilization in the storage pool being smaller than a second threshold.

11. The apparatus of claim 9 , further comprising migrating a volume part from a first storage block to a second storage block and wherein the first storage block has a lowest capacity utilization among the plurality of storage blocks and wherein the second storage block has a highest capacity utilization among the plurality of storage blocks below the lower target threshold.

12. The apparatus of claim 9 , further comprising migrating a volume part from a first storage block to a second storage block in response to a storage block having a lowest utilization in the storage pool being smaller than a second threshold and wherein the second threshold is set to: a first value when a number of blocks in a storage system comprising the plurality of storage blocks is below a third threshold, a second value when the number of blocks is above a fourth threshold, and a third value based on a linear expression when the number of blocks is between the third and fourth thresholds.

13. The apparatus of claim 9 , further comprising migrating a volume part from a first storage block to a second storage block and reclaiming the given storage block in response to the given storage block being empty after the migration.

14. The apparatus of claim 9 , further comprising creating a new storage block in response to no storage block being below the lower target threshold.

15. The apparatus of claim 9 , wherein the given storage block has a highest capacity utilization among a plurality of storage blocks.

16. The apparatus of claim 9 , wherein the different storage block below the lower target threshold has a highest capacity utilization, among the storage blocks of the at least one different storage node, that is below the lower target threshold.

17. 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 the following steps:

obtaining, by at least one entity of a metadata manager on at least one server node of a storage system, a capacity utilization of a plurality of storage blocks each storing at least a portion of one or more storage volumes, wherein the capacity utilization of a given storage block of the plurality of storage blocks is based at least in part on an amount of storage of the given storage block that is storing the at least the portion of the one or more storage volumes stored by the given storage block and corresponding snapshots of the at least the portion of the one or more storage volumes stored by the given storage block, wherein the storage system further comprises one or more storage nodes separate from the at least one server node, wherein the storage nodes comprise a plurality of storage devices, and wherein the plurality of storage devices comprise the plurality of storage blocks; and

in response to the capacity utilization of the given storage block being above an upper target threshold, migrating, by the at least one entity of the metadata manager on the server node, a volume part of the given storage block of at least one storage node to a different storage block of at least one different storage node, wherein the different storage block has a capacity utilization below a lower target threshold and is within a same storage pool as the given storage block, wherein the different storage block is selected based at least in part on an evaluation of a relative capacity utilization among the storage blocks, of the at least one different storage node, that have a capacity utilization that is below the lower target threshold, and wherein the volume part comprises a subset of a storage volume, wherein the at least one entity of the metadata manager is configured to: (i) migrate the volume part of the given storage block to the different storage block within the same storage pool; and (ii) migrate one or more different volume parts to one or more target storage blocks of a different storage pool, wherein the capacity utilization of the given storage block is above the upper target threshold.

18. The non-transitory processor-readable storage medium of claim 17 , further comprising migrating a volume part from a first storage block to a second storage block in response to one or more of: (i) a number of blocks exceeding a first threshold; (ii) a plurality of volume parts of the first storage block fitting in one or more additional storage blocks in the same storage pool that are below the lower target threshold; and (iii) a storage block having a lowest utilization in the storage pool being smaller than a second threshold.

19. The non-transitory processor-readable storage medium of claim 17 , further comprising migrating a volume part from a first storage block to a second storage block in response to a storage block having a lowest utilization in the storage pool being smaller than a second threshold and wherein the second threshold is set to: a first value when a number of blocks in a storage system comprising the plurality of storage blocks is below a third threshold, a second value when the number of blocks is above a fourth threshold, and a third value based on a linear expression when the number of blocks is between the third and fourth thresholds.

20. The non-transitory processor-readable storage medium of claim 17 , further comprising migrating a volume part from a first storage block to a second storage block and reclaiming the given storage block in response to the given storage block being empty after the migration.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) Recorded Jun 23, 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 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) Recorded Jun 23, 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 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) Recorded Jun 23, 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 060436/0582 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2020
From: TAGAR, ROI; KATZ, EVGENY; BENZEEV, GIL; SHUSTERMAN, ZEEV
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052232/0726 →
Continuity (1)
Related Publication 20210303169A1 · Sep 30, 2021