A Provider VDC is a collection of compute, memory, and storage resources from one vCenter Server instance. For network resources, a Provider VDC can use NSX Data Center for vSphere or NSX. 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 instance 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.
Prerequisites
-
This operation is restricted to system administrators.
- Decide which vCenter Server instance 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 NSX Data Center for vSphere for network services, attach the vCenter Server instance together with the associated NSX Manager instance to your cloud. See #GUID-B81DB44D-51CB-4878-8DBD-FDF6AE3DA031.
- If you want the Provider VDC to use NSX Data Center for vSphere with a custom VXLAN-backed network pool instead of the default VXLAN-backed network pool, Create a VXLAN-Backed Network Pool.
- If you want the Provider VDC to use NSX for network services, Register an NSX Manager Instance.
Procedure
Results
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 instance. 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 a and attaches it to the new Provider VDC.
Example: Create a Provider VDC Backed by NSX Data Center for vSphere or NSX
These examples create Provider VDCs specifying a resource pool extracted from the response portion of Retrieve a List of Resource Pools from a vCenter Server and a storage profile extracted from Retrieve a List of Storage Profiles from a vCenter Server. The vCenter Server instance 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.
The responses include 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 latest virtual hardware version supported by the primary resource pool, and a list of HostReferences identifying the ESX hosts in that resource pool.- Create a Provider VDC backed by NSX Data Center for vSphere
Because the request does not include a VxlanNetworkPool element, the system creates the provider VDC with the default VXLAN network pool.
Request: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>
Response: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>
- Create a Provider VDC backed by NSX
Request:
POST https://vcloud.example.com/api/admin/extension/providervdcsparams Content-Type: application/vnd.vmware.admin.createProviderVdcParams+xml ... <?xml version="1.0" encoding="UTF-8"?> <ns2:VMWProviderVdcParams xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:ns2="http://www.vmware.com/vcloud/extension/v1.5" name="nsxTPvdc1"> <ns2:ResourcePoolRefs> <ns2:VimObjectRef> <ns2:VimServerRef href="https://vcloud.example.com/api/admin/extension/vimServer/9"/> <ns2:MoRef>resgroup-195</ns2:MoRef> <ns2:VimObjectType>RESOURCE_POOL</ns2:VimObjectType> </ns2:VimObjectRef> </ns2:ResourcePoolRefs> <ns2:VimServer href="https://vcloud.example.com/api/admin/extension/vimServer/9" id="urn:vcloud:vimserver:9" name="vc1" type="application/vnd.vmware.admin.vmwvirtualcenter+xml"/> <ns2:NsxTManagerReference href="https://vcloud.example.com/api/admin/extension/nsxtManagers/24" id="urn:vcloud:nsxtmanager:24" name="nsxManager1" type="application/vnd.vmware.admin.nsxTmanager+xml"/> <ns2:HighestSupportedHardwareVersion>vmx-7</ns2:HighestSupportedHardwareVersion> <ns2:IsEnabled>true</ns2:IsEnabled> <ns2:StorageProfile>*</ns2:StorageProfile> </ns2:VMWProviderVdcParams>
Response:201 Created Content-Type: application/vnd.vmware.admin.vmwprovidervdc+xml ... <?xml version="1.0" encoding="UTF-8"?> <vmext:VMWProviderVdc xmlns="http://www.vmware.com/vcloud/v1.5" xmlns:vmext="http://www.vmware.com/vcloud/extension/v1.5" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:common="http://schemas.dmtf.org/wbem/wscim/1/common" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vmw="http://www.vmware.com/schema/ovf" xmlns:ovfenv="http://schemas.dmtf.org/ovf/environment/1" xmlns:ns9="http://www.vmware.com/vcloud/versions" status="0" name="nsxTPvdc1" id="urn:vcloud:providervdc:36" href="https://vcloud.example.com/api/admin/extension/providervdc/36" type="application/vnd.vmware.admin.vmwprovidervdc+xml"> <Link rel="up" href="https://vcloud.example.com/api/admin/extension/providerVdcReferences" type="application/vnd.vmware.admin.vmwProviderVdcReferences+xml"/> <Link rel="edit" href="https://vcloud.example.com/api/admin/extension/providervdc/36/storageProfiles" type="application/vnd.vmware.admin.updateProviderVdcStorageProfiles+xml"/> <Link rel="alternate" href="https://vcloud.example.com/api/admin/providervdc/36" type="application/vnd.vmware.admin.providervdc+xml"/> <Link rel="update:resourcePools" href="https://vcloud.example.com/api/admin/extension/providervdc/36/action/updateResourcePools" type="application/vnd.vmware.admin.resourcePoolSetUpdateParams+xml"/> <Link rel="down" href="https://vcloud.example.com/api/admin/extension/providervdc/36/resourcePools" type="application/vnd.vmware.admin.vmwProviderVdcResourcePoolSet+xml"/> <Link rel="down" href="https://vcloud.example.com/api/admin/extension/providervdc/36/availableStorageProfiles" type="application/vnd.vmware.admin.vmwStorageProfiles+xml"/> <Link rel="down" href="https://vcloud.example.com/api/admin/extension/providervdc/36/discoverResourcePools" type="application/vnd.vmware.admin.vmwDiscoveredResourcePools+xml"/> <Link rel="down" href="https://vcloud.example.com/api/admin/providervdc/36/vdcReferences" type="application/vnd.vmware.admin.vdcReferences+xml"/> <Link rel="down" href="https://vcloud.example.com/api/admin/providervdc/36/metadata" type="application/vnd.vmware.vcloud.metadata+xml"/> Link rel="down" href="https://vcloud.example.com/api/admin/providervdc/36/extension" type="application/vnd.vmware.admin.extensibility.selectors+xml"/> <Link rel="add" href="https://vcloud.example.com/cloudapi/providervdc/urn:vcloud:providervdc:36/computePolicies" type="application/json"/> <Link rel="down" href="https://vcloud.example.com/cloudapi/providervdc/urn:vcloud:providervdc:36/computePolicies" type="application/json"/> <Tasks> <Task ... operation="Creating Provider Virtual Datacenter nsxTPvdc1(36)" ... </Task> </Tasks> <ComputeCapacity> <Cpu> <Units>MHz</Units> <Total>0</Total> </Cpu> <Memory> <Units>MB</Units> <Total>0</Total> </Memory> </ComputeCapacity> <AvailableNetworks/> <StorageProfiles/> <IsEnabled>true</IsEnabled> <NetworkPoolReferences/> <vmext:DataStoreRefs/> <vmext:ResourcePoolRefs/> <vmext:VimServer href="https://vcloud.example.com/api/admin/extension/vimServer/9" id="9" name="vc1" type="application/vnd.vmware.admin.vmwvirtualcenter+xml"/> <vmext:NsxTManagerReference href="https://vcloud.example.com/api/admin/extension/nsxtManagers/24" id="24" name="nsxManager1" type="application/vnd.vmware.admin.nsxTmanager+xml"/> <vmext:HostReferences/> <vmext:HighestSupportedHardwareVersion>vmx-07</vmext:HighestSupportedHardwareVersion> </vmext:VMWProviderVdc>