Managed Object - ResourcePool

Property of
ClusterInitialPlacementAction, ComputeResource, ResourcePool, ResourcePoolEventArgument, VirtualMachine, VirtualMachineRelocateSpec
Parameter to
AddHost_Task, CreateVM_Task, MarkAsVirtualMachine, MigrateVM_Task, MoveHostInto_Task, RecommendHostsForVm, RegisterVM_Task, ValidateMigration
Returned by
CreateResourcePool
Extends
ManagedEntity
See also
ComputeResource, ManagedEntity, ResourceConfigSpec, ResourcePoolRuntimeInfo, ResourcePoolSummary, VirtualMachine


Managed Object Description

Represents a set of physical resources: a single host, a subset of a host's resources, or resources spanning multiple hosts. Resource pools can be subdivided by creating child resource pools. In order to run, a virtual machine must be associated as a child of a resource pool.

In a parent/child hierarchy of resource pools and virtual machines, the single resource pool that has no parent pool is known as the root resource pool.

Configuration

A resource pool is configured with a set of CPU (in MHz) and memory (in MB) resources. These resources are specified in absolute terms with a resource reservation and a resource limit, along with a shares setting. The shares are used during resource contention, to ensure graceful degradation.

For the root resource pool, the values of the reservation and the limit are set by the system and are not configurable. The reservation and limit are set to the same value, indicating the total amount of resources the system has available to run virtual machines. This is computed as the aggregated CPU and memory resources provided by the set of current available hosts in the parent compute resource minus the overhead of the virtualization layer.

Since the resource pool configuration is absolute (in MHz or MB), the configuration can become invalid when resources are removed. This can happen if a host is removed from the cluster, if a host becomes unavailable, or if a host is placed in maintenance mode. When this happens, the system flags misconfigured resource pools and displays the reservations and limits that are in effect. Further, in a DRS enabled cluster, the tree can be misconfigured if the user bypasses VirtualCenter and powers on VMs directly on the host.

A General Discussion of Resource pool states and admission control There are three states that the resource pool tree can be in: undercommited (green), overcommited (yellow), and inconsistent (red). Depending on the state, different resource pool configuration policies are enforced. The states are described in more detail below:

Destroying a ResourcePool

When a ResourcePool is destroyed, all the virtual machines are reassigned to its parent pool. The root resource pool cannot be destroyed, and invoking destroy on it will throw an InvalidType fault.

The Resource.DeletePool privilege must be held on the pool as well as the parent of the resource pool. Also, the Resource.AssignVMToPool privilege must be held on the resource pool's parent pool and any virtual machines that are reassigned.

Properties

Name Type Description
childConfiguration*ResourceConfigSpec[]

The resource configuration of all direct children (VirtualMachine and ResourcePool) of this resource group.
configResourceConfigSpec

Configuration of this resource pool.
owner PManagedObjectReference
to a ComputeResource

The ComputeResource to which this set of one or more nested resource pools belong.
resourcePool* PManagedObjectReference[]
to a ResourcePool[]

The set of child resource pools.
runtimeResourcePoolRuntimeInfo

Runtime information about a resource pool.
summaryResourcePoolSummary

Basic information about a resource pool.
vm* PManagedObjectReference[]
to a VirtualMachine[]

The set of virtual machines associated with this resource pool.
Properties inherited from ManagedEntity
configIssue, configStatus, customValue, declaredAlarmState, disabledMethod, effectiveRole, name, overallStatus, parent, permission, recentTask, triggeredAlarmState
Properties inherited from ExtensibleManagedObject
availableField, value
*May not be presentP Required privilege: System.View

Methods

Methods defined in this Managed Object
CreateResourcePool, DestroyChildren, MoveIntoResourcePool, UpdateChildResourceConfiguration, UpdateConfig
Methods inherited from ManagedEntity
Destroy_Task, Reload, Rename_Task
Methods inherited from ExtensibleManagedObject
setCustomValue

CreateResourcePool

Creates a new resource pool.

In the ResourceConfigSpec, all values in ResourceAllocationInfo must be supplied; they are not optional.

Any % (percent) character used in this name parameter must be escaped, unless it is used to start an escape sequence. Clients may also escape any other characters in this name parameter.

Required Privileges
Resource.CreatePool

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the ResourcePool used to make the method call.
namexsd:string


specResourceConfigSpec



Return Value

Type Description
ManagedObjectReference
to a ResourcePool

Faults

Type Description
DuplicateNameThrown if this pool already contains an object with the given name.
InsufficientResourcesFaultThrown if the opertaion would violate a resource usage policy. Typically, a more specific subclass, such as InsufficientCpuResourcesFault will be thrown.
InvalidArgumentThrown if the pool specification is invalid.
InvalidNameThrown if the name is not a valid entity name.
NotSupportedThrown if the ComputeResource does not support nested resource pools.
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Show WSDL type definition



DestroyChildren

Removes all child resource pools recursively. All virtual machines associated with the child resource pools are associated with this group. The Resource.DeletePool privilege must be held on this object and each of it's immediate children to be destroyed. The Resource.AssignVMToPool privilege must be held on this resource pool as well as on the virtual machine.
Required Privileges
Dynamic - See discussion above

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the ResourcePool used to make the method call.

Return Value

Type Description
None

Faults

Type Description
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Show WSDL type definition



MoveIntoResourcePool

Moves a set of resource pools or virtual machines into this pool. The pools and virtual machines must be part of the cluster or standalone host that contains this pool.

The move is subject to the following privilege checks. If the object being moved is a ResourcePool, then Resource.MovePool must be held on the pool being moved, its former parent pool, and the target pool. If the object is a VirtualMachine, then Resource.AssignVMToPool must be held on the target pool and the virtual machine.

This operation is typically used by clients when they implement a drag-and-drop interface to move a set of objects into a folder.

This operation is only transactional with respect to each individual entity. The set of entities is moved sequentially, as specified in the list, and committed one at a time. If a failure is detected, then the method terminates with an exception.

The root resource pool cannot be moved.

Required Privileges
Dynamic - See discussion above

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the ResourcePool used to make the method call.
listManagedObjectReference[]
to a ManagedEntity[]

A list of ResourcePool and VirtualMachine objects.

Return Value

Type Description
None

Faults

Type Description
DuplicateNameThrown if this pool already contains an object with the given name.
InsufficientResourcesFaultThrown if the move would violate the resource usage policy. Typically, a more specific subclass, such as InsufficientMemoryResourcesFault.
InvalidArgumentThrown if an ancestor of this pool is in the list.
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Show WSDL type definition



UpdateChildResourceConfiguration

Changes resource configuration of a set of children of this resource pool. The method allows bulk modifications of the set of the direct children (virtual machines and resource pools).

Bulk modifications are not transactional. Each modification is made individually. If a failure is encountered while applying the changes, then the processing stops, meaning at least one and as many as all of the changes are not applied.

A set can include a subset of the resources. Children that are not mentioned in the list are not changed.

For each ResourceConfigSpec, the following privilege checks apply:

Required Privileges
Dynamic - See discussion above

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the ResourcePool used to make the method call.
specResourceConfigSpec[]



Return Value

Type Description
None

Faults

Type Description
InsufficientResourcesFaultThrown if the opertaion would violate a resource usage policy. Typically, a more specific subclass, such as InsufficientMemoryResourcesFault will be thrown.
InvalidArgumentThrown if a managed entity that is not a child of this group is included.
InvalidState
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Show WSDL type definition



UpdateConfig

Updates the configuration of the resource pool.

Any % (percent) character used in this name parameter must be escaped, unless it is used to start an escape sequence. Clients may also escape any other characters in this name parameter.

NOTE: The Resource.EditPool privilege must be held on the owner of this resource pool in order to change it's configuration.

Required Privileges
Resource.EditPool

Parameters

NameTypeDescription
_thisManagedObjectReference A reference to the ResourcePool used to make the method call.
name*xsd:string

If set, then the new name of the resource pool.
config*ResourceConfigSpec

If set, then the new resource allocation for this resource pool.
*Need not be set

Return Value

Type Description
None

Faults

Type Description
ConcurrentAccessThrown if the changeVersion does not match the server's changeVersion for the configuration.
DuplicateNameThrown if the name is changed to an already existing name.
InsufficientResourcesFaultThrown if the pool specification cannot be supported by the parent resource pool.
InvalidArgumentThrown if the parameters are out of range, or if the reservationLimit field is set.
InvalidNameThrown if the name is not a valid entity name.
RuntimeFaultThrown if any type of runtime fault is thrown that is not covered by the other faults; for example, a communication error.

Show WSDL type definition