2014 Linux Symposium, July 14-16

I/O Scheduler for Solid State Devices

Vishakha Damle (sarveshr7@gmail.com)

Solid State Devices (SSD) use NAND-based Flash memory for storage of data. They have the potential to alleviate the ever-existing I/O bottleneck problem in data-intensive computing environments, due to their advantages over conventional Hard Disk Drives (HDD). SSDs differ from traditional mechanical HDDs in various respects. The SSDs are built upon semiconductors exclusively, and have no moving mechanical parts. Hence, they are completely free from the rotational latency which dominates the disk access time of HDDs. This results in SSD's operational speed being one or two orders of magnitude faster than HDDs. However, on the other hand, due to the long existence of HDDs as persistent storage devices, conventional I/O schedulers are largely designed for HDDs to mitigate the high seek and rotational costs in mechanical disks through elevator-style I/O request ordering and anticipatory I/O. As a consequence, just by replacing conventional HDDs with SSDs in the storage systems without taking into consideration other properties like low latency, minimal access time and absence of rotary head, we may not be able to make the best use of SSDs.

We propose Veloces, an I/O scheduler which will leverage the inherent properties of SSDs. Since SSDs performs read I/O operations faster than write operations, Veloces is designed to provide preference to reads over writes. Secondly, Veloces implements optional front-merging of IO requests. Lastly, writing in the same block boundary of the SSD is faster than writing to different blocks. Therefore, Veloces bundles write requests belonging to the same block boundary. All the above have shown to enhance the overall performance of SSDs for various workloads like File-server, Web-server and Mail-server.

Policies   |   Media Archives