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:
In this state, the DRS algorithm is disabled until the resource pool tree's configuration has been brought back into a consistent state. We also restrict the resources that such invalid nodes request from their parents to the configured reservation/limit, in an attempt to isolate the problem to a small subtree. For the rest of the tree, we determine whether the cluster is undercommitted or overcommitted according to the existing rules and perform admission control accordingly.
Note that since all changes to the resource settings are validated on the VirtualCenter server, the system cannot be brought into this state by simply manipulating a cluster resource pool tree through VirtualCenter. It can only happen if a virtual machine gets powered on directly on a host that is part of a DRS cluster.
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.
Any vApps in the ResourcePool will be moved to the ResourcePool's parent before the pool is destroyed.
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.
Name | Type | Description |
---|---|---|
alarmActionsEnabled | boolean | Whether alarm actions are enabled for this entity. True if enabled; false otherwise. |
availableField | VcCustomFieldDef[] | List of custom field definitions that are valid for the object's type. The fields are sorted by <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcCustomFieldDef.html#name">VcCustomFieldDef</a>. |
childConfiguration | VcResourceConfigSpec[] | The resource configuration of all direct children (VirtualMachine and ResourcePool) of this resource group. |
config | VcResourceConfigSpec | Configuration of this resource pool. |
configIssue | VcEvent[] | Current configuration issues that have been detected for this entity. Typically, these issues have already been logged as events. The entity stores these events as long as they are still current. The <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcManagedEntity.html#configStatus">VcManagedEntity</a> property provides an overall status based on these events. |
configStatus | VcManagedEntityStatus | The configStatus indicates whether or not the system has detected a configuration issue involving this entity. For example, it might have detected a duplicate IP address or MAC address, or a host in a cluster might be out of compliance. The meanings of the configStatus values are: <ul> <li>red: A problem has been detected involving the entity. <li>yellow: A problem is about to occur or a transient condition has occurred (For example, reconfigure fail-over policy). <li>green: No configuration issues have been detected. <li>gray: The configuration status of the entity is not being monitored. </ul> A green status indicates only that a problem has not been detected; it is not a guarantee that the entity is problem-free. <p> The <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcManagedEntity.html#configIssue">VcManagedEntity</a> property contains a list of the problems that have been detected. In releases after vSphere API 5.0, vSphere Servers might not generate property collector update notifications for this property. To obtain the latest value of the property, you can use PropertyCollector methods RetrievePropertiesEx or WaitForUpdatesEx. If you use the PropertyCollector.WaitForUpdatesEx method, specify an empty string for the version parameter. Any other version value will not produce any property values as no updates are generated. |
customValue | VcCustomFieldValue[] | Custom field values. |
declaredAlarmState | VcAlarmState[] | A set of alarm states for alarms that apply to this managed entity. The set includes alarms defined on this entity and alarms inherited from the parent entity, or from any ancestors in the inventory hierarchy. <p> Alarms are inherited if they can be triggered by this entity or its descendants. This set does not include alarms that are defined on descendants of this entity. |
disabledMethod | String[] | List of operations that are disabled, given the current runtime state of the entity. For example, a power-on operation always fails if a virtual machine is already powered on. This list can be used by clients to enable or disable operations in a graphical user interface. <p> Note: This list is determined by the current runtime state of an entity, not by its permissions. <p> This list may include the following operations for a HostSystem: <ul> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcHostSystem</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcHostSystem</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcHostSystem</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcHostSystem</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcHostSystem</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcHostSystem</a> </ul> <p> This list may include the following operations for a VirtualMachine: <ul> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcManagedEntity</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcManagedEntity</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualMachine</a> </ul> <p> This list may include the following operations for a ResourcePool: <ul> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcResourcePool</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcResourcePool</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcResourcePool</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcFolder</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcManagedEntity</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcManagedEntity</a> </ul> This list may include the following operations for a VirtualApp: <ul> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcManagedEntity</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualApp</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualApp</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualApp</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualApp</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualApp</a> <li><a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcHostSystem.html#enterMaintenanceMode">VcVirtualApp</a> </ul> <p> In releases after vSphere API 5.0, vSphere Servers might not generate property collector update notifications for this property. To obtain the latest value of the property, you can use PropertyCollector methods RetrievePropertiesEx or WaitForUpdatesEx. If you use the PropertyCollector.WaitForUpdatesEx method, specify an empty string for the version parameter. Any other version value will not produce any property values as no updates are generated. |
effectiveRole | Number[] | Access rights the current session has to this entity. |
id | String | returns the id of this ManagedObject |
name | String | Name of this entity, unique relative to its parent. <p> Any / (slash), \ (backslash), character used in this name element will be escaped. Similarly, any % (percent) character used in this name element will be escaped, unless it is used to start an escape sequence. A slash is escaped as %2F or %2f. A backslash is escaped as %5C or %5c, and a percent is escaped as %25. |
overallStatus | VcManagedEntityStatus | General health of this managed entity. The overall status of the managed entity is computed as the worst status among its alarms and the configuration issues detected on the entity. The status is reported as one of the following values: <ul> <li>red: The entity has alarms or configuration issues with a red status. <li>yellow: The entity does not have alarms or configuration issues with a red status, and has at least one with a yellow status. <li>green: The entity does not have alarms or configuration issues with a red or yellow status, and has at least one with a green status. <li>gray: All of the entity's alarms have a gray status and the configuration status of the entity is not being monitored. </ul> In releases after vSphere API 5.0, vSphere Servers might not generate property collector update notifications for this property. To obtain the latest value of the property, you can use PropertyCollector methods RetrievePropertiesEx or WaitForUpdatesEx. If you use the PropertyCollector.WaitForUpdatesEx method, specify an empty string for the version parameter. Any other version value will not produce any property values as no updates are generated. |
owner | VcComputeResource | The ComputeResource to which this set of one or more nested resource pools belong. |
parent | VcManagedEntity | Parent of this entity. <p> This value is null for the root object and for <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcVirtualMachine.html">VcVirtualMachine</a> objects that are part of a <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcVirtualMachine.html">VcVirtualApp</a>. |
permission | VcPermission[] | List of permissions defined for this entity. |
recentTask | VcTask[] | The set of recent tasks operating on this managed entity. This is a subset of <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcTaskManager.html#recentTask">VcTaskManager</a> belong to this entity. A task in this list could be in one of the four states: pending, running, success or error. <p> This property can be used to deduce intermediate power states for a virtual machine entity. For example, if the current powerState is "poweredOn" and there is a running task performing the "suspend" operation, then the virtual machine's intermediate state might be described as "suspending." <p> Most tasks (such as power operations) obtain exclusive access to the virtual machine, so it is unusual for this list to contain more than one running task. One exception, however, is the task of cloning a virtual machine. In releases after vSphere API 5.0, vSphere Servers might not generate property collector update notifications for this property. To obtain the latest value of the property, you can use PropertyCollector methods RetrievePropertiesEx or WaitForUpdatesEx. If you use the PropertyCollector.WaitForUpdatesEx method, specify an empty string for the version parameter. Any other version value will not produce any property values as no updates are generated. |
reference | VcManagedObjectReference | returns the ManagedObjectReference of this ManagedObject |
resourcePool | VcResourcePool[] | The set of child resource pools. |
resourcePool_ResourcePool | ResourcePool[] | Filtered attribute 'resourcePool' with only ResourcePool objects |
resourcePool_VirtualApp | VirtualApp[] | Filtered attribute 'resourcePool' with only VirtualApp objects |
runtime | VcResourcePoolRuntimeInfo | Runtime information about a resource pool. The <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcResourcePoolResourceUsage.html">VcResourcePoolResourceUsage</a> information within <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcResourcePoolResourceUsage.html">VcResourcePoolRuntimeInfo</a> can be transiently stale. Use <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcResourcePoolResourceUsage.html">VcResourcePool</a> method to update the information. In releases after vSphere API 5.0, vSphere Servers might not generate property collector update notifications for this property. To obtain the latest value of the property, you can use PropertyCollector methods RetrievePropertiesEx or WaitForUpdatesEx. If you use the PropertyCollector.WaitForUpdatesEx method, specify an empty string for the version parameter. Any other version value will not produce any property values as no updates are generated. |
sdkConnection | VcSdkConnection | returns the parent SdkConnection |
summary | VcResourcePoolSummary | Basic information about a resource pool. In releases after vSphere API 5.0, vSphere Servers might not generate property collector update notifications for this property. To obtain the latest value of the property, you can use PropertyCollector methods RetrievePropertiesEx or WaitForUpdatesEx. If you use the PropertyCollector.WaitForUpdatesEx method, specify an empty string for the version parameter. Any other version value will not produce any property values as no updates are generated. |
tag | VcTag[] | The set of tags associated with this managed entity. Experimental. Subject to change. |
triggeredAlarmState | VcAlarmState[] | A set of alarm states for alarms triggered by this entity or by its descendants. <p> Triggered alarms are propagated up the inventory hierarchy so that a user can readily tell when a descendant has triggered an alarm. In releases after vSphere API 5.0, vSphere Servers might not generate property collector update notifications for this property. To obtain the latest value of the property, you can use PropertyCollector methods RetrievePropertiesEx or WaitForUpdatesEx. If you use the PropertyCollector.WaitForUpdatesEx method, specify an empty string for the version parameter. Any other version value will not produce any property values as no updates are generated. |
value | VcCustomFieldValue[] | List of custom field values. Each value uses a key to associate an instance of a <a target="_blank" href="https://www.vmware.com/support/orchestrator/doc/vro-vsphere60-api/html/VcCustomFieldStringValue.html">VcCustomFieldStringValue</a> with a custom field definition. |
vimHost | VcSdkConnection | returns the parent SdkConnection (deprecated) |
vimType | String | returns the type of this ManagedObject |
vm | VcVirtualMachine[] | The set of virtual machines associated with this resource pool. |
Name | Returns |
---|---|
createChildVM_Task(VcVirtualMachineConfigSpec config, VcHostSystem host) | VcTask |
createResourcePool(String name, VcResourceConfigSpec spec) | VcResourcePool |
createTrigger(Number timeout, String filter, String condition, String filterToSync) | Trigger |
createVApp(String name, VcResourceConfigSpec resSpec, VcVAppConfigSpec configSpec, VcFolder vmFolder) | VcVirtualApp |
destroy_Task() | VcTask |
destroyChildren() | void |
importVApp(VcImportSpec spec, VcFolder folder, VcHostSystem host) | VcHttpNfcLease |
moveIntoResourcePool(VcManagedEntity[] list) | void |
queryResourceConfigOption() | VcResourceConfigOption |
refreshRuntime() | void |
registerChildVM_Task(String path, String name, VcHostSystem host) | VcTask |
reload() | void |
rename_Task(String newName) | VcTask |
setCustomValue(String key, String value) | void |
updateChildResourceConfiguration(VcResourceConfigSpec[] spec) | void |
updateConfig(String name, VcResourceConfigSpec config) | void |
Method | Returns |
---|---|
VcPlugin.getAllResourcePools(String[] additionalPropertyFilters, String query) | VcResourcePool[] |
VcResourcePool.createResourcePool(String name, VcResourceConfigSpec spec) | VcResourcePool |
VcSdkConnection.getAllResourcePools(String[] additionalPropertyFilters, String query) | VcResourcePool[] |
VcVirtualApp.createResourcePool(String name, VcResourceConfigSpec spec) | VcResourcePool |
VcVRPResourceManager.getChildRPforHub(String vrpId, VcManagedEntity hub) | VcResourcePool |