Ban
Definition
Signature
ban(vs : set<VM>, ns : set<server>)
vs
: an non-empty set of VMs for a meaningful constraint. VMs not in theRunning
state are ignored.ns
: an non-empty set of servers for a meaningful constraint. Servers not in theOnline
state are ignored.
The ban
constraint disallows each running VM in vs
to be hosted on any of
the online servers in ns
.
Classification
- Primary users: datacenter administrator
- Manipulated elements: VM placement
- Concerns: Maintenance, Partitioning, VM-to-server placement
Usage
This constraint may be use by the datacenter administrator to prepare servers for a software maintenance.
In this situation, the administrator must first be sure that the servers do not host any running VMs to prevent a
misconfiguration from altering them. Every running VM on these servers must then be relocated elsewhere
while the other VMs should not be relocated on the servers to put into maintenance.
A datacenter administrator may rely on a ban
constraint to achieve that purpose. In this setting, all
the VMs in the datacenter are given in parameters in addition to the servers to put into maintenance. At the end
of the reconfiguration, no VMs will be running on the servers. Once the maintenance operation is terminated,
the constraint may be removed to put the servers back into the hosting pool.
For partitioning reasons, some VMs may be disallowed to be running on some servers. As an example, servers may be dedicated to run service VMs. In this setting, the client VMs must not be allowed to run on the servers dedicated to run service VMs. Ban
constraints may then be used by the datacenter administrator for that purpose.
Example
Figure 2 depicts a sample reconfiguration between a source and a destination configuration.
In this example, the following ban
constraints were considered:
N1: VM1 VM2
N2: VM4 VM3
N3:

N1: VM1
N2: (VM3)
N3: VM2 VM4
Figure 2: A reconfiguration motivated by ban
constraints.
ban({VM1, VM2, VM4}, {N2})
. This constraint was not satisfied in the source configuration asVM4
was running onN2
. The reconfiguration fixed this violation by relocatingVM4
toN3
.ban({VM3}, {N2})
. This constraint was not satisfied in the source configuration. However it is satisfied in the destination configuration asVM3
is no longer running.ban({VM1, VM2}, {N2})
. This constraint was satisfied in the source configuration. It is still satisfied in the destination configuration as the relocation ofVM2
is compatible with this constraint.
See also
Related Constraints
fence
: the opposite constraint ofban
. Oneban
constraint can be emulated using afence
constraint by specifying to thefence
constraint, the absolute complement of the set of servers specified in theban
constraint.quarantine
. Thequarantine
constraint may also be used to prepare a software maintenance on servers when relocation is not possible. In this setting, the given servers will be ready for the maintenance once their VMs are terminated.
Reformulation(s)
Specialization(s)
To
fence
:ban(vs1,ns1)
↔fence(vs1, ns1)