Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Introduction to autoscaling

Abiquo 4.0 introduces horizontal autoscaling of virtual machines through scaling groups created for virtual machines. When a scaling event is triggered, Abiquo will follow the scaling rules of the scaling group. To scale out, it will clone the base virtual machine (with the template disk content) and deploy, and to scale in, it will delete clones or undeploy the base virtual machine.

Div
classprivileg

 

To use autoscaling do these steps:

  1. Create a base virtual machine
  2. Define a scaling group for a base virtual machine, including scaling rules
  3. Create an action plan for the virtual machine with scaling actions
  4. Create scaling triggers, which are either monitoring alerts for virtual appliances or schedules for planned scaling
Info
titleAutoscaling limitation

In version 4.0, Abiquo does not clone captured virtual machines, so you will need to create an instance and recreate the virtual machine from the resulting template to use autoscaling

Screenshot: Create scaling group

Image Removed

How does Abiquo clone the base virtual machine

Abiquo clones the base virtual machine and deploys the clones. Abiquo will not deploy other virtual machines in the scaling group if they are not deployed.

  • To clone the base virtual machine, Abiquo will do the following steps
    • Create disks using the following:
      • Copies of content of disks from the VM template
      • Empty disks or volumes for each additional disk used in the VM
      • Disk controllers used in the VM
    • Apply ALL configuration used in the VM, for example:
      • CPU and RAM
      • Network connections of the type (e.g. private network)
      • Assign firewall policies and attach to load balancers
      • Chef recipes, backups, cloud-init, variables, and so on
      • Metrics. The group of metrics from clone machines and the base machine (if it is deployed) can activate alarms in the base machine
    • Exception:
      • Alarms for a scaling group are only configured in the base machine

Does the state of the base virtual machine make a difference

If the base virtual machine is not deployed, Abiquo will not deploy it. In order to add another virtual machine, Abiquo will clone the base machine and deploy the clone. If the base machine is deployed, Abiquo will count it as one of the active machines in the scaling group. As part of a scale in operation, Abiquo will delete clone machines but it will only undeploy the base machine. Note that if the base machine were deleted directly on the hypervisor, this would destroy the scaling group, whereas if the base machine is undeployed, the scaling group is not vulnerable to interference at the hypervisor level. 

How do I prepare for autoscaling

Ensure that you have enough resources in their virtual datacenter to deploy up to the maximum number of cloned virtual machines. In particular, obtain enough available IP addresses of the same category to assign to clones, for example, by reserving public IP addresses, or by obtaining IP addresses in external networks, or creating private networks.

Create a scaling group

Abiquo supports horizontal autoscaling with virtual machine scaling groups.

Before you begin:

  • Create and configure a base virtual machine. When a scaling event is triggered, Abiquo will clone this virtual machine according to your scaling rules. The base virtual machine can be deployed or undeployed, as appropriate
    • Abiquo may undeploy the base machine but it will not delete it

To create a scaling group:

  1. In virtual appliance view, select the virtual machine, and from the menu on the virtual machine icon, select the Create scaling group option
  2. Enter the autoscaling parameters and rules
  3. Click Save

Include PageGUI Create scaling groupGUI Create scaling group

Panel
bgColor#FFFAE6

This page describes basic scaling group concepts and actions.
For more topics about scaling groups, see Manage scaling groups advanced.

Introduction to autoscaling

To configure an automatic response to changing demands for resources, you can scale out VMs or scale them in, which is also called horizontal autoscaling. To scale out, the platform clones the base VM and deploys the clones. To scale in, the platform will delete clone VMs and undeploy the base VM. Scaling operations are subject to all standard platform constraints, such as privileges and allocation limits.

...

  • Limitations:

    • Autoscaling does not clone captured VMs, so to use scaling groups with a captured VM, create an instance and recreate the VM. Save VM disks to create an instance template

    • VApp specs do not support scaling groups. See What do virtual appliance specs save and create

    • Scaling groups have aggregate alarms that are associated with the base VM. This means that you can push custom metrics for clone VMs but you cannot create alarms for cloned VMs that are part of a scaling group. 

  • State of base VM: A scaling group with a deployed base VM would be destroyed if the base VM were deleted directly on the hypervisor. In contrast, a scaling group with an undeployed base VM is not vulnerable to interference at the hypervisor level

To stop autoscaling, put the scaling group into maintenance mode.

...

Automatically scale VMs

The platform enables you to automatically scale out (add more VMs) or scale up (add more resources to existing VMs).

Panel

Privileges: Manage scaling groups, Manage workflow for scaling groups

To use autoscaling do these steps:

  1. Create a base VM, which can be deployed or undeployed

  2. Configure the VM and enable metrics

  3. Define a scaling group with rules for scaling the VM.
    The checkbox to automatically create a scaling action, will create the following automatically:

    1. Standard alarms and alerts for the selected metrics

    2. Action plans with scaling actions for the VM and triggers for the action plans, which are monitoring alerts

    You can customize the elements the platform creates, or you can create your own configuration.

...

Related pages:

...

Define a scaling group

Before you begin:

  1. Configure the base VM that will be scaled

  2. Ensure that you have enough resources in your virtual datacenter to deploy up to the maximum number of cloned VMs, especially IP addresses

To create a scaling group:

  1. Go to Virtual datacenters → Virtual appliances

  2. On the VM icon, from the options menu, select Define scaling group

  3. Enter the scaling parameters

    Define a scaling group with general informationImage Added
    1. For the Default cooldown, enter the period of time to wait from the start of one scaling operation before allowing another scaling operation

    2. For the Minimum running virtual machines that Abiquo must maintain in the scaling group, the value must be greater than or equal to zero, where zero means that the base machine is not deployed

    3. The option to Keep virtual machines in the same layer can maintain VM anti-affinity layers when autoscaling

    4. Administrators with the privilege to Manage workflow for scaling groups can Disable workflow or enable it as required

    5. Optionally, select Create in maintenance mode to delay the start of autoscaling, and the automatic deployment of VMs to meet the minimum size

    6. Select the option to Create autoscaling action to create basic operations to scale in and scale out, with triggers based on metrics and alarm conditions.

  4. Create scaling rules

    Define scaling group and create scaling rulesImage Added
    1. For Scale out rules, enter the number of VMs to Add. This isthe number of times to clone the base VM and deploy each clone for each scaling step

    2. For Scale in rules, enter the number of VMs to Remove. Abiquo will delete clone machines and undeploy the base machine

    3. If there is no time range, then this is a default scaling rule. A time range must be unique and cannot overlap with other rules with the same scaling direction. 

  5. Click Save

When you save the scaling group, Abiquo will mark the virtual machine VM icon with the scaling group symbol and display the scaling group name. If necessary

  • When the scaling group leaves maintenance mode, Abiquo will create clones of the base

...

  • VM and deploy them

...

  • to reach the minimum size. 

  • The number in the bottom right-hand corner of the icon is the number of running

...

  • VMs in the scaling group, including the base

...

Image Removed

 

Create triggers for autoscaling

...

  • VM.

To open the scaling group and check its parameters, click the scaling group symbol at the top of the VM icon.

...

Configure automatic scaling actions

To configure automatic scaling actions:

  1. When you define a scaling group, select Create autoscaling action and Save the scaling group

  2. In the dialog, select a Metric to control an autoscaling action

    Create autoscaling action (part 1)Image Added
  3. To configure more options, including the thresholds for scaling in and scaling out, click Show more

    Create autoscaling action (part 2)Image Added
  4. To add this action, click Add

  5. Add more actions as required 

The platform will automatically create the alarms, alerts, and action plan to automatically scale in or out according to your thresholds.

...

Trigger autoscaling

Before you begin:

  1. Create a VM and a scaling group for the VM. See Manage scaling groups

    1. If you create an automatic scaling action, then the VM metrics will trigger autoscaling when they cross the thresholds set for the actions

To enable autoscaling operations to run:

  1. Create an action plan with a scaling action for the VM with the scaling group. See Manage action plans

  2. Create triggers to run the action plan.

...

  1.  See Manage action plans

...

What happens during scaling?

When an autoscaling event is triggered, Abiquo When scaling, the platform will search for a scaling rule that is valid for the specific time range, or for a default rule. Abiquo It will create or delete/undeploy the number of virtual machines for the scaling operationVMs in the rule, then wait for the cooldown period before accepting another scaling request.

Scaling operations are managed by action plans and subject to all standard Abiquo constraints, such as privileges and allocation limits.

To scale in,  Abiquo deletes and undeploys virtual machines without waiting for user confirmation to force the undeploy of virtual machines with disks that are not stored in the Apps library (ISO configuration drive or additional hard disk).  Abiquo currently selects the virtual machines to delete or undeploy using first in, first out (FIFO), but in future releases the administrator will be able to select the scale in policy, from last in, first out (LIFO) or FIFO.  

To scale out, Abiquo will always create new clones instead of deploying virtual machines that are undeployed, for example, machines that were manually undeployed during maintenance.

What are the constraints on VMs in a scaling group

When a virtual machine is part of a scaling group, Abiquo does not allow you to perform deploy or configuration operations on the virtual machine, unless you put the scaling group into maintenance mode. 

You cannot create alarms for cloned virtual machines that are part of a scaling group.  This is because Abiquo will automatically apply the metrics from the base machine, that will be considered in the activation of the alarms from the base machine.

How do metrics and alarms work with scaling groups?

Abiquo will automatically apply the same metrics configuration from the base machine to the clone machines. And Abiquo will automatically consider the metrics from all of the virtual machines as a group, and use these metrics to determine if the alarms in the base machine should activate. This means that even if the base machine is undeployed, an alarm in the base machine can still activate, based on the performance of the clone group.

What is maintenance mode

Maintenance mode  temporarily disables autoscaling and enables you to make changes to your virtual machines, for example, to manually deploy or undeploy machines, or to edit the scaling group itself. Remember that if you manually undeploy virtual machines, Abiquo will not reuse them. Abiquo will always clone the base virtual machine to expand the scaling group.

...

Info

Autoscaling will not run if the scaling group is in maintenance mode.

...

How the platform scales VMs

To scale out, the platform does not deploy VMs that are undeployed in the scaling group. To clone the base VM, the platform will do the following:

  1. Create disks using the following:

    1. Copies of content of disks from the VM template

    2. Empty disks or volumes for each additional disk used in the VM

    3. Disk controllers used in the VM

  2. Apply ALL configuration used in the VM, for example:

    1. CPU and RAM

    2. Network connections of the same type (e.g. private network)

    3. Assignment of firewall policies and attachment to load balancers

    4. Backups, startup script, cloud-init, variables, and so on

    5. Metrics. The group of metrics from clone VMs and the base VM (if it is deployed) can activate alarms in the base VM, even if it is not deployed

    6. Exception – Alarms: the scaling group has only one set of alarms in the base VM

To scale in,  Abiquo currently selects the VMs to delete or undeploy using first in, first out (FIFO). The platform deletes and undeploys VMs without requesting user confirmation when there are disks that are not stored in the Apps library (ISO configuration drive or additional hard disk). 

...

Perform maintenance on a scaling group

To make changes to your VMs in a scaling group (manually deploy, undeploy, delete, etc.) and edit the scaling group, put it into maintenance mode, which will disable autoscaling

When you leave maintenance mode, Abiquo the platform will apply your modifications to the scaling group, e.g. adding new rules. Then Abiquo the platform will adjust the number of virtual machines VMs in the group to within the minimum and maximum size range.

Perform maintenance on the scaling group

To put the scaling group in maintenance mode:

  • Click the "cog" maintenance button
  • Trigger an action plan with the action "Scaling group: start maintenance mode"

You can now make changes to the scaling group:

  • Open the scaling group
  • Edit the scaling group, e.g. add new rules
  • Reconfigure, deploy or undeploy the base machine or clone machines
  • Delete clone machines

...

  1. Go to Virtual datacenters → Virtual appliances → select VM

  2. At the bottom of the VM icon, click the cog maintenance symbol at the bottom of the VM icon

    VM icon with cog maintenance symbol for scaling groupImage Added

    OR if the scaling group is open, click the spanner maintenance symbol in the top right corner

    Scaling group with spanner maintenance symbolImage Added

To leave maintenance mode:

  1. Click

...

  1. a maintenance button

...

To automatically manage maintenance mode

  1. Trigger

...

  1. action

...

  1. plans with the action "Scaling group: start maintenance mode" or "Scaling group: end maintenance mode".

To delete the base VM, you must delete the scaling group first. 

...

Delete a scaling group

When you delete a scaling group, Abiquo will not destroy the virtual machines. It the platform will place all the virtual machines VMs in the virtual appliance as regular virtual machines VMs and the scaling group constraints will no longer exist. 

To delete a scaling group, first put it into maintenance mode, then click the delete button.scaling group:

  1. Go to Virtual datacenters → Virtual appliances

  2. Open the scaling group

  3. Click the wrench maintenance button to put the scaling group into maintenance mode

  4. Click the trash can delete button