Volume:Change Volume Virtual Pool

Search (SHIFT+S)



Change Volume Virtual Pool

PUT /block/volumes/{id}/vpool
This call has been deprecated and will be removed in future versions

Allows the caller to change the virtual pool for the volume identified in the request. Currently, the only virtual pool changes that are supported are as follows: Change the virtual pool for a VPLEX virtual volume. This virtual pool change would allow the caller to change the types of drives, for example, used for the backend volume(s) that are used by the virtual volume. Change the virtual pool for a VPLEX virtual volume, such that a local VPLEX virtual volumes becomes a distributed VPLEX virtual volume. Change the virtual pool of a VMAX or VNX Block volume to make the volume a local or distributed VPLEX virtual volume. Essentially, the volume becomes the backend volume for a VPLEX virtual volume. Similar to creating a virtual volume, but instead of creating a new backend volume, using the volume identified in the request. The VMAX or VNX volume cannot currently be exported for this change. Change the virtual pool of a VMAX or VNX Block volume to make the volume a RecoverPoint protected volume. The volume must be able to stay put, and ViPR will build a protection around it. Change the virtual pool of a VMAX or VNX Block volume to allow native continuous copies to be created for it. Change the virtual pool of a volume to increase the export path parameter max_paths. The number of paths will be upgraded if possible for all Export Groups / Export Masks containing this volume. If the volume is not currently exported, max_paths can be decreased or paths_per_initiator can be changed. Note that changing max_paths does not have any effect on the export of BlockSnapshots that were created from this volume. Change the virtual pool of a VMAX and VNX volume to allow change of Auto-tiering policy associated with it.

idthe URN of a ViPR volume.

Required Roles

  • TENANT_ADMIN

Request Payload

All parameters are required unless otherwise stated.

Field Description Type Notes
<volume_vpool_change>
<vpool> ID of the new virtual pool. URI Valid Values:
  •  example: a valid URI
<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 String Valid Values:
  •  ASYNCHRONOUS = RecoverPoint CG will be in Asynchronous mode (default)
  •  SYNCHRONOUS = RecoverPoint CG will be in Synchronous mode
<rpo_value> RPO value sent to RP Long
<rpo_type> Type of RPO unit String Valid Values:
  •  SECONDS = Seconds (time-based RPO)
  •  MINUTES = Minutes (time-based RPO)
  •  HOURS = Hours (time-based RPO)
  •  WRITES = Number of writes (transaction-based RPO)
  •  BYTES = Bytes (sized-based RPO)
  •  KB = Kilobytes (sized-based RPO)
  •  MB = Megabytes (sized-based RPO)
  •  GB = Gigabytes (sized-based RPO)
  •  TB = Terabytes (sized-based RPO)
</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>      
<consistency_group> The ViPR consistency group to associate the volume with for the creation of the RecoverPoint consistency group. URI
</volume_vpool_change>

Response Body

A TaskResourceRep representing the virtual pool change for the volume.

This is an asychronous operation that returns a task object. For information on working with tasks, see Asynchronous Operations.

Field Description Type Notes
<task>
<op_id> The task operation id String
<resource>    
<name> The name of the resource String
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</resource>      
<tenant>    
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</tenant>      
<associated_resources> A list of links for associated resources
<associated_resource>     0-* Elements
<name> The name of the resource String
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</associated_resource>      
</associated_resources>
<state> The state of the task String Valid Values:
  •  pending = task is pending
  •  ready = task succeed
  •  error = task fails
<message> The task detail message String
<description> The description of the task String
<service_error>    
<code> The numerical code associated with the error encountered when processing a service request Integer
<description> The description of the error String
<details> Detailed information concerning the error String
</service_error>      
<start_time> The date and time of when the task was started DateTime
<end_time> The date and time of when the task ended DateTime
<progress> Integer
<workflow>    
<id> ViPR ID of the related object URI
<link> A hyperlink to the related object
</workflow>      
<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 Valid Values:
  •  urn:storageos:resource-type:UUID:
<link> A hyperlink to the details for this resource
<creation_time> A timestamp that shows when this resource was created in ViPR DateTime Valid Values:
  •  YYYY-MM-DDTHH:mm:ssZ
<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 Valid Values:
  •  true
  •  false
<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 Valid Values:
  •  true
  •  false
</task>

JSON Example

Request
PUT: https://192.168.0.0:4443/block/volumes/urn:storageos:Volume:a952e8d9-bb32-4fba-825b-ce6f8a54dfb6:/vpool.json HTTP/1.1

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

{
    "vpool": "urn:storageos:VirtualPool:435a1c41-bb29-4c47-aacf-a2e40218647f:"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json
{
    "link": {
        "href": "/block/volumes/urn:storageos:Volume:a952e8d9-bb32-4fba-825b-ce6f8a54dfb6:/tasks/6ffa12c2-a0ba-4335-83d8-3cc2b9be6710",
        "rel": "self"
    },
    "op_id": "6ffa12c2-a0ba-4335-83d8-3cc2b9be6710",
    "resource": {
        "id": "urn:storageos:Volume:a952e8d9-bb32-4fba-825b-ce6f8a54dfb6:",
        "link": {
            "href": "/block/volumes/urn:storageos:Volume:a952e8d9-bb32-4fba-825b-ce6f8a54dfb6:",
            "rel": "self"
        },
        "name": "rpSanity-example.com-5561-coschange"
    },
    "start_time": 1380723298264,
    "state": "pending"
}
Notes: