The watcher.decision_engine.strategy.strategies.uniform_airflow Module

[PoC]Uniform Airflow using live migration

Description

It is a migration strategy based on the airflow of physical servers. It generates solutions to move VM whenever a server’s airflow is higher than the specified threshold.

Requirements

  • Hardware: compute node with NodeManager 3.0 support
  • Software: Ceilometer component ceilometer-agent-compute running in each compute node, and Ceilometer API can report such telemetry “airflow, system power, inlet temperature” 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 assumes that live migrations are possible.
class watcher.decision_engine.strategy.strategies.uniform_airflow.UniformAirflow(config, osc=None)[source]

Bases: watcher.decision_engine.strategy.strategies.base.BaseStrategy

[PoC]Uniform Airflow using live migration

Description

It is a migration strategy based on the airflow of physical servers. It generates solutions to move VM whenever a server’s airflow is higher than the specified threshold.

Requirements

  • Hardware: compute node with NodeManager 3.0 support
  • Software: Ceilometer component ceilometer-agent-compute running in each compute node, and Ceilometer API can report such telemetry “airflow, system power, inlet temperature” 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 assumes that live migrations are possible.
calculate_used_resource(node)[source]

Compute the used vcpus, memory and disk based on instance flavors

choose_instance_to_migrate(hosts)[source]

Pick up an active instance instance to migrate from provided hosts

Parameters:hosts – the array of dict which contains node object
do_execute()[source]
filter_destination_hosts(hosts, instances_to_migrate)[source]

Find instance and host with sufficient available resources

classmethod get_display_name()[source]
classmethod get_goal_name()[source]
classmethod get_name()[source]
classmethod get_schema()[source]
classmethod get_translatable_display_name()[source]
group_hosts_by_airflow()[source]

Group hosts based on airflow meters

post_execute()[source]
pre_execute()[source]