You can set allocation rules to control the scheduling of resources in your platform. However, your virtualization technology is responsible for managing the use of these resources.
To manage datacenters' allocation rules, click the Infrastructure button in the top menu bar. Check that you are on the Private tab, select a datacenter in the list, and select the Details view. Then click the Allocation Rules tab.
To manage the rules that will define the VM allocation policies, you will need the Manage allocation rules privilege. You can configure rules for load balance, load level, enterprise exclusion, and fit policies, to ensure that VMs will be allocated in the desired physical machines. For details of the allocation algorithm, see the VM Allocation page.
The allocation rule screen is divided into two sections:
To create a rule, click the addbutton. To delete a rule, select the rule and click the delete button.
Global rules affect the allocation in all datacenters. There are two kinds of global rules: load balance, and shared server restriction.
You can create one global load balance rule for the platform. The load balance rule determines how Abiquo fills the cloud nodes with VMs.
To allocate VMs, the Abiquo scheduler does two main steps:
Load balance rules apply to the second step.
The load balance rule can be either performance or progressive, as described here:
The default load balance rule is progressive.
These rules allow you to customize enterprise exclusion rules because tenants may want to ensure that their appliances will not be deployed on the same physical machine as the appliances of another tenant. The Restrict shared server rules configure enterprise exclusion rules, to guarantee that all appliances of a tenant will be properly isolated.
To add a new Restrict shared server rule, select the two enterprises that must not share a physical server and add the rule.
Note that you can also restrict servers by editing an enterprise in Users view.
Number of restrict shared server rules
There is no limit to the amount of rules that can be created. The cloud admin must configure the rules properly to customize VM deployments.
Datacenter rules only apply to a specific datacenter and they have higher priority than global rules.
For each datacenter, you can define one datacenter load balance rule. This rule will have priority over the global load balance rule in the datacenter.
To define a datacenter load balance rule, select the datacenter in the list on the left, then at the top of the Datacenter rule pane on the right hand side of the screen, click the + button. As for the global rules, you can select from Progressive or Performance.
To specify the percentage loads that can be applied to physical machines or datastores, create load level rules for your datacenters. It is up to the cloud administrator to configure the rules properly to customize VM deployments but you can only add one rule for each element at each level.
To specify the CPU and RAM load on machines, use compute load level rules. The scheduler will use these rules to help determine if a physical machine is a candidate to hold a VM.
You can create load level rules for the following elements:
You can only add one rule for an element at each level, but more than one rule may apply. The priority order of rules is any cluster rule first (if it is present), then the other rules from the most specific rule to the least specific rule. A cluster rule affects all hosts in a cluster irrespective of their state, for example, it applies to hosts that are powered off.
To create a rule for the sum of all resources in a group (datacenters, racks, or clusters), you can select the Aggregate checkbox for the rule. This means that the platform will sum all of the resources in the group and calculate the load level percentage of the total in order to determine the available resources for the group.
To configure storage allocation based on datastore load, create storage load level rules. The scheduler uses these rules to decide if the datastore (and its physical machine) is a candidate to hold a VM. You can set storage load level rules with values from 0 to 100%. You can create rules for the following elements:
If there is more than one rule that applies to a datastore, the most specific rule takes precedence over more general rules. For example, consider the scenario where there is a datacenter rule, a tier rule, and a datastore rule, that all apply to the same datastore. In this case, Abiquo will use the datastore rule because it is the most specific.
The example shows a load level rule that applies only to a specific datastore.
To redirect deployments, you can use allocation rules. For example, if you wish to gradually migrate users to a new empty hypervisor, you can set load balance rules to performance. This will ensure that new deployments will go to the new machine.
Later, if you need to stop VMs from deploying to a certain physical machine, you can set load level rules to 1% for RAM and CPU. This will ensure that users cannot deploy more VMs to this physical machine. However, it is also important to consider that users will not be able to reconfigure the VMs that were already deployed there.