Understanding Expandable Reservations
Expandable reservations enable dynamic allocation of resources to
meet the minimum requirements of virtual machines within a number of resource pools. When you
set the expandableReservation
property on sibling resource pools, you enable
them to act as a single resource pool for the purpose of providing the minimum of resource that
virtual machines need to power on. When a virtual machine starts in any one of the sibling
resource pools, it draws its reservation
amount from the parent's
reservation
amount, rather than from its own resource pool.
If the parent resource pool is also expandable, it can draw resources in turn from its parent, and the sequence can continue in this way until it ends with a parent resource pool that has a fixed reservation.
To configure expandable reservations, set the
expandableReservation
property to true
in the
ResourceConfigSpec.cpuAllocation
or
ResourceConfigSpec.memoryAllocation
of sibling resource pools to
true
. For maximum flexibility, set the reservation
amount
of each sibling pool 0
. When sibling pools do not reserve any resources, any
virtual machine that starts in the sibling pools will take its reservation amount from the
parent pool's reservation.
If a sibling pool contains critical virtual machines whose reservations need to be prioritized, set the pool's reservation to the sum of the reservations of the prioritized virtual machines. That reservation amount is saved for the resource pool's virtual machines, and is unavailable for siblings to use.
To illustrate how expandable reservations work, consider the following examples.