Scheduling of reconstructive I/O read operations in a storage environment
First Claim
1. A computer system comprising:
- a data storage medium comprising a plurality of storage devices configured to store data in at least one RAID group;
and a data storage controller coupled to the data storage medium;
wherein the data storage controller is configured to;
receive a read request targeted to the data storage medium;
identify at least a first storage device of the plurality of storage devices which contains data targeted by the read request; and
generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device, in response to either detecting or predicting the first storage device will exhibit variable performance, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput;
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; and
wherein in response to detecting a rate of requests being received exceeds a given threshold, the storage controller is configured to schedule relatively long latency operations such that more than N devices within a RAID group is permitted to be busy at any given time.
1 Assignment
0 Petitions
Accused Products
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 storage controller is configured to receive a read request targeted to the data storage medium, and identify at least a first storage device of the plurality of storage devices which contains data targeted by the read request. In response to either detecting or predicting the first storage device will exhibit variable performance, the 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 first storage device.
282 Citations
24 Claims
-
1. A computer system comprising:
-
a data storage medium comprising a plurality of storage devices configured to store data in at least one RAID group; and a data storage controller coupled to the data storage medium; wherein the data storage controller is configured to; receive a read request targeted to the data storage medium; identify at least a first storage device of the plurality of storage devices which contains data targeted by the read request; and generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device, in response to either detecting or predicting the first storage device will exhibit variable performance, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput; 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; and wherein in response to detecting a rate of requests being received exceeds a given threshold, the storage controller is configured to schedule relatively long latency operations such that more than N devices within a RAID group is permitted to be busy at any given time. - View Dependent Claims (2, 3, 4)
-
-
5. A method for use in a computing system, the method comprising:
-
receiving a read request targeted to a data storage medium comprising a plurality of storage devices configured to store data in at least one RAID group; identifying at least a first storage device of the plurality of storage devices which contains data targeted by the read request; and generating a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device, in response to either detecting or predicting the first storage device will exhibit variable performance, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput; 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 wherein in response to detecting a rate of requests being received exceeds a given threshold, scheduling relatively long latency operations such that more than N devices within a RAID group is permitted to be busy at any given time. - View Dependent Claims (6, 7, 8, 9, 10, 11)
-
-
12. A non-transitory computer readable storage medium comprising program instructions, wherein when executed by a processing device, the program instructions are operable to:
-
receive a read request targeted to a data storage medium comprising a plurality of storage devices configured to store data in at least one RAID group; identify at least a first storage device of the plurality of storage devices which contains data targeted by the read request; and generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device, in response to either detecting or predicting the first storage device will exhibit variable performance, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput; 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 wherein in response to detecting a rate of requests being received exceeds a given threshold, schedule relatively long latency operations such that more than N devices within a RAID group is permitted to be busy at any given time.
-
-
13. A computer system comprising:
-
a data storage medium comprising a plurality of storage devices configured to store data in at least one RAID group; and a data storage controller coupled to the data storage medium; wherein the data storage controller is configured to; receive a read request targeted to the data storage medium; identify at least a first storage device of the plurality of storage devices which contains data targeted by the read request; and generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device, in response to either detecting or predicting the first storage device will exhibit variable performance, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput; wherein the reconstruct read request includes at least two read requests targeted to at least two devices of the plurality of storage devices, and wherein the storage controller is configured to schedule the at least two read requests such that they complete at approximately a same time; and wherein each of the plurality of storage devices includes a queue for storing pending operations, and wherein the storage controller is configured to schedule the at least two read requests such that they complete at approximately a same time by storing each of the at least two read requests at approximately a same queue depth in a queue of a corresponding storage device, or a queue depth with a predicted approximately equal completion time. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
-
-
21. A method for use in a computing system, the method comprising:
-
receiving a read request targeted to a data storage medium comprising a plurality of storage devices configured to store data in at least one RAID group; identifying at least a first storage device of the plurality of storage devices which contains data targeted by the read request; and generating a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device, in response to either detecting or predicting the first storage device will exhibit variable performance, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput; wherein the reconstruct read request includes at least two read requests targeted to at least two devices of the plurality of storage devices, and wherein the method further comprises scheduling the at least two read requests such that they complete at approximately a same time; and wherein each of the plurality of storage devices includes a queue for storing pending operations, and wherein the method further comprises scheduling the at least two read requests such that they complete at approximately a same time by storing each of the at least two read requests at approximately a same queue depth in a queue of a corresponding storage device, or a queue depth with a predicted approximately equal completion time. - View Dependent Claims (22, 23)
-
-
24. A non-transitory computer readable storage medium comprising program instructions, wherein when executed by a processing device, the program instructions are operable to:
-
receive a read request targeted to a data storage medium comprising a plurality of storage devices configured to store data in at least one RAID group; identify at least a first storage device of the plurality of storage devices which contains data targeted by the read request; and generate a reconstruct read request configured to obtain the data from one or more devices of the plurality of storage devices other than the first storage device, in response to either detecting or predicting the first storage device will exhibit variable performance, wherein the variable performance comprises at least one of a relatively high response latency or relatively low throughput; wherein the reconstruct read request includes at least two read requests targeted to at least two devices of the plurality of storage devices, and wherein the program instructions are further executable to schedule the at least two read requests such that they complete at approximately a same time; and wherein each of the plurality of storage devices includes a queue for storing pending operations, and wherein the program instructions are further executable to schedule the at least two read requests such that they complete at approximately a same time by storing each of the at least two read requests at approximately a same queue depth in a queue of a corresponding storage device, or a queue depth with a predicted approximately equal completion time.
-
Specification