Monitoring and Scaling VMs
Basic control and scaling concepts
Concept | Description |
---|---|
Metric | A built-in metric that is provided by a hypervisor or provider (e.g. CPU usage) or a custom metric that the user creates and populates using API calls |
Alarm | An alarm activates when a metric passes a certain threshold. If you imagine a dashboard for your metrics, alarms are like red lights that light up when conditions change, for example, when there is a problem. See Manage cloud alarms and Infrastructure Alarms |
Alert | An alert enables you to configure notifications or actions from alarms. Alerts are like a worker monitoring a group of alarms; when all the lights for the group are lit up, the alert is activated. Alerts can trigger action plans. |
Action plan | A sequence of actions to perform on entities on the platform, such as VMs or scaling groups. An action plan is run by a trigger. |
Trigger | A trigger is an alert or a schedule that will run the action plan, for example, during times of increased demand. |
Scaling group | For horizontal autoscaling, create a scaling group for a VM with rules to define how the platform should scale it out. You can then include scaling operations in an action plan. |
Vertical scaling | Vertical scaling means scaling up, adding more resources to an existing VM, for example, boosting your CPU and or RAM capacity. |
Horizontal scaling | Horizontal scaling means scaling out, deploying more VMs when you need more resources. |
Monitor virtual appliances
The monitoring system displays VM metrics and the user can configure alerts to trigger actions if certain conditions are met within virtual appliances. If your virtual datacenter supports monitoring, but you don't see any metrics for your virtual appliance, you may need to edit your VMs and fetch metrics on the VM monitoring tab. See VM monitoring and metrics. You can also push custom metrics to your virtual appliances, for example, using collectd. See Use collectd plugin for custom metrics.
Privilege: Access virtual machine metrics
After you configure metrics, you can configure the display of metrics at the virtual appliance level.
To configure the refresh interval
- Select the Refresh data every checkbox and enter a number of minutes.
Choose the metrics you wish to display, and filter by metric statistics.
To obtain the latest data from the Abiquo API, click the round arrow refresh button.
When you are fetching metrics, you can configure alarms on these metrics. See Manage cloud alarms
Manage scaling groups
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.
Screenshot: A scaling group with VMs deployed automatically.
- Limitations:
- Autoscaling does not clone captured VMs, so to use scaling groups with a captured VM, create an instance and recreate the VM. Create instances to save VM disks to templates
- VApp specs do not support scaling groups. See What do 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
The platform enables you to automatically scale out (add more VMs) or scale up (add more resources to existing VMs).
Privilege: Manage scaling groups, Manage workflow for scaling groups
To use autoscaling do these steps:
- Create a base VM, which can be deployed or undeployed
- Configure the VM and enable metrics
- Define a scaling group with rules for scaling the VM.
The checkbox to automatically create a scaling action, will create the following automatically:- Standard alarms and alerts for the selected metrics
- Action plans with scaling actions for the VM and triggers for the action plans, which are monitoring alerts
Related pages:
Define a scaling group
Before you begin:
- Configure the base VM that will be scaled
- 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:
- Go to Virtual datacenters → Virtual appliances
- On the VM icon, from the options menu, select Define scaling group
- Enter the scaling parameters and rules
- Click Save
For more details see GUI Define scaling group
When you save the scaling group, Abiquo will mark the VM icon with the scaling group symbol and display the scaling group name.
- 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 VM.
To open the scaling group and check its parameters, click the scaling group symbol at the top of the VM icon.
Trigger autoscaling
Before you begin:
- Create a VM and a scaling group for the VM. See Define a scaling group
- 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:
- Create an action plan with a scaling action for the VM with the scaling group. See Create an action plan to automate VM actions
- Create triggers to run the action plan. See Create a trigger for an action plan
When scaling, the platform will search for a scaling 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.
How the platform scales out a VM
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:
- 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 same type (e.g. private network)
- Assignment of firewall policies and attachment to load balancers
- Chef recipes, backups, cloud-init, variables, and so on
- 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
- 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, the platform will apply your modifications to the scaling group, e.g. adding new rules. Then the platform 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:
- Go to Virtual datacenters → Virtual appliances → select VM
- At the bottom of the VM icon, click the cog maintenance symbol at the bottom of the VM icon
OR if the scaling group is open, click the spanner maintenance symbol in the top right corner
To leave maintenance mode
- Click a maintenance button
To automatically manage maintenance mode
- Trigger action 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.
Move a scaling group to another virtual appliance in the same virtual datacenter
To move a scaling group to another virtual appliance in the same virtual datacenter:
- Put the scaling group in maintenance mode
- Click the Move button
- Select the new virtual appliance
Restrict a scaling group
To move a scaling group to a restricted virtual appliance, do these steps:
- Click the cog or wrench maintenance symbol to put the scaling group into maintenance mode
- Click the cross arrows move button
- Select the checkbox to Move to a restricted virtual appliance, or
Select a restricted virtual appliance, or
Create a new VApp and select the Restrict virtual appliance checkbox
Delete a scaling group
When you delete a scaling group, the platform 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:
- Go to Virtual datacenters → Virtual appliances
- Open the scaling group
- Click the wrench maintenance button to put the scaling group into maintenance mode
- Click the trash can delete button
Manage scaling groups with the API
API Documentation
For the Abiquo API documentation of this feature, see Abiquo API Resources and the page for this resource ScalingGroupsResource.
Pages related to monitoring and scaling groups
Copyright © 2006-2022, Abiquo Holdings SL. All rights reserved