From 0cafdcdee9be04b286b4900dd84549529616d650 Mon Sep 17 00:00:00 2001 From: Hidekazu Nakamura Date: Mon, 29 Jan 2018 17:41:53 +0900 Subject: [PATCH] Add zone migration strategy document This patch set adds zone migration strategy document. Change-Id: Ifd9d85d635977900929efd376f0d7990a6fec627 --- doc/source/strategies/zone_migration.rst | 154 +++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 doc/source/strategies/zone_migration.rst diff --git a/doc/source/strategies/zone_migration.rst b/doc/source/strategies/zone_migration.rst new file mode 100644 index 000000000..3ded4b5f1 --- /dev/null +++ b/doc/source/strategies/zone_migration.rst @@ -0,0 +1,154 @@ +============== +Zone migration +============== + +Synopsis +-------- + +**display name**: ``Zone migration`` + +**goal**: ``hardware_maintenance`` + + .. watcher-term:: watcher.decision_engine.strategy.strategies.zone_migration + +Requirements +------------ + +Metrics +******* + +None + +Cluster data model +****************** + +Default Watcher's Compute cluster data model: + + .. watcher-term:: watcher.decision_engine.model.collector.nova.NovaClusterDataModelCollector + +Storage cluster data model is also required: + + .. watcher-term:: watcher.decision_engine.model.collector.cinder.CinderClusterDataModelCollector + +Actions +******* + + +Default Watcher's actions: + + .. list-table:: + :widths: 30 30 + :header-rows: 1 + + * - action + - description + * - ``migrate`` + - .. watcher-term:: watcher.applier.actions.migration.Migrate + * - ``volume_migrate`` + - .. watcher-term:: watcher.applier.actions.volume_migration.VolumeMigrate + +Planner +******* + +Default Watcher's planner: + + .. watcher-term:: watcher.decision_engine.planner.weight.WeightPlanner + +Configuration +------------- + +Strategy parameters are: + +======================== ======== ============= ============================== +parameter type default Value description +======================== ======== ============= ============================== +``compute_nodes`` array None Compute nodes to migrate. +``storage_pools`` array None Storage pools to migrate. +``parallel_total`` integer 6 The number of actions to be + run in parallel in total. +``parallel_per_node`` integer 2 The number of actions to be + run in parallel per compute + node. +``parallel_per_pool`` integer 2 The number of actions to be + run in parallel per storage + pool. +``priority`` object None List prioritizes instances + and volumes. +``with_attached_volume`` boolean False False: Instances will migrate + after all volumes migrate. + True: An instance will migrate + after the attached volumes + migrate. +======================== ======== ============= ============================== + +The elements of compute_nodes array are: + +============= ======= =============== ============================= +parameter type default Value description +============= ======= =============== ============================= +``src_node`` string None Compute node from which + instances migrate(mandatory). +``dst_node`` string None Compute node to which + instances migrate. +============= ======= =============== ============================= + +The elements of storage_pools array are: + +============= ======= =============== ============================== +parameter type default Value description +============= ======= =============== ============================== +``src_pool`` string None Storage pool from which + volumes migrate(mandatory). +``dst_pool`` string None Storage pool to which + volumes migrate. +``src_type`` string None Source volume type(mandatory). +``dst_type`` string None Destination volume type + (mandatory). +============= ======= =============== ============================== + +The elements of priority object are: + +================ ======= =============== ====================== +parameter type default Value description +================ ======= =============== ====================== +``project`` array None Project names. +``compute_node`` array None Compute node names. +``storage_pool`` array None Storage pool names. +``compute`` enum None Instance attributes. + |compute| +``storage`` enum None Volume attributes. + |storage| +================ ======= =============== ====================== + +.. |compute| replace:: ["vcpu_num", "mem_size", "disk_size", "created_at"] +.. |storage| replace:: ["size", "created_at"] + +Efficacy Indicator +------------------ + +.. watcher-func:: + :format: literal_block + + watcher.decision_engine.goal.efficacy.specs.HardwareMaintenance.get_global_efficacy_indicator + +Algorithm +--------- + +For more information on the zone migration strategy please refer +to: http://specs.openstack.org/openstack/watcher-specs/specs/queens/implemented/zone-migration-strategy.html + +How to use it ? +--------------- + +.. code-block:: shell + + $ openstack optimize audittemplate create \ + at1 hardware_maintenance --strategy zone_migration + + $ openstack optimize audit create -a at1 \ + -p compute_nodes='[{"src_node": "s01", "dst_node": "d01"}]' + +External Links +-------------- + +None