ViPR Controller Integration of ScaleIO

Table of Contents

Overview

Learn the components of ScaleIO and how ViPR Controller integrates these components, as well as the types of provisioning that can be performed with ViPR Controller.

ViPR Controller integrates ScaleIO storage to create a server-based SAN from local application server storage. You can use the ViPR Controller UI, REST API, or CLI to add ScaleIO storage to ViPR Controller. See the following on the ViPR Controller Product Documentation Index:
  • ViPR Controller User Interface Virtual Data Center Configuration Guide
  • ViPR Controller REST API Virtual Data Center Configuration Guide
  • ViPR Controller CLI Reference Guide
Back to Top

Main components of ScaleIO

ScaleIO is a commodity based, software-only block storage solution. It leverages the existing local disks of a host and exposes them as block storage that can be consumed by clients over the LAN.

The ScaleIO solution consists of software components that are installed on the application hosts. These hosts communicate with each other over the LAN to handle the clients IO request. These components can be installed on existing application hosts or in a greenfield environment:
  • Meta Data Manger (MDM) services the requests to manage the ScaleIO system.
  • ScaleIO Data Server (SDS) manages the local storage that contributes to the ScaleIO storage pool. The SDS is installed on all servers contributing storage devices to the ScaleIO system.
  • ScaleIO Data Client (SDC) is a device driver that exposes ScaleIO volumes as block devices to the application residing on the same server on which the SDC is installed.

ScaleIO Components

The ScaleIO system also has concepts of Protection Domains and Storage Pools:
  • Protection Domain
    • Collection of SDSs
    • An SDS can only belong to one protection domain at any one time.
  • Storage Pool
    • A subset of physical storage devices in a protection domain.
    • Each storage device belongs to one (and only one) storage pool.
    • Can be used to group devices of similar attributes, such as magnetic disk and SSD as singular resource, from which one can allocate volumes.

The following figure shows an example of a ScaleIO with three protection domains and two storage pools. The middle protection domain consists of seven SDSs, each with two storage devices.

ScaleIO Protection Domains and Storage Pools

Back to Top

How ScaleIO components are integrated into ViPR Controller

To ViPR Controller, ScaleIO block storage is a set of storage devices. When adding a stand-alone ScaleIO system, the storage is added as a storage provider of the type, ScaleIO.

When ViPR Controller is pointed to the primary MDM:
  1. If the ScaleIO is stand-alone, a storage provider is created which maps to the Primary MDM.
  2. The protection domains are discovered and one storage system is created in ViPR Controller for each ScaleIO protection domain.
  3. Storage ports are created in ViPR Controller: one storage port in a ViPR Controller storage system for each discovered SDS that is part of the ScaleIO protection domain that is mapped to the storage system. The name of the storage port maps to the name of the SDS ID.
  4. ViPR Controller automatically creates a network for the ScaleIO using the SDCs, and the storage ports that were created from all of the discovered SDSs.
  5. ViPR Controller automatically creates hosts and host initiators: one host for each SDC.

The following figure shows the ViPR Controller objects that are automatically created by discovering the components of the ScaleIO.

ViPR Controller Objects Automatically Created by Discovering ScaleIO Components

Once ViPR Controller has created the storage ports, network, and hosts, then a system administrator can:
  1. Create a virtual array for the ScaleIO storage.
  2. Create a block virtual pool and associate it with the ScaleIO virtual array.

Once the virtual arrays and block virtual pools are created, you can provision the ScaleIO block storage.

Back to Top

Best practices for ScaleIO to work with discoverable hosts

When you add ScaleIO storage, ViPR Controller automatically creates a host of type Other for each of the SDCs, and creates the host initiators. But these hosts are not discoverable. There are two methods that allow you to associate these ViPR Controller-created hosts with their discoverable hosts.

First method

  1. Add the discoverable host, such as Windows or Linux, to ViPR Controller.
  2. Add the ScaleIO storage provider to ViPR Controller.

The ScaleIO discovery adds the ScaleIO initiators to the correct discoverable host.

Second method

  1. Add the ScaleIO storage provider to ViPR Controller. This creates hosts of type Other for each of the SDCs.
  2. Edit the Other host. Change its type to match its operating system, such as Windows, and provide login credentials, and enable Discoverable.

When the host is discovered it is now associated with the ScaleIO initiators that were created when the ScaleIO storage provider was added to ViPR Controller.

Back to Top

Provisioning Services Available after adding ScaleIO into ViPR Controller

The following provisioning services are available with the ViPR Controller Block Service
Note Image
ScaleIO does not support multipath.

  • Volumes and Exports
    • Create Block Volume for a Host, based on the ScaleIO virtual pool
    • Export ScaleIO volumes to SDC hosts or iSCSI initiators
    • Add more ScaleIO volumes to SDC hosts or iSCSI initiators
    • Remove ScaleIO volumes from SDC hosts or iSCSI initiators
    • Add SDC hosts or iSCSI initiators to a ScaleIO export
    • Remove SDC hosts or iSCSI initiators from a ScaleIO export
    • Delete a ScaleIO export
  • Snapshots
    • Create a volume based on ScaleIO virtual pool
    • Create a snapshot of ScaleIO volume
    • Export ScaleIO volumes and snapshots to SDC hosts or iSCSI initiators
    • Add more ScaleIO snapshots and volumes to SDC hosts or iSCSI initiators
    • Add SDC hosts or iSCSI initiators to an existing export
    • Remove SDC hosts or iSCSI initiators from an existing export
    • Delete a ScaleIO export
  • Full Copy
    • Create a volume based on ScaleIO virtual pool
    • Create a full-copy of ScaleIO volume
    • Delete a full-copy of ScaleIO volume
  • Consistency Group
    • Create a consistency group
    • Add ScaleIO volumes into consistency group
    • Create a snapshot of ScaleIO consistency group
    • Delete a snapshot of ScaleIO consistency group
    • Delete consistency group
Back to Top