Merge "Add doc for vm_workload_consolidation strategy"
This commit is contained in:
100
doc/source/strategies/vm_workload_consolidation.rst
Normal file
100
doc/source/strategies/vm_workload_consolidation.rst
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
==================================
|
||||||
|
VM Workload Consolidation Strategy
|
||||||
|
==================================
|
||||||
|
|
||||||
|
Synopsis
|
||||||
|
--------
|
||||||
|
|
||||||
|
**display name**: ``vm_workload_consolidation``
|
||||||
|
|
||||||
|
**goal**: ``vm_consolidation``
|
||||||
|
|
||||||
|
.. watcher-term:: watcher.decision_engine.strategy.strategies.vm_workload_consolidation
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
|
Metrics
|
||||||
|
*******
|
||||||
|
|
||||||
|
The *vm_workload_consolidation* strategy requires the following metrics:
|
||||||
|
|
||||||
|
============================ ============ ======= =======
|
||||||
|
metric service name plugins comment
|
||||||
|
============================ ============ ======= =======
|
||||||
|
``memory`` ceilometer_ none
|
||||||
|
``disk.root.size`` ceilometer_ none
|
||||||
|
============================ ============ ======= =======
|
||||||
|
|
||||||
|
The following metrics are not required but increase the accuracy of
|
||||||
|
the strategy if available:
|
||||||
|
|
||||||
|
============================ ============ ======= =======
|
||||||
|
metric service name plugins comment
|
||||||
|
============================ ============ ======= =======
|
||||||
|
``memory.usage`` ceilometer_ none
|
||||||
|
``cpu_util`` ceilometer_ none
|
||||||
|
============================ ============ ======= =======
|
||||||
|
|
||||||
|
.. _ceilometer: http://docs.openstack.org/admin-guide/telemetry-measurements.html#openstack-compute
|
||||||
|
|
||||||
|
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
|
||||||
|
* - ``change_nova_service_state``
|
||||||
|
- .. watcher-term:: watcher.applier.actions.change_nova_service_state.ChangeNovaServiceState
|
||||||
|
|
||||||
|
Planner
|
||||||
|
*******
|
||||||
|
|
||||||
|
Default Watcher's planner:
|
||||||
|
|
||||||
|
.. watcher-term:: watcher.decision_engine.planner.default.DefaultPlanner
|
||||||
|
|
||||||
|
|
||||||
|
Efficacy Indicator
|
||||||
|
------------------
|
||||||
|
|
||||||
|
.. watcher-func::
|
||||||
|
:format: literal_block
|
||||||
|
|
||||||
|
watcher.decision_engine.goal.efficacy.specs.ServerConsolidation.get_global_efficacy_indicator
|
||||||
|
|
||||||
|
Algorithm
|
||||||
|
---------
|
||||||
|
|
||||||
|
For more information on the VM Workload consolidation strategy please refer to: https://specs.openstack.org/openstack/watcher-specs/specs/mitaka/implemented/zhaw-load-consolidation.html
|
||||||
|
|
||||||
|
How to use it ?
|
||||||
|
---------------
|
||||||
|
|
||||||
|
.. code-block:: shell
|
||||||
|
|
||||||
|
$ openstack optimize audittemplate create \
|
||||||
|
at1 vm_consolidation --strategy vm_workload_consolidation
|
||||||
|
|
||||||
|
$ openstack optimize audit create -a at1
|
||||||
|
|
||||||
|
External Links
|
||||||
|
--------------
|
||||||
|
|
||||||
|
*Spec URL*
|
||||||
|
https://specs.openstack.org/openstack/watcher-specs/specs/mitaka/implemented/zhaw-load-consolidation.html
|
||||||
@@ -16,24 +16,9 @@
|
|||||||
# implied.
|
# implied.
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
#
|
||||||
from oslo_log import log
|
"""
|
||||||
import six
|
*VM Workload Consolidation Strategy*
|
||||||
|
|
||||||
from watcher._i18n import _, _LE, _LI
|
|
||||||
from watcher.common import exception
|
|
||||||
from watcher.decision_engine.cluster.history import ceilometer \
|
|
||||||
as ceilometer_cluster_history
|
|
||||||
from watcher.decision_engine.model import element
|
|
||||||
from watcher.decision_engine.strategy.strategies import base
|
|
||||||
|
|
||||||
LOG = log.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
|
|
||||||
"""VM Workload Consolidation Strategy.
|
|
||||||
|
|
||||||
*Description*
|
|
||||||
|
|
||||||
A load consolidation strategy based on heuristic first-fit
|
A load consolidation strategy based on heuristic first-fit
|
||||||
algorithm which focuses on measured CPU utilization and tries to
|
algorithm which focuses on measured CPU utilization and tries to
|
||||||
@@ -61,24 +46,28 @@ class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
|
|||||||
the cluster will appear more released (distributed) for the
|
the cluster will appear more released (distributed) for the
|
||||||
following consolidation phase.
|
following consolidation phase.
|
||||||
|
|
||||||
As this strategy laverages VM live migration to move the load
|
As this strategy leverages VM live migration to move the load
|
||||||
from one compute node to another, this feature needs to be set up
|
from one compute node to another, this feature needs to be set up
|
||||||
correctly on all compute nodes within the cluster.
|
correctly on all compute nodes within the cluster.
|
||||||
This strategy assumes it is possible to live migrate any VM from
|
This strategy assumes it is possible to live migrate any VM from
|
||||||
an active compute node to any other active compute node.
|
an active compute node to any other active compute node.
|
||||||
|
"""
|
||||||
|
|
||||||
*Requirements*
|
from oslo_log import log
|
||||||
|
import six
|
||||||
|
|
||||||
* You must have at least 2 physical compute nodes to run this strategy.
|
from watcher._i18n import _, _LE, _LI
|
||||||
|
from watcher.common import exception
|
||||||
|
from watcher.decision_engine.cluster.history import ceilometer \
|
||||||
|
as ceilometer_cluster_history
|
||||||
|
from watcher.decision_engine.model import element
|
||||||
|
from watcher.decision_engine.strategy.strategies import base
|
||||||
|
|
||||||
*Limitations*
|
LOG = log.getLogger(__name__)
|
||||||
|
|
||||||
<None>
|
|
||||||
|
|
||||||
*Spec URL*
|
class VMWorkloadConsolidation(base.ServerConsolidationBaseStrategy):
|
||||||
|
"""VM Workload Consolidation Strategy"""
|
||||||
https://github.com/openstack/watcher-specs/blob/master/specs/mitaka/implemented/zhaw-load-consolidation.rst
|
|
||||||
""" # noqa
|
|
||||||
|
|
||||||
def __init__(self, config, osc=None):
|
def __init__(self, config, osc=None):
|
||||||
super(VMWorkloadConsolidation, self).__init__(config, osc)
|
super(VMWorkloadConsolidation, self).__init__(config, osc)
|
||||||
|
|||||||
Reference in New Issue
Block a user