Skip to end of metadata
Go to start of metadata

API Documentation

For the Abiquo API documentation of this feature, see Abiquo API Resources and the page for this resource AllocationRulesResource.

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:

  • Global rules: apply to all datacenters.
  • Datacenter rules: apply to the selected datacenter

To create a rule, click the add   button. To delete a rule, select the rule and click the delete  button.

Global Rules Management

Global rules affect the allocation in all datacenters. There are two kinds of global rules: load balance, and shared server restriction.

Load Balance Rules

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:

  1. Find a group of candidate machines where the VM can be deployed
  2. Select a single machine in that group to hold the VM.

Load balance rules apply to the second step.

The load balance rule can be either performance or progressive, as described here:

  • PERFORMANCE: This rule makes the scheduler choose a different physical machine for each VM. It uses the machine with the most available resources. If more than one machine has the same resources available, it uses a round-robin algorithm that allocates each VM to a different physical machine.
  • PROGRESSIVE: This rule means that all VMs will be allocated in the same physical machine until it is full. This rule makes the scheduler fill a physical machine, then change to another one. The scheduler begins with the machine with the most available resources.

The default load balance rule is progressive.

Restrict Shared Server Rules

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 Management

Datacenter rules only apply to a specific datacenter and they have higher priority than global rules.

Load Balance 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.

Load Level Rules

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.

Compute load level rules

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:

  • a datacenter (all racks)
  • a rack (all servers on the selected rack)
  • a cluster (for supported hypervisors)
  • a specific server 

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.

  • Load level rules ONLY specify the load level that the scheduler can assign to the virtualization technology. The virtualization technology is responsible for managing the load that is assigned
  • Abiquo DOES NOT recommend the oversubscription of CPU cores or RAM


Storage load level rules

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:

  • a datacenter (all datastore tiers)
  • a tier (all datastores in a tier)
  • a specific datastore.

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.

Use Allocation Rules to Redirect Deployments

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.