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.
|Oracle VirtualBox||Virtual Media|
|Amazon EC2||EBS, EFS|
Support for the following storage providers will be reintroduced in upcoming releases:
|Google Compute Engine||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. Use the REX-Ray Configuration Generator or refer to the libStorage Storage Providers documentation for sample configurations of all supported storage platforms. Additionally, look at core properties & logging for advanced configurations.
Create a configuration file on the host at
/etc/rexray/config.yml. Here is a
simple example for using Oracle VirtualBox:
libstorage: service: virtualbox
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.