EnhanceIO

Last updated

EnhanceIO is a disk cache module for the Linux kernel. Its goal is to use fast but relatively small SSD drives to improve the performance of large but slow hard drives.

Contents

Overview

EnhanceIO makes it possible to add an SSD or other fast disk device as a cache to another block device, such as a hard drive, in order to improve the performance of the disk. It was initially based on Facebook's similar Flashcache module. [1] Unlike Flashcache and other caching solutions, it doesn't use the Linux device mapper. [1] This means it does not create a new block device and caching can be added to existing disks, without reformatting or even unmounting them. This makes it easy to add cache to existing systems.

History

EnhanceIO was first announced as a commercial product in 2011 by sTec Inc, [2] a company specializing in SSD products. Late 2012 sTec published code for the Linux module on GitHub. Even though it was then soon submitted to the Linux kernel mailing list, [3] it was never merged into the main kernel.

In 2013, Western Digital acquired sTec Inc. [4] They offered the EnhanceIO product briefly under their HGST brand. [5] However, the project was soon discontinued and maintenance on the module halted.

As the project was abandoned, several forks were created with some patches to let EnhanceIO work on later kernels. As of 2017, the lanconnected fork seems to be most active.

See also

Related Research Articles

Western Digital American digital storage company

Western Digital Corporation is an American computer hard disk drive manufacturer and data storage company, headquartered in San Jose, California. It designs, manufactures and sells data technology products, including storage devices, data center systems and cloud storage services.

Filesystem in USErspace (FUSE) is a software interface for Unix and Unix-like computer operating systems that lets non-privileged users create their own file systems without editing kernel code. This is achieved by running file system code in user space while the FUSE module provides only a "bridge" to the actual kernel interfaces.

udev is a device manager for the Linux kernel. As the successor of devfsd and hotplug, udev primarily manages device nodes in the /dev directory. At the same time, udev also handles all user space events raised when hardware devices are added into the system or removed from it, including firmware loading as required by certain devices.

In computing, a hybrid drive is a logical or physical storage device that combines a faster storage medium such as solid-state drive (SSD) with a higher-capacity hard disk drive (HDD). The intent is adding some of the speed of SSDs to the cost-effective storage capacity of traditional HDDs. The purpose of the SSD in a hybrid drive is to act as a cache for the data stored on the HDD, improving the overall performance by keeping copies of the most frequently used data on the faster SSD.

Solid-state drive Data storage device that uses no moving parts

A solid-state drive (SSD) is a solid-state storage device that uses integrated circuit assemblies to store data persistently, typically using flash memory, and functioning as secondary storage in the hierarchy of computer storage. It is also sometimes called a solid-state device or a solid-state disk, even though SSDs lack the physical spinning disks and movable read–write heads used in hard disk drives (HDDs) and floppy disks.

sTec is an American computer data storage technology company headquartered in California, with research and development, sales, support or manufacturing sites in China, India, Japan, Malaysia, Silicon Valley (USA), and Taiwan.

Intel Rapid Storage Technology Technology

Intel Rapid Storage Technology (RST), until 2010 called Matrix RAID, is a firmware-based RAID solution built into a wide range of Intel chipsets. As of 2020, it includes a RAID system capable of RAID levels 0, 1, 5, and 10, a block level SSD caching accelerator with support for write-back and write-through modes for speed or data protection of any disk or RAID array, and support for intelligent caching, speedy recovery from certain issues, and for PCI Express based drives. Intel RST comes in two variants, RST for desktops, and RSTe for enterprise scenarios, although for many chipsets, the user can choose as both variants will operate correctly.

Linux kernel Free and open-source Unix-like operating system kernel

The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was conceived and created in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU operating system, which was created as a free replacement for UNIX. Since then, it has spawned a large number of operating system distributions, commonly also called Linux.

A trim command allows an operating system to inform a solid-state drive (SSD) which blocks of data are no longer considered to be 'in use' and therefore can be erased internally.

A hybrid array is a form of hierarchical storage management that combines hard disk drives (HDDs) with solid-state drives (SSDs) for I/O speed improvements.

NVM Express (NVMe) or Non-Volatile Memory Host Controller Interface Specification (NVMHCIS) is an open, logical-device interface specification for accessing a computer's non-volatile storage media usually attached via PCI Express (PCIe) bus. The acronym NVM stands for non-volatile memory, which is often NAND flash memory that comes in several physical form factors, including solid-state drives (SSDs), PCI Express (PCIe) add-in cards and M.2 cards, the successor to mSATA cards. NVM Express, as a logical-device interface, has been designed to capitalize on the low latency and internal parallelism of solid-state storage devices.

In computer data storage, Smart Response Technology is a proprietary caching mechanism introduced in 2011 by Intel for their Z68 chipset, which allows a SATA solid-state drive (SSD) to function as cache for a hard disk drive (HDD).

SCST

SCST is a GPL licensed SCSI target software stack. The design goals of this software stack are high performance, high reliability, strict conformance to existing SCSI standards, being easy to extend and easy to use. SCST does not only support multiple SCSI protocols but also supports multiple local storage interfaces and also storage drivers implemented in user-space via the scst_user driver.

Flashcache is a disk cache component for the Linux kernel, initially developed by Facebook since April 2010, and released as open source in 2011. Since January 2013, there is a fork of Flashcache, named EnhanceIO and developed by sTec, Inc.

Bcache is a cache in the Linux kernel's block layer, which is used for accessing secondary storage devices. It allows one or more fast storage devices, such as flash-based solid-state drives (SSDs), to act as a cache for one or more slower storage devices, such as hard disk drives (HDDs); this effectively creates hybrid volumes and provides performance improvements.

dm-cache is a component of the Linux kernel's device mapper, which is a framework for mapping block devices onto higher-level virtual block devices. It allows one or more fast storage devices, such as flash-based solid-state drives (SSDs), to act as a cache for one or more slower storage devices such as hard disk drives (HDDs); this effectively creates hybrid volumes and provides secondary storage performance improvements.

ExpressCache is a Windows-based SSD caching technology developed by Condusiv Technologies and licensed to a number of laptop manufacturers including Acer, ASUS, Samsung, Sony, Lenovo, and Fujitsu. ExpressCache is also bundled with some SanDisk products such as ReadyCache; SanDisk currently holds an exclusive ExpressCache license for stand-alone storage products.

The Intel Cache Acceleration Software (CAS) is a computer data storage product for solid-state drive (SSD) caching.

zswap is a Linux kernel feature that provides a compressed write-back cache for swapped pages, as a form of virtual memory compression. Instead of moving memory pages to a swap device when they are to be swapped out, zswap performs their compression and then stores them into a memory pool dynamically allocated in the system RAM. Later, writeback to the actual swap device is deferred or even completely avoided, resulting in a significantly reduced I/O for Linux systems that require swapping; the tradeoff is the need for additional CPU cycles to perform the compression.

Bcachefs is a copy-on-write (COW) file system for Linux-based operating systems. Its primary developer, Kent Overstreet, first announced it in 2015, and efforts are ongoing to have it included in the mainline Linux kernel. It is intended to compete with the modern features of ZFS or Btrfs, and the speed and performance of ext4 or XFS.

References

  1. 1 2 "EnhanceIO Open Source for Linux". GitHub. 19 August 2017.
  2. "STEC EnhanceIO™ SSD Cache Software" (PDF). 13 October 2011. Archived from the original on 13 October 2011.CS1 maint: bot: original URL status unknown (link)
  3. "LKML: OS Engineering: [PATCH] EnhanceIO ssd caching software". Lkml.org. Retrieved 2017-08-21.
  4. "Western Digital Completes Acquisition of sTec, Inc". Hgst.com. Retrieved 2017-08-21.
  5. "EnhanceIO™ SSD Cache Software : Frequently Asked Questions". Hgst.com. Retrieved 2017-08-21.