A system administrator can update the storage profiles that are available in an organization VDC. You can add new storage profiles and remove unused storage profiles.

An organization VDC storage profile allocates a subset of the storage available in a Provider VDC storage profile for use by vApp templates, virtual machines, and media objects in the organization VDC. For each organization VDC storage profile you create, you must specify a storage limit, which cannot exceed the storage available in the Provider VDC storage profile (the value of CapacityTotalCapacityUsed in the ProviderVdcStorageProfile). When you update organization VDC storage profiles, you can change the default storage profile and modify the limits on existing storage profiles.

Note:

Storage profiles are represented as Storage Policies in the VMware Cloud Director HTML5 UI.

Prerequisites

Verify that you are logged in as a system administrator.

Procedure

  1. Retrieve the XML representation of the VDC in the admin view.
    Use a request like this one:
    GET https://vcloud.example.com/api/admin/vdc/44
  2. Examine the AdminVdc element to find the vdcStorageProfiles link, VdcStorageProfiles element, and ProviderVdcReference element it contains.
    The vdcStorageProfiles link has the following form:
    <Link
       rel="edit"
       type="application/vnd.vmware.admin.updateVdcStorageProfiles+xml"
       href="https://vcloud.example.com/api/admin/vdc/44/vdcStorageProfiles" />
  3. Create an UpdateVdcStorageProfiles request body that specifies the details of the update.
    • To add a storage profile:
      1. Select a storage profile from the Provider VDC referenced in the ProviderVdcReference element of the VDC you are updating.

        The storage profile must not be listed in the VdcStorageProfiles element of the VDC you are updating.

      2. Include an AddStorageProfile element in the UpdateVdcStorageProfiles request body.

        The AddStorageProfile element must specify values for Units, Limit, and Default, and must include a reference to the Provider VDC storage profile on which it is based. You can add multiple storage profiles in a single request. Only one of them can specify Default as true. If any AddStorageProfile element specifies Default as true, that storage profile becomes the new default storage profile for the VDC.

    • To remove a storage profile:
      1. Examine the VdcStorageProfiles element and find the profile to remove.
      2. Verify that it is not the default storage profile for the VDC, and that no virtual machines are using it.

        You can use the adminVm query and filter on the storageProfileName attribute to list all storage profiles that are in use.

      3. Create an UpdateVdcStorageProfiles element that contains a RemoveStorageProfile element for each storage profile to remove.
  4. POST the UpdateVdcStorageProfiles element to the VDC's vdcStorageProfiles link.

Example: Update VDC Storage Profiles

This request adds a storage profile to the VDC created in Create an Organization VDC with Pay As You Go Reservation Allocation Model. The new storage profile is one of the profiles available from the Provider VDC that backs this organization VDC.

One way to retrieve a list of all the Provider VDC storage profiles available from a specific Provider VDC is to use the query service. This query applies a filter that selects only those storage profiles available from the Provider VDC that backs the organization VDC created in Create an Organization VDC with Pay As You Go Reservation Allocation Model.

GET https://vcloud.example.com/api/query?type=providerVdcStorageProfile&format=references
&filter=providerVdc==https://vcloud.example.com/api/admin/providervdc/35
The response might look something like this:
<?xml version="1.0" encoding="UTF-8"?>
<ProviderVdcStorageProfileReferences .../>
   ...
   <ProviderVdcStorageProfileReference
      type="application/vnd.vmware.admin.pvdcStorageProfile+xml"
      name="Gold"
      id="urn:vcloud:providervdcstorageprofile:101"
      href="https://vcloud.example.com/api/admin/pvdcStorageProfile/101" />
   <ProviderVdcStorageProfileReference
      type="application/vnd.vmware.admin.pvdcStorageProfile+xml"
      name="Silver"
      id="urn:vcloud:providervdcstorageprofile:128"
      href="https://vcloud.example.com/api/admin/pvdcStorageProfile/128" />
   ...
</ProviderVdcStorageProfileReferences>

You can use the information in the response to construct the AddStorageProfile element in the request body. This example creates a storage profile that is not a default storage profile, and has a specific value for Limit, 5038 MB. To specify unlimited storage (subject to the capacity of the underlying Provider VDC), set the value of Limit to 0.

Request:
POST https://vcloud.example.com/api/admin/vdc/44/vdcStorageProfiles
Content-Type: application/vnd.vmware.admin.updateVdcStorageProfiles+xml
...
<?xml version="1.0" encoding="UTF-8"?>
<UpdateVdcStorageProfiles
   xmlns="http://www.vmware.com/vcloud/v1.5" >
   <AddStorageProfile>
      <Enabled>true</Enabled>
      <Units>MB</Units>
      <Limit>5038</Limit>
      <Default>false</Default>
      <ProviderVdcStorageProfile
         href="https://vcloud.example.com/api/admin/pvdcStorageProfile/128" />
   </AddStorageProfile>
</UpdateVdcStorageProfiles>

The response is a Task.

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