IP Library Granted Patent US 10,545,674
Granted Patent B1
US 10,545,674 · App. 15/198,406 · Granted Jan 28, 2020

Method and system for SSD performance jitter detection and avoidance

Inventors: Felix Shvaiger (Brighton, MA); Anton Kucherov (Milford, MA); Boaz Binia (Brighton, MA); Gabriel Benhanokh (Tel Aviv, IL); Arieh Don (Newton, MA)
Assignee: EMS EP Holding Company LLC
G06F3/061G06F3/0665G06F3/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,545,674
App. No.
15/198,406
Granted
Jan 28, 2020
Kind
B1
Abstract

Example embodiments of the present invention relate to methods, systems, and a computer program product for detecting and avoiding storage array performance degradation. The method includes anticipating an unpredictable performance state of a storage device in a storage array that degrades storage array functionality according to a performance profile for a storage device type of the storage device. In response, performance of the storage array may be adjusted to avoid the storage device entering the unpredictable performance state.

Claims (48)

1. A method for preventing performance degradation of a storage device comprising:

anticipating, by a storage device controller, an unpredictable performance state of a storage device in a storage array that degrades storage array functionality according to a performance profile for a storage device type of the storage device, the unpredictable performance state being a state in which internal drive operations of the storage device cause performance of the storage device to become unpredictable, wherein:

the anticipating includes determining that the storage device is statistically nearing an unpredictable performance state threshold according to a transfer function built as part of the performance profile for the storage device type of the storage device;

the performance profile for the storage device type is developed according to varied input/output (I/O) workloads and consistent with performance of the storage device type when included in a storage array;

the developing of the performance profile comprises subjecting a test storage device having the storage device type to varied I/O workload patterns of a storage array, the test storage device being different than the storage device;

wherein subjecting the test storage device having the storage device type to varied I/O workload patterns of a storage array comprises simulating an I/O workload pattern of a storage array that comprises a plurality of constant size I/Os and is consistent with I/O workload patterns experienced by storage devices included in a storage array, the I/O workload patterns experienced by the storage devices included in a storage array being different than I/O workload patterns received by a storage array from a host, the I/O workload patterns received by a storage array from a host comprising I/Os having varied sizes; and

adjusting, by a storage device controller, performance of the storage array to avoid the storage device entering the unpredictable performance state.

2. The method of claim 1 wherein adjusting performance of the storage array to avoid the storage device entering the unpredictable performance state comprises diverting I/Os from the storage device to a second storage device at times the storage device is statistically nearing the unpredictable performance state threshold.

3. The method of claim 1 wherein adjusting performance of the storage array to avoid the storage device entering the unpredictable performance state comprises adjusting a host-visible performance metric of the storage array to match performance capabilities of the storage device.

4. The method of claim 3 wherein adjusting a host-visible performance metric of the storage array to match performance capabilities of the storage device comprises adjusting I/O patterns of the storage array to avoid the storage device entering the unpredictable performance state.

5. The method of claim 1 wherein the developing of the performance profile further comprises:

collecting empirical test storage device performance metrics data; and

building a transfer function illustrative of performance metrics of the test storage device according to the collected empirical data.

6. The method of claim 1 wherein subjecting the test storage device having the storage device type to varied I/O workload patterns of a storage array further comprises subjecting the test storage device to a plurality of I/O workload patterns respectively varying according to at least one of IOPs, read-write ratio, block size, time-length of workload, and storage device type.

7. The method of claim 1 wherein the internal drive operations are garbage collection processes of the storage device and the unpredictable performance state is a jitter state caused by the garbage collection processes of the storage device.

8. A system for preventing performance degradation of a storage device comprising:

a storage array having a storage device of a device type;

one or more processors; and

computer program code that, when executed on the one or more processors, causes the system to detect and avoid storage array performance degradation by performing the operations of:

anticipating an unpredictable performance state of a storage device in a storage array that degrades storage array functionality according to a performance profile for a storage device type of the storage device, the unpredictable performance state being a state in which internal drive operations of the storage device cause performance of the storage device to become unpredictable, wherein:

the anticipating includes determining that the storage device is statistically nearing an unpredictable performance state threshold according to a transfer function built as part of the performance profile for the storage device type of the storage device;

the performance profile for the storage device type is developed according to varied input/output (I/O) workloads and consistent with performance of the storage device type when included in a storage array;

the developing of the performance profile comprises subjecting a test storage device having the storage device type to varied I/O workload patterns of a storage array, the test storage device being different than the storage device;

wherein subjecting the test storage device having the storage device type to varied I/O workload patterns of a storage array comprises simulating an I/O workload pattern of a storage array that comprises a plurality of constant size I/Os and is consistent with I/O workload patterns experienced by storage devices included in a storage array, the I/O workload patterns experienced by the storage devices included in a storage array being different than I/O workload patterns received by a storage array from a host, the I/O workload patterns received by a storage array from a host comprising I/Os having varied sizes; and

adjusting performance of the storage array to avoid the storage device entering the unpredictable performance state.

9. The system of claim 8 wherein adjusting performance of the storage array to avoid the storage device entering the unpredictable performance state comprises diverting I/Os from the storage device to a second storage device at times the storage device is statistically nearing the unpredictable performance state threshold.

10. The system of claim 8 wherein adjusting performance of the storage array to avoid the storage device entering the unpredictable performance state comprises adjusting a host-visible performance metric of the storage array to match performance capabilities of the storage device.

11. The system of claim 10 wherein adjusting a host-visible performance metric of the storage array to match performance capabilities of the storage device comprises adjusting I/O patterns of the storage array to avoid the storage device entering the unpredictable performance state.

12. The system of claim 8 wherein the developing of the performance profile further comprises:

collecting empirical test storage device performance metrics data; and

building a transfer function illustrative of performance metrics of the test storage device according to the collected empirical data.

13. The system of claim 8 wherein subjecting the test storage device having the storage device type to varied I/O workload patterns of a storage array further comprises subjecting the test storage device to a plurality of I/O workload patterns respectively varying according to at least one of IOPs, read-write ratio, block size, time-length of workload, and storage device type.

14. The system of claim 8 wherein the internal drive operations are garbage collection processes of the storage device and the unpredictable performance state is a jitter state caused by the garbage collection processes of the storage device.

15. A computer program product including a non-transitory computer readable storage medium having computer program code encoded thereon that when executed on a processor of a computer causes the computer to detect and avoid storage array performance degradation, comprising:

computer program code for anticipating an unpredictable performance state of a storage device in a storage array that degrades storage array functionality according to a performance profile for a storage device type of the storage device, the unpredictable performance state being a state in which internal drive operations of the storage device cause performance of the storage device to become unpredictable, wherein:

the anticipating includes determining that the storage device is statistically nearing an unpredictable performance state threshold according to a transfer function built as part of the performance profile for the storage device type of the storage device;

the performance profile for the storage device type is developed according to varied input/output (I/O) workloads and consistent with performance of the storage device type when included in a storage array;

the developing of the performance profile comprises subjecting a test storage device having the storage device type to varied I/O workload patterns of a storage array, the test storage device being different than the storage device;

wherein subjecting the test storage device having the storage device type to varied I/O workload patterns of a storage array comprises simulating an I/O workload pattern of a storage array that comprises a plurality of constant size I/Os and is consistent with I/O workload patterns experienced by storage devices included in a storage array, the I/O workload patterns experienced by the storage devices included in a storage array being different than I/O workload patterns received by a storage array from a host, the I/O workload patterns received by a storage array from a host comprising I/Os having varied sizes; and

computer program code for adjusting performance of the storage array to avoid the storage device entering the unpredictable performance state.

16. The computer program product of claim 15 , wherein the developing of the performance profile further comprises:

collecting empirical test storage device performance metrics data; and

building a transfer function illustrative of performance metrics of the test storage device according to the collected empirical data.

17. The computer program product of claim 15 wherein the internal drive operations are garbage collection processes of the storage device and the unpredictable performance state is a jitter state caused by the garbage collection processes of the storage device.

18. The computer program product of claim 15 wherein adjusting performance of the storage array to avoid the storage device entering the unpredictable performance state comprises diverting I/Os from the storage device to a second storage device at times the storage device is statistically nearing the unpredictable performance state threshold.

19. The computer program product of claim 15 wherein adjusting performance of the storage array to avoid the storage device entering the unpredictable performance state comprises adjusting a host-visible performance metric of the storage array to match performance capabilities of the storage device.

20. The computer program product of claim 19 wherein adjusting a host-visible performance metric of the storage array to match performance capabilities of the storage device comprises adjusting I/O patterns of the storage array to avoid the storage device entering the unpredictable performance state.

21. The computer program product of claim 15 wherein subjecting the test storage device having the storage device type to varied I/O workload patterns of a storage array further comprises subjecting the test storage device to a plurality of I/O workload patterns respectively varying according to at least one of IOPs, read-write ratio, block size, time-length of workload, and storage device type.

Assignments (8)
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 (052216/0758) 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 IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
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 Jun 19, 2017
From: SHVAIGER, FELIX; KUCHEROV, ANTON; BINIA, BOAZ; BENHANOKH, GABRIEL; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042745/0923 →
Cited By (1)
US 12,461,808