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-T Data
Center. 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
Attach a vCenter Server Instance.
|
■
|
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-T Data
Center for network services,
Register an NSX-T Manager Instance.
|
Procedure
1 | Retrieve the XML
representation of the extension objects and operations.
Use a request similar
to:
GET https://vcloud.example.com/api/admin/extension
|
2 | In the response, 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.
a | Include a
VimServer element that
references the
vCenter
Server
instance to supply a resource pool and storage profiles to this Provider VDC.
|
b | Include a
ResourcePoolRefs
element that specifies one resource pool.
The
ResourcePoolRef must
contain the
href attribute value of
the
VimServer element that
you created in
Step 3a,
and the
MoRef and
VimObjectType values of
the resource pool as they appear in the
ResourcePool element
from the resource pool list. See the request portion of
Example: VDC.
Note
You must specify
exactly one resource pool when you create the Provider VDC, which is the
primary resource pool. After creating the Provider VDC, you can add more
resource pools.
|
c | Include at least one
StorageProfile element
that contains the name of a storage profile that has been defined on the
vCenter server
referenced in the
VimServer element you
created in
Step 3a.
|
d | If you created a
VXLAN-backed network pool that you want this Provider VDC to use instead of the
default VXLAN-backed network pool, include a
VxlanNetworkPool
element that references the pool. See
Create a VXLAN-Backed Network Pool.
|
e | If you registered an
NSX-T
Manager
instance that you want to this Provider VDC to use, include an
NsxTManagerReference
element.
|
|
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
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 3a
and attaches it to the new Provider VDC.
|
Example: Create a Provider VDC
Backed by
NSX Data Center
for vSphere
or
NSX-T Data
Center
These examples create Provider
VDCs 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
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-T Data
Center
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>
|