The BtrPlace Constraints Catalog
Constraints

Preserve

Definition

Signature

preserve(s : set<VM>, r:string, n : number)

The preserve constraint ensures each running VM in s is hosted on a server having at minimum an amount of resource of type r equals to n dedicated to the VM.

Classification

Usage

The preserve constraint allows to control the resource allocated to the given VMs. This constraint may first be used inside a provisioning algorithm developed by an application administrator to indicate to the resource manager an ideal amount of resources to provide to the VMs to let them work at a peak level of performance.

Inside a non-conservative consolidated environment, a server may host several VMs that currently ask for a small amount of resources. In this situation, the server may become saturated if VMs ask suddenly for a little more resources. This situation is not idyllic as these micro variations may lead to numerous relocations. To prevent that situation and reduce the frequency of the reconfigurations, the datacenter administrator may use one preserve constraint to over-allocate a minimum amount of resources to the VMs that ask for a small amount of resources.

Example

Figure 14 depicts a sample reconfiguration between a source and a destination configuration where each server provides 8 unit of CPU and 7 unit of memory resources to VMs. Each VM is associated to a gray rectangle that denotes its resource requirement, expressed using preserve constraints. A rectangle overlapping another one on a dimension indicates the two associated VMs have to share resources. This reveals an overloaded server. Figure 3.15 depicts the associated event-based reconfiguration plan. The following preserve constraints were considered:

img/preserve

figure 14: A reconfiguration motivated by preserve constraints.

Ø relocate(VM6)
!relocate(VM6) relocate(VM7)
!relocate(VM7) relocate(VM4)

Figure 3.15: Event-based reconfiguration plan.

See also

Related Constraints