The BtrPlace Constraints Catalog
Constraints

Split

Definition

Signature

split(vs: set<set<VM>>)

The split constraint forces the given sets of VMs in vs to not share hosting servers. Each of the used servers can still host multiple VMs but they have to be in the same set.

Classification

Usage

The split constraint deserves isolation requirements. Hypervisors are supposed to provide a strong isolation between the VMs. However, various attacks such as those based on VM escaping [50], allow to break this isolation to provide from a malicious VM, a non-legitimate access to the hypervisor or the other VMs. An application administrator may then want to have its VMs hosted on servers that do not host potentially malicious VMs. A split constraint may then be used to indicate the VMs that must be running on servers other than the supposed malicious ones.

The split constraint deserves also fault tolerance requirements. For high-availability purposes, replicated applications are supposed to be running on distinct servers. In this setting, an application administrator may use one split constraint to ensure all the VMs of the application do not share any server with the replicated VMs.

Example

Figure 7 depicts a sample reconfiguration between a source and a destination configuration. In this example, the following split constraints were considered:

N1: VM1 VM2

N2: VM3

N3: VM4 VM5

N4: VM6

N5: VM7 VM8

arrow

N1: VM1

N2: VM3

N3: VM2 VM4 VM5

N4: VM7 (VM6)

N5: VM8

Figure 7: A reconfiguration motivated by split constraints.

See also

Related Constraints

Specialization(s)