IP Library › Granted Patent US 10,254,970
Granted Patent B1
US 10,254,970 · App. 15/198,772 · Granted Apr 9, 2019

System, method and computer readable medium for obtaining consistent read performance for a plurality of flash drives or raid groups using workload and capacity limits

Inventors: Owen Martin (Hopedale, MA); Hui Wang (Upton, MA); Malak Alshawabkeh (Franklin, MA); Adnan Sahin (Needham, MA); Arieh Don (Newton, MA); Xiaomei Liu (Southborough, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0611G06F3/0629G06F3/0679G06F3/0689
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,254,970
App. No.
15/198,772
Filed
Jun 30, 2016
Granted
Apr 9, 2019
Kind
B1
Art Unit
2135
USPC
711/103
Abstract

Techniques for obtaining consistent read performance are disclosed that may include: receiving measured read I/O (input/output) response times for flash storage devices; and determining, in accordance with a specified allowable variation, whether a first of the measured read I/O response times for a first of the flash storage devices is inconsistent with respect to other ones of the measured read I/O response times. Responsive to determining the first measured read I/O response time is inconsistent first processing may be performed that corrects or alleviates the inconsistency of the first measured read I/O response time. The first processing may include varying the first measured read I/O response time of the first flash storage device by enforcing, for the first flash storage device, a write I/O workload limit a read I/O workload limit and an idle capacity limit. Data portions may be ranked and selected for data movement based on read workload, write workload or idle capacity. The flash storage may include storage devices of the same type or technology, and the same capacity. Response times for RAID groups may also be measured.

Claims (50)

1. A method of obtaining consistent read performance comprising:

receiving a plurality of measured read input/output (I/O) response times, each of the plurality of measured read I/O response times denoting a measured read I/O response time for a different one of a plurality of flash storage devices;

determining, in accordance with a specified allowable variation, whether a first of the plurality of measured read I/O response times for a first of the plurality of flash storage devices is inconsistent with respect to other ones of the plurality of measured read I/O response times; and

responsive to determining the first measured read I/O response time is inconsistent with respect to other ones of the plurality of measured read I/O response times, performing first processing that corrects or alleviates the inconsistency of the first measured read I/O response time, the first processing including varying the first measured read I/O response time of the first flash storage device by enforcing, for the first flash storage device, a write I/O workload limit, a read I/O workload limit, and an idle capacity limit.

2. The method of claim 1 , wherein the first processing includes:

receiving workload information for the first flash storage device, the workload information including a measured write I/O workload, a measured read I/O workload, and an amount of idle capacity;

determining whether the workload information for the first flash storage device violates any of a first write I/O workload limit, a read I/O workload limit, and a first idle capacity limit; and

responsive to determining the workload information for the first flash storage device violates any of the first write I/O workload limit, the read I/O workload limit, and the first idle capacity limit, performing a data movement that corrects or alleviates a detected violation of any of the first write I/O workload limit, the read I/O workload limit, and the first idle capacity limit.

3. The method of claim 2 , wherein the first flash storage device has a first storage capacity and is a first type of flash technology, the plurality of flash storage devices includes a second flash storage device of the first type of flash technology, the second flash storage device having a second write I/O workload limit and having a second storage capacity different from the first storage capacity, and a write I/O workload ratio denotes a relative ratio of write performance achieved with the first storage capacity to write performance achieved with the second storage capacity, and wherein the first write I/O workload limit has a value determined in accordance with the write I/O workload ratio and the second write I/O workload limit.

4. The method of claim 3 , wherein a first idle capacity ratio is a ratio of the first storage capacity relative to the second storage capacity, and the first idle capacity limit has a value determined in accordance with the first idle capacity ratio and a second idle capacity limit of the second flash storage device.

5. The method of claim 3 , wherein the read I/O workload limit is the same limit enforced for the plurality of flash storage devices, and the write I/O workload ratio is a ratio of the first write I/O workload limit relative to the second write I/O workload limit.

6. The method of claim 5 , further comprising:

determining whether the measured read I/O workload for the first flash storage device exceeds, by at least a specified amount, the read I/O workload limit;

responsive to determining that the measured read I/O workload for the first flash storage device exceeds, by at least a specified amount, the read I/O workload limit, performing second processing comprising:

ranking first data portions stored on the first flash storage device in accordance with decreasing read I/O workloads of the first data portions; and

selecting, in accordance with the ranking, a data portion set including one or more of the first data portions for movement from the first flash storage device to a target flash storage device of the plurality of flash storage devices.

7. The method of claim 6 , wherein the target flash storage device is underutilized with respect to read I/O workload and wherein the one or more of the first data portions of the data portion set selected for movement to the target flash storage device do not result in a modeled read I/O workload for the target flash storage device exceeding the read I/O workload limit.

8. The method of claim 6 , wherein each data portion in the data portion set has a read I/O workload that is greater than any other data portion of the first data portions not included in the data portion set.

9. The method of claim 3 , wherein the plurality of flash storage devices includes a first set of flash storage devices of the first type of flash technology, the first set including the first flash storage device having the first storage capacity and the second flash storage device having the second storage capacity, and the method further includes:

determining, in accordance with a specified allowable variation, whether measured write I/O workloads of the flash storage devices of the first set are consistent; and

responsive to determining that a measured write I/O workload of any flash storage device of the first set is inconsistent, performing a data movement that alleviates or corrects an inconsistent measured write I/O workload of the any flash storage device of the first set.

10. The method of claim 2 , further comprising:

determining whether the measured write I/O workload of the first flash storage device exceeds the first write I/O workload limit; and

responsive to determining the measured write I/O workload of the first flash storage device exceeds the first write I/O workload limit, performing second processing comprising:

ranking first data portions stored on the first flash storage device in accordance with increasing write I/O workloads of the first data portions; and

selecting, in accordance with the ranking, a data portion set including one or more of the first data portions for movement from the first flash storage device to a target flash storage device of the plurality of flash storage devices.

11. The method of claim 10 , wherein the target flash storage device is underutilized with respect to write I/O workload and wherein the one or more of the first data portions of the data portion set selected for movement to the target flash storage device do not result in a modeled write I/O workload for the target flash storage device exceeding a specified write I/O workload limit of the target flash storage device.

12. The method of claim 10 , wherein each data portion in the data portion set has a write I/O workload that is greater than any other data portion of the first data portions not included in the data portion set.

13. The method of claim 2 , further comprising:

determining whether the amount of idle capacity of the first flash storage device exceeds the first idle capacity limit; and

responsive to determining the amount of idle capacity of the first flash storage device exceeds the first idle capacity limit, performing second processing comprising:

selecting a first set of one or more data portions stored on the first flash storage device for movement from the first flash storage device to a target flash storage device of the plurality of flash storage devices, each data portion of the first set having an idle workload.

14. The method of claim 1 , wherein the plurality of flash storage devices includes at least a first flash storage device of a first flash technology and a second flash storage device of a second flash technology that is different from the first flash technology.

15. A system comprising:

a processor; and

a memory comprising code stored thereon that, when executed, performs a method of obtaining consistent read performance comprising:

receiving a plurality of measured read input/output (I/O) response times, each of the plurality of measured read I/O response times denoting a measured read I/O response time for a different one of a plurality of RAID groups, each of the plurality of RAID groups including flash storage devices of a same technology and a same capacity;

determining, in accordance with a specified allowable variation, whether a first of the plurality of measured read I/O response times for a first of the plurality of RAID groups is inconsistent with respect to other ones of the plurality of measured read I/O response times; and

responsive to determining the first measured read I/O response time is inconsistent with respect to other ones of the plurality of measured read I/O response times, performing first processing that corrects or alleviates the inconsistency of the first measured read I/O response time, the first processing including varying the first measured read I/O response time of the first RAID group by enforcing, for the first RAID group, a write I/O workload limit, a read I/O workload limit, and an idle capacity limit.

16. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of obtaining consistent read performance comprising:

receiving a plurality of measured read input/output (I/O) response times, each of the plurality of measured read I/O response times denoting a measured read I/O response time for a different one of a plurality of flash storage devices;

determining, in accordance with a specified allowable variation, whether a first of the plurality of measured read I/O response times for a first of the plurality of flash storage devices is inconsistent with respect to other ones of the plurality of measured read I/O response times; and

responsive to determining the first measured read I/O response time is inconsistent with respect to other ones of the plurality of measured read I/O response times, performing first processing that corrects or alleviates the inconsistency of the first measured read I/O response time, the first processing including varying the first measured read I/O response time of the first flash storage device by enforcing, for the first flash storage device, a write I/O workload limit, a read I/O workload limit, and an idle capacity limit.

17. The non-transitory computer readable medium of claim 16 , wherein the first processing includes:

receiving workload information for the first flash storage device, the workload information including a measured write I/O workload, a measured read I/O workload, and an amount of idle capacity;

determining whether the workload information for the first flash storage device violates any of a first write I/O workload limit, a read I/O workload limit, and a first idle capacity limit; and

responsive to determining the workload information for the first flash storage device violates any of the first write I/O workload limit, the read I/O workload limit, and the first idle capacity limit, performing a data movement that corrects or alleviates a detected violation of any of the first write I/O workload limit, the read I/O workload limit, and the first idle capacity limit.

18. The non-transitory computer readable medium of claim 17 , wherein the first flash storage device has a first storage capacity and is a first type of flash technology, the plurality of flash storage devices includes a second flash storage device of the first type of flash technology, the second flash storage device having a second write I/O workload limit and having a second storage capacity different from the first storage capacity, and a write I/O workload ratio denotes a relative ratio of write performance achieved with the first storage capacity to write performance achieved with the second storage capacity, and wherein the first write I/O workload limit has a value determined in accordance with the write I/O workload ratio and the second write I/O workload limit.

19. The non-transitory computer readable medium of claim 18 , wherein a first idle capacity ratio is a ratio of the first storage capacity relative to the second storage capacity, and the first idle capacity limit has a value determined in accordance with the first idle capacity ratio and a second idle capacity limit of the second flash storage device.

20. The non-transitory computer readable medium of claim 18 , wherein the read I/O workload limit is the same limit enforced for the plurality of flash storage devices, and the write I/O workload ratio is a ratio of the first write I/O workload limit relative to the second write I/O workload limit.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 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; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
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 AT REEL 050405 FRAME 0534 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058001/0001 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050405/0534 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 27, 2019
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 048450/0294 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2017
From: MARTIN, OWEN
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041400/0639 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2016
From: WANG, HUI; ALSHAWABKEH, MALAK; SAHIN, ADNAN; DON, ARIEH; LIU, XIAOMEI
To: EMC CORPORATION
Reel/Frame 039057/0772 →
Cited By (3)
US 12,373,124 US 12,430,169 US 12,468,578