Spread
Definition
Signature
spread(s : set<VM>)
s
: a set of at least 2 VMs for a meaningful constraint. VMs not in theRunning
state are ignored.
The spread
constraint forces all the running VMs in s
to be hosted
on distinct servers at any time, even during the reconfiguration process.
Classification
- Primary users: application administrator
- Manipulated elements: VM placement, Actions schedule
- Concerns: Fault tolerance, VM-to-VM placement, Partitioning
Usage
The spread
constraint may be used by an application administrator to provide to a replicated service,
fault tolerance to hardware failures. By hosting each replicas on a distinct server, the service will be
available while at least one server is still online. To achieve this purpose, one spread
constraint can
be used with the replicas provided as arguments.
Example
Figure 10 depicts a sample reconfiguration between a source and a destination
configuration. In this example, the following spread
constraints were considered:
N1: VM1 VM2
N2: VM3 VM4 VM5
N3: VM6

N1: VM1 VM6
N2: VM3 (VM4)
N3: VM2 VM5
Figure 10: A reconfiguration motivated by spread
constraints.
spread({VM1,VM2})
. This constraint was not satisfied in the source configuration as both VMs were colocated. The reconfiguration fixed this violation by relocatingVM2
toN3
.spread({VM3, VM4})
. This constraint was not satisfied in the source configuration. PuttingVM4
in theSuspended
state fixed this violation without having to perform a relocation.spread({VM5, VM6}
). This constraint was satisfied in the source configuration. However, let considerVM5
must be running onN3
, which was already hostingVM6
. In this setting,VM6
has been relocated toN1
to disallow the colocation. Furthermore, to prevent from a temporary colocation onN3
, it was a necessary to relocateVM6
beforeVM5
. Figure 3.11 depicts the associated event-based reconfiguration plan.
Ø | stop(VM4) & relocate(VM5) |
!relocate(VM5) | relocate(VM6) |
!relocate(VM6) | relocate(VM2) |
Figure 3.11: Event-based reconfiguration plan associated to the reconfiguration depicted in Figure 10.
See also
Related Constraints
gather
: the opposite constraint ofspread
.lazySpread
: a constraint similar tospread
that does not guarantee the non-overlapping of the VMs during the reconfiguration process.split
: a constraint to ensure two sets of VMs do not share servers.