Hosts, clusters, and resources pools provide flexible and dynamic ways to organize the aggregated computing and memory resources in the virtual environment and link them back to the underlying physical resources.

A host represents the aggregate computing and memory resources of a physical x86 server. For example, if the physical x86 server has four dual-core CPUs running at 4GHz each and 32GB of system memory, the host has 32GHz of computing power and 32GB of memory available for running virtual machines that are assigned to it.

A cluster acts and can be managed as a single entity. It represents the aggregate computing and memory resources of a group of physical x86 servers sharing the same network and storage arrays. For example, if the group contains eight servers with four dual-core CPUs each running at 4GHz and 32GB of memory, the cluster has an aggregate 256GHz of computing power and 256GB of memory available for running virtual machines.

Resource pools are partitions of computing and memory resources from a single host or a cluster. Resource pools can be hierarchical and nested. You can partition any resource pool into smaller resource pools to divide and assign resources to different groups or for different purposes.

Hosts, Clusters, and Resource Pools illustrates the use of resource pools. Three x86 servers with 4GHz computing power and 16GB of memory each are aggregated to form a cluster of 12GHz computing power and 48GB of memory. The Finance Department resource pool reserves 8GHz of computing power and 32GB of memory from the cluster. The remaining 4GHz computing power and 16GB of memory are reserved for the other virtual machine. From the Finance Department resource pool, the smaller Accounting resource pool reserves 4GHz computing power and 16GB of memory for the virtual machines from the accounting department. That leaves 4GHz of computing power and 16GB of memory for the virtual machine called Payroll.

Hosts, Clusters, and Resource Pools
The use of resource pools is illustrated by department in this example.

You can dynamically change resource allocation policies. For example, at year end, the workload on Accounting increases, and which requires an increase in the Accounting resource pool reserve of 4GHz of power to 6GHz. You can make the change to the resource pool dynamically without shutting down the associated virtual machines.

When reserved resources are not being used by a resource pool or a virtual machine, the resources can be shared. In the example, if the 4GHz of resources reserved for the Accounting department are not being used, the Payroll virtual machine can use those gigahertz during its peak time. When Accounting resource demands increase, Payroll dynamically returns them. Resources are reserved for different resource pools, but resources are not wasted if an owner does not use them. This capability helps to maximize resource use while also ensuring that reservations are met and resource policies enforced.

As demonstrated by the example, resource pools can be nested, organized hierarchically, and dynamically reconfigured so that the IT environment matches the company organization. Individual business units can receive dedicated resources while still exploiting from the efficiency of resource pooling.

ESX/ESXi provides a memory compression cache to improve virtual machine performance when you use memory overcommitment. Memory compression is enabled by default. When a host's memory becomes overcommitted, ESX/ESXi compresses virtual pages and stores them in memory.

Because accessing compressed memory is faster than accessing memory that has been swapped to disk, memory compression in ESX/ESXi allows you to overcommit memory without hindering performance. When a virtual page needs to be swapped, ESX/ESXi first attempts to compress the page. Pages that can be compressed to 2 KB or smaller are stored in the virtual machine's compression cache, increasing the capacity of the host.