Archive for July, 2011

Announcement: RapidDisk (rxdsk) 1.0b Stable release

July 16th, 2011 5 comments

I am writing to announce the release of my Linux RAM disk kernel module. Yes, the Linux kernel has the brd module already integrated into it, and also the zram module it the staging tree. And yes, you can instead utilize ramfs or tmpfs for RAM based file systems. But RapidDisk or rxdsk is a bit different.

Unlike brd or zram all attached RAM disk are populated on-the-fly with any user defined size and not during the module’s insertion (i.e. typically system bootup) with a fixed size. When you attach a new RAM disk, you can define sizes as little as 16 Mbytes and in theory as large as 1 TByte and possibly above and it is designed to allocate new kernel pages as needed; so it won’t steal all memory when the RAM disk is created.

Unlike ramfs or tmpfs, an rxdsk volume can easily be exported as a physical device across a SAN or simply allocated as a SWAP space which would become more ideal when the LZO compression is completed and stabilized.

This type of technology could be used for quick I/O storage (configured as a DRAM-based SSD with enabled syncing to persistent storage) and mounted as a block device labeled with a traditional file system and functioning as a traditional storage device; Application and/or database caching; File system meta-data caching; Virtualization (when data compression is developed and/or while running another data deduplication solution on top of the RAM disk); and as mention above, a CompCache replacement for enabling compressed swap space into RAM (again, when compression is developed).

For more details, please do not hesitate to visit the project’s wiki page. Here you will find details on how to check the source code out from the git repo, build & install it, among other things including performance numbers (writing 1 GByte sizes in 3 seconds!!!) to community involvement. The kernel module is licensed under the GPLv2 while the management utility is licensed under the GPLv3.

Note - So far this has only been tested and seen as fully functional on the 2.6.32 and 2.6.35 kernels.