diff --git a/doc/source/strategies/uniform_airflow.rst b/doc/source/strategies/uniform_airflow.rst new file mode 100644 index 000000000..1801e85dc --- /dev/null +++ b/doc/source/strategies/uniform_airflow.rst @@ -0,0 +1,107 @@ +================================== +Uniform Airflow Migration Strategy +================================== + +Synopsis +-------- + +**display name**: ``uniform_airflow`` + +**goal**: ``airflow_optimization`` + +.. watcher-term:: watcher.decision_engine.strategy.strategies.uniform_airflow + +Requirements +------------ + +This strategy has a dependency on the server having Intel's Power +Node Manager 3.0 or later enabled. + +Metrics +******* + +The *uniform_airflow* strategy requires the following metrics: + +================================== ============ ======= ======= +metric service name plugins comment +================================== ============ ======= ======= +``hardware.ipmi.node.airflow`` ceilometer_ IPMI +``hardware.ipmi.node.temperature`` ceilometer_ IPMI +``hardware.ipmi.node.power`` ceilometer_ IPMI +================================== ============ ======= ======= + +.. _ceilometer: http://docs.openstack.org/admin-guide/telemetry-measurements.html#ipmi-based-meters + +Cluster data model +****************** + +Default Watcher's Compute cluster data model: + + .. watcher-term:: watcher.decision_engine.model.collector.nova.NovaClusterDataModelCollector + +Actions +******* + +Default Watcher's actions: + + + .. list-table:: + :widths: 30 30 + :header-rows: 1 + + * - action + - description + * - ``migration`` + - .. watcher-term:: watcher.applier.actions.migration.Migrate + +Planner +******* + +Default Watcher's planner: + + .. watcher-term:: watcher.decision_engine.planner.default.DefaultPlanner + +Configuration +------------- + +Strategy parameters are: + +====================== ====== ============= =========================== +parameter type default Value description +====================== ====== ============= =========================== +``threshold_airflow`` Number 400.0 Airflow threshold for + migration Unit is 0.1CFM +``threshold_inlet_t`` Number 28.0 Inlet temperature threshold + for migration decision +``threshold_power`` Number 350.0 System power threshold for + migration decision +``period`` Number 300 Aggregate time period of + ceilometer +====================== ====== ============= =========================== + +Efficacy Indicator +------------------ + +None + +Algorithm +--------- + +For more information on the Uniform Airflow Migration Strategy please refer to: +https://specs.openstack.org/openstack/watcher-specs/specs/newton/implemented/uniform-airflow-migration-strategy.html + +How to use it ? +--------------- + +.. code-block:: shell + + $ openstack optimize audittemplate create \ + at1 airflow_optimization --strategy uniform_airflow + + $ openstack optimize audit create -a at1 -p threshold_airflow=410 \ + -p threshold_inlet_t=29.0 -p threshold_power=355.0 -p period=310 + +External Links +-------------- + +- `Intel Power Node Manager 3.0 `_ diff --git a/watcher/decision_engine/strategy/strategies/uniform_airflow.py b/watcher/decision_engine/strategy/strategies/uniform_airflow.py index 4a67bee1f..767b1d0cf 100644 --- a/watcher/decision_engine/strategy/strategies/uniform_airflow.py +++ b/watcher/decision_engine/strategy/strategies/uniform_airflow.py @@ -16,6 +16,33 @@ # See the License for the specific language governing permissions and # limitations under the License. # +""" +[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. +""" + + from oslo_log import log from watcher._i18n import _, _LE, _LI, _LW