REX-Ray is a container storage orchestration engine enabling persistence for cloud native workloads
Go API Blueprint Shell CSS Ruby Makefile Other
Clone or download
akutz Merge pull request #1123 from jmaitrehenry/update_azure_documentation
Add a requirement for Azure and rename Microsoft to Microsoft Azure
Latest commit d14c3e3 Jun 22, 2018
Permalink
Failed to load latest commit information.
.docker/plugins Use CentOS as base for csi-nfs docker plugin Dec 19, 2017
.docs-themes/yeti Refactored for new org rexray Feb 23, 2018
.docs Add a requirement for Azure, renamme Microsoft to Microsoft Azure and… Jun 22, 2018
.github Refactored for new org rexray Feb 23, 2018
.puml PlantUML Documentation Mar 30, 2017
agent Refactored for new org rexray Feb 23, 2018
cli Refactored for new org rexray Feb 23, 2018
core Enable Docker Legacy Mode by Default Jun 11, 2018
libstorage Fix JSON parser for rbd showmapped in Ceph v13 Jun 11, 2018
scripts Refactored for new org rexray Feb 23, 2018
util Refactored for new org rexray Feb 23, 2018
vendor Update vendored version of github.com/digitalocean/godo Jun 11, 2018
.gitignore CSI Support Sep 5, 2017
.hound.yml libStorage Refactor (DADD) Mar 22, 2016
.travis.yml Refactored for new org rexray Feb 23, 2018
CONTRIBUTING.md Refactored for new org rexray Feb 23, 2018
Gopkg.lock Update vendored version of github.com/digitalocean/godo Jun 11, 2018
Gopkg.toml Update vendored version of github.com/digitalocean/godo Jun 11, 2018
LICENSE Initial commit Nov 13, 2015
Makefile Refactored for new org rexray Feb 23, 2018
README.md Remove CSI from docs Jun 11, 2018
VERSION Incremented VERSION to 0.12.0 Feb 24, 2018
Vagrantfile Fix usage of make in Vagrant file for new build types Jan 12, 2017
install Refactored for new org rexray Feb 23, 2018
make.sh Remove build script & update docs Aug 7, 2017
mkdocs.txt Addendum to previous commit Oct 25, 2017
mkdocs.yml Add a requirement for Azure, renamme Microsoft to Microsoft Azure and… Jun 22, 2018
rexray.go Refactored for new org rexray Feb 23, 2018
rexray_docs.go Simplified Build Process Aug 4, 2017
rexray_std_agent.go Refactored for new org rexray Feb 23, 2018
rexray_std_client_agent.go Refactored for new org rexray Feb 23, 2018
rexray_std_controller.go Refactored for new org rexray Feb 23, 2018
rpm.spec Move to GitHub Org "thecodeteam" Oct 25, 2017

README.md

REX-Ray GoDoc Build Status Go Report Card codecov.io Download


info Note: All hosted unstable and staged binaries older than 0.11.2-rc1 have been pruned due to quota restrictions.


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 Docs

You will find complete documentation for REX-Ray at rexray.readthedocs.org, including licensing and support information. Documentation provided at RTD is based on the latest stable build. The /.docs directory in this repo will refer to the latest or specific commit.

Architecture

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/

Storage Provider Support

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
Google GCE Persistent Disk
Microsoft Azure Unmanaged Disk
OpenStack Cinder
VirtualBox Virtual Media

Operating System Support

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

Installation

The following command will install the REX-Ray client-server tool. If using CentOS, Debian, RHEL, or Ubuntu the necessary service manager is used to bootstrap the process on startup

curl -sSL https://rexray.io/install | sh -

Runtime - CLI

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

Runtime - Service (Docker)

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

Runtime - Docker Plugin

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