EMC ViPR REST API

Search (SHIFT+S)

API Reference


Update Block Virtual Pool

PUT /block/vpools/{id}

The block virtual pool can be modified only if there are no associated resources.

id

Required Roles

Requires one of the following roles:

  • SYSTEM_ADMIN
  • RESTRICTED_SYSTEM_ADMIN

Prerequisites

These conditions must be met before calling this operation.

  • No associated resources such as volumes or snapshots should exist

Request Payload

All parameters are required unless otherwise stated.

Field Description Type Notes
<block_vpool_update>
<max_paths> The new maximum number of paths to a given storage system for the virtual pool. Integer Valid Values:
  •  Range: 1..65535
<min_paths> Integer Valid Values:
  •  Range: 1..65535
<num_paths> Integer
<paths_per_initiator> The maximum number of paths to a given storage system for the initiator. Integer Valid Values:
  •  Range: 1..65535
<raid_level_changes>    
<add>    
<raid_levels> The RAID levels for storage allocated to your volumes. RAID levels set the amount of redundancy and striping. Here is a quick definition of the various RAID levels. RAID 0 is a striped set of disks without parity. RAID 1 is a mirror copy on two disks. RAID 2 is a stripe at the bit level rather than the block level. Rarely used or supported. RAID 3 is a byte level striping with a dedicated parity disk. RAID 4 is block level striping with a dedicated parity disk. RAID 5 is block level striping with the parity data distributed across all disks. RAID 6 extends RAID 5 by adding an additional parity block; thus it uses block level striping with two parity blocks. RAID 10 is a stripe of mirrors, i.e. a RAID 0 combination of RAID 1 drives. Valid values: RAID0 RAID1 RAID2 RAID3 RAID4 RAID5 RAID6 RAID10 String 0-* Elements
</add>      
<remove>    
<raid_levels> The RAID levels for storage allocated to your volumes. RAID levels set the amount of redundancy and striping. Here is a quick definition of the various RAID levels. RAID 0 is a striped set of disks without parity. RAID 1 is a mirror copy on two disks. RAID 2 is a stripe at the bit level rather than the block level. Rarely used or supported. RAID 3 is a byte level striping with a dedicated parity disk. RAID 4 is block level striping with a dedicated parity disk. RAID 5 is block level striping with the parity data distributed across all disks. RAID 6 extends RAID 5 by adding an additional parity block; thus it uses block level striping with two parity blocks. RAID 10 is a stripe of mirrors, i.e. a RAID 0 combination of RAID 1 drives. Valid values: RAID0 RAID1 RAID2 RAID3 RAID4 RAID5 RAID6 RAID10 String 0-* Elements
</remove>      
</raid_level_changes>      
<auto_tiering_policy_name> The new auto tier policy name for the virtual pool. String
<thin_volume_preallocation_percentage> The new preallocation size for VMAX thin volumes for the virtual pool. Integer
<drive_type> The new drive type supported by the virtual pool. Valid values: NONE = No specific drive type SSD = Solid State Drive FC = Fibre Channel SAS = Serial Attached SCSI SATA = Serial Advanced Technology Attachment String
<multi_volume_consistency> Specifies whether or not the virtual pool supports multi-volume consistency. Boolean
<expandable> Specifies whether or not the virtual pool supports volume expansion. Boolean
<fast_expansion> Indicates that virtual pool volumes should use concatenated meta volumes, not striped. Boolean
<protection>    
<continuous_copies>    
<max_native_continuous_copies> The maximum number of continuous copies for a virtual pool. Integer
<protection_mirror_vpool> The virtual pool for protection mirrors. URI
<haMaxMirrors> Integer
<ha_protection_mirror_vpool> The virtual pool for protection mirrors on the High Availability side. URI
</continuous_copies>      
<recoverpoint>    
<add_copies>
<protection_varray_vpool>     0-* Elements
<varray> The virtual array. URI
<vpool> The virtual pool. URI
<policy>    
<journal_size> The journal size for a protection copy. String
<journal_varray> The journal virtual array for a protection copy. URI
<journal_vpool> The journal virtual pool for a protection copy. URI
</policy>      
</protection_varray_vpool>      
</add_copies>
<remove_copies>
<protection_varray_vpool>     0-* Elements
<varray> The virtual array. URI
<vpool> The virtual pool. URI
<policy>    
<journal_size> The journal size for a protection copy. String
<journal_varray> The journal virtual array for a protection copy. URI
<journal_vpool> The journal virtual pool for a protection copy. URI
</policy>      
</protection_varray_vpool>      
</remove_copies>
<source_policy>    
<journal_size> The journal size for a protection source. String
<journal_varray> The journal virtual array for a protection source/active source. URI
<journal_vpool> The journal virtual pool for a protection source/active source. URI
<standby_journal_varray> The journal virtual array for stand-by source. URI
<standby_journal_vpool> The journal virtual pool for stand-by source. URI
<remote_copy_mode> The remote copy mode, sync or async Valid value: ASYNCHRONOUS = RecoverPoint CG will be in Asynchronous mode (default) SYNCHRONOUS = RecoverPoint CG will be in Synchronous mode String
<rpo_value> RPO value sent to RP Long
<rpo_type> Type of RPO unit Valid values: SECONDS MINUTES HOURS WRITES BYTES KB MB GB TB String
</source_policy>      
</recoverpoint>      
<remote_copies>    
<add_remote_copies_settings>
<add_remote_copy_setting>     0-* Elements
<varray> URI
<vpool> URI
<remote_copy_mode> String
</add_remote_copy_setting>      
</add_remote_copies_settings>
<remove_remote_copies_settings>
<remove_remote_copy_setting>     0-* Elements
<varray> URI
<vpool> URI
<remote_copy_mode> String
</remove_remote_copy_setting>      
</remove_remote_copies_settings>
</remote_copies>      
<snapshots>    
<max_native_snapshots> The maximum snapshots. Integer
</snapshots>      
</protection>      
<high_availability>    
<type> The high availability type. Valid values: vplex_local vplex_distributed String
<ha_varray_vpool>    
<varray> The virtual array. URI
<vpool> The virtual pool. URI
<activeProtectionAtHASite> Indicates whether or not to use the HA side of the VPlex as the RecoverPoint protected site in an RP+VPLEX setup. In a MetroPoint context, if true, this field indicates that the HA VPlex site will be the active site. Boolean
</ha_varray_vpool>      
<metroPoint> Flag to specify whether or not MetroPoint configuration will be used. Boolean
<autoCrossConnectExport> Flag to specify whether to automatically export both VPlex Clusters to cross-connected hosts. Boolean
</high_availability>      
<unique_auto_tier_policy_names> Specifies whether or not the virtual pool requires unique auto tier policy names. Boolean
<host_io_limit_bandwidth> Integer
<host_io_limit_iops> Integer
<compression_enabled> Boolean
<dedup_capable> Boolean
<placement_policy> Resource placement policy used by the virtual pool. Valid values: default_policy (storage system/pool selection based on metrics and capacity) array_affinity (storage system/pool selection based on host/cluster's array affinity first, then metrics and capacity) String
<varray_changes>    
<add>    
<varray> String 0-* Elements
</add>      
<remove>    
<varray> String 0-* Elements
</remove>      
</varray_changes>      
<name> The new virtual pool name. String Valid Values:
  •  Length: 2..128
<description> The new virtual pool description. String
<protocol_changes>    
<add>    
<protocol> The set of protocols. Valid values: FC = Fibre Channel (block) ISCSI = Internet Small Computer System Interface (block) FCoE = Fibre Channel over Ethernet (block) NFS = Network File System (file) NFSV4 = Network File System Version 4 (file) CIFS = Common Internet File System (file) String 0-* Elements
</add>      
<remove>    
<protocol> The set of protocols. Valid values: FC = Fibre Channel (block) ISCSI = Internet Small Computer System Interface (block) FCoE = Fibre Channel over Ethernet (block) NFS = Network File System (file) NFSV4 = Network File System Version 4 (file) CIFS = Common Internet File System (file) String 0-* Elements
</remove>      
</protocol_changes>      
<use_matched_pools> Determines if matched or valid assigned pools are returned from command to retrieve the list of storage pools. Boolean
<system_type> The new supported system type for the virtual pool. Valid values: NONE vnxblock (Block) vmax (Block) vnxfile (File) isilon (File) netapp (File) String
<provisioning_type> The new provisioning type for the virtual pool, Valid values: NONCE Thin Thick String
</block_vpool_update>

Response Body

VirtualPool details

Field Description Type Notes
<block_vpool>
<auto_tiering_policy_name> Name of the auto tier policy for the virtual pool. String
<drive_type> The supported disk drive type for the virtual pool. Valid values: NONE = No specific drive type SSD = Solid State Drive FC = Fibre Channel SAS = Serial Attached SCSI SATA = Serial Advanced Technology Attachment String
<expandable> Specifies whether or not volumes can be expanded. Boolean
<fast_expansion> Indicates that virtual pool volumes should use concatenated meta volumes, not striped. Boolean
<high_availability>    
<type> The high availability type. Valid values: vplex_local vplex_distributed String
<ha_varray_vpool>    
<varray> The virtual array. URI
<vpool> The virtual pool. URI
<activeProtectionAtHASite> Indicates whether or not to use the HA side of the VPlex as the RecoverPoint protected site in an RP+VPLEX setup. In a MetroPoint context, if true, this field indicates that the HA VPlex site will be the active site. Boolean
</ha_varray_vpool>      
<metroPoint> Flag to specify whether or not MetroPoint configuration will be used. Boolean
<autoCrossConnectExport> Flag to specify whether to automatically export both VPlex Clusters to cross-connected hosts. Boolean
</high_availability>      
<thin_volume_preallocation_percentage> The preallocation size for VMAX thin volumes. Integer
<multi_volume_consistency> Specifies whether or not multi-volume consistency is supported for the virtual pool. Boolean
<protection>    
<continuous_copies>    
<max_native_continuous_copies> The maximum number of continuous copies for a virtual pool. Integer
<protection_mirror_vpool> The virtual pool for protection mirrors. URI
<haMaxMirrors> Integer
<ha_protection_mirror_vpool> The virtual pool for protection mirrors on the High Availability side. URI
</continuous_copies>      
<recoverpoint>    
<copies>
<protection_varray_vpool>     0-* Elements
<varray> The virtual array. URI
<vpool> The virtual pool. URI
<policy>    
<journal_size> The journal size for a protection copy. String
<journal_varray> The journal virtual array for a protection copy. URI
<journal_vpool> The journal virtual pool for a protection copy. URI
</policy>      
</protection_varray_vpool>      
</copies>
<source_policy>    
<journal_size> The journal size for a protection source. String
<journal_varray> The journal virtual array for a protection source/active source. URI
<journal_vpool> The journal virtual pool for a protection source/active source. URI
<standby_journal_varray> The journal virtual array for stand-by source. URI
<standby_journal_vpool> The journal virtual pool for stand-by source. URI
<remote_copy_mode> The remote copy mode, sync or async Valid value: ASYNCHRONOUS = RecoverPoint CG will be in Asynchronous mode (default) SYNCHRONOUS = RecoverPoint CG will be in Synchronous mode String
<rpo_value> RPO value sent to RP Long
<rpo_type> Type of RPO unit Valid values: SECONDS MINUTES HOURS WRITES BYTES KB MB GB TB String
</source_policy>      
</recoverpoint>      
<remote_copies>    
<remote_copy_settings>
<remote_copy_setting>     0-* Elements
<varray> URI
<vpool> URI
<remote_copy_mode> String
</remote_copy_setting>      
</remote_copy_settings>
</remote_copies>      
<snapshots>    
<max_native_snapshots> The maximum snapshots. Integer
</snapshots>      
</protection>      
<raid_levels>
<raid_level> String 0-* Elements
</raid_levels>
<unique_auto_tier_policy_names> Specifies whether or not unique auto tier policy names are required. Boolean
<max_paths> Number of max paths supported by this virtual pool. Integer
<min_paths> Integer
<paths_per_initiator> Number of paths to be provisioned per initiator. Integer
<compression_enabled> Boolean
<host_io_limit_bandwidth> Integer
<host_io_limit_iops> Integer
<dedup_capable> Boolean
<placement_policy> Resource placement policy used by the virtual pool. Valid values: default_policy (storage system/pool selection based on metrics and capacity) array_affinity (storage system/pool selection based on host/cluster's array affinity first, then metrics and capacity) String
<type> Virtual pool storage resource type. Valid values: block = Volume file = File System object = Object Store String
<description> User defined description for this virtual pool. String
<provisioning_type> Storage type provisioned for this virtual pool. String
<protocols>
<protocol> String 0-* Elements
</protocols>
<system_type> The supported system type for the virtual pool. Valid values: NONE vnxblock (Block) vmax (Block) vnxfile (File) isilon (File) netapp (File) String
<num_paths> Integer
<num_resources> Number of resources provisioned to this ViPR using this virtual pool. Integer
<varrays>
<varray>     0-* Elements
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</varray>      
</varrays>
<use_matched_pools> Determines if matched or valid assigned pools are returned from command to retrieve the list of storage pools. Boolean
<assigned_storage_pools>
<storage_pool>     0-* Elements
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</storage_pool>      
</assigned_storage_pools>
<invalid_matched_pools>
<storage_pool>     0-* Elements
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</storage_pool>      
</invalid_matched_pools>
<matched_storage_pools>
<storage_pool>     0-* Elements
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</storage_pool>      
</matched_storage_pools>
<name> The name assigned to this resource in ViPR. The resource name is set by a user and can be changed at any time. It is not a unique identifier. String
<id> An identifier that is generated by ViPR when the resource is created. The resource ID is guaranteed to be unique and immutable across all virtual data centers for all time. URI
<link> A hyperlink to the details for this resource
<creation_time> A timestamp that shows when this resource was created in ViPR DateTime
<tags> Keywords and labels that can be added by a user to a resource to make it easy to find when doing a search.
<tag> String 0-* Elements
</tags>
<inactive> Whether or not the resource is inactive. When a user removes a resource, the resource is put in this state before it is removed from the ViPR database. Boolean
<global> Boolean
<remote> Boolean
<vdc>    
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</vdc>      
<internal> Whether or not the resource is an internal resource. Boolean
</block_vpool>

XML Example

Request
PUT https://192.168.0.0:4443/block/vpools/urn:storageos:VirtualPool:2567045e-e16f-4aa1-930a-dfbc09917c97: HTTP/1.1

Content-Type: application/xml
X-SDS-AUTH-TOKEN: <AUTH_TOKEN>

<block_vpool_update>
     <protection>
          <continuous_copies>
               <max_native_continuous_copies>1</max_native_continuous_copies>
          </continuous_copies>
    </protection>
</block_vpool_update>
Response
HTTP/1.1 200 OK
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<block_vpool>
    <creation_time>1379169062568</creation_time>
    <id>urn:storageos:VirtualPool:2567045e-e16f-4aa1-930a-dfbc09917c97:</id>
    <inactive>false</inactive>
    <link href="/block/vpools/urn:storageos:VirtualPool:2567045e-e16f-4aa1-930a-dfbc09917c97:" rel="self"/>
    <name>Basic Block Storage</name>
    <tags/>
    <assigned_storage_pools/>
    <description>Base CoS for RP Protection</description>
    <invalid_matched_pools>
        <storage_pool>
            <id>urn:storageos:StoragePool:6d6956c6-8bd8-4507-adc5-62c4d2ec8ce7:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:033e2902-7fa6-4a89-b38e-1825bd801434:/storage-pools/urn:storageos:StoragePool:6d6956c6-8bd8-4507-adc5-62c4d2ec8ce7:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:049c6907-ed6c-4d79-816b-bb5b7324a659:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:c532fa10-1ff4-4527-b628-50372cf609af:/storage-pools/urn:storageos:StoragePool:049c6907-ed6c-4d79-816b-bb5b7324a659:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:88442061-23be-409c-bb99-8f011c5fa30a:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:3d7afbb5-1c41-4cd4-a571-f61ba34f39e4:/storage-pools/urn:storageos:StoragePool:88442061-23be-409c-bb99-8f011c5fa30a:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:706bdc23-26f2-4903-9a92-753bead906f7:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:3d7afbb5-1c41-4cd4-a571-f61ba34f39e4:/storage-pools/urn:storageos:StoragePool:706bdc23-26f2-4903-9a92-753bead906f7:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:86936add-c946-4285-aff8-28d074bf932b:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:c532fa10-1ff4-4527-b628-50372cf609af:/storage-pools/urn:storageos:StoragePool:86936add-c946-4285-aff8-28d074bf932b:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:6b161dc8-a5c3-4c0b-9434-5a7f5508e8a2:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:3d7afbb5-1c41-4cd4-a571-f61ba34f39e4:/storage-pools/urn:storageos:StoragePool:6b161dc8-a5c3-4c0b-9434-5a7f5508e8a2:" rel="self"/>
        </storage_pool>
    </invalid_matched_pools>
    <matched_storage_pools>
        <storage_pool>
            <id>urn:storageos:StoragePool:bf22aabb-cccf-46b8-9c91-d31c82e4e72f:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:b03f9168-a7c8-49e1-a395-9d23a9999617:/storage-pools/urn:storageos:StoragePool:bf22aabb-cccf-46b8-9c91-d31c82e4e72f:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:51546a26-5603-4a73-8036-b6dc2cadc3d1:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:2b020f96-5ad1-48fb-a071-eb158b4f711d:/storage-pools/urn:storageos:StoragePool:51546a26-5603-4a73-8036-b6dc2cadc3d1:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:ca831272-167a-4876-9e46-c2a0099ecb51:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:2b020f96-5ad1-48fb-a071-eb158b4f711d:/storage-pools/urn:storageos:StoragePool:ca831272-167a-4876-9e46-c2a0099ecb51:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:c41fe8fc-cb22-49be-ac0f-6663b81dafe3:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:b03f9168-a7c8-49e1-a395-9d23a9999617:/storage-pools/urn:storageos:StoragePool:c41fe8fc-cb22-49be-ac0f-6663b81dafe3:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:cf5e9648-b560-47f2-9ecc-958da193fe53:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:2b020f96-5ad1-48fb-a071-eb158b4f711d:/storage-pools/urn:storageos:StoragePool:cf5e9648-b560-47f2-9ecc-958da193fe53:" rel="self"/>
        </storage_pool>
        <storage_pool>
            <id>urn:storageos:StoragePool:53e905a7-9b4c-4e57-9a77-f98ddb67b66e:</id>
            <link href="/vdc/storage-systems/urn:storageos:StorageSystem:b03f9168-a7c8-49e1-a395-9d23a9999617:/storage-pools/urn:storageos:StoragePool:53e905a7-9b4c-4e57-9a77-f98ddb67b66e:" rel="self"/>
        </storage_pool>
    </matched_storage_pools>
    <num_paths>1</num_paths>
    <protocols>
        <protocol>FC</protocol>
    </protocols>
    <provisioning_type>Thin</provisioning_type>
    <type>block</type>
    <use_matched_pools>true</use_matched_pools>
    <varrays>
        <varray>
            <id>urn:storageos:VirtualArray:110acf4a-2459-4025-adff-ce429fc4c5c3:</id>
            <link href="/vdc/varrays/urn:storageos:VirtualArray:110acf4a-2459-4025-adff-ce429fc4c5c3:" rel="self"/>
        </varray>
    </varrays>
    <expandable>false</expandable>
    <protection>
        <snapshots>
            <max_native_snapshots>10</max_native_snapshots>
        </snapshots>
        <continuous_copies>
            <max_native_continuous_copies>1</max_native_continuous_copies>
        </continuous_copies>
    </protection>
    <raid_levels/>
    <unique_auto_tier_policy_names>false</unique_auto_tier_policy_names>
</block_vpool>