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

Table of Contents

Overview

As a ViPR system administrator, learn 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 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:

Back to Top

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

  • Pre-configuration and support requirements.
  • 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 - name of the user used to SSH into the MDM host. Storage system administrator privileges are required.
  • password - password associated with the user_name.
  • secondary_username - name of the user used for issuing the ScaleIO CLI login.
  • secondary_password - password of the user used for issuing the ScaleIO CLI login.
  • element_manager_url - the URL of the element manager system that is associated with the storage provider. The syntax is:
    https://<element_manager_FQDN>/resources/dashboard.jnlp?host=<ip_address>&username=<admin_username>
  • The EMC ViPR REST API Reference provides a description and complete list of parameters for the REST API methods used in this article.

The following steps describe how to add stand-alone ScaleIO storage to ViPR using the REST API. To use the ViPR UI to add stand-alone ScaleIO storage to ViPRsee the Add Storage Systems Using the ViPR UI 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>lg45.mycomp.com</ip_address>
      <port_number>22</port_number>
      <user_name>root</user_name>
      <password>Password1</password>
      <secondary_username>admin</secondary_username>
      <secondary_password>Password2</secondary_password>
      <element_manager_url>https://lg45.mycomp.com/resources/dashboard.jnlp?host=192.168.0.45&username=admin</element_manager_url>
    </storage_provider_create>
    Response
    HTTP 202 Accepted
    Content-Type: application/xml
    
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <task>
        <creation_time>1415211256218</creation_time>
        <global>false</global>
        <id>urn:storageos:Task:9d520090-6518-49a2-8b7b-af2c7066416d:vdc1</id>
        <inactive>false</inactive>
        <internal>false</internal>
        <link rel="self" href="/vdc/tasks/urn:storageos:Task:9d520090-6518-49a2-8b7b-af2c7066416d:vdc1"/>
        <name>SCAN STORAGE PROVIDER</name>
        <remote>false</remote>
        <tags/>
        <vdc>
            <id>urn:storageos:VirtualDataCenter:d649923c-3d28-4195-bd6e-d7139c0df033:vdc1</id>
            <link rel="self" href="/vdc/urn:storageos:VirtualDataCenter:d649923c-3d28-4195-bd6e-d7139c0df033:vdc1"/>
        </vdc>
        <associated_resources/>
        <op_id>18315650-b792-4ec9-86e9-5198dd28588b</op_id>
        <progress>0</progress>
        <resource>
            <id>urn:storageos:StorageProvider:7c347281-416f-453d-ade1-31ab03ddf1b9:vdc1</id>
            <link rel="self" href="/vdc/storage-providers/urn:storageos:StorageProvider:7c347281-416f-453d-ade1-31ab03ddf1b9:vdc1"/>
            <name>scaleio_block_1</name>
        </resource>
        <start_time>1415211256216</start_time>
        <state>pending</state>
    </task>
    
  2. Query the ScaleIO create task, using the task ID from the response body of the POST request. When the message attribute of the task is Operation completed successfully, the operation has completed and the storage provider has been discovered.
    Request
    GET https://<ViPR_VIP>:4443/vdc/tasks/urn:storageos:Task:9d520090-6518-49a2-8b7b-af2c7066416d:vdc1
    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>
        <creation_time>1415211256218</creation_time>
        <global>false</global>
        <id>urn:storageos:Task:9d520090-6518-49a2-8b7b-af2c7066416d:vdc1</id>
        <inactive>false</inactive>
        <internal>false</internal>
        <link rel="self" href="/vdc/tasks/urn:storageos:Task:9d520090-6518-49a2-8b7b-af2c7066416d:vdc1"/>
        <name>SCAN STORAGE PROVIDER</name>
        <remote>false</remote>
        <tags/>
        <vdc>
            <id>urn:storageos:VirtualDataCenter:d649923c-3d28-4195-bd6e-d7139c0df033:vdc1</id>
            <link rel="self" href="/vdc/urn:storageos:VirtualDataCenter:d649923c-3d28-4195-bd6e-d7139c0df033:vdc1"/>
        </vdc>
        <associated_resources/>
        <end_time>1415211260337</end_time>
        <message>Operation completed successfully</message>
        <op_id>18315650-b792-4ec9-86e9-5198dd28588b</op_id>
        <progress>100</progress>
        <resource>
            <id>urn:storageos:StorageProvider:7c347281-416f-453d-ade1-31ab03ddf1b9:vdc1</id>
            <link rel="self" href="/vdc/storage-providers/urn:storageos:StorageProvider:7c347281-416f-453d-ade1-31ab03ddf1b9:vdc1"/>
            <name>scaleio_block_1</name>
        </resource>
        <start_time>1415211256216</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. ViPR Block Service Powered by ScaleIO provides additional information on how ViPR uses the ScaleIO components to create the required ViPR objects.

Back to Top

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.

Back to Top