Skip to content

Commit

Permalink
Merge pull request #197 from clintonskitson/feature/vmax_driver
Browse files Browse the repository at this point in the history
vmax driver
  • Loading branch information
akutz committed Dec 8, 2015
2 parents acc2e54 + 0fbcbf4 commit 72fcd96
Show file tree
Hide file tree
Showing 7 changed files with 873 additions and 0 deletions.
94 changes: 94 additions & 0 deletions .docs/user-guide/vmax.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#VMAX

I focus on Reliability, Availability, and Servicability for Block.

---

## Overview
The VMAX driver registers a storage driver named `vmax` with the `REX-Ray`
driver manager and is used to connect and manage VMAX block storage.

This driver will in the future be used in many scenarios including HBA and
iSCSI. Right now, the driver is functioning in the `vmh` mode. This means
the Volume attachment and detachment is occuring as RDM's to a VM where
`REX-Ray` is running. This use case enables you to address volumes for
containers as 1st class VMAX volumes while being capable of taking advantage
of mobility options such as `vSphere vMotion`.

## Configuration
The following is an example configuration of the Isilon driver.

```yaml
vmax:
smisHost: smisHost
smisPort: smisPort
insecure: true
username: admin
password: password
sid: '000000000000'
volumePrefix: "rexray_"
storageGroup: storageGroup
mode: vmh
vmh:
host: vcenter_or_vm_host
username: username
password: password
insecure: true
```

For information on the equivalent environment variable and CLI flag names
please see the section on how non top-level configuration properties are
[transformed](./config/#all-other-properties).

## Extra Paramters
The following items are configurable specific to this driver.

- `sid` is your array ID, ensure you enclose it in quotes to preserve it as a
string.
- `volumePrefix` is an (optional) field that limits visibility and usage of
volumes to those only with this prefix, ie. `rexray_`.
- `storageGroup` is the fields that determines which masking view to use
when adding and removing volumes.

## Activating the Driver
To activate the VMAX driver please follow the instructions for
[activating storage drivers](/user-guide/config#activating-storage-drivers),
using `vmax` as the driver name.

## Examples
Below is a full `rexray.yml` file that works with Isilon.

```yaml
rexray:
storageDrivers:
- vmax
logLevel: debug
vmax:
smisHost: smisHost
smisPort: smisPort
insecure: true
username: admin
password: password
sid: '000000000000'
volumePrefix: "rexray_"
storageGroup: storageGroup
mode: vmh
vmh:
host: vcenter_or_vm_host
username: username
password: password
insecure: true
```

## Instructions
For the `vmh` mode, ensure that you have pre-created the storage group as
defined by `storageGroup`. The underlying ESX hosts in the cluster where the VM
can move should already be in a masking view that has access to the VMAX ports
and should be properly logged in.

## Caveats

- This driver currently ignores the `--volumeType` flag.
- Pre-emption is not currently supported. A mount to an alternate VM will be
denied.
- A max of `56` devices is supported per VM.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Irrespective of platform, `REX-Ray` provides common functionality for the follow
- AWS EC2 (EBS)
- OpenStack (Cinder)
- EMC ScaleIO
- EMC VMAX
- EMC XtremIO
- Google Compute Engine (GCE)
- ..more coming
Expand Down
1 change: 1 addition & 0 deletions drivers/storage/storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ import (
_ "github.com/emccode/rexray/drivers/storage/openstack"
_ "github.com/emccode/rexray/drivers/storage/rackspace"
_ "github.com/emccode/rexray/drivers/storage/scaleio"
_ "github.com/emccode/rexray/drivers/storage/vmax"
_ "github.com/emccode/rexray/drivers/storage/xtremio"
)

0 comments on commit 72fcd96

Please sign in to comment.