Explicitly Dedicating resources
• Allowing CloudStack infrastructure to be
dedicated to specific users/accounts.
• What can be dedicated ?
Zone / Pod / Cluster / Host
• CloudStack is multi tenant architecture
• A tenant wants reserved hardware usable only
by him and his users.
• Premium user wants to have his vms staying on
hosts dedicated to him (pro-affinity).
• Allows dedicated compute available to the user.
• Only the account/domain to which the resource has
been dedicated can use the dedicated resource.
• If a cluster is dedicated to an account, all the hosts in
it are also dedicated to the same account
• If a pod is dedicated, all clusters in it are also
• Similarly if a zone is dedicated, all pods are also
• When a resource is dedicated to an
account/domain CloudStack internally creates an
affinity group of type ExplicitDedication
• CloudStack internally refers it as Processor and
uses it decide the vm deployment location.
• If the account uses this affinity group while
deploying the vm, the vm will be placed on the
resource dedicated to it
• If this affinity group is not chosen, the vm is
deployed on shared host (non-dedicated host)
A simple scenario
2 accounts Blue and Red
Host 1 dedicated to account Blue
Host 3 dedicated to account Red
Host 2 is undedicated (shared)
Host Dedicated to
Host Dedicated to
VM deployed from account Blue using affinity group
VM deployed from account Red using affinity group
VM deployed from account Blue without affinity group
VM deployed from account Red without affinity group
• Only Root admin can dedicate/release
• System VMs and Virtual Router do not adhere
to explicit dedication as they are owned by
the system account and can be deployed on
• Admin can live migrate a VM deployed on
dedicated resource to a resource not owned
by the account, but suitable alerts are
generated by CloudStack
• This is an introduction to Explicit dedication.
Please refer to the Functional Specification for
more detailed explanation :