Add doc clarifications for Zone Migration

Adds documation clarifications on how the
strategy and associated parameters as used.

Closes-Bug: #2112480
Change-Id: Id42c280fc5744bebb01d50b52b834e5b3b76af73
This commit is contained in:
Ronelle Landy
2025-06-05 14:38:39 -04:00
parent 76de167171
commit de9eb2cd80

View File

@@ -11,6 +11,13 @@ Synopsis
.. watcher-term:: watcher.decision_engine.strategy.strategies.zone_migration.ZoneMigration .. watcher-term:: watcher.decision_engine.strategy.strategies.zone_migration.ZoneMigration
.. note::
The term ``Zone`` in the strategy name is not a reference to
`Openstack availability zones <https://docs.openstack.org/nova/latest/admin/availability-zones.html>`_
but rather a user-defined set of Compute nodes and storage pools.
Currently, migrations across actual availability zones is not fully tested
and might not work in all cluster configurations.
Requirements Requirements
------------ ------------
@@ -59,66 +66,80 @@ Configuration
Strategy parameters are: Strategy parameters are:
======================== ======== ============= ============================== ======================== ======== ======== ========= ==========================
parameter type default Value description parameter type default required description
======================== ======== ============= ============================== ======================== ======== ======== ========= ==========================
``compute_nodes`` array None Compute nodes to migrate. ``compute_nodes`` array None Optional Compute nodes to migrate.
``storage_pools`` array None Storage pools to migrate. ``storage_pools`` array None Optional Storage pools to migrate.
``parallel_total`` integer 6 The number of actions to be ``parallel_total`` integer 6 Optional The number of actions to
run in parallel in total. be run in parallel in
``parallel_per_node`` integer 2 The number of actions to be total.
run in parallel per compute ``parallel_per_node`` integer 2 Optional The number of actions to
node. be run in parallel per
``parallel_per_pool`` integer 2 The number of actions to be compute node in one
run in parallel per storage action plan.
pool. ``parallel_per_pool`` integer 2 Optional The number of actions to
``priority`` object None List prioritizes instances be run in parallel per
and volumes. storage pool.
``with_attached_volume`` boolean False False: Instances will migrate ``priority`` object None Optional List prioritizes instances
after all volumes migrate. and volumes.
True: An instance will migrate ``with_attached_volume`` boolean False Optional False: Instances will
after the attached volumes migrate after all volumes
migrate. migrate.
======================== ======== ============= ============================== True: An instance will
migrate after the
attached volumes migrate.
======================== ======== ======== ========= ==========================
.. note::
* All parameters in the table above have defaults and therefore the
user can create an audit without specifying a value. However,
if **only** defaults parameters are used, there will be nothing
actionable for the audit.
* ``parallel_*`` parameters are not in reference to concurrency,
but rather on limiting the amount of actions to be added to the action
plan
* ``compute_nodes``, ``storage_pools``, and ``priority`` are optional
parameters, however, if they are passed they **require** the parameters
in the tables below:
The elements of compute_nodes array are: The elements of compute_nodes array are:
============= ======= =============== ============================= ============= ======= ======== ========= ========================
parameter type default Value description parameter type default required description
============= ======= =============== ============================= ============= ======= ======== ========= ========================
``src_node`` string None Compute node from which ``src_node`` string None Required Compute node from which
instances migrate(mandatory). instances migrate.
``dst_node`` string None Compute node to which ``dst_node`` string None Optional Compute node to which
instances migrate. instances migrate.
============= ======= =============== ============================= ============= ======= ======== ========= ========================
The elements of storage_pools array are: The elements of storage_pools array are:
============= ======= =============== ============================== ============= ======= ======== ========= ========================
parameter type default Value description parameter type default required description
============= ======= =============== ============================== ============= ======= ======== ========= ========================
``src_pool`` string None Storage pool from which ``src_pool`` string None Required Storage pool from which
volumes migrate(mandatory). volumes migrate.
``dst_pool`` string None Storage pool to which ``dst_pool`` string None Optional Storage pool to which
volumes migrate. volumes migrate.
``src_type`` string None Source volume type(mandatory). ``src_type`` string None Required Source volume type.
``dst_type`` string None Destination volume type ``dst_type`` string None Required Destination volume type
(mandatory). ============= ======= ======== ========= ========================
============= ======= =============== ==============================
The elements of priority object are: The elements of priority object are:
================ ======= =============== ====================== ================ ======= ======== ========= =====================
parameter type default Value description parameter type default Required description
================ ======= =============== ====================== ================ ======= ======== ========= =====================
``project`` array None Project names. ``project`` array None Optional Project names.
``compute_node`` array None Compute node names. ``compute_node`` array None Optional Compute node names.
``storage_pool`` array None Storage pool names. ``storage_pool`` array None Optional Storage pool names.
``compute`` enum None Instance attributes. ``compute`` enum None Optional Instance attributes.
|compute| |compute|
``storage`` enum None Volume attributes. ``storage`` enum None Optional Volume attributes.
|storage| |storage|
================ ======= =============== ====================== ================ ======= ======== ========= =====================
.. |compute| replace:: ["vcpu_num", "mem_size", "disk_size", "created_at"] .. |compute| replace:: ["vcpu_num", "mem_size", "disk_size", "created_at"]
.. |storage| replace:: ["size", "created_at"] .. |storage| replace:: ["size", "created_at"]
@@ -126,11 +147,26 @@ parameter type default Value description
Efficacy Indicator Efficacy Indicator
------------------ ------------------
The efficacy indicators for action plans built from the command line
are:
.. watcher-func:: .. watcher-func::
:format: literal_block :format: literal_block
watcher.decision_engine.goal.efficacy.specs.HardwareMaintenance.get_global_efficacy_indicator watcher.decision_engine.goal.efficacy.specs.HardwareMaintenance.get_global_efficacy_indicator
In **Horizon**, these indictors are shown with alternative text.
* ``live_migrate_instance_count`` is shown as
``The number of instances actually live migrated`` in Horizon
* ``planned_live_migrate_instance_count`` is shown as
``The number of instances planned to live migrate`` in Horizon
* ``planned_live_migration_instance_count`` refers to the instances planned
to live migrate in the action plan.
* ``live_migrate_instance_count`` tracks all the instances that could be
migrated according to the audit input.
Algorithm Algorithm
--------- ---------
@@ -148,6 +184,22 @@ How to use it ?
$ openstack optimize audit create -a at1 \ $ openstack optimize audit create -a at1 \
-p compute_nodes='[{"src_node": "s01", "dst_node": "d01"}]' -p compute_nodes='[{"src_node": "s01", "dst_node": "d01"}]'
.. note::
* Currently, the strategy will not generate both volume migration and
instance migrations in the same audit. If both are requested,
only volume migrations will be included in the action plan.
* The Cinder model collector is not enabled by default.
If the Cinder model collector is not enabled while deploying Watcher,
the model will become outdated and cause errors eventually.
See the `Configuration option to enable the storage collector <https://docs.openstack.org/watcher/latest/configuration/watcher.html#collector.collector_plugins>`_ documentation.
Support caveats
---------------
This strategy offers the option to perform both Instance migrations and
Volume migrations. Currently, Instance migrations are ready for production
use while Volume migrations remain experimental.
External Links External Links
-------------- --------------