*Note: This is a unofficial fork of the unmaintained rexray. But we will care issues and PR's so good as possible.
The long-term goal of the REX-Ray project is to enable collaboration between organizations focused on creating enterprise-grade storage plugins for the Container Storage Interface (CSI). As a rapidly changing specification, CSI support within REX-Ray will be planned when CSI reaches version 1.0, currently projected for a late 2018 release. In the interim, there remains active engagement with the project to support the community.
REX-Ray provides a vendor agnostic storage orchestration engine. The primary
design goal is to provide persistent storage for Docker
, Kubernetes
, and Mesos
.
It is additionally available as a Go package, CLI tool, and Linux service which enables it to be used for additional use cases.
Documentation is based on the latest stable build. The /.docs
directory in this repo will refer to the latest or specific commit.
REX-Ray is available as a standalone process today and as a distributed
model of client-server. The client
performs a level abstraction of local
host processes (request for volume attachment, discovery, format, and mounting
of devices) while the server
provides the necessary abstraction of the
control plane for multiple storage platforms/
The following storage providers and platforms are supported by REX-Ray.
Provider | Storage Platform | Docker | Containerized |
---|---|---|---|
Amazon EC2 | EBS | ✓ | ✓ |
EFS | ✓ | ✓ | |
S3FS | ✓ | ✓ | |
Ceph | RBD | ✓ | ✓ |
Dell EMC | Isilon | ✓ | ✓ |
ScaleIO | ✓ | ✓ | |
DigitalOcean | Block Storage | ✓ | ✓ |
FittedCloud | EBS Optimizer | ✓ | |
GCE Persistent Disk | ✓ | ✓ | |
Microsoft | Azure Unmanaged Disk | ✓ | ✓ |
OpenStack | Cinder | ✓ | ✓ |
The following operating systems are supported by REX-Ray:
OS | Command Line | Service |
---|---|---|
Ubuntu 12+ | ✓ | ✓ |
Debian 6+ | ✓ | ✓ |
RedHat | ✓ | ✓ |
CentOS 6+ | ✓ | ✓ |
CoreOS | ✓ | ✓ |
TinyLinux (boot2docker) | ✓ | ✓ |
OS X Yosemite+ | ✓ | |
Windows |
We only deliver prebuild version for CentOS 7. You can add our rpm repository:
[aventer-rel]
name=AVENTER stable repository $releasever
baseurl=http://rpm.aventer.biz/CentOS/$releasever/$basearch/
enabled=1
gpgkey=https://www.aventer.biz/CentOS/support_aventer.asc
REX-Ray can be run as an interactive CLI to perform volume management capabilities.
$ export REXRAY_SERVICE=ebs
$ export EBS_ACCESSKEY=access_key
$ export EBS_SECRETKEY=secret_key
$ rexray volume ls
ID Name Status Size
vol-6ac6c7d6 attached 8
Additionally, it can be run as a service to support Docker
, Mesos
, and other
platforms that can communicate through HTTP/JSON
.
$ export REXRAY_SERVICE=ebs
$ export EBS_ACCESSKEY=access_key
$ export EBS_SECRETKEY=secret_key
$ rexray service start
Starting REX-Ray...SUCCESS!
The REX-Ray daemon is now running at PID XX. To
shutdown the daemon execute the following command:
sudo /usr/bin/rexray stop
$ docker run -ti --volume-driver=rexray -v test:/test busybox
$ df -h /test
Starting with Docker 1.13, Docker now supports a new plugin architecture in which plugins can be installed as containers.
$ docker plugin install rexray/ebs EBS_ACCESSKEY=access_key EBS_SECRETKEY=secret_key
Plugin "rexray/ebs:latest" is requesting the following privileges:
- network: [host]
- mount: [/dev]
- allow-all-devices: [true]
- capabilities: [CAP_SYS_ADMIN]
Do you grant the above permissions? [y/N] y
latest: Pulling from rexray/ebs
2ef3a0b3d192: Download complete
Digest: sha256:86a3bf7fdab857c955d7ef3fb94c01e350e34ba0f7fd3d0bd485e45f1592e1c2
Status: Downloaded newer image for rexray/ebs:latest
Installed plugin rexray/ebs:latest
$ docker plugin ls
ID NAME DESCRIPTION ENABLED
450420731dc3 rexray/ebs:latest REX-Ray for Amazon EBS true
$ docker run -ti --volume-driver=rexray/ebs -v test:/test busybox
$ df -h /test