IP Library Granted Patent US 8,554,917
Granted Patent B2
US 8,554,917 · App. 12/859,788 · Granted Oct 8, 2013

Performance isolation for storage clouds

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 8,554,917
App. No.
12/859,788
Granted
Oct 8, 2013
Kind
B2
Abstract

Embodiments of the present invention provide performance isolation for storage clouds. Under one embodiment, workloads across a storage cloud architecture are grouped into clusters based on administrator or system input. A performance isolation domain is then created for each of the clusters, with each of the performance isolation domains comprising a set of data stores associated with a set of storage subsystems and a set of data paths that connect the set of data stores to a set of clients. Thereafter, performance isolation is provided among a set of layers of the performance isolation domains. Such performance isolation is provided by (among other things): pooling data stores from separate performance isolation domains into separate pools; assigning the pools to device adapters, RAID controller, and the set of storage subsystems; preventing workloads on the device adapters from exceeding capacities of the device adapters; mapping the set of data stores to a set of Input/Output (I/O) servers based on an I/O capacity and I/O load of the set of I/O servers; and/or pairing ports of the set of I/O servers with ports of the set of storage subsystems, the pairing being based upon availability, connectivity, I/O load, and I/O capacity.

Claims (138)

1. A method for providing performance isolation for storage clouds, comprising:

grouping workloads across a storage cloud architecture into clusters;

creating a performance isolation domain for each of the clusters, each of the performance isolation domains comprising a set of data stores associated with a set of storage subsystems and a set of data paths that connect the set of data stores to a set of clients;

providing performance isolation among a set of layers of the performance isolation domains;

pooling data stores from separate performance isolation domains into separate pools; and

assigning the pools to device adapters, RAID controllers, and the set of storage subsystems, the assigning being based on a goal of minimizing an overlap in data paths of each cluster of the clusters.

2. The method of claim 1 , the grouping being based on input.

3. The method of claim 2 , the input relating to at least one of the following: types of applications corresponding to the workloads, business units generating the workloads, or priority of the workloads.

4. The method of claim 1 , the set of data stores comprising a set of Logical Unit Numbers (LUNs).

5. The method of claim 1 , the assigning comprising:

assigning the pools to device adapters, RAID controllers, and the set of storage subsystems according to a formulaic calculation comprising:

W

c

l

=

i

c

W

i

l

·

s

i

i

c

s

i

wherein w i l is an average load imposed by 1 GB of a workload ‘i’, s i is a size of the workload ‘i’, and w c i is the average load imposed by 1 GB of workload cluster ‘c’.

6. The method of claim 5 , the providing further comprising preventing workloads on the device adapters from exceeding capacities of the device adapters.

7. The method of claim 1 , further comprising mapping the set of data stores to a set of Input/Output (I/O) servers based on an I/O capacity and I/O load of the set of I/O servers.

8. The method of claim 7 , the mapping comprising pairing ports of the set of I/O servers with ports of the set of storage subsystems, the pairing being based upon availability, connectivity, I/O load and I/O capacity.

9. A system for providing performance isolation for storage clouds, comprising:

a bus;

a processor coupled to the bus; and

a memory medium coupled to the bus, the memory medium comprising instructions to:

group workloads across a storage cloud architecture into clusters;

create a performance isolation domain for each of the clusters, each of the performance isolation domains comprising a set of data stores associated with a set of storage subsystems and a set of data paths that connect the set of data stores to a set of clients; and

provide performance isolation among a set of layers of the performance isolation domains;

pool data stores from separate performance isolation domains into separate pools;

assign the pools to device adapters, RAID controllers, and the set of storage subsystems according to a formulaic calculation comprising:

W

c

l

=

i

c

W

i

l

·

s

i

i

c

s

i

wherein w i l is an average load imposed by 1 GB of a workload ‘i’, s i is a size of the workload ‘i’, and w c l is the average load imposed by 1 GB of workload cluster ‘c’.

10. The system of claim 9 , the grouping being based on input relating to at least one of the following: types of applications corresponding to the workloads, business units generating the workloads, or priority of the workloads.

11. The system of claim 9 , the set of data stores comprising a set of Logical Unit Numbers (LUNs).

12. The system of claim 9 , the memory medium further comprising instructions to prevent workloads on the device adapters from exceeding capacities of the device adapters.

13. The system of claim 9 , the memory medium further comprising instructions to map the set of data stores to a set of Input/Output (I/O) servers based on an I/O capacity and an I/O load of the set of I/O servers.

14. The system of claim 13 , the memory medium further comprising instructions to pair ports of the set of I/O servers with ports of the set of storage subsystems, the pairing being based upon availability, connectivity, I/O capacity, and I/O load.

15. A computer program product for providing performance isolation for storage clouds, the computer program product comprising a non-transitory computer readable storage medium, and program instructions stored on the non-transitory computer readable storage medium, to:

group workloads across a storage cloud architecture into clusters;

create a performance isolation domain for each of the clusters, each of the performance isolation domains comprising a set of data stores associated with a set of storage subsystems and a set of data paths that connect the set of data stores to a set of clients;

provide performance isolation among a set of layers of the performance isolation domains;

pool data stores from separate performance isolation domains into separate pools;

assign the pools to device adapters, RAID controllers, and the set of storage subsystems according to a formulaic calculation comprising:

W

c

l

=

i

c

W

i

l

·

s

i

i

c

s

i

wherein w i l is an average load imposed by 1 GB of a workload ‘i’, s i is a size of the workload ‘i’, and w c l is the average load imposed by 1 GB of workload cluster ‘c’.

16. The computer program product of claim 15 , the grouping being based on input relating to at least one of the following: types of applications corresponding to the workloads, business units generating the workloads, or priority of the workloads.

17. The computer program product of claim 15 , the set of data stores comprising a set of Logical Unit Numbers (LUNs).

18. The computer program product of claim 15 , the memory medium further comprising instructions to prevent workloads on the device adapters from exceeding capacities of the device adapters.

19. The computer program product of claim 15 , the memory medium further comprising instructions to map the set of data stores to a set of Input/Output (I/O) servers based on an I/O capacity and an I/O load of the set of I/O servers.

20. The computer program product of claim 19 , the memory medium further comprising instructions to pair ports of the set of I/O servers with ports of the set of storage subsystems, the pairing being based upon availability, connectivity, I/O capacity, and I/O load.

21. A method for deploying a system for providing performance isolation for storage clouds, comprising:

providing a computer infrastructure being operable to:

group workloads across a storage cloud architecture into clusters;

create a performance isolation domain for each of the clusters, each of the performance isolation domains comprising a set of data stores associated with a set of storage subsystems and a set of data paths that connect the set of data stores to a set of clients;

provide performance isolation among a set of layers of the performance isolation domains;

pool data stores from separate performance isolation domains into separate pools;

assign the pools to device adapters, RAID controllers, and the set of storage subsystems according to a formulaic calculation comprising:

W

c

l

=

i

c

W

i

l

·

s

i

i

c

s

i

wherein w i l is an average load imposed by 1 GB of a workload ‘i’, s i is a size of the workload ‘i’, and w c l is the average load imposed by 1 GB of workload cluster ‘c’.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 20, 2010
From: AGARWALA, SANDIP; AYALA, RICHARD J., JR.; GOPISETTY, SANDEEP; MURTHY, SESHASHAYEE S.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 024862/0465 →