A system administrator can migrate all of a tenant organization's vApps, independent disks, and catalog items to another datastore.

Before you decommission a datastore that backs a storage profile used by an organization VDC, you must migrate all the items stored on that datastore to new storage. Even if you're not decommissioning a datastore, you might need to migrate an organization to new storage to take advantage of additional storage capacity or newer storage  technologies  such as VMware vSAN. The vCloud Director storage migration wizard allows you to select one or more organisations and migrate their stored items from a source datastore to a destination datastore. Before you can migrate organization storage, you'll need to know which datastores the organization is using, and you'll need to create one or more datastores to serve as the destination.

Important

Tenant storage migration is a resource-intensive operation that can run for a long time, especially when there are many assets to migrate. See VMware Knowledge Base article https://kb.vmware.com/kb/2151086 for information that can help you plan and execute an effective storage migration.

This operation is restricted to system administrators and custom roles that have been granted the Organization: Migrate Tenant Storage right.

At least one target datastore must be accessible to the ESXi host running the migrated VM.

Because migrating a vApp or catalog item must not change its storage profile, one or more of the destination datastores must be associated with each storage profile that's available in the organization VDCs backed by the source datastores.

1

Retrieve the XML representation of the vSphere platform extensions.

Use a request like this one.

GET https://vcloud.example.com/api/admin/extension
2

Examine the response to locate the Link element that contains the URL for migrating tenant storage.

<Link
   type="application/vnd.vmware.cloud.tenantMigrationParams+xml"/>"
   rel="add"
   href="https://vcloud.example.com/api/admin/extension/action/migrateTenant"/>
3

Create a TenantMigrationParams element that includes the source and target datastores and references to one or more organizations to migrate.

4

POST the TenantMigrationParams element you created in Step 3to the URL described in Step 2.

See the request portion of Example: Migrate Tenant Storage.

This example migrates items owned by organization with reference https://vcloud.example.com/api/org/26 from datastore https://vcloud.example.com/api/admin/extension/datastore/100 to datastore https://vcloud.example.com/api/admin/extension/datastore/200.

Request:

POST https://vcloud.example.com/api/admin/extension/action/migrateTenant
Content-type: application/vnd.vmware.cloud.tenantMigrationParams+xml
...
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vmext:TenantMigrationParams
   xmlns="http://www.vmware.com/vcloud/v1.5"
   xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5"
   name="example">
   <Description>Example migration params</Description>
   <vmext:orgs>
      <Org href="https://vcloud.example.com/api/org/26" />
   </vmext:orgs>
   <vmext:sourceDatastores>
      <vmext:Datastore
         href="https://vcloud.example.com/api/admin/extension/datastore/100" />
   </vmext:sourceDatastores>
   <vmext:targetDatastores>
      <vmext:Datastore
         href="https://vcloud.example.com/api/admin/extension/datastore/200" />
   </vmext:targetDatastores>
</vmext:TenantMigrationParams>

The response includes a Task that tracks the migration.

Response:

202 Accepted
Content-Type: application/vnd.vmware.vcloud.task+xml
...
<Task ... >
   ...
</Task>