Guest Blogger: Sidhartha Mani, Software Engineer at Rancher Labs

Rancher-Logo-FinalWelcome to Part 2 (of 2) of this series, where we show you how to build an enterprise-grade container service for your business using Rancher, RackHD, REX-Ray and ScaleIO. In Part 1, we provisioned bare metal hosts with Rancher and RackHD, and used Rancher again to deploy a containerized version of ScaleIO across those hosts. In this installation, we’ll build persistent storage for Docker containers across multiple clouds, using the hosts you’ve already set up.

Implementing Persistent storage for containers using Rancher and REX-Ray

After you’ve worked through Part 1 to provision hosts with Rancher, RackHD, and ScaleIO, it’s time to use EMC REX-Ray. REX-Ray implements the backend for a Docker volume driver, providing persistent storage to containers backed by a long list of storage providers. Rancher builds on REX-Ray’s capabilities to make a truly DevOps-friendly storage solution. By leveraging Rancher, the application storage solution gains the ability to:

  1. Deploy storage providers on multiple hosts spanning across multiple clouds, scaling up and down as needed with a simple UI
  2. Configure containers to follow policy-based and role-based workflows for efficient use of persistent storage providers
  3. Schedule containers with Rancher’s service discovery and cross-application linking features
  4. Create Docker volume plugins, and use Rancher service discovery to invoke vendor-specific features implemented by the storage provider
  5. Automatically move persistent volumes in case of application failures, and restart application on different nodes

REX-Ray will reside on every host that requires persistent storage. It is possible to schedule services on Rancher in this way using a scheduling rule called ‘global scheduling’. This is done using Rancher Labels (you can find more information about them here). Here’s the Rancher catalog item for REX-Ray:

Rancher 2 1

Fill in all the required fields, and click ‘Launch’. This will launch REX-Ray on all hosts available in Rancher (due to global scheduling).

Elastic and scalable storage deployment on multiple clouds using Rancher

REX-Ray is special because it supports various storage backends and various clouds. REX-Ray therefore can be deployed once from Rancher on all hosts and regardless of the cloud it is deployed in, it automagically works with the available backend. For example, it is possible to add 1 host from AWS, Rackspace, and RackHD (storage provided by ScaleIO) into Rancher: Deploy REX-Ray on all hosts with credentials for all. In the AWS host, REX-Ray automatically chooses the EBS backend, and on Rackspace, it automatically uses Rackspace volumes and similarly on the RackHD hosts, it’ll automatically choose ScaleIO.

This flexibility allows one to deploy REX-Ray globally and scale up and down individual cloud capacity. This also means that if one of the services goes down, for example, if Rackspace has an outage, AWS, and RackHD hosts will continue to work and persistent storage will be available to these hosts. Congratulations, you’ve built a secure and robust container storage service spanning multiple clouds!

Rancher will be with EMC {code}

Next week at EMC World, Rancher members, including myself, will be at EMC {code} booth #1044, showing off the Rancher integrations with REX-Ray, ScaleIO and RackHD. I’ll be available to answer any questions about Rancher, creating application catalogs for Rex-Ray and ScaleIO, scheduling storage containers, Rancher Labels, Storage deployment topologies and others. We want your feedback! Come visit us, reach out on Twitter @Rancher_Labs, or contact me directly at [email protected]

For more info:

  • You can view a sample Rancher REX-Ray application catalog here
  • You can setup Rancher using instructions here
  • You can download REX-Ray here