IP Library › Granted Patent US 8,732,426
Granted Patent B2
US 8,732,426 · App. 12/882,864 · Granted May 20, 2014

Scheduling of reactive I/O operations in a storage environment

Inventors: John Colgrove (Los Altos, CA); John Hayes (Mountain View, CA); Bo Hong (Mountain View, CA); Feng Wang (Sunnyvale, CA); Ethan Miller (Santa Cruz, CA); Craig Harmer (San Francisco, CA)
Assignee: Pure Storage, Inc.
G06F3/0617G06F3/0689G06F11/076G06F3/0634G06F11/0751G06F3/061
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,732,426
App. No.
12/882,864
Granted
May 20, 2014
Kind
B2
Abstract

A system and method for effectively scheduling read and write operations among a plurality of solid-state storage devices. A computer system comprises client computers and data storage arrays coupled to one another via a network. A data storage array utilizes solid-state drives and Flash memory cells for data storage. A storage controller within a data storage array comprises an I/O scheduler. The characteristics of corresponding storage devices are used to schedule I/O requests to the storage devices in order to maintain relatively consistent response times at predicted times. Should a device exhibit an unscheduled behavior which may be indicative of the device being in an unknown state, the scheduler may schedule one or more reactive operations on the device configured to cause the device to enter a known state.

Claims (35)

1. A computer system comprising:

a data storage medium comprising a plurality of storage devices configured to store data;

and a data storage controller coupled to the data storage medium;

wherein the data storage controller is configured to:

receive read and write requests targeted to the data storage medium;

schedule said read and write requests for processing by said plurality of storage devices, wherein the plurality of storage devices comprise at least one RAID group, and wherein the storage controller is further configured to schedule relatively long latency operations such that no more than N devices of the plurality of devices in the RAID group is performing a scheduled long latency operation at any given time;

detect a given device of the plurality of devices is exhibiting an unscheduled behavior comprising variable performance by one or more of the plurality of storage devices, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput; and

schedule one or more reactive operations comprising at least a cache flush in response to detecting the occurrence of the unscheduled behavior, said one or more reactive operations being configured to cause the given device to enter a known state.

2. The computer system as recited in claim 1 , wherein the unscheduled behavior indicates the given device is in an unknown state.

3. The computer system as recited in claim 1 , wherein the data storage controller is configured to detect said unscheduled behavior in response to detecting a code or signal received from the device.

4. The computer system as recited in claim 1 , wherein said one or more reactive operations are scheduled for processing on the given device.

5. The computer system as recited in claim 4 , wherein said one or more reactive operations further comprise any of a read, a dummy read, a secure erase operation, a trim operation, a sleep operation, and a hibernate operation.

6. The computer system as recited in claim 5 , wherein the reactive operation comprises at least one of a powering on and off operation, and a reset operation.

7. The computer system as recited in claim 4 , wherein subsequent to processing the one or more reactive operations, the given device returns confirmation of the processing.

8. The computer system as recited in claim 1 , wherein in response to detecting a read request targeted to data in the given device, the storage controller is configured to generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the given storage device.

9. The computer system as recited in claim 1 , wherein in response to detecting a read request targeted to data in the given device, the storage controller is configured to generate a reconstruct read request.

10. The computer system as recited in claim 1 , wherein the unscheduled behavior is due to an unscheduled operation.

11. A method for use in a computing system, the method comprising:

receiving read and write requests targeted to a data storage medium, the data storage medium comprising a plurality of storage devices configured to store data;

scheduling said read and write requests for processing by said plurality of storage devices, wherein the plurality of storage devices comprise at least one RAID group, and wherein the method comprises scheduling relatively long latency operations such that no more than N devices of the plurality of devices in the RAID group is performing a scheduled long latency operation at any given time; and

detecting a given device of the plurality of devices is exhibiting an unscheduled behavior comprising variable performance by one or more of the plurality of storage devices, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput; and

scheduling one or more reactive operations comprising at least a cache flush in response to detecting the occurrence of the unscheduled behavior, said one or more reactive operations being configured to cause the given device to enter a known state.

12. The method as recited in claim 11 , wherein the unscheduled behavior indicates the given device is in an unknown state.

13. The method recited in claim 11 , further comprising detecting said unscheduled behavior in response to detecting a code or signal received from the device.

14. The method as recited in claim 11 , wherein said one or more reactive operations are scheduled for processing on the given device.

15. The method as recited in claim 14 , wherein said one or more reactive operations further comprise any of a read, a dummy read, a secure erase operation, a trim operation, a sleep operation, a hibernate operation, a powering on and off operation, and a reset operation.

16. The method as recited in claim 14 , wherein subsequent to processing the one or more reactive operations, the given device returns confirmation of the processing.

17. The method as recited in claim 11 , wherein in response to detecting a read request targeted to data in the given device, the method further comprises generating a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the given storage device.

18. The method as recited in claim 11 , wherein in response to detecting a read request targeted to data in the given device, the method further comprises generating a reconstruct read request.

19. A non-transitory computer readable storage medium comprising program instructions, wherein when executed by a processing device, the program instructions are operable to:

receive read and write requests targeted to a data storage medium, the data storage medium comprising a plurality of storage devices configured to store data;

schedule said read and write requests for processing by said plurality of storage devices, wherein the plurality of storage devices comprise at least one RAID group, and wherein the program instructions are operable to schedule relatively long latency operations such that no more than N devices of the plurality of devices in the RAID group is performing a scheduled long latency operation at any given time; and

detect a given device of the plurality of devices is exhibiting an unscheduled behavior comprising variable performance by one or more of the plurality of storage devices, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput; and

schedule one or more reactive operations comprising at least a cache flush in response to detecting the occurrence of the unscheduled behavior, said one or more reactive operations being configured to cause the given device to enter a known state.

20. The non-transitory computer readable storage medium as recited in claim 19 , wherein said one or more reactive operations further comprise any of a read, a dummy read, a secure erase operation, a trim operation, a sleep operation, a hibernate operation, a powering on and off operation, and a reset operation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2010
From: COLGROVE, JOHN; HAYES, JOHN; HONG, BO; WANG, FENG; MILLER, ETHAN; HARMER, CRAIG
To: PURE STORAGE, INC.
Reel/Frame 024998/0580 →
Continuity (1)
Related Publication 20120066448A1 · Mar 15, 2012