Patent ID: 8793372

Claim:
A method, comprising: determining, 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 determining the I/O latency value for each storage controller comprises calculating an average I/O latency value, and 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, 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; 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; determining 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, selecting a storage controller having a desired I/O latency value; determining 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, allocating the new storage volume to the selected storage controller; and 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.