watcher.decision_engine.strategy.strategies.workload_balance
Module¶watcher.decision_engine.strategy.strategies.workload_balance.
WorkloadBalance
(config, osc=None)[source]¶Bases: watcher.decision_engine.strategy.strategies.base.WorkloadStabilizationBaseStrategy
[PoC]Workload balance using live migration
Description
It is a migration strategy based on the VM workload of physical servers. It generates solutions to move a workload whenever a server’s CPU or RAM utilization % is higher than the specified threshold. The VM to be moved should make the host close to average workload of all compute nodes.
Requirements
- Hardware: compute node should use the same physical CPUs/RAMs
- Software: Ceilometer component ceilometer-agent-compute running in each compute node, and Ceilometer API can report such telemetry “cpu_util” and “memory.resident” successfully.
- You must have at least 2 physical compute nodes to run this strategy.
Limitations
- This is a proof of concept that is not meant to be used in production
- We cannot forecast how many servers should be migrated. This is the reason why we only plan a single virtual machine migration at a time. So it’s better to use this algorithm with CONTINUOUS audits.
- It assume that live migrations are possible
calculate_used_resource
(node)[source]¶Calculate the used vcpus, memory and disk based on VM flavors
choose_instance_to_migrate
(hosts, avg_workload, workload_cache)[source]¶Pick up an active instance instance to migrate from provided hosts
Parameters: |
|
---|
do_execute
()[source]¶Strategy execution phase
This phase is where you should put the main logic of your strategy.
filter_destination_hosts
(hosts, instance_to_migrate, avg_workload, workload_cache)[source]¶Only return hosts with sufficient available resources
get_config_opts
()[source]¶Defines the configuration options to be associated to this loadable
Returns: | A list of configuration options relative to this Loadable |
---|---|
Return type: | list of oslo_config.cfg.Opt instances |
get_schema
()[source]¶Defines a Schema that the input parameters shall comply to
Returns: | A jsonschema format (mandatory default setting) |
---|---|
Return type: | dict |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.