ViPR 2.2 - Add IBM XIV Storage to ViPR Using the ViPR REST API

Table of Contents

Overview

Learn how you, as a ViPR system administrator, can add IBM XIV® storage to ViPR using POST /vdc/storage-providers.

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 IBM XIV storage to ViPR using the REST API

IBM XIV storage is added to ViPR as a storage provider. Once you add the storage provider to ViPR, then the underlying storage systems, storage pools, and storage ports are discovered automatically without any further user input.

Before you begin

The following steps describe how to add IBM XIV storage to ViPR using the REST API. To use the ViPR UI to add IBM XIV storage to ViPRsee the Add Storage Systems Using the ViPR UI article.

Procedure

  1. Add the IBM XIV 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>ibmxiv_block_1</name>
     <interface_type>ibmxiv</interface_type>
      <ip_address>192.168.0.0</ip_address>
      <port_number>5989</port_number>
      <use_ssl>true</use_ssl>  
      <user_name>admin</user_name>
      <password>Password1</password>
    </storage_provider_create>
    Response
    HTTP 202 Accepted
    Content-Type: application/xml
    
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <task>
        <creation_time>1421252561616</creation_time>
        <global>false</global>
        <id>urn:storageos:Task:7257936b-d460-4b7a-b6da-3791dfc89514:vdc1</id>
        <inactive>false</inactive>
        <internal>false</internal>
        <link rel="self" href="/vdc/tasks/urn:storageos:Task:7257936b-d460-4b7a-b6da-3791dfc89514:vdc1"/>
        <name>SCAN STORAGE PROVIDER</name>
        <remote>false</remote>
        <tags/>
        <vdc>
            <id>urn:storageos:VirtualDataCenter:99c5c185-ebb0-468a-8fe7-3ea6e65b7b57:vdc1</id>
            <link rel="self" href="/vdc/urn:storageos:VirtualDataCenter:99c5c185-ebb0-468a-8fe7-3ea6e65b7b57:vdc1"/>
        </vdc>
        <associated_resources/>
        <description>scan storage provider</description>
        <op_id>a99006d2-2d9a-4bfb-a0ba-80e52f7db3bd</op_id>
        <progress>0</progress>
        <resource>
            <id>urn:storageos:StorageProvider:8265d7a6-f42f-41ea-9a9a-1d2edf62c0bd:vdc1</id>
            <link rel="self" href="/vdc/storage-providers/urn:storageos:StorageProvider:8265d7a6-f42f-41ea-9a9a-1d2edf62c0bd:vdc1"/>
            <name>ibmxiv_block_1</name>
        </resource>
        <start_time>1421252561611</start_time>
        <state>pending</state>
    </task>
    
  2. Query the IBM XIV storage provider 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:7257936b-d460-4b7a-b6da-3791dfc89514: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>1421252561616</creation_time>
        <global>false</global>
        <id>urn:storageos:Task:7257936b-d460-4b7a-b6da-3791dfc89514:vdc1</id>
        <inactive>false</inactive>
        <internal>false</internal>
        <link rel="self" href="/vdc/tasks/urn:storageos:Task:7257936b-d460-4b7a-b6da-3791dfc89514:vdc1"/>
        <name>SCAN STORAGE PROVIDER</name>
        <remote>false</remote>
        <tags/>
        <vdc>
            <id>urn:storageos:VirtualDataCenter:99c5c185-ebb0-468a-8fe7-3ea6e65b7b57:vdc1</id>
            <link rel="self" href="/vdc/urn:storageos:VirtualDataCenter:99c5c185-ebb0-468a-8fe7-3ea6e65b7b57:vdc1"/>
        </vdc>
        <associated_resources/>
        <description>scan storage provider</description>
        <end_time>1421252564007</end_time>
        <message>Operation completed successfully</message>
        <op_id>a99006d2-2d9a-4bfb-a0ba-80e52f7db3bd</op_id>
        <progress>100</progress>
        <resource>
            <id>urn:storageos:StorageProvider:8265d7a6-f42f-41ea-9a9a-1d2edf62c0bd:vdc1</id>
            <link rel="self" href="/vdc/storage-providers/urn:storageos:StorageProvider:8265d7a6-f42f-41ea-9a9a-1d2edf62c0bd:vdc1"/>
            <name>ibmxiv_block_1</name>
        </resource>
        <start_time>1421252561611</start_time>
        <state>ready</state>
    </task>
    
Back to Top

Network configuration for block storage systems

After the storage system is added to ViPR, it is recommended to add the corresponding SAN switch using POST /vdc/network-systems.

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