Nextop Load Balancer
The uniqueness of AirCloud cluster architecture consists in maintaining a consistent state of all servers of this cluster necessary and sufficient to run any of the virtual machines (VMs) of this cluster. This architectural solution allows to increase the number of potential VM arrangements within the cluster and achieve maximum economic efficiency in the use of computing resources.
According to our experiments, a cluster using a load balancer accommodated more VMs up to 40% more than a cluster without a load balancer.
Computational resource weights
To make the VM balancing strategy adaptive, weighting factors on CPU and RAM were introduced (a weighting factor on storage will be added in future releases - by the end of 2023). The sum of the weighting factors is always equal to one.
Setting weighting factors allows you to prioritize the corresponding compute resource and adapt the balancing strategy to the current state of the cluster.
Weighting factors are allowed to be changed during cluster operation, they are global and are not part of balancing profiles. The values of weighting factors cannot be less than 0.1 and more than 0.9.
Balancing profiles and their boundary values, balancing schedule
The user can customize standard and add their own balancing profiles with custom call schedule and their own settings.
Key load balancing profile settings include:
Balancing Mode
Maximum performance - this mode maximizes the performance of the cluster VMs.
Maximum density - in this mode, the maximum density of cluster VMs is achieved in order to free some servers, reduce their power consumption, up to the point of putting the server into hibernation mode.
Threshold values
Minimum - when the current CPU/RAM load falls below the minimum threshold in the mode:
maximum performance, the balancer tries to refill the server with VMs, and in the absence of such a possibility, releases the server completely;
maximum density balancer tries to free the current server from VMs at any cost within the maximum thresholds of other servers.
Maximum - when the current CPU/RAM load exceeds the maximum threshold in both modes, the balancer tries to get rid of the maximum threshold value, and in the absence of such an opportunity notifies the administrator about the need to add servers to the cluster.
Balancing schedule, which allows for maximum flexibility in setting the call schedule of a customized balancing profile.
Cluster balancing strategies
The solution architecture includes 2 standard load balancing strategies (profiles):
Regular
Critical
The critical load profile thresholds cannot be stricter than the regular profile thresholds.
In the context of a classic virtual workstation balancing scenario, balancing with a critical profile during the workday and with a regular one outside the workday, e.g. at night, is considered.
As a reminder, the administrator can add their own balancing profiles, but the critical and regular profiles should always be present.
It is not recommended to combine different balancing modes (maximum performance and density) in the critical and regular profiles, as they contradict each other. Such a combination may lead to a large number of live migrations in the cluster.
Optimizing the number and timing of live migrations in load balancing
In addition to balancing the cluster VMs, the load balancer's tasks include minimizing the number of live migrations of VMs in the cluster. This is accomplished by the load balancer determining the correct placement of VMs when they are powered on, and balancing VMs that are in sleep mode first before they are started. In addition, the load balancer evaluates the used RAM size and current CPU consumption, migrating first those VMs that have lower RAM size and CPU consumption.
Within the load balancer is integrated a system for predicting the migration time of VMs based on the above mentioned parameters, allowing to perform the maximum number of migrations in a limited time period and minimize the time of each migration, thus delivering the best user experience during migrations.