-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #73 from pkoutoupis/feature/nvme-export-support
Feature/nvme export support
- Loading branch information
Showing
40 changed files
with
1,796 additions
and
83 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,8 +2,91 @@ | |
|
||
Author: Petros Koutoupis (<[email protected]>) | ||
|
||
Building and Installing the rapiddisk kernel modules and utilities | ||
------------------------------------------------------------------ | ||
## About the RapidDisk Project | ||
|
||
RapidDisk contains a set of advanced Linux RAM Drive and Caching kernel | ||
modules. The user space utilities allow you to dynamically allocate RAM | ||
as block devices to either use them as stand alone disk drives or even | ||
map them as caching nodes to slower local (or remote) disk drives. The | ||
same utilies provide users with the capability to export the same volumes | ||
across an NVMe Target network. | ||
|
||
### Caching Policies | ||
|
||
Leverage a high speed RAM drive to add speed to a slower volume by | ||
utilizing the (Linux native) Device-Mapper framework. Enable a Write / | ||
Read-through or Write Around Least Recently Used or LRU (FIFO) cache. | ||
|
||
#### Write-Through / Read-Through Caching | ||
|
||
This is where an application treats cache as the main data store and | ||
reads data from it and writes data to it. The cache is responsible for | ||
reading and writing this data to the permanent storage volume, thereby | ||
relieving the application of this responsibility. | ||
|
||
In this mode, all writes are cached to a RapidDisk RAM drive but are also | ||
written to disk immediately. All disk reads are cached. Cache is not persistent | ||
over device removal, reboots, or after you remove the Device-Mapper mapping. | ||
This module does not store any cache metadata on RapidDisk volumes but instead | ||
in memory outside of RapidDisk. You can map and unmap a cache drive to any | ||
volume at any time and it will not affect the integrity of the data on the | ||
persistent storage drive. | ||
|
||
#### Write-Around Caching | ||
|
||
Write Around caching shares some similarities with the Write-Through | ||
implementation. However, in this method, only read operations are cached | ||
and not write operations. This way, all read data considered hot can | ||
remain in cache a bit longer before being evicted. | ||
|
||
### RESTful API | ||
|
||
The RapidDisk Daemon (rapiddiskd) enabled remote management of RapidDisk | ||
volumes. The management commands are simplified into a set of GET and POST | ||
commands. | ||
|
||
An example of a GET command: | ||
|
||
```console | ||
# curl -s --output - 127.0.0.1:9118/v1/listRapidDiskVolumes|jq . | ||
{ | ||
"volumes": [ | ||
{ | ||
"rapiddisk": [ | ||
{ | ||
"device": "rd1", | ||
"size": 67108864 | ||
}, | ||
{ | ||
"device": "rd0", | ||
"size": 67108864 | ||
} | ||
] | ||
}, | ||
{ | ||
"rapiddisk_cache": [ | ||
{ | ||
"device": "rc-wa_loop7", | ||
"cache": "rd0", | ||
"source": "loop7", | ||
"mode": "write-around" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
``` | ||
|
||
An example of a POST command: | ||
|
||
```console | ||
# curl -X POST -s 127.0.0.1:9118/v1/createRapidDisk/128|jq . | ||
{ | ||
"status": "Success" | ||
} | ||
``` | ||
|
||
## Building and Installing the rapiddisk kernel modules and utilities | ||
|
||
Change into the project's parent directory path. | ||
|
||
|
@@ -41,8 +124,7 @@ For utility information please reference the rapiddisk manual page: | |
# man 1 rapiddisk | ||
``` | ||
|
||
Inserting/Removing the rapiddisk / rapiddisk-cache kernel modules | ||
----------------------------------------------------------------- | ||
## Inserting/Removing the rapiddisk / rapiddisk-cache kernel modules | ||
|
||
To insert the rapiddisk module: | ||
|
||
|
@@ -68,8 +150,7 @@ To remove the rapiddisk-cache module: | |
# modprobe -r rapiddisk-cache | ||
``` | ||
|
||
Building and installing / uninstalling the tools ONLY | ||
----------------------------------------------------- | ||
## Building and installing / uninstalling the tools ONLY | ||
|
||
Installing: | ||
|
||
|
@@ -83,22 +164,19 @@ Uninstalling: | |
# make tools-uninstall | ||
``` | ||
|
||
Installing modules for DKMS support | ||
----------------------------------- | ||
## Installing modules for DKMS support | ||
|
||
```console | ||
# make dkms-install | ||
``` | ||
|
||
Uninstalling modules for DKMS support | ||
----------------------------------- | ||
## Uninstalling modules for DKMS support | ||
|
||
```console | ||
# make dkms-uninstall | ||
``` | ||
|
||
Managing the RapidDisk daemon service | ||
-------------------------------------------------------- | ||
## Managing the RapidDisk daemon service | ||
|
||
After installation, to start the service via systemd: | ||
|
||
|
@@ -123,4 +201,3 @@ To start the service at boot via systemd: | |
```console | ||
# systemctl enable rapiddiskd.service | ||
``` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,14 @@ | ||
Package: rapiddisk | ||
Version: 7.2.1-1 | ||
Version: 8.0.0-1 | ||
Section: base | ||
Priority: optional | ||
Architecture: amd64 | ||
Depends: dkms, gcc, libjansson4 | ||
Depends: dkms, gcc, libjansson4, libmicrohttpd12 | ||
Maintainer: Petros Koutoupis <[email protected]> | ||
Description: RapidDisk | ||
The RapidDisk software defined advanced RAM drive and storage | ||
caching solution. This suite includes a collection of modules, | ||
configuration files, and command line utilities for managing | ||
RapidDisk enabled storage volumes. | ||
RapidDisk enabled storage volumes and accessing them either | ||
locally or across an NVMe Target network. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.