RapidDisk (rxdsk) Project - Introduction
I hope all is going well. My name is Petros Koutoupis and I am the President and Lead Developer of a startup company called Unovyx, LLC. I am currently trying to introduce and promote a project I have been actively working on. The project is RapidStor or rxdsk and it is a new type of RAM disk for the Linux kernel, similar to the ones found on Solaris and *BSD platforms.
To summarize, RapidDisk is designed to be used in high performing environments and 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. The rxdsk module has been designed to allocate from the system's memory pages and is capable of addressing memory to support Gigabytes if not a Terabyte of available Random Access Memory.
To date, a similar solution does not exist in the Linux kernel. When completed, this project will be licensed under the General Public License (GPL) Version 2.0 with the hopes of one day integrating it into the official Linux mainline.
This is a list of features on the road map for the next set of major releases:
- Dynamic Resizing
- Data Compression (LZO)
- Data Deduplication
- Error-Correction (SHA-256)
Some of you may be wondering "why introduce a new RAM disk project when tmpfs or something similar can be used"? Well the answer is: some applications require a raw block device and not one formatted with a file system and mounted locally. While tmpfs to even ramfs boast a lot of great features and flexibility for faster performing I/O, without spending a lot of time to create/manage it, it is still not capable of serving our needs for our (i.e. Unovyx) long term goal. That is, this project will be used to build a fault-tolerant DRAM based SSD solution which in turn can be mapped across a SAN via FC Target mode to other Fibre Channel initiators (future support for Infiniband is planned). You cannot do any of that with tmpfs. Also, tmpfs and ramfs are designed for local use only and you suffer from a severe bottleneck in performance if you try to map it across a network.
Now, there is a purpose to this post. In order for Unovyx, (again, a startup company with very limited funding) to properly develop and test its project, we are trying to reach out to the community to hopefully help us by contributing to our project set up at the crowd funding site Kickstarter. The advantage to using Kickstarter is that is helps focus on the rewards given to the individuals funding a project. Each level of contribution has its own set of rewards. So, if this is something that may interest you, we would greatly appreciate any contribution to help acquire the appropriate equipment for the development and testing of this project.
After funding is achieved, the project will follow a 3 month development cycle before a stable version is released to the public.