With the current code for deploying a VM, CloudStack enables a VM to run on certain hosts using Host tags. If offerings are tagged, then only the host with matching tag will be chosen. But while deploying a VM with a non-tagged service offering, we consider both untagged and tagged hosts. So a VM with non-tagged offering may reside on a tagged host. But there can be a situation where a user wants to ensure that his workload is not shared with other users i.e. his VMs should run on a host which is not shared with other accounts.
This feature will allow to add a service offering that will indicate that the VM needs to be on a host exclusive to his account. The VMs belonging to his account will share the same host which is not shared by other accounts.
This document describes the specifications and design of this feature which is part of the requirements here.
Featured PRD: https://cwiki.apache.org/confluence/display/CLOUDSTACK/VMs+on+hardware+dedicated+to+a+specific+account
This feature is combined with requirements here
Requirements
The following table explains the requirements:
|
Service Offering requested with dedication ON |
Service Offering requested with dedication OFF |
Account has NO implicitly dedicated host |
find a new free host and place VM and make the host part of the dedicated host for this account to be used for future requests |
Place VM in a non-dedicated area |
Account has implicitly dedicated host |
Place the vm in implicitly dedicated host. If space is not there find a new free host, make that host part of the dedicated host for this account . |
Place VM in a non-dedicated area |
Note:
Implicitly dedicated Host is the host which is dedicated to an account and have dedicated VMs of same account.
Dedicated VM is created using Service Offering with "isDedicated" enabled.
If Service Offering Flag is OFF, non-dedicated (shared) resources will be used.
API Change
Existing API modification:
Parameter Name |
Description |
Required |
---|---|---|
isdedicated |
if true, Instance will be deployed on the host dedicated to the account |
false |
service_offering table: Introduce a column “isdedicated” in service_offering table. Default value should be 0.
Add a check option: isDedicated in "Add compute offering" window