IP Library Granted Patent US 9,727,260
Granted Patent B2
US 9,727,260 · App. 14/809,032 · Granted Aug 8, 2017

Method and system for simultaneously achieving capacity balancing and data striping in a storage system

Inventors: Brian Rowe (San Jose, CA); Bob Fozard (Los Gatos, CA)
Assignee: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
G06F3/0619G06F3/061G06F3/0647G06F3/0665G06F3/0688G06F3/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 9,727,260
App. No.
14/809,032
Granted
Aug 8, 2017
Kind
B2
Abstract

Described herein are methods, systems and machine-readable media for migrating data between storage devices of a storage array. A metric is used to measure the optimality of candidate data migrations, the metric taking into account capacity balance and proper data striping. Candidate migrations are evaluated against the metric. The candidate migration that ranks as the best migration according to the metric may be carried out. This process of evaluating candidate migrations and carrying out the best candidate migration may be iterated until data is properly distributed among the storage devices of the storage array.

Claims (38)

1. A method for a storage system having a plurality of nodes, each node being an independent device for storing data, the data organized into a plurality of bins, and each bin assigned to one of the nodes, the method comprising:

determining a candidate bin migration, the candidate bin migration specified by a candidate bin map which reassigns a first one of the bins from a first one of the nodes to a second one of the nodes;

quantitatively evaluating the candidate bin map according to a potential improvement in capacity balancing and data striping of the storage system, wherein the potential improvement is determined by a single metric which is based on the capacity balancing and the data striping of the storage system, wherein quantitatively evaluating the candidate bin map comprises:

(i) computing an optimal relative allotment based on respective capacities of the plurality of nodes; and

(ii) for at least one subrange of the candidate bin map, determining a deviation between node representations in the subrange and node representations in the optimal relative allotment; and

if the evaluation is satisfactory, performing the candidate bin migration by reassigning the first bin from the first node to the second node; otherwise, not performing the candidate bin migration.

2. The method of claim 1 , wherein the potential improvement in the capacity balancing of the storage system refers to a more uniform percent of occupancy across the nodes.

3. The method of claim 1 , wherein the potential improvement in the data striping of the storage system refers to reducing a number of times that two successively numbered bins are assigned to one of the nodes.

4. The method of claim 1 , wherein the evaluation is satisfactory if the candidate bin migration has the most potential improvement in the capacity balancing and the data striping of the storage system among all candidate bin migrations.

5. The method of claim 1 , wherein performing the candidate bin migration further comprises transferring data assigned to the first bin from the first node to the second node.

6. The method of claim 5 , further comprising:

while data assigned to the first bin is being transferred from the first node to the second node, determining whether an additional bin migration is necessary.

7. A storage system, comprising:

a plurality of nodes, each node being an independent device for storing data, the data organized into a plurality of bins, and each bin assigned to one of the nodes;

a main memory;

a processor communicatively coupled to the main memory; and

software instructions on the main memory that, when executed by the processor, cause the processor to:

determine a candidate bin migration, the candidate bin migration specified by a candidate bin map which reassigns a first one of the bins from a first one of the nodes to a second one of the nodes;

quantitatively evaluate the candidate bin map according to a potential improvement in capacity balancing and data striping of the storage system, wherein the potential improvement is determined by a single metric which is based on the capacity balancing and the data striping of the storage system, wherein quantitatively evaluating the candidate bin map comprises:

(i) computing an optimal relative allotment based on respective capacities of the plurality of nodes; and

(ii) for at least one subrange of the candidate bin map, determining a deviation between node representations in the subrange and node representations in the optimal relative allotment; and

if the evaluation is satisfactory, perform the candidate bin migration by reassigning the first bin from the first node to the second node; otherwise, not perform the candidate bin migration.

8. The storage system of claim 7 , wherein the potential improvement in the capacity balancing of the storage system refers to a more uniform percent of occupancy across the nodes.

9. The storage system of claim 7 , wherein the potential improvement in the data striping of the storage system refers to reducing a number of times that two successively numbered bins are assigned to one of the nodes.

10. The storage system of claim 7 , wherein the evaluation is satisfactory if the candidate bin migration has the most potential improvement in the capacity balancing and the data striping of the storage system among all candidate bin migrations.

11. The storage system of claim 7 , wherein performing the candidate bin migration further comprises transferring data assigned to the first bin from the first node to the second node.

12. The storage system of claim 11 , wherein the software instructions, when executed by the processor, further cause the processor to:

while data assigned to the first bin is being transferred from the first node to the second node, determine whether an additional bin migration is necessary.

13. A non-transitory machine-readable storage medium for a storage system having a plurality of nodes, each node being an independent device for storing data, the data organized into a plurality of bins, and each bin assigned to one of the nodes, the non- transitory machine-readable storage medium comprising software instructions that, when executed by a processor of the storage system, cause the processor to:

determine a candidate bin migration, the candidate bin migration specified by a candidate bin map which reassigns a first one of the bins from a first one of the nodes to a second one of the nodes;

quantitatively evaluate the candidate bin map according to a potential improvement in capacity balancing and data striping of the storage system, wherein the potential improvement is determined by a single metric which is based on the capacity balancing and the data striping of the storage system, wherein quantitatively evaluating the candidate bin map comprises:

(i) computing an optimal relative allotment based on respective capacities of the plurality of nodes; and

(ii) for at least one subrange of the candidate bin map, determining a deviation between node representations in the subrange and node representations in the optimal relative allotment; and

if the evaluation is satisfactory, perform the candidate bin migration by reassigning the first bin from the first node to the second node; otherwise, not perform the candidate bin migration.

14. The non-transitory machine-readable storage medium of claim 13 , wherein the potential improvement in the capacity balancing of the storage system refers to a more uniform percent of occupancy across the nodes.

15. The non-transitory machine-readable storage medium of claim 13 , wherein the potential improvement in the data striping of the storage system refers to reducing a number of times that two successively numbered bins are assigned to one of the nodes.

16. The non-transitory machine-readable storage medium of claim 13 , wherein the evaluation is satisfactory if the candidate bin migration has the most potential improvement in the capacity balancing and the data striping of the storage system among all candidate bin migrations.

17. The non-transitory machine-readable storage medium of claim 13 , wherein performing the candidate bin migration further comprises transferring data assigned to the first bin from the first node to the second node.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2017
From: NIMBLE STORAGE, INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 042810/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2015
From: ROWE, BRIAN; FOZARD, BOB
To: NIMBLE STORAGE, INC.
Reel/Frame 036175/0190 →
Continuity (2)
Continuation 14015814 · Aug 30, 2013
Related Publication 20150331630A1 · Nov 19, 2015