rexray

package module
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 4, 2016 License: Apache-2.0 Imports: 5 Imported by: 0

README

REX-Ray GoDoc Build Status Go Report Card Coverage Status Download

REX-Ray provides a vendor agnostic storage orchestration engine. The primary design goal is to provide persistent storage for Docker containers as well as Mesos frameworks and tasks.

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 in the future (0.4) additionally 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.

Irrespective of platform, REX-Ray provides common functionality for the following.

  • AWS EC2 (EBS)
  • OpenStack (Cinder)
  • EMC Isilon
  • EMC ScaleIO
  • EMC VMAX
  • EMC XtremIO
  • Google Compute Engine (GCE)
  • VirtualBox
  • ..more coming

Operating System Support

By default we prescribe the curl-bash method of installing REX-Ray. Other methods are available, please consult the documentation for more information.

We explicitly support the following operating system distributions.

  • Ubuntu
  • Debian
  • RedHat
  • CentOS
  • CoreOS
  • OSX
  • TinyLinux (boot2docker)

Installation

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

curl -sSL https://dl.bintray.com/emccode/rexray/install | sh -

Runtime - CLI

REX-Ray can be ran as an interactive CLI to perform volume management capabilities.

$ export REXRAY_STORAGEDRIVERS=ec2
$ export AWS_ACCESSKEY=access_key
$ export AWS_SECRETKEY=secret_key
$ rexray volume get

- providername: ec2
  instanceid: i-695bb6ab
  volumeid: vol-dedbadc3
  devicename: /dev/sda1
  region: us-west-1
  status: attached

Runtime - Service (Docker)

Additionally, it can be ran as a service to support Docker, Mesos, and other platforms that can communicate through HTTP/JSON.

$ export REXRAY_STORAGEDRIVERS=ec2
$ export AWS_ACCESSKEY=access_key
$ export AWS_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 /test

Documentation

Overview

Package rexray provides visibility and management of external/underlying storage via guest storage introspection. Available as a Go package, CLI tool, and Linux service, and with built-in third-party support for tools such as Docker, REX-Ray is easily integrated into any workflow. For example, here's how to list storage for a guest hosted on Amazon Web Services (AWS) with REX-Ray:

[0]akutz@pax:~$ export REXRAY_STORAGEDRIVERS=ec2
[0]akutz@pax:~$ export AWS_ACCESSKEY=access_key
[0]akutz@pax:~$ export AWS_SECRETKEY=secret_key
[0]akutz@pax:~$ rexray volume get

- providername: ec2
  instanceid: i-695bb6ab
  volumeid: vol-dedbadc3
  devicename: /dev/sda1
  region: us-west-1
  status: attached
- providername: ec2
  instanceid: i-695bb6ab
  volumeid: vol-04c4b219
  devicename: /dev/xvdb
  region: us-west-1
  status: attached

[0]akutz@pax:~$

Using REX-Ray as a library is easy too. To perform the same volume listing as above, simply use the following snippet:

import "github.com/emccode/rexray"

r := rexray.NewWithEnv(map[string]string{
    "REXRAY_STORAGEDRIVERS": "ec2",
    "AWS_ACCESSKEY": "access_key",
    "AWS_SECRETKEY": "secret_key"})

r.InitDrivers()

volumes, err := r.Storage.GetVolumeMapping()

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New added in v0.2.1

func New() (*core.RexRay, error)

New creates a new REX-Ray instance and configures using the standard configuration workflow: environment variables followed by global and user configuration files.

func NewWithConfigFile added in v0.2.1

func NewWithConfigFile(path string) (*core.RexRay, error)

NewWithConfigFile creates a new REX-Ray instance and configures it with a custom configuration file.

func NewWithConfigReader added in v0.2.1

func NewWithConfigReader(in io.Reader) (*core.RexRay, error)

NewWithConfigReader creates a new REX-Ray instance and configures it with a custom configuration stream.

func NewWithEnv added in v0.2.1

func NewWithEnv(env map[string]string) (*core.RexRay, error)

NewWithEnv creates a new REX-Ray instance and configures it with a a custom environment.

Types

This section is empty.

Directories

Path Synopsis
os
cli
Package test is a package that exists purely to provide coverage for the following packages: - github.com/emccode/rexray - github.com/emccode/rexray/core Because of the way drivers are loaded, it's not possible for the core package to share mock drivers with any other package.
Package test is a package that exists purely to provide coverage for the following packages: - github.com/emccode/rexray - github.com/emccode/rexray/core Because of the way drivers are loaded, it's not possible for the core package to share mock drivers with any other package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL