FIOPS: A New Linux I/O Scheduler For Flash/SSDs

Shaohua Li presented FIOPS, the Fair IOPS scheduler, under an "RFC" state last week on the Linux kernel mailing list.
This new I/O scheduler is designed around the following assumptions about Flash-based storage devices: no I/O seek time, read and write I/O cost is usually different from rotating media, time to make a request depends upon the request size, and high through-put and higher IOPS with low-latency. With these flash characteristics in mind, he wrote FIOPS.
CFQ, the commonly used Linux I/O scheduler at present, does well for rotating media but Shaohua believes his new scheduler is better for flash media. At present CFQ only has a few optimizations for SSDs. The design of the Fair IOPS scheduler is similar to CFQ but the dispatch decision is made according to IOPS instead of slice, while being backed by a simple algorithm.
This code is still in-development and thus not a candidate for the Linux 3.3 kernel. Some of the work items still left is ioprio support, request size vios scale, cgroup support, tracing support, and to automatically select the default I/O scheduler in a smart manner.
14 Comments