IP Library Granted Patent US 10,007,434
Granted Patent B1
US 10,007,434 · App. 15/195,154 · Granted Jun 26, 2018

Proactive release of high performance data storage resources when exceeding a service level objective

Inventors: Owen Martin (Hopedale, MA); Malak Alshawabkeh (Franklin, MA); Hui Wang (Upton, MA); Sean Dolan (Southborough, MA); Xiaomei Liu (Southborough, NC)
Assignee: EMC IP Holding Company LLC
G06F3/0605G06F3/0649G06F3/0683G06F12/023G06F2212/1041G06F2212/261
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,007,434
App. No.
15/195,154
Granted
Jun 26, 2018
Kind
B1
Abstract

High performance storage resources are proactively deallocated when a storage group exceeds its service level objective. A load score is calculated for each unit of storage allocated from a high performance physical disk group. A minimum load score is determined that is the lowest load score calculated for the storage units allocated from the high performance disk group to the storage group. When the storage group service level objective is exceeded, a demotion threshold is calculated equal to a product of the minimum load score and a demotion range factor. A demotion set is determined made up of storage units allocated from the high performance disk group having load scores less than or equal to the demotion threshold. Host data stored on the demotion set is migrated to storage from a lower performance disk group, and the high performance units of storage in the demotion set are released for re-allocation.

Claims (53)

1. A method of proactively releasing high performance storage resources, comprising:

allocating, by a storage processor in a data storage system, units of storage from multiple physical disk groups to one or more storage objects in a storage group, wherein the storage objects are used by at least one application to store host data, wherein the multiple physical disk groups include a high performance disk group made up of one or more high performance disk drives and at least one lower performance disk group made up of one or more lower performance disk drives, wherein the storage group is associated with a service level objective, and wherein the service level objective comprises an average response time target for I/O operations performed on the storage objects in the storage group;

calculating a load score for each one of the units of storage allocated to the storage group from the high performance disk group;

determining a minimum load score equal to the lowest load score among the load scores calculated for the units of storage allocated from the high performance disk group to the storage group;

detecting that an average response time for the storage group is exceeding the service level objective associated with the storage group; and

in response to detecting that the average response time for the storage group is exceeding the service level objective associated with the storage group,

calculating a demotion threshold based on the minimum load score, wherein the demotion threshold is a product of multiplying the minimum load score and a demotion range factor,

identifying a demotion set made up of units of storage allocated to the storage group from the high performance disk group that have load scores that are less than or equal to the demotion threshold,

migrating host data stored on the units of storage in the demotion set to units of storage allocated from the lower performance disk group, and

deallocating, by the storage processor, the units of storage in the demotion set so that they are available for subsequent reallocation by the storage processor to store host data subsequently received by the storage processor.

2. The method of claim 1 , wherein detecting that the average response time for the storage group is exceeding the service level objective associated with the storage group includes calculating an average response time for the storage group during a preceding time period equal to a sum of the response times of the physical disk groups, wherein the response time of each physical disk group is weighted by the number of I/O operations performed per second during the preceding time period on storage units allocated to the storage group from that physical disk group.

3. The method of claim 2 , wherein detecting that the average response time for the storage group is exceeding the service level objective associated with the storage group further includes calculating a safety margin for the storage group that is equal to the product of multiplying i) the I/O operations performed per second on all storage units allocated to the storage group, by ii) a difference between the service level objective associated with the storage object and the average response time for the storage group during the preceding time period.

4. The method of claim 3 , wherein detecting that the average response time for the storage group is exceeding the service level objective associated with the storage group detects that the average response time for the storage group is exceeding the service level objective associated with the storage group only in response to the average response time for the storage group during a preceding time period being less than the service level objective associated with the storage group minus the safety margin for the storage group.

5. The method of claim 4 , wherein the high performance disk drives in the high performance disk group consist of at least one solid state drive; and

wherein the lower performance disk drives in the lower performance disk group consist of at least one magnetic hard disk drive.

6. The method of claim 5 , wherein migrating the host data stored on the units of storage in the demotion set to units of storage allocated from the lower performance disk group includes allocating units of storage from the lower performance disk group to store the host data stored on the units of storage in the demotion set.

7. The method of claim 6 , wherein the storage objects in the storage group comprise logical disks (LUNS) that are used by the application to store host data, and further comprising:

after deallocating the units of storage in the demotion set, allocating the units of storage in the demotion set to a storage object contained in another storage group in response to detecting that the other storage group is missing a service level objective associated with that storage group, wherein the storage object contained in the other storage group is a logical disk (LUN).

8. The method of claim 1 , wherein the storage objects in the storage group comprise virtual volumes that are used by the application to store host data.

9. The method of claim 1 , wherein the storage objects in the storage group comprise host file systems that are used by the application to store host data.

10. A computerized apparatus, comprising:

processing circuitry in a storage processor of a data storage system;

a memory coupled to the processing circuitry, the memory storing program code for proactively releasing high performance storage resources which, when executed by the processing circuitry, causes the processing circuitry to:

allocate units of storage from multiple physical disk groups to one or more storage objects in a storage group, wherein the storage objects are used by at least one application to store host data, wherein the multiple physical disk groups include a high performance disk group made up of one or more high performance disk drives and at least one lower performance disk group made up of one or more lower performance disk drives, wherein the storage group is associated with a service level objective, and wherein the service level objective comprises an average response time target for I/O operations performed on the storage objects in the storage group;

calculate a load score for each one of the units of storage allocated to the storage group from the high performance disk group;

determine a minimum load score equal to the lowest load score among the load scores calculated for the units of storage allocated from the high performance disk group to the storage group;

detect that an average response time for the storage group is exceeding the service level objective associated with the storage group; and

in response to detecting that the average response time for the storage group is exceeding the service level objective associated with the storage group,

calculate a demotion threshold based on the minimum load score, wherein the demotion threshold is a product of multiplying the minimum load score and a demotion range factor,

identify a demotion set made up of units of storage allocated to the storage group from the high performance disk group that have load scores that are less than or equal to the demotion threshold,

migrate host data stored on the units of storage in the demotion set to units of storage allocated from the lower performance disk group, and

deallocate the units of storage in the demotion set so that they are available for subsequent reallocation by the storage processor to store host data subsequently received by the storage processor.

11. The computerized apparatus of claim 10 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to detect that the average response time for the storage group is exceeding the service level objective associated with the storage group in part by calculating an average response time for the storage group during a preceding time period equal to a sum of the response times of the physical disk groups, wherein the response time of each physical disk group is weighted by the number of I/O operations performed per second during the preceding time period on storage units allocated to the storage group from that physical disk group.

12. The computerized apparatus of claim 11 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to detect that the average response time for the storage group is exceeding the service level objective associated with the storage group at least in part by calculating a safety margin for the storage group that is equal to the product of multiplying i) the I/O operations performed per second on all storage units allocated to the storage group, by ii) a difference between the service level objective associated with the storage object and the average response time for the storage group during the preceding time period.

13. The computerized apparatus of claim 12 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to detect that the average response time for the storage group is exceeding the service level objective associated with the storage group by detecting that the average response time for the storage group is exceeding the service level objective associated with the storage group only in response to the average response time for the storage group during a preceding time period being less than the service level objective associated with the storage group minus the safety margin for the storage group.

14. The computerized apparatus of claim 13 , wherein the high performance disk drives in the high performance disk group consist of at least one solid state drive; and

wherein the lower performance disk drives in the lower performance disk group consist of at least one magnetic hard disk drive.

15. The computerized apparatus of claim 14 , wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to migrate the host data stored on the units of storage in the demotion set to units of storage allocated from the lower performance disk group at least in part by allocating units of storage from the lower performance disk group to store the host data stored on the units of storage in the demotion set.

16. The computerized apparatus of claim 15 , wherein the storage objects in the storage group comprise logical disks (LUNS) that are used by the application to store host data; and

wherein the program code, when executed by the processing circuitry, further causes the processing circuitry to, after the units of storage in the demotion set are deallocated, allocate the units of storage in the demotion set to a storage object contained in another storage group in response to detecting that the other storage group is missing a service level objective associated with that storage group, wherein the storage object contained in the other storage group is a logical disk (LUN).

17. The computerized apparatus of claim 10 , wherein the storage objects in the storage group comprise virtual volumes that are used by the application to store host data.

18. The computerized apparatus of claim 10 , wherein the storage objects in the storage group comprise host file systems that are used by the application to store host data.

19. A computer program product, comprising:

a non-transitory computer readable medium storing program code for proactively releasing high performance storage resources, the set of instructions, when carried out by at least one processor in a storage processor in a data storage system, causing the processor to perform a method of:

allocating units of storage from multiple physical disk groups to one or more storage objects in a storage group, wherein the storage objects are used by at least one application to store host data, wherein the multiple physical disk groups include a high performance disk group made up of one or more high performance disk drives and at least one lower performance disk group made up of one or more lower performance disk drives, wherein the storage group is associated with a service level objective, and wherein the service level objective comprises an average response time target for I/O operations performed on the storage objects in the storage group;

calculating a load score for each one of the units of storage allocated to the storage group from the high performance disk group;

determining a minimum load score equal to the lowest load score among the load scores calculated for the units of storage allocated from the high performance disk group to the storage group;

detecting that an average response time for the storage group is exceeding the service level objective associated with the storage group; and

in response to detecting that the average response time for the storage group is exceeding the service level objective associated with the storage group,

calculating a demotion threshold based on the minimum load score, wherein the demotion threshold is a product of multiplying the minimum load score and a demotion range factor,

identifying a demotion set made up of units of storage allocated to the storage group from the high performance disk group that have load scores that are less than or equal to the demotion threshold,

migrating host data stored on the units of storage in the demotion set to units of storage allocated from the lower performance disk group, and

deallocating the units of storage in the demotion set so that they are available for subsequent reallocation by the storage processor to store host data subsequently received by the storage processor.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2016
From: MARTIN, OWEN; ALSHAWABKEH, MALAK; WANG, HUI; DOLAN, SEAN; LIU, XIAOMEI
To: EMC CORPORATION
Reel/Frame 039509/0316 →
Cited By (2)
US 12,192,281 US 12,393,332