The watcher.decision_engine.strategy.strategies.uniform_airflow Module

The watcher.decision_engine.strategy.strategies.uniform_airflow Module

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]

Strategy execution phase

This phase is where you should put the main logic of your strategy.

filter_destination_hosts(hosts, instances_to_migrate)[source]

Find instance and host with sufficient available resources

get_available_compute_nodes()[source]
classmethod 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
classmethod get_display_name()[source]

The goal display name for the strategy

classmethod get_goal_name()[source]

The goal name the strategy achieves

classmethod get_name()[source]

The name of the strategy

classmethod get_schema()[source]

Defines a Schema that the input parameters shall comply to

Returns:A jsonschema format (mandatory default setting)
Return type:dict
classmethod get_translatable_display_name()[source]

The translatable msgid of the strategy

group_hosts_by_airflow()[source]

Group hosts based on airflow meters

post_execute()[source]

Post-execution phase

This can be used to compute the global efficacy

pre_execute()[source]

Pre-execution phase

This can be used to fetch some pre-requisites or data.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.