Child pages
  • Horizontal Autoscaling of Virtual Machines
Skip to end of metadata
Go to start of metadata

Manage scaling groups

Horizontal scaling of VMs enables users to configure an automatic response to changing demands for resources. To scale out, the platform clones the base VM and deploys the clones. To scale in, Abiquo will delete clone machines but it will just undeploy the base machine. Scaling operations are subject to all standard Abiquo constraints, such as privileges and allocation limits.

Scaling notes

  • Limitation: Abiquo does not clone captured VMs, so you will need to create an instance and recreate the VM from the resulting template to use scaling groups
  • 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 use autoscaling do these steps:

  1. Create a base VM, which can be deployed or undeployed
  2. Define a scaling group with rules for scaling the VM
  3. Create an action plan with scaling actions for the VM. Create triggers for the action plan, which are either monitoring alerts for virtual appliances or schedules for planned scaling


Create a scaling group

Before you begin:

  1. Configure the base VM
  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. In virtual appliance view, select the VM, and from the menu on the VM icon, select the Create scaling group option
  2. Enter the scaling parameters and rules
  3. Click Save

 

 

FieldDescription
NameName of the scaling group 
Default cooldownPeriod of time to wait from the start of one scaling operation before allowing another scaling operation
Minimum running virtual machines

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

Maximum running virtual machinesThe maximum running virtual machines that Abiquo must maintain in the scaling group
Keep virtual machines in the same layerSelect this option to maintain virtual machine anti-affinity layers when autoscaling
Disable workflowAdministrators with the privilege to Manage workflow for scaling groups can use this option to disable workflow or enable it as required.
Scaling rulesScaling rules describe how Abiquo will behave when a scaling event is triggered, for example, by an alert or a schedule.

Scaling rules

FieldDescription
Virtual machinesFor a scale out rule, the number of times to clone the base machine and deploy each clone for each scaling step. For a scale in rule, the number of machines to remove from the scaling group (Abiquo will delete clone machines and undeploy the base machine)
CooldownThe cooldown time to wait between scaling operations under this rule
StartDate and time to start the time range when scaling triggers will start a scaling operation under this rule. The time range must be unique and cannot overlap with other rules with the same scaling direction. If there is no time range, then this is a default scaling rule.
EndDate and time that is the end of the time range when scaling triggers will start a scaling operation. The time range must be unique and cannot overlap with other rules with the same scaling direction. If there is no time range, then this is a default scaling rule

When you save the scaling group, Abiquo will mark the VM icon with the scaling group symbol and display the scaling group name. If necessary, Abiquo will create clones of the base machine and deploy them in order 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 machine.

To open the scaling group and check its parameters, click the scaling group symbol in the top right-hand corner of the VM icon.

Triggering autoscaling

To trigger autoscaling operations, create an action plan for the VM with the scaling group, and then create triggers to run the action plan. See Manage action plans and triggersWhen scaling, the platform will search for a rule that is valid for the specific time range, or for a default rule. It will create or delete/undeploy the number of VMs in the rule, then wait for the cooldown period before accepting another scaling request. 

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. Chef recipes, backups, cloud-init, variables, and so on
    5. Metrics. The group of metrics from clone machines and the base machine (if it is deployed) can activate alarms in the base machine, even if it is not deployed
    6. Exception – Alarms: the scaling group has only one set of alarms in the base machine

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 the scaling group

Maintenance mode temporarily disables autoscaling and enables you to make changes to your VMs (deploy, undeploy, delete etc.) and edit the scaling group. Note that you cannot delete the base VM without deleting the scaling group. Also you cannot create alarms for cloned VMs that are part of a scaling group, because the scaling group alarms are in the base VM. When you leave maintenance mode, Abiquo will apply your modifications to the scaling group, e.g. adding new rules. Then Abiquo will adjust the number of VMs in the group to within the minimum and maximum size range.

  • To put the scaling group in maintenance mode, click the "cog" maintenance button or trigger an action plan with the action "Scaling group: start maintenance mode"
  • To leave maintenance mode, click the "cog" maintenance button again or trigger an action plan with the action "Scaling group: end maintenance mode".

Delete a scaling group

When you delete a scaling group, Abiquo will place all the VMs in the virtual appliance as regular 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.

Manage action plans and triggers

To enable more control over cloud operations, users can create virtual machine action plans to run tasks for virtual machines and Docker workloads. Virtual machine action plans are for both private and public cloud and are an important autoscaling functionality on the platform. A VM can have mutliple action plans

In the user interface, in the new Virtual appliances view on the Control tab, users can manage Action plans and Triggers that run the action plans.

Create an action plan

Before you create an action plan, first create a virtual machine. To create an action plan:

  1. Open the Control tab of the virtual appliance and click the + button 
  2. Enter the action plan details
  3. Add actions, by clicking the + Add button, selecting the action type from the pulldown list and entering the parameters as required. Consider the following constraints on actions
    1. Maintenance block: You can create one complete maintenance block (start maintenance, action(s), and stop maintenance) and the maintenance block cannot contain any scaling actions
    2. Scale in and/or scale out actions: You can only scale in and/or scale out at the end of the action plan but you can create the scaling action(s) in any order (e.g. scale in first, only scale in)
    3. Email actions: You can perform an email action at any time, including after scaling actions
    4. Platform contstraints: For example, to create an instance, the VM must be deployed and powered off 
    5. Hypervisor constraints: For example, when using hot reconfigure on ESXi, you cannot decrement CPU or RAM 

Put the actions in run order using the arrow buttons. Delete actions as required using the trash can button to the left of the action name.

 Field

Description

Virtual machine

The name of the virtual machine

Name

The name of the action plan

DescriptionA description of the action plan
Actions

See Actions list

Action parameters

See Action parameters table

Actions list

  • Reset
  • Power on
  • Power off
  • Shutdown
  • Deploy
  • Undeploy
  • Increase CPU
  • Decrease CPU
  • Increase RAM
  • Decrease RAM
  • Instance
  • Send email
  • Scaling group: Start maintenance
  • Scaling group: End maintenance
  • Scaling group: Scale out
  • Scaling group: Scale in

 

Action parameters table

ActionParameters
Increase CPUvCPUs
Decrease CPUvCPUs. Not supported by hot-reconfigure. Check OS compatibility
Increase RAM
  • RAM
  • RAM unit of GB or MB
Decrease RAM
  • RAM. Not supported by hot-reconfigure. Check OS compatibility
  • RAM unit of GB or MB 
Instance
  • Name for Instance (clone) template. The platform will append the date to the name supplied
  • All disks or selected disks
Send email
  • Subject
  • Body
  • Emails (email addresses). Click the grey plus + button to add an email address
  • EmailsCc (copy to these addresses)

To run the action plan automatically, go to the Triggers tab and create an alert or schedule trigger. 

Run an action plan now

When you have added some actions and saved the action plan, you can run the action plan immediately to test it. Edit the action plan and click the Execute action plan button, which is beside the + add button to create a new action. 

 Click here to show/hide the screenshot

Abiquo recommends that you run an action plan manually to test it before you create a trigger to run it automatically.

Create a trigger

Abiquo supports two types of triggers to run action plans: Alerts and Schedules. 

To run your action plan based on monitoring metrics, you can select an existing virtual appliance alert to trigger an Action plan. Click the + Add button and select the Alert. For details about creating an alert, see Manage Monitoring Alerts

To run your action plan automatically at selected dates and times, create a schedule trigger.

  • To run the action plan at intervals of a fixed number of seconds within a set timeframe:
    1. Select an Interval schedule
    2. Enter the following parameters
      1. Interval seconds: the number of seconds from when the action plan excution starts to when it will start again
      2. Repeat count: the number of times to run the action plan. A value of 0 means repeat forever
      3. Start time: date and time
      4. End time: date and time
    After you create an interval schedule, the platform will display the execution count of how many times the action plan has run. If the repeat count is 0, the execution count is null
  • To run an action plan as specified using a Cron-type schedule, select an Advanced schedule and use the calendar selector.

Delete an action plan

If you delete an action plan, Abiquo will also delete the schedule associated with that action plan.