Openly serious about storage
REX-Ray is an open source, storage management solution designed to support container runtimes such as Docker and Mesos. REX-Ray enables stateful applications, such as databases, to persist and maintain its data after the life cycle of the container has ended. Built-in high availability enables orchestrators such as Docker Swarm, Kubernetes, and Mesos Frameworks like Marathon to automatically orchestrate storage tasks between hosts in a cluster.
Built on top of the libStorage framework, REX-Ray's simplified architecture consists of a single binary and runs as a stateless service on every host using a configuration file to orchestrate multiple storage platforms.
The current REX-Ray release omits support for several, previously verified storage platforms. These providers will be reintroduced incrementally, beginning with 0.4.1. If an absent driver prevents the use of REX-Ray, please continue to use 0.3.3 until such time the storage platform is re- introduced as a part of the libStorage framework. Instructions on how to install and configure REX-Ray 0.3.3 are both available.
Storage Provider Support¶
The following storage providers and platforms are supported by REX-Ray.
|Amazon EC2||EBS, EFS, S3FS|
|Dell EMC||ScaleIO, Isilon|
|GCE Persistent Disk|
|Microsoft||Azure Unmanaged Disk|
Operating System Support¶
The following operating systems (OS) are supported by REX-Ray:
|OS X Yosemite+||Yes||No|
Container Runtime Support¶
REX-Ray currently supports the following container platforms:
|Docker||Volume Driver Plugin|
|Mesos||Volume Driver Isolator module|
|Mesos + Docker||Volume Driver Plugin|
Container Orchestration Support¶
REX-Ray currently supports the following container orchestrators:
|Marathon||Docker, Mesos Containerizer|
The following command will download the most recent and stable build of REX-Ray
and install to
/usr/bin/rexray on Linux systems. REX-Ray will be registered
as either a SystemD or SystemV service depending upon the OS.
$ curl -sSL https://dl.bintray.com/emccode/rexray/install | sh
REX-Ray requires a configuration file for storing details used to communicate with storage providers. This can include authentication credentials and driver- specific configuration options.
After REX-Ray has been installed, copy and paste the contents from the
REX-Ray Configuration Generator to a
new file on the host at
/etc/rexray/config.yml. The configuration generator
will satisfy the majority of use cases for REX-Ray.
For more advanced and manual options, such as using multiple storage platforms, and sample configurations of all supported storage platforms, refer to the libStorage Storage Providers documentation. Additionally, look at core properties and logging.
Here is a simple example for using Oracle VirtualBox:
libstorage: service: virtualbox virtualbox: volumePath: $HOME/VirtualBox/Volumes
Refer to the VirtualBox documentation for additional VirtualBox configuration options.
Start the VirtualBox SOAP API service using:
$ vboxwebsrv -H 0.0.0.0 -v
From here, REX-Ray can now be used as a command line tool. View the commands available:
$ rexray --help
To verify the configuration file is working, use REX-Ray to list the volumes:
$ rexray volume ls ID Name Status Size 1b819454-a280-4cff-aff5-141f4e8fd154 libStorage.vmdk attached 16
If there is an error, use the
-l debug flag and consult debugging
Start as a Service¶
Container platforms rely on REX-Ray to be running as a service to function properly. For instance, Docker communicates to the REX-Ray Volume Driver via a UNIX socket file.
$ rexray service start
Having issues? No worries, let's figure it out together.
-l debug flag can be appended to any command in order to get verbose
output. The following command will list all of the volumes visible to REX-Ray
with debug logging enabled:
$ rexray volume -l debug ls
For an example of the full output from the above command, please refer to this Gist.