VM 工作负载整合策略

概要

显示名称: VM 工作负载 整合 策略

目标: vm_consolidation

虚拟机工作负载整合策略

一种基于启发式首次适应算法的负载整合策略,它侧重于测量的 CPU 利用率,并尝试在尊重资源容量约束的前提下,最大限度地减少负载过多或过少的宿主机数量。

该策略产生一个解决方案,通过以下四个阶段更有效地利用集群资源

  • 卸载阶段 - 处理过度利用的资源

  • 整合阶段 - 处理利用率不足的资源

  • 解决方案优化 - 减少迁移次数

  • 禁用未使用的计算节点

容量系数 (cc) 可用于调整优化阈值。不同的资源可能需要不同的系数值,并且在两个阶段设置不同的系数值最终可能导致更有效的整合。如果 cc 等于 1,则可以使用全部资源容量,小于 1 的 cc 值将导致资源利用率不足,大于 1 的值将导致资源超售。例如,如果目标利用率是计算节点容量的 80%,则整合阶段的系数将为 0.8,但在卸载阶段可能为任何较低的值。系数越低,集群在后续整合阶段看起来就越空闲(分散)。

由于该策略利用 VM 实时迁移将负载从一个计算节点移动到另一个计算节点,因此需要在集群内的所有计算节点上正确设置此功能。该策略假定可以从任何活动的计算节点实时迁移任何 VM 到任何其他活动的计算节点。

需求

指标

vm_workload_consolidation 策略需要以下指标

指标

服务名称

插件

comment

cpu

ceilometer

none

memory.resident

ceilometer

none

memory

ceilometer

none

disk.root.size

ceilometer

none

compute.node.cpu.percent

ceilometer

none

(可选) 需要在 nova.conf 中将 compute_monitors 选项设置为 cpu.virt_driver

hardware.memory.used

ceilometer

SNMP

(可选)

集群数据模型

默认 Watcher 的计算集群数据模型

Nova 集群数据模型收集器

Nova 集群数据模型收集器创建了计算服务暴露的资源的内存表示。

行动

默认 Watcher 的动作

动作

description

迁移

将服务器迁移到目标 nova-compute 宿主机

此动作允许您将服务器迁移到另一个计算目标宿主机。迁移类型“live”只能用于迁移活动虚拟机。迁移类型“cold”可用于迁移非活动虚拟机以及活动虚拟机,在迁移过程中将关闭它们。

动作模式是

schema = Schema({
 'resource_id': str,  # should be a UUID
 'migration_type': str,  # choices -> "live", "cold"
 'destination_node': str,
 'source_node': str,
})

resource_id 是要迁移的服务器的 UUID。 source_nodedestination_node 参数分别是源和目标计算主机名。

注意

如果提供了 destination_node 参数,则 Nova API 版本必须为 2.56 或更高版本。

change_nova_service_state

禁用或启用部署在宿主机上的 nova-compute 服务

通过使用此动作,您将能够更新 nova-compute 服务的状态。被禁用的 nova-compute 服务不能被 nova 调度器选择用于服务器的未来部署。

动作模式是

schema = Schema({
 'resource_id': str,
 'state': str,
 'disabled_reason': str,
})

resource_id 引用一个 nova-compute 服务名称。 state 值应为 updowndisabled_reason 引用 Watcher 禁用此 nova-compute 服务的理由。该值应以 watcher_ 前缀开头,例如 watcher_disabledwatcher_maintaining

规划器

默认 Watcher 的规划器

权重规划器实现

此实现根据权重构建具有父级的动作。权重较高的动作集将在其他动作之前被调度。有 2 个配置选项可以配置:action_weights 和 parallelization。

Limitations

  • 此规划器需要对 action_weights 和 parallelization 配置进行良好的调整。

配置

策略参数是

参数

type

默认值

description

周期

数字

3600

从指标数据源获取统计聚合的时间间隔(秒)

效能指标

[{'name': 'released_nodes_ratio', 'description': 'Ratio of released compute nodes divided by the total number of enabled compute nodes.', 'unit': '%', 'value': 0}]

算法

有关 VM 工作负载整合策略的更多信息,请参阅:https://specs.openstack.org/openstack/watcher-specs/specs/2025.2/implemented/zhaw-load-consolidation.html

如何使用它?

$ openstack optimize audittemplate create \
  at1 server_consolidation --strategy vm_workload_consolidation

$ openstack optimize audit create -a at1