VMware ESXi and vSphere Cluster Management
How to Create and Populate a vApp in VMware vSphere
Learn how to create a vApp in the vSphere Web Client, configure CPU and memory resources, and add virtual machines, resource pools, or nested vApps.
A vApp is a logical vSphere container for related virtualized workloads. It can group the virtual machines that make up an application or service and apply shared CPU and memory resource controls to the group.
For example, a three-tier application might place its web, application, and database virtual machines in one vApp. The vApp then provides a common inventory location and a parent resource-management boundary.
What a vApp is—and is not
| Object | Purpose | How it differs from a vApp |
|---|---|---|
| vApp | Groups related virtual machines and subordinate resource objects while applying collective resource controls. | It is a workload container with resource-management behavior. |
| Virtual machine | Provides one virtualized computer and its guest operating system. | It is an individual workload, not a container for a group of workloads. |
| Folder | Organizes inventory objects such as virtual machines, hosts, or vApps. | It primarily provides inventory organization; it does not by itself impose shared CPU or memory controls. |
| Resource pool | Partitions CPU and memory resources within a host or cluster. | It is a resource-allocation object. A resource pool can be placed inside a vApp or used as a vApp member. |
A vApp can contain virtual machines, resource pools, and other vApps. These contents become children of the vApp, creating a parent-child resource relationship.
Prerequisites
- vCenter Server: vCenter Server is required to create and manage vApps. An individual ESXi host connection is not sufficient for the normal vApp workflow.
- vSphere Web Client: Perform the procedure through the browser-based vSphere management interface.
- Compute destination: Have an available, connected ESXi host or cluster. An ESXi host supplies compute resources for virtual workloads; a cluster is a group of ESXi hosts managed as a shared compute resource.
- Inventory access: Identify a suitable folder or datacenter location for the new vApp.
- Permissions: Your account needs permission to create vApps, modify the selected destination inventory, manage resources, and move objects into the vApp.
If vCenter Server is not yet managing the host, review how to add an ESXi host to vCenter Server inventory. For permission planning, see assigning permissions.
Plan the vApp before creating it
Decide which service or application the vApp represents, where it belongs in the inventory, and which host or cluster should provide its compute resources. Use a descriptive name that identifies the application, environment, or business service.
Also decide whether the vApp needs non-default resource settings. In most cases, create the vApp with normal shares, no reservation, and no limit, then change those settings only after reviewing workload requirements and available capacity.
Create a vApp in the vSphere Web Client
1. Open the vApps inventory area
- Sign in to the vSphere Web Client connected to vCenter Server.
- Open the vCenter inventory and select the vApps area or a valid inventory context where vApps can be created.
- Start the action for creating a new vApp. The exact button or menu wording can vary between vSphere versions.
2. Choose to create a new vApp
When the wizard presents creation choices, select the option to create a new vApp. Do not select an existing inventory item unless the workflow specifically asks you to choose an existing destination.
3. Select the compute destination
Choose the ESXi host or cluster that will provide the vApp's compute resources. Select a connected destination with adequate CPU and memory capacity and with policies appropriate for the workloads that will be added.
When selecting a cluster, consider its current utilization, reservations, admission policies, and any placement constraints. A destination that is visible in inventory may still be unsuitable if it lacks usable capacity.
4. Enter the name and inventory location
Provide a descriptive vApp name. Then select the folder or datacenter location where the vApp should appear. The inventory location controls where administrators find the object; it is separate from the ESXi host or cluster that supplies compute resources.
5. Configure resource allocation
Configure CPU and memory controls for the vApp. These controls apply to the vApp as a container and influence how its child workloads compete for resources.
| Wizard stage | Administrator choice | Purpose | Example decision |
|---|---|---|---|
| Creation choice | Create a new vApp | Starts a new container rather than selecting an existing object. | Create a container for a new business application. |
| Compute destination | ESXi host or cluster | Identifies the compute resource associated with the vApp. | Select the cluster that runs the application. |
| Name | Descriptive vApp name | Makes the workload group easy to identify. | Accounting-Production |
| Inventory location | Folder or datacenter | Determines where the vApp appears in the vCenter inventory. | Place it in the application datacenter folder. |
| Resource allocation | Shares, reservations, and limits for CPU and memory | Controls relative priority, guaranteed capacity, and maximum consumption. | Retain defaults until requirements justify a change. |
| Summary | Review and finish | Confirms the selections before creating the object. | Verify destination, name, location, and resource values. |
6. Review and complete the wizard
Read the summary page carefully. Confirm the vApp name, compute destination, inventory location, and CPU and memory settings. Finish the wizard to create the vApp.
7. Confirm creation
Return to the vCenter inventory and confirm that the new vApp appears at the selected location. Initially, it may be empty. An empty vApp is only a container; it becomes useful after related workloads or subordinate resource objects are placed inside it.
Understand initial resource allocation
Resource allocation consists of CPU and memory controls that determine a vApp's relative priority and its guaranteed or maximum resource amounts.
- Shares: A relative priority used when workloads compete for CPU or memory. Higher shares give the vApp a greater proportion of available resources during contention; shares do not guarantee a fixed amount.
- Reservation: A guaranteed minimum amount of CPU or memory for the vApp, subject to the capacity and policies of the selected destination.
- Limit: A maximum amount of CPU or memory that the vApp can consume, even if additional capacity is available.
| Setting | Applies to | Effect | Typical initial value | When to change it |
|---|---|---|---|---|
| Shares or priority | CPU and memory | Sets relative priority during contention. | Normal | Change when this service must receive relatively more or less capacity than competing workloads. |
| Reservation | CPU and memory | Guarantees a minimum resource amount. | No reservation | Change when the service has a defined minimum requirement and sufficient unreserved capacity exists. |
| Limit | CPU and memory | Caps consumption at a maximum amount. | No limit | Change when a deliberate maximum is required; avoid accidental throttling. |
The typical initial configuration is normal priority, no CPU reservation, no memory reservation, no CPU limit, and no memory limit. Do not increase reservations or impose limits without a workload requirement. A reservation can consume capacity needed by other workloads, while an unnecessarily low limit can prevent a healthy workload from using available resources.
Add objects to the vApp
Supported vApp members include virtual machines, resource pools, and nested vApps. A nested vApp is a vApp placed inside another vApp to create a hierarchy of grouped workloads.
| Object type | Supported | Use case | Relationship to the vApp |
|---|---|---|---|
| Virtual machine | Yes | Group the machines that make up an application or service. | Becomes a child workload subject to the vApp's resource hierarchy. |
| Resource pool | Yes | Create a subordinate CPU and memory partition within the service group. | Becomes a child resource object under the vApp. |
| Nested vApp | Yes | Organize a large service into internal workload groups. | Becomes a child vApp and creates another level in the hierarchy. |
| Folder | Not as a workload member | Organize inventory objects. | A folder is an inventory location, not a supported vApp member for resource hierarchy purposes. |
Move an existing virtual machine into the vApp
- Open a supported vCenter inventory view that displays the virtual machine and the destination vApp.
- Select the existing virtual machine.
- Use the inventory move action, or drag the virtual machine onto the vApp when the client permits drag-and-drop.
- Confirm the destination and complete the move.
- Expand the vApp and verify that the virtual machine appears beneath it.
Moving the virtual machine into the vApp changes its inventory and resource-parent relationship. It does not mean that the virtual machine's guest operating system is merged with another machine. The virtual machine remains an independent workload, but it is now a child of the vApp for vSphere organization and resource management.
Use the same general approach for a supported resource pool or nested vApp, provided your permissions allow the move and the selected inventory context supports the operation.
Practical examples
Application-tier container
Create a vApp named for a business application, place it in the application datacenter folder, select the cluster that runs the application, and retain the default resource settings. Then move the application's web and database virtual machines into the vApp.
Multi-VM service
Place all virtual machines that make up one service in a single vApp. This makes the service easier to find and provides a common point for CPU and memory policy.
Resource guarantee
If a workload has a defined minimum service requirement, configure a CPU or memory reservation at the vApp level only after confirming that sufficient unreserved capacity exists on the selected host or cluster.
Hierarchical organization
Place a subordinate vApp or resource pool inside a parent vApp when a larger service requires separate internal workload groupings.
Verify the completed configuration
- Confirm that the vApp is visible at the intended folder or datacenter location.
- Check that the vApp is associated with the intended ESXi host or cluster.
- Review the vApp's CPU shares, CPU reservation, CPU limit, memory shares, memory reservation, and memory limit.
- Expand the vApp and verify that each intended virtual machine, resource pool, or nested vApp appears beneath it.
- Confirm that the parent-child hierarchy matches the planned service structure.
- Review host or cluster capacity if reservations or limits were configured.
Troubleshooting
The option to create a vApp is unavailable
Likely causes include a direct connection to an individual ESXi host, missing permissions, or an inventory context that does not support the action.
- Confirm that the host or cluster is managed by vCenter Server.
- Open the vApps inventory view or another valid vCenter inventory location.
- Review permissions for vApp creation, inventory modification, and resource-management tasks. See the vSphere access control system and permission assignment.
The vApp cannot be placed on the intended destination
The host or cluster may be disconnected, unsuitable for the workload, short on usable capacity, or constrained by resource policies.
- Verify that the destination is connected and has usable CPU and memory capacity.
- Select a valid ESXi host or cluster.
- Review reservations and limits before retrying the operation.
A virtual machine cannot be added
Check that the object is a supported type, that you have permission to move it, and that you are using a supported vCenter inventory view.
- Confirm that the object is a virtual machine, resource pool, or vApp.
- Verify permission to move the object and edit the destination vApp.
- Use the inventory move action or supported drag-and-drop operation.
Workloads do not receive the expected resources
Inspect the vApp's shares, reservations, and limits. The vApp may be competing with other workloads for constrained host or cluster capacity, or a configured limit may be restricting consumption.
- Compare the configured CPU and memory settings with the intended policy.
- Check available capacity and competing reservations on the destination.
- Remove or increase a restrictive limit when the workload requirements justify doing so.
Exam-relevant notes
- A vApp is a logical container for related virtual workloads and can apply resource controls at the container level.
- vCenter Server is required for vApp creation and management.
- An ESXi host supplies compute resources, while a cluster groups ESXi hosts into a shared compute resource.
- A folder organizes inventory; it does not replace a vApp's resource-management function.
- Shares provide relative priority, reservations provide guaranteed minimum capacity, and limits define maximum consumption.
- Virtual machines, resource pools, and nested vApps can be members of a vApp.
- Moving a virtual machine into a vApp establishes a parent-child resource relationship.