Root
Definition
Signature
root(s : set<VM>)
s
: an non-empty set of VMs for a meaningful constraint. VMs not in theRunning
state are ignored.
The root
constraint forces each running VM in s
to not move from its current location.
This constraint only restricts the placement of running VMs with regards to a previous placement.
As a result, it is not possible to state for the satisfaction of one root
constraint before a reconfiguration occurred.
Classification
- Primary users: application administrator, datacenter administrator
- Manipulated elements: VM placement
- Concerns: VM-to-server placement, Performance, Resource management
Usage
The root
constraint is mostly used to disallow the relocation of VMs when it is not possible or tolerated.
Typically, a running VM may be attached to a peculiar device such as a filesystem or a PCI device on its host.
In this setting, the relocation of the VM may not maintain this link and should not be performed for reliability reasons.
An application administrator may then use a root
constraint on this constraint to prevent from relocation.
In addition, an application administrator may disallow the relocation of his VMs to prevent from the temporary performance loss that occur during this action.
Another possible usage is to disallow VMs relocation when the infrastructure or the underlying hypervisor does
not support it. In this setting, the datacenter administrator may use a root
constraint on all the VMs to disallow their relocation.
Example
Figure 1 depicts a sample reconfiguration between a source and a destination configuration. In this example, the following root
constraints were considered:
N1: VM1 VM2
N2: VM3 VM5
?: VM4

N1: VM1 VM4
N2: VM3 VM2
?: VM5
Figure 1: A reconfiguration motivated by root
constraints.
root({VM1,VM3})
. This constraint is satisfied as none of the VMs were relocated during the reconfigurationroot({VM4, VM5})
. This constraint is satisfied asVM4
is not running in the initial configuration whileVM5
is no longer running in the destination configuration. The constraint ignores then these VMs.root({VM2})
. This constraint is not satisfied asVM2
has been relocated fromN1
toN2
during the reconfiguration process.
See also
Related Constraints
fence
: Theroot
constraint can be emulated using afence
constraint when its user knows the current host of the specified VMs. For each VM, the list of servers given in thefence
constraint is a singleton only composed of the current hosting server.