Main Page

From RapidDisk
Revision as of 17:01, 17 November 2012 by Administrator (Talk | contribs) (Features)

Jump to: navigation, search

Welcome to the official RapidDisk project site

An open source enhanced Linux RAM disk module
For the latest information you can follow this project on Google+:    G+ Project Page

Project Description

Historically, the Linux kernel has always supported some type of RAM disk module. Although they have always been very simple and never could compete with their Solaris and FreeBSD counterparts. The lead developer of this project, Petros Koutoupis, who has a rich Solaris background was missing the technology when on a Linux-based operating system. While the code and design is independent from it, the ideas for RapidDisk grew out of a side project that Petros had started on Sourceforge.net a few years ago and for educational purposes; which in turn was written as an example module for an article he had published in a popular Linux magazine. As the educational module grew in popularity, Petros felt that it was only natural to provide the world with something a bit more advanced.

From the beginning, RapidDisk or rxdsk was designed to be used in high performing environments and has been designed with simplicity in mind. Utilizing a user land binary, the system administrator is capable of dynamically adding new RAM based block devices of varying sizes, removing existing ones to even listing all existing RAM block devices and more. The rxdsk module has been designed to allocate from the system's memory pages (as it needs it and not all at once during creation) and is capable of addressing memory to support Gigabytes if not a Terabyte of available Random Access Memory. On top of that, with the later integration of RapidCache, one can leverage the high performance of RapidDisk volumes and map them as a caching node to slower drives. The best part of this solution is that it is free. It will only cost you a bit of time to learn, test, and configure the solution. And if you need help, I offer support and consultation services and nobody knows my code better than me.

Created by Petros Koutoupis, there exists the custom Linux-based operating system called RapidDisk LX, which is a minimal image focused only on providing RapidDisk features as a SCSI Target over a Storage Area Network (SAN).

Downloads Presentation Donate Support
File:Download-button.png File:Presentation.png File:Donate-button.png File:Help-button.png

Features

  • Dynamically attach, detach and resize multiple rxdsk RAM disk nodes.
    • Read/Write from the block device at super high performing speeds (20-30x faster (and even more) than your local magnetic SATA drive).
    • Create and manage volume sizes from as small as a few MBytes to (in theory) as large as TBytes (in both the CLI and through the Python/pyGTK graphical wrapper).
  • Archive and compress or decompress and restore rxdsk node data.
  • rxdsk nodes allocate memory pages as they are needed.
  • Map an rxdsk volume to a current physical drive as a caching node to increase I/O performance. (2.0 only - see RapidCache)
  • The best part of both RapidDisk and RapidCache modules is that by writing or caching data into memory, you are increasing the life of the physical storage device. That is, you are either not moving mechanical components seeking from sector to sector or not reducing your total cell PE count on an SSD.

Planned Feature Support

This is a list of features on the road map for the next set of major releases:

  • Data Compression (LZO)

Key Environments For Use

Diagram of general usage for RxDsk volumes.
Diagram showcasing typical RxCache Configuration.
  • Quick I/O storage (configured as a DRAM-based SSD with enabled syncing to persistent storage)
    • Mounted as a block device labeled with a traditional file system and functioning as a traditional storage device
  • File system meta-data, application and/or database caching
  • Local and remote block device caching (2.0 only - see RapidCache)

Navigation

Screenshot of the pyRxAdm graphical wrapper.

Media or Public Coverage

Additional Information

This project is licensed under the General Public License (GPL) Version 2.0 (v2) for the Linux kernel module and the GPLv3 for the userland binary. Therefore it is open to contribution from its community of users. For more details on contributing, please reference the Community Contribution page.

If you have any questions or concerns surrounding this project, please do not hesitate to contact me at devel@petroskoutoupis.com.

Other Interesting Linux RAM Disk & Caching Projects