REX-Ray¶
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.
note
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.
Supported Technologies¶
Storage Provider Support¶
The following storage providers and platforms are supported by REX-Ray.
Provider | Storage Platform(s) |
---|---|
Amazon EC2 | EBS, EFS, S3FS |
Ceph | RBD |
Dell EMC | ScaleIO, Isilon |
DigitalOcean | Block Storage |
FittedCloud | EBS Optimizer |
GCE Persistent Disk | |
Microsoft | Azure Unmanaged Disk |
VirtualBox | Virtual Media |
Operating System Support¶
The following operating systems (OS) are supported by REX-Ray:
OS | Command Line | Service |
---|---|---|
Ubuntu 12+ | Yes | Yes |
Debian 6+ | Yes | Yes |
RedHat | Yes | Yes |
CentOS 6+ | Yes | Yes |
CoreOS | Yes | Yes |
TinyLinux (boot2docker) | Yes | Yes |
OS X Yosemite+ | Yes | No |
Windows | No | No |
Container Runtime Support¶
REX-Ray currently supports the following container platforms:
Platform | Use |
---|---|
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:
Orchestrator | Container Runtime |
---|---|
Docker Swarm | Docker |
Kubernetes | Docker |
Marathon | Docker, Mesos Containerizer |
Quick Start¶
Install¶
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
Configure¶
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
instructions.
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
Demo¶
View the Vagrant Demo as well as visit the {code} Labs for more information on ways to setup REX-Ray and run different types of applications such as Postgres and Minecraft.
Getting Help¶
Having issues? No worries, let's figure it out together.
Debug¶
The -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.
GitHub and Slack¶
If a little extra help is needed, please don't hesitate to use GitHub issues or join the active conversation on the {code} by Dell EMC Community Slack Team in the #project-rexray channel