A Provider VDC is a collection of compute, memory, and storage resources from one vCenter server. A Provider VDC provides resources to organization VDCs.
A Provider VDC is represented as a VMWProviderVdc element in the extension view and a ProviderVdc element in the admin view. A system administrator can create a VMWProviderVdc or modify it to add or remove datastores, storage profiles, and resource pools, or change other properties such as its description. A system administrator cannot change the primary resource pool or vCenter server that was specified when the Provider VDC was created. An organization administrator can retrieve a read-only representation of a Provider VDC in a ProviderVdc element. The ProviderVdc element includes a subset of the elements and attributes that are visible in the corresponding VMWProviderVdc.
■
| |
■
|
Choose a vCenter server to supply a resource pool and storage profiles to this Provider VDC. See Finding Available vCenter Resources. |
■
|
If you want the Provider VDC to use a custom VXLAN-backed network pool instead of the default VXLAN-backed network pool, create that network pool before you create the Provider VDC. See Create a VXLAN-Backed Network Pool. |
1 | Retrieve the XML representation of the vSphere platform extensions. GET https://vcloud.example.com/api/admin/extension | ||||||||
2 | Examine the response to locate the Link element that contains the URL for adding Provider VDCs to the cloud. This element has a rel attribute value of add and a type attribute value of application/vnd.vmware.admin.createProviderVdcParams+xml, as shown here: <Link type="application/vnd.vmware.admin.createProviderVdcParams+xml" rel="add" href="https://vcloud.example.com/api/admin/extension/providervdcsparams"/> | ||||||||
3 | Create a VMWProviderVdcParams element that specifies the properties of the Provider VDC.
| ||||||||
4 | POST the VMWProviderVdc element you created in Step 3 to the URL described in Step 2. See the request portion of Example: VDC. |
The server creates and enables the Provider VDC and returns a VMWProviderVdc element that includes information derived from the contents you POSTed, along with a set of Link elements that you can use to access, remove, disable, or modify the Provider VDC.
■
|
The new Provider VDC becomes a member of the ProviderVdcReferences element of the VCloud. |
■
|
The resource pool you selected is removed from the resource pool list of the vCenter server. You cannot include this resource pool in any other Provider VDC. |
■
|
Each storage profile you specified becomes the basis for a ProviderVdcStorageProfile object, and can be retrieved from the Provider VDC after it has been created, or by using a providerVdcStorageProfile query. |
■
|
If you did not include a include a VxlanNetworkPool element in the request body, the system creates a VxlanPoolType network pool on the vCenter server referenced by the VimServer element you created in Step 3a and attaches it to the new Provider VDC. |
This request creates a Provider VDC specifying a resource pool extracted from the response portion of Example: Retrieve a List of Resource Pools from a vCenter Server and a storage profile extracted from Example: Retrieve a List of Storage Profiles from a vCenter Server. The vCenter server that provides the resources (the resource pool whose MoRef is resgroup-195 and a storage profile named Gold) is referenced in the VimServerRef and VimServer elements.
Because the request does not include a VxlanNetworkPool element, the system creates the provider VDC with the default VXLAN network pool.
POST https://vcloud.example.com/api/admin/extension/providervdcsparams Content-Type: application/vnd.vmware.admin.createProviderVdcParams+xml ... <?xml version="1.0" encoding="UTF-8"?> <vmext:VMWProviderVdcParams xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5" xmlns:vcloud="http://www.vmware.com/vcloud/v1.5" name="PVDC-Example"> <vcloud:Description>Example Provider VDC</vcloud:Description> <vmext:ResourcePoolRefs> <vmext:VimObjectRef> <vmext:VimServerRef href="https://vcloud.example.com/api/admin/extension/vimServer/9" /> <vmext:MoRef>resgroup-195</vmext:MoRef> <vmext:VimObjectType>RESOURCE_POOL</vmext:VimObjectType> </vmext:VimObjectRef> </vmext:ResourcePoolRefs> <vmext:VimServer href="https://vcloud.example.com/api/admin/extension/vimServer/9" /> <vmext:StorageProfile>Gold</vmext:StorageProfile> </vmext:VMWProviderVdcParams>
The response includes a Task that tracks the creation of the Provider VDC, and a set of Link elements that you can use to operate on or modify the Provider VDC. It also includes a HighestSupportedHardwareVersion value set to the highest virtual hardware version supported by the primary resource pool, and a list of HostReferences identifying the ESX hosts in that resource pool.
201 Created Content-Type: application/vnd.vmware.admin.vmwprovidervdc+xml ... <?xml version="1.0" encoding="UTF-8"?> <vmext:VMWProviderVdc xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5" xmlns:vcloud="http://www.vmware.com/vcloud/v1.5" status="0" name="PVDC-Example" id="urn:vcloud:providervdc:35" type="application/vnd.vmware.admin.vmwprovidervdc+xml" ... > <vcloud:Link rel="up" type="application/vnd.vmware.admin.vmwProviderVdcReferences+xml" href="https://vcloud.example.com/api/admin/extension/providerVdcReferences" /> <vcloud:Link rel="alternate" type="application/vnd.vmware.admin.providervdc+xml" href="https://vcloud.example.com/api/admin/providervdc/35" /> <vcloud:Link rel="update:resourcePools" type="application/vnd.vmware.admin.resourcePoolSetUpdateParams+xml" href="https://vcloud.example.com/api/admin/extension/providervdc/35/action/updateResourcePools" /> ... <vcloud:Description>Example Provider VDC</vcloud:Description> <vcloud:Tasks> <vcloud:Task ... operation="Creating Provider Virtual Datacenter PVDC-Example(35)"> ... </vcloud:Task> </vcloud:Tasks> <vcloud:ComputeCapacity> <vcloud:Cpu> <vcloud:Units>MHz</vcloud:Units> <vcloud:Allocation>0</vcloud:Allocation> <vcloud:Total>0</vcloud:Total> <vcloud:Used>0</vcloud:Used> <vcloud:Overhead>0</vcloud:Overhead> </vcloud:Cpu> <vcloud:Memory> <vcloud:Units>MB</vcloud:Units> <vcloud:Allocation>0</vcloud:Allocation> <vcloud:Total>0</vcloud:Total> <vcloud:Used>0</vcloud:Used> <vcloud:Overhead>0</vcloud:Overhead> </vcloud:Memory> </vcloud:ComputeCapacity> <AvailableNetworks> <Network type="application/vnd.vmware.admin.network+xml" name="VC1-VLAN48" href="https://vcloud.example.com/api/admin/network/297" /> </AvailableNetworks> <StorageProfiles> <ProviderVdcStorageProfile type="application/vnd.vmware.admin.pvdcStorageProfile+xml" name="Gold" href="https://vcloud.example.com/api/admin/pvdcStorageProfile/101" /> </StorageProfiles> <IsEnabled>true</IsEnabled> <vcloud:NetworkPoolReferences> <vcloud:NetworkPoolReference type="application/vnd.vmware.admin.networkPool+xml" name="VXLAN01" href="https://vcloud.example.com/api/admin/extension/networkPool/69c0a96e-1151-439d-b8f6-2e2a11785c9f" /> </vcloud:NetworkPoolReferences> <vmext:DataStoreRefs /> <vmext:ResourcePoolRefs> <vmext:VimObjectRef> <vmext:VimServerRef type="application/vnd.vmware.admin.vmwvirtualcenter+xml" name="VC-A" href="https://vcloud.example.com/api/admin/extension/vimServer/9" /> <vmext:MoRef>resgroup-195</vmext:MoRef> <vmext:VimObjectType>RESOURCE_POOL</vmext:VimObjectType> </vmext:VimObjectRef> </vmext:ResourcePoolRefs> <vmext:VimServer type="application/vnd.vmware.admin.vmwvirtualcenter+xml" name="ConfigWizard Configured vCenter" href="https://vcloud.example.com/api/admin/extension/vimServer/9" /> <vmext:HostReferences> <vmext:HostReference type="application/vnd.vmware.admin.host+xml" name="ESX01.example.com" href="https://vcloud.example.com/api/admin/extension/host/83" /> <vmext:HostReference type="application/vnd.vmware.admin.host+xml" name="ESX02.example.com" href="https://vcloud.example.com/api/admin/extension/host/261" /> </vmext:HostReferences> <vmext:HighestSupportedHardwareVersion>vmx-07</vmext:HighestSupportedHardwareVersion> </vmext:VMWProviderVdc>