ViPR 2.2 - Add EMC VNXe Storage to ViPR Using the ViPR REST API

Table of Contents

Overview

Learn how you, as a ViPR system administrator, can add EMC VNXe storage to ViPR using POST /vdc/storage-systems.

This article also describes important REST API calls used to manage and configure storage systems in 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 VNXe storage to ViPR using the REST API

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

Before you begin

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

Procedure

  1. Add theVNXe storage to ViPR using POST /vdc/storage-systems. A task is returned whose URI can be queried to determine the status of the task.
    Request
    https://<ViPR_VIP>:4443/vdc/storage-systems
    Content-Type: application/xml
    X-SDS-AUTH-TOKEN: <AUTH_TOKEN>
    
    <storage_system_create>
      <name>vnxe_west_1</name>
     <system_type>vnxe</system_type>
      <ip_address>192.168.0.0</ip_address>
      <port_number>443</port_number> 
      <user_name>admin</user_name>
      <password>Password1</password>
    </storage_system_create>
    Response
    HTTP 202 Accepted
    Content-Type: application/xml
    
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <task>
        <creation_time>1421364124416</creation_time>
        <global>false</global>
        <id>urn:storageos:Task:6129aede-040b-4095-b953-060cff0ecc87:vdc1</id>
        <inactive>false</inactive>
        <internal>false</internal>
        <link rel="self" href="/vdc/tasks/urn:storageos:Task:6129aede-040b-4095-b953-060cff0ecc87:vdc1"/>
        <name>DISCOVER STORAGESYSTEM</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>discover a storage systems</description>
        <op_id>dedcac98-94fb-4192-9f0b-f0272ba64126</op_id>
        <progress>0</progress>
        <resource>
            <id>urn:storageos:StorageSystem:2370c474-4d8d-44a9-8ebf-58aa87b5b3ea:vdc1</id>
            <link rel="self" href="/vdc/storage-systems/urn:storageos:StorageSystem:2370c474-4d8d-44a9-8ebf-58aa87b5b3ea:vdc1"/>
            <name>vnxe_west_1</name>
        </resource>
        <start_time>1421364124415</start_time>
        <state>pending</state>
    </task>
  2. Query the VNXe storage system 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, then operation has completed and the storage system has been discovered.
    Request
    https://<ViPR_VIP>:4443/vdc/tasks/urn:storageos:Task:6129aede-040b-4095-b953-060cff0ecc87: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>1421364124416</creation_time>
        <global>false</global>
        <id>urn:storageos:Task:6129aede-040b-4095-b953-060cff0ecc87:vdc1</id>
        <inactive>false</inactive>
        <internal>false</internal>
        <link rel="self" href="/vdc/tasks/urn:storageos:Task:6129aede-040b-4095-b953-060cff0ecc87:vdc1"/>
        <name>DISCOVER STORAGESYSTEM</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>discover a storage systems</description>
        <end_time>1421364147897</end_time>
        <message>Operation completed successfully</message>
        <op_id>dedcac98-94fb-4192-9f0b-f0272ba64126</op_id>
        <progress>100</progress>
        <resource>
            <id>urn:storageos:StorageSystem:2370c474-4d8d-44a9-8ebf-58aa87b5b3ea:vdc1</id>
            <link rel="self" href="/vdc/storage-systems/urn:storageos:StorageSystem:2370c474-4d8d-44a9-8ebf-58aa87b5b3ea:vdc1"/>
            <name>vnxe_west_1</name>
        </resource>
        <start_time>1421364124415</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

IP network configuration requirements for storage

After the storage system is added to ViPR, create the IP networks to include in the virtual array, and be sure to add the necessary storage and host ports to use to provision the storage to the hosts.

ViPR can discover the ports of IP connected storage systems and hosts, but it cannot discover the paths between then, so it is necessary to create IP networks, and then add the host, and storage system ports, which will be provisioned together, to the same IP network.

Refer to Create and configure a ViPR virtual array using the ViPR REST API for more details.

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