Add Stand-alone ScaleIO Storage to ViPR Using the ViPR REST API

TOC

BacktoTop

Overview

This article provides ViPR system administrators the ViPR support requirements, and prerequisite information to prepare stand-alone ScaleIO storage systems for ViPR integration, and the steps to add the storage to ViPR using the ViPR REST API.

This article also describes how the storage is discovered, and registered after it is added to ViPR.

This article applies to EMC ViPR 2.0.

This article is part of a series

Storage systems can be added to ViPR at anytime. If, however, you are setting up the ViPR Controller virtual data center for the first time, before you continue to provision storage, complete the following steps.
  1. Authenticate with the ViPR REST API
  2. Add physical assets to ViPR:
  3. Create ViPR virtual assets:
    1. Create and configure a virtual array
    2. Create virtual pools:

BacktoTop

Stand-alone ScaleIO support and preconfiguration requirements

Supported versions
  • ScaleIO 1.21.0.20 or later
Preconfiguration requirements
  • Protection domains are defined.
  • All storage pools are defined.

BacktoTop

Add Stand-alone ScaleIO storage to ViPR using the REST API

A stand-alone ScaleIO is added to ViPR as a storage provider. ViPR creates storage systems from discovered protection domains in the ScaleIO and automatically creates storage ports, hosts, host initiators, and a network for the ScaleIO.

Before you begin

  • Authenticate with the ViPR REST API as a System Administrator.
  • Interface Type - scaleio.
  • IP Address of the primary MDM.
  • Port Number - The port used to SSH into the primary MDM host. The default is 22.
  • user_name - user name for the ScaleIO. Storage system administrator privileges are required.
  • password - password associated with the user_name.
  • The EMC ViPR REST API Reference provides a description and complete list of parameters for the REST API methods used in this article.

Procedure

  1. Add the stand-alone ScaleIO storage to ViPR using POST /vdc/storage-providers. A task is returned whose URI can be queried to determine the status of the task.
    Request

    POST https://<ViPR_VIP>:4443/vdc/storage-providers Content-Type: application/xml X-SDS-AUTH-TOKEN: <AUTH_TOKEN> <storage_provider_create> <name>scaleio_block_1</name> <interface_type>scaleio</interface_type> <ip_address>192.168.0.0</ip_address> <port_number>22</port_number> <user_name>root</user_name> <password>admin</password> </storage_provider_create>

    Response

    HTTP 202 Accepted Content-Type: application/xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <task> <associated_resources/> <description>SCAN_STORAGEPROVIDER</description> <op_id>fcf4c4ae-ed17-45d3-90c8-cd3d778fec4d</op_id> <resource> <id>urn:storageos:StorageProvider:34c68018-e060-4d4d-b307-74f506c1f1a8:vdc1</id> <link rel="self" href="/vdc/storage-providers/urn:storageos:StorageProvider:34c68018-e060-4d4d-b307-74f506c1f1a8:vdc1"/> <name>scaleio_block_1</name> </resource> <link rel="self" href="/vdc/storage-providers/urn:storageos:StorageProvider:34c68018-e060-4d4d-b307-74f506c1f1a8:vdc1/tasks/fcf4c4ae-ed17-45d3-90c8-cd3d778fec4d"/> <state>pending</state> </task>

  2. Query the ScaleIO create task, using the task URL from the response body of the POST request. When the message attribute of the task is Operation completed successfully, the operation has completed.
    Request

    GET https://<ViPR_VIP>:4443/vdc/storage-providers/urn:storageos:StorageProvider:34c68018-e060-4d4d-b307-74f506c1f1a8:vdc1/tasks/fcf4c4ae-ed17-45d3-90c8-cd3d778fec4d Content-Type: application/xml X-SDS-AUTH-TOKEN: <AUTH_TOKEN>

    Response

    HTTP 200 OK Content-Type: application/xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <task> <associated_resources/> <description>SCAN_STORAGEPROVIDER</description> <end_time>1401813389307</end_time> <op_id>fcf4c4ae-ed17-45d3-90c8-cd3d778fec4d</op_id> <message>Operation completed successfully</message> <resource> <id>urn:storageos:StorageProvider:34c68018-e060-4d4d-b307-74f506c1f1a8:vdc1</id> <link rel="self" href="/vdc/storage-providers/urn:storageos:StorageProvider:34c68018-e060-4d4d-b307-74f506c1f1a8:vdc1"/> <name>scaleio_block_1</name> </resource> <link rel="self" href="/vdc/storage-providers/urn:storageos:StorageProvider:34c68018-e060-4d4d-b307-74f506c1f1a8:vdc1/tasks/fcf4c4ae-ed17-45d3-90c8-cd3d778fec4d"/> <start_time>1401813388182</start_time> <state>ready</state> </task>

Results

ViPR creates storage systems from discovered protection domains in the ScaleIO. ViPR also automatically creates storage ports, hosts, host initiators, and a network for the ScaleIO. These can not be edited. Understanding the ViPR Block Service Powered by ScaleIO provides additional information on how ViPR uses the ScaleIO components to create the required ViPR objects.

BacktoTop

Important REST API calls to manage and configure storage systems

The table shows some important APIs that are used to manage and configure storage systems.