IP Library › Granted Patent US 10,528,266
Granted Patent B2
US 10,528,266 · App. 15/364,029 · Granted Jan 7, 2020

Allocation and balancing of storage resources

Inventors: Rohith K. Ashok (Durham, NC); Roy F. Brabson (Raleigh, NC); Wei L. Chan (Cary, NC)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F3/0611G06F3/061G06F3/067G06F3/0613G06F3/0631G06F3/0653G06F3/0658G06F3/0659G06F3/0665G06F3/0689G06F9/5011G06F15/17H04L67/10
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 10,528,266
App. No.
15/364,029
Granted
Jan 7, 2020
Kind
B2
Abstract

A method and technique for allocation and balancing of storage resources includes monitoring, for each of a plurality of storage controllers, an input/output (I/O) latency value based on an I/O latency associated with each storage volume controlled by a respective storage controller. A network bandwidth utilization value and a network latency value corresponding to each storage controller is also monitored. An I/O latency value threshold, a network bandwidth utilization threshold, and a network latency value threshold is determined. Responsive to at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for at least one storage controller exceeding a respective threshold, storage volume distribution among the storage controllers is rebalanced.

Claims (65)

1. A method, comprising:

determining an average storage volume input/output (I/O) latency for each of a plurality of storage volumes;

calculating an I/O latency value for each of a plurality of storage controllers based on the average storage volume I/O latency of each storage volume controlled by the respective storage controller;

monitoring, for each of the plurality of storage controllers the respective I/O;

monitoring a network bandwidth utilization value and a network latency value corresponding to each storage controller;

determining an I/O latency value threshold, a network bandwidth utilization threshold, and a network latency value threshold; and

responsive to a change in at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for at least one storage controller exceeding a respective threshold, rebalancing storage volume distribution among the storage controllers.

2. The method of claim 1 , further comprising weighting each storage volume based on a quantity of data being processed by the respective storage volume.

3. The method of claim 1 , wherein calculating the I/O latency value for each storage controller includes calculating an average I/O latency value for each storage controller.

4. The method of claim 3 , wherein calculating the average I/O latency for each storage controller comprises:

calculating a weighted average I/O latency value for each storage volume controlled by a respective storage controller;

summing the weighted I/O latency values of the storage volumes controlled by the respective storage controller; and

dividing the summed I/O latency values by a quantity of the storage volumes controlled by the respective storage controller.

5. The method of claim 4 , wherein calculating the weighted average I/O latency value for each storage volume comprises calculating the weighted average I/O latency value based on weighting write I/O operations greater than read I/O operations.

6. The method of claim 1 , further comprising:

determining a type of application utilizing one or more of the storage volumes;

determining a priority level of the application; and

rebalancing the storage volume distribution among the storage controllers based on the type of the application and the priority level of the application.

7. The method of claim 1 , further comprising:

analyzing the I/O latency value, the network bandwidth utilization value and the network latency value for the storage controllers;

determining whether moving one or more storage volumes will lower at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for at least one storage controller; and

responsive to determining that moving one or more storage volumes will lower at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for at least one storage controller, migrating at least one storage volume from one storage controller to another storage controller.

8. A system, comprising:

a plurality of storage controllers each controlling one or more storage volumes; and

a processor unit operable to execute a management application, the management application configured to:

determine an average storage volume input/output (I/O) latency for each of the one or more storage volumes;

calculate an I/O latency value for each of the plurality of storage controllers based on the average storage volume I/O latency of each storage volume controlled by the respective storage controller;

monitor, for each of the plurality of storage controllers, the respective I/O latency value;

monitor a network bandwidth utilization value and a network latency value corresponding to each storage controller;

determine an I/O latency value threshold, a network bandwidth utilization threshold, and a network latency value threshold; and

responsive to a change in at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for at least one storage controller exceeding a respective threshold, rebalance storage volume distribution among the storage controllers.

9. The system of claim 8 , wherein the management application is configured to weight each storage volume based on a quantity of data being processed by the respective storage volume.

10. The system of claim 8 , wherein the management application is configured to calculate an average I/O latency value for each storage controller.

11. The system of claim 10 , wherein the management application is configured to calculate the average I/O latency for each storage controller by:

calculating a weighted average I/O latency value for each storage volume controlled by a respective storage controller;

summing the weighted I/O latency values of the storage volumes controlled by the respective storage controller; and

dividing the summed I/O latency values by a quantity of the storage volumes controlled by the respective storage controller.

12. The system of claim 8 , wherein the I/O latency value for each storage controller includes a weighted average I/O latency value, wherein the weighting is based on a rate of I/O operations.

13. The system of claim 8 , wherein the management application is configured to:

determine a type of application utilizing one or more of the storage volumes;

determine a priority level of the application; and

rebalance the storage volume distribution among the storage controllers based on the type of the application and the priority level of the application.

14. The system of claim 8 , wherein the management application is configured to:

analyze the I/O latency value, the network bandwidth utilization value and the network latency value for the storage controllers;

determine whether moving one or more storage volumes will lower at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for at least one storage controller; and

responsive to determining that moving one or more storage volumes will lower at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for at least one storage controller, migrate at least one storage volume from one storage controller to another storage controller.

15. A computer program product for storage management, the computer program product comprising:

a non-transitory computer readable medium having computer readable program code embodied therewith, the computer readable program code comprising computer readable program code configured to:

determine an average storage volume input/output (I/O) latency for each of a plurality of storage volumes;

calculate an I/O latency value for each of a plurality of storage controllers based on the average storage volume I/O latency of each storage volume controlled by the respective storage controller;

monitor, for each of the plurality of storage controllers the respective I/O;

monitor a network bandwidth utilization value and a network latency value corresponding to each storage controller;

determine an I/O latency value threshold, a network bandwidth utilization threshold, and a network latency value threshold; and

responsive to a change in at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for at least one storage controller exceeding a respective threshold, rebalance storage volume distribution among the storage controllers.

16. The computer program product of claim 15 , wherein the computer readable program code is configured to weight each storage volume based on a quantity of data being processed by the respective storage volume.

17. The computer program product of claim 15 , wherein the computer readable program code is configured to calculate an average I/O latency value for each storage controller.

18. The computer program product of claim 17 , wherein the computer readable program code is configured to calculate the average I/O latency for each storage controller by:

calculating a weighted average I/O latency value for each storage volume controlled by a respective storage controller;

summing the weighted I/O latency values of the storage volumes controlled by the respective storage controller; and

dividing the summed I/O latency values by a quantity of the storage volumes controlled by the respective storage controller.

19. The computer program product of claim 18 , wherein the computer readable program code is configured to calculate the weighted average I/O latency value for each storage volume based on weighting a rate of I/O operations.

20. The computer program product of claim 15 , wherein the computer readable program code is configured to:

determine a type of application utilizing one or more of the storage volumes;

determine a priority level of the application; and

rebalance the storage volume distribution among the storage controllers based on the type of the application and the priority level of the application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2016
From: ASHOK, ROHITH K.; BRABSON, ROY F.; CHAN, WEI L.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040456/0439 →
Continuity (4)
Continuation 14310145 · Jun 20, 2014
Continuation 13765619 · Feb 12, 2013
Continuation 13365793 · Feb 3, 2012
Related Publication 20170083247A1 · Mar 23, 2017
Cited By (1)
US 12,197,725