EnhanceIO: New Solid State Drive Caching For Linux

Posted by Michael Larabel on January 13, 2013

A commercial company has opened up their Linux driver that is based upon their SSD (Solid-State Drive) caching software product. This code is designed to use SSDs as cache devices for traditional rotating hard drives. This new SSD caching driver is based upon Facebook's Flashcache.

Flashcache is the project Facebook open-sourced in 2011 that is a kernel-level solution for providing a block cache for Linux that supports multiple caching models. Flashcache can be used to accelerate reads and writes from slower rotational media by caching the data on a solid-state drive.

Based upon Flashcache, STEC Inc has opened up their EnhanceIO SSD caching software for Linux. EnhanceIO uses SSDs as cache devices for traditional HDDs and works with any block device whether it be an actual physical device, a disk partition, a RAID-ed DAS device, SAN volumes, and device mapper volumes.

EnhanceIO supports caching modes of read-only, write-through, and write-back. The cache replacement policies are random, FIFO, and LRU.

STEC Inc didn't simply make a couple of changes to Flashcache and call it something new, but rather they have made some significant and original improvements. Over Flashcache, EnhanceIO adds a new write-back enhance that's designed from scratch, transparent cache support not using the Linux device mapper, large I/O support, a smaller memory footprint, supports loadable replacement policies, optimal alignment of data blocks on SSDs, improved device failure handling, and code optimizations.

The EnhanceIO code was originally opened in late December while on Saturday the work was just announced on the Linux kernel mailing list. "STEC is happy to announce hosting of our EnhanceIO SSD caching software on github. We would like to invite kernel hackers to try it. We'll appreciate your valuable feedback to help us improve it to the standards of Linux kernel source code. We hope to eventually submit it for a possible inclusion in Linux kernel."

The GPL-licensed code to EnhanceIO can be found on GitHub.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Unity 8, Mir Made Progress This Week On Features
  2. LLVM Clang 3.3 RC2 Is Ready For Testing
  3. AMD RadeonSI Gallium3D Begins Simple CL Demos
  4. Intel Shows Off GNOME3-Based Tizen Shell
  5. Linux Desktop Security Could Be A Whole Lot Better
  6. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  7. New NVIDIA Linux Driver Supports The GeForce GTX 780
  8. Chrome 28 To Offer More Speed Improvements
  9. Digia Announces "Boot To Qt" Project
  10. X.Org Libraries Hit By Round Of Security Issues
  11. Wayland's Weston Gets Output Scaling Support
Latest Forum Talk
  1. AMD RadeonSI Gallium3D Begins Simple CL Demos
  2. KDE 4.11 Will Be The Last Major KDE4 Workspaces...
  3. Could the forum help improve the quality of...
  4. Linux Desktop Security Could Be A Whole Lot Better
  5. X.Org Libraries Hit By Round Of Security Issues
  6. Intel Shows Off GNOME3-Based Tizen Shell
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite