IP Library Granted Patent US 12699523
Granted Patent B2
US 12699523 · App. 19/041,223 · Granted Aug 4, 2026

System and method for rebalancing data after storage pool expansion

Inventors: Geng Han (Beijing, CN); Vamsi K. Vankamamidi (Hopkinton, MA); Baote Zhuo (Beijing, CN)
Assignee: Dell Products L.P.
G06F3/0647G06F3/0604G06F3/0689
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 12699523
App. No.
19/041,223
Granted
Aug 4, 2026
Kind
B2
Abstract

A method, computer program product, and computing system for detecting the addition of a new storage device to a storage pool. A rebalancing target is generated for the storage pool by simulating an initial layout of used data slices and reserved data slices into a plurality of data slice stripes. It is determined whether the plurality of storage devices of the storage pool meet the rebalancing target. In response to determining that the plurality of storage devices do not meet the rebalancing target, a source storage device is selected for restriping. A destination storage device is selected for restriping. One or more data slices from the source storage device are transferred to the destination storage device. The selecting of source storage devices, destination storage devices, and transferring of data slices are iteratively repeated until the plurality of storage devices meet the rebalancing target.

Claims (59)

1 . A computer-implemented method, executed on a computing device, comprising:

detecting the addition of a new storage device to a storage pool;

generating a rebalancing target for the storage pool including the new storage device by simulating an initial layout of used data slices and reserved data slices into a plurality of data slice stripes;

determining whether the plurality of storage devices of the storage pool meet the rebalancing target;

in response to determining that the plurality of storage devices do not meet the rebalancing target, selecting a source storage device for restriping;

selecting a destination storage device for restriping;

transferring one or more data slices from the source storage device to the destination storage device; and

iteratively repeating the selecting of source storage devices, destination storage devices, and transferring of one or more data slices until the plurality of storage devices meet the rebalancing target.

2 . The computer-implemented method of claim 1 , further comprising:

determining that a storage capacity for the new storage device is greater than a storage capacity of a prime storage device.

3 . The computer-implemented method of claim 1 , further comprising:

in response to determining that the storage capacity for the new storage device is greater than the storage capacity of the prime storage device, assigning the new storage device as the prime storage device.

4 . The computer-implemented method of claim 1 , wherein selecting the source storage device includes selecting a storage device with a utilization that deviates most from the rebalancing target compared to the other storage devices from the plurality of storage devices of the storage pool.

5 . The computer implemented method of claim 4 , wherein selecting the destination storage device includes:

generating a list of storage devices that have a utilization below the rebalancing target;

sorting the list of storage devices using a neighborhood matrix indicating a connectivity strength between each pair of storage devices of the storage pool; and

selecting the storage device with a lowest connectivity strength with the source storage device.

6 . The computer implemented method of claim 1 , further comprising:

generating a restriping target of reserved data slices for the storage pool; and

in response to determining that the plurality of storage devices meet the rebalancing target, rebalancing reserved data slices until each storage device meets the restriping target of reserved data slices.

7 . The computer implemented method of claim 1 , further comprising:

restriping the plurality of used data slices and reserved data slices into the plurality of data slice stripes using the initial layout and the restriping target.

8 . A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:

detecting the addition of a new storage device to a storage pool;

generating a rebalancing target for the storage pool including the new storage device by simulating an initial layout of used data slices and reserved data slices into a plurality of data slice stripes;

determining whether the plurality of storage devices of the storage pool meet the rebalancing target;

in response to determining that the plurality of storage devices do not meet the rebalancing target, selecting a source storage device for restriping;

selecting a destination storage device for restriping;

transferring one or more data slices from the source storage device to the destination storage device; and

iteratively repeating the selecting of source storage devices, destination storage devices, and transferring of one or more data slices until the plurality of storage devices meet the rebalancing target.

9 . The computer program product of claim 8 , wherein the operations further comprise:

determining that a storage capacity for the new storage device is greater than a storage capacity of a prime storage device.

10 . The computer program product of claim 8 , wherein the operations further comprise:

in response to determining that the storage capacity for the new storage device is greater than the storage capacity of the prime storage device, assigning the new storage device as the prime storage device.

11 . The computer program product of claim 8 , wherein selecting the source storage device includes selecting a storage device with a utilization that deviates most from the rebalancing target compared to the other storage devices from the plurality of storage devices of the storage pool.

12 . The computer program product of claim 11 , wherein selecting the destination storage device includes:

generating a list of storage devices that have a utilization below the rebalancing target;

sorting the list of storage devices using a neighborhood matrix indicating a connectivity strength between each pair of storage devices of the storage pool; and

selecting the storage device with a lowest connectivity strength with the source storage device.

13 . The computer program product of claim 8 , wherein the operations further comprise:

generating a restriping target of reserved data slices for the storage pool; and

in response to determining that the plurality of storage devices meet the rebalancing target, rebalancing reserved data slices until each storage device meets the restriping target of reserved data slices.

14 . The computer program product of claim 8 , wherein the operations further comprise:

restriping the plurality of used data slices and reserved data slices into the plurality of data slice stripes using the initial layout and the restriping target.

15 . A computing system comprising:

a memory; and

a processor configured to detect the addition of a new storage device to a storage pool, to generate a rebalancing target for the storage pool including the new storage device by simulating an initial layout of used data slices and reserved data slices into a plurality of data slice stripes, to determine whether the plurality of storage devices of the storage pool meet the rebalancing target, in response to determining that the plurality of storage devices do not meet the rebalancing target, to select a source storage device for restriping, to select a destination storage device for restriping, to transfer one or more data slices from the source storage device to the destination storage device, and to iteratively repeat the selecting of source storage devices, destination storage devices, and transferring of one or more data slices until the plurality of storage devices meet the rebalancing target.

16 . The computing system of claim 15 , wherein the processor is further configured to:

determine that a storage capacity for the new storage device is greater than a storage capacity of a prime storage device.

17 . The computing system of claim 15 , wherein the processor is further configured to:

in response to determining that the storage capacity for the new storage device is greater than the storage capacity of the prime storage device, assign the new storage device as the prime storage device.

18 . The computing system of claim 15 , wherein selecting the source storage device includes selecting a storage device with a utilization that deviates most from the rebalancing target compared to the other storage devices from the plurality of storage devices of the storage pool.

19 . The computing system of claim 18 , wherein selecting the destination storage device includes:

generating a list of storage devices that have a utilization below the rebalancing target;

sorting the list of storage devices using a neighborhood matrix indicating a connectivity strength between each pair of storage devices of the storage pool; and

selecting the storage device with a lowest connectivity strength with the source storage device.

20 . The computing system of claim 15 , wherein the processor is further configured to:

generate a restriping target of reserved data slices for the storage pool; and

in response to determining that the plurality of storage devices meet the rebalancing target, rebalance reserved data slices until each storage device meets the restriping target of reserved data slices.