# US 8,788,658 B2 · Allocation and balancing of storage resources

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,788,658 B2
- Document ID: US8788658B2
- Status: Granted
- Kind: B2
- Application number: 13/365,793
- Filed: 2012-02-03
- Published: 2013-08-08
- Granted: 2014-07-22
- Earliest claimed: 2012-02-03
- Assignees: International Business Machines Corporation
- Applicants: Rohith K. Ashok; Roy F. Brabson; Wei L. Chan
- Inventors: Rohith K. Ashok; Roy F. Brabson; Wei L. Chan
- Web page: https://patentgrep.com/patent/US8788658B2

## CPC

- G06F 3/0611: {in relation to response time}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0613: {in relation to throughput}
- G06F 3/0631: {by allocating resources to storage systems}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/0658: {Controller construction arrangements}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 9/5011: {the resources being hardware resources other than CPUs, Servers and Terminals}
- G06F 15/17: using an input/output type connection, e.g. channel, I/O port
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and technique for allocating and balancing storage resources includes: a plurality of storage controllers each controlling one or more storage volumes, and a processor unit operable to execute a management application to: determine, for each controller, an input/output (I/O) latency value based on an I/O latency associated with each storage volume controlled by a respective controller; determine network bandwidth utilization and network latency values corresponding to each controller; responsive to a request to allocate a new storage volume, select a controller having a desired I/O latency value; determine whether the network bandwidth utilization and network latency values for the selected controller are below respective network bandwidth utilization and network latency value thresholds; and responsive to determining that the network bandwidth utilization and network latency values for the selected controller are below respective thresholds, allocate the new storage volume to the selected controller.

## Claims

### Claim 1

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, for each of the 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, wherein the I/O latency value comprises an average I/O latency value, and wherein the average I/O latency for each storage controller is calculated by calculating a weighted average I/O latency value for each storage volume controlled by a respective storage controller, and wherein calculating the weighted average I/O latency value for each storage volume comprises calculating a weighted average I/O latency value based on weighting write I/O operations greater than read I/O operations;
determine a network bandwidth utilization value and a network latency value corresponding to each storage controller;
responsive to receiving a request to allocate a new storage volume, select a storage controller having a desired I/O latency value;
determine whether the network bandwidth utilization value and the network latency value for the selected storage controller are below a respective network bandwidth utilization threshold and a network latency value threshold;
responsive to determining that the network bandwidth utilization value and the network latency value for the selected storage controller are below the respective network bandwidth utilization threshold and network latency value threshold, allocate the new storage volume to the selected storage controller; and
responsive to determining that at least one of the network bandwidth utilization value and the network latency value for the selected storage controller are not below the respective network bandwidth utilization threshold and network latency value threshold, the management application is configured to rebalance one or more storage volumes among the plurality of storage controllers to enable the allocation of the new storage volume.

### Claim 2 (depends on 1)

The system of claim 1, wherein the management application is configured to:
determine a type of application to be utilizing the new storage volume;
determine an anticipated storage workload corresponding to the application; and
select a storage controller for allocation of the new storage volume based on the anticipated storage workload.

### Claim 3 (depends on 1)

The system of claim 1, wherein the management application is configured to verify that the I/O latency value for the selected storage controller is below a threshold I/O latency value.

### Claim 4 (depends on 1)

The system of claim 1, wherein the management application is configured to:
monitor at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for the storage controllers; and
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, rebalance storage volume distribution among the storage controllers.

### Claim 5 (depends on 1)

The system of claim 1, 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.

### Claim 6

A computer program product for storage management, the computer program product comprising:
a computer readable storage device having computer readable program code embodied therewith, the computer readable program code comprising computer readable program code configured to:
determine, 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, wherein the I/O latency value comprises an average I/O latency value, and wherein the average I/O latency for each storage controller is calculated by calculating a weighted average I/O latency value for each storage volume controlled by a respective storage controller, and wherein calculating the weighted average I/O latency value for each storage volume comprises calculating a weighted average I/O latency value based on weighting write I/O operations greater than read I/O operations;
determine a network bandwidth utilization value and a network latency value corresponding to each storage controller;
responsive to receiving a request to allocate a new storage volume, select a storage controller having a desired I/O latency value;
determine whether the network bandwidth utilization value and the network latency value for the selected storage controller are below a respective network bandwidth utilization threshold and a network latency value threshold;
responsive to determining that the network bandwidth utilization value and the network latency value for the selected storage controller are below the respective network bandwidth utilization threshold and network latency value threshold, allocate the new storage volume to the selected storage controller; and
responsive to determining that at least one of the network bandwidth utilization value and the network latency value for the selected storage controller are not below the respective network bandwidth utilization threshold and network latency value threshold, the management application is configured to rebalance one or more storage volumes among the plurality of storage controllers to enable the allocation of the new storage volume.

### Claim 7 (depends on 6)

The computer program product of claim 6, wherein the computer readable program code is configured to:
monitor at least one of the I/O latency value, the network bandwidth utilization value and the network latency value for the storage controllers; and
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, rebalance storage volume distribution among the storage controllers.

### Claim 8 (depends on 6)

The computer program product of claim 6, wherein the computer readable program code 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.
