工作负载均衡迁移策略

概要

显示名称: 工作负载 均衡 迁移 策略

目标: workload_balancing

使用实时迁移进行工作负载均衡

描述

这是一种基于物理服务器虚拟机工作负载的迁移策略。当服务器的 CPU 或 RAM 利用率百分比高于指定阈值时,它会生成解决方案来移动工作负载。指定的阈值用于触发迁移,但也用于确定是否存在具有足够低利用率的可用主机来迁移实例。要移动的虚拟机应使主机接近所有计算节点的平均工作负载。

需求

  • 硬件:计算节点应使用相同的物理 CPU/RAM

  • 软件:Ceilometer 组件 ceilometer-agent-compute 在每个计算节点上运行,并且 Ceilometer API 可以成功报告这些遥测数据“instance_cpu_usage”和“instance_ram_usage”。

  • 要运行此策略,您必须至少有 2 个物理计算节点。

Limitations

  • 我们无法预测应迁移多少台服务器。这就是为什么我们一次只计划迁移一台虚拟机的原因。因此,最好将此算法与 CONTINUOUS 审计一起使用。

  • 它假定可以进行实时迁移

指标

workload_balance 策略需要以下指标

指标

服务名称

插件

单位

comment

cpu

ceilometer

none

百分比

实例的 CPU。用于计算阈值

memory.resident

ceilometer

none

MB

实例的 RAM。用于计算阈值

注意

  • 上述参数引用实例 CPU 或 RAM 使用情况,但阈值计算基于超visor 上的 CPU/RAM 使用情况。

  • RAM 使用情况可以基于实例消耗的 RAM 以及超visor 上可用的 RAM 来计算。

  • CPU 百分比计算依赖于 CPU 负载,还依赖于超visor 上的 CPU 数量。

  • 主机内存指标是通过对主机上每个实例的 RAM 使用情况求和来计算的。该测量值接近实际使用情况,但不是主机上的精确使用情况。

集群数据模型

默认 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 或更高版本。

规划器

默认 Watcher 的规划器

权重规划器实现

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

Limitations

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

配置

策略参数是

参数

type

默认值

description

metrics

字符串

instance_cpu_usage

基于 CPU 或 RAM 利用率的工作负载均衡。选项:[‘instance_cpu_usage’,‘instance_ram_usage’]

threshold

数字

25.0

用于迁移的工作负载阈值。用于源和目标计算。阈值始终是百分比。

周期

数字

300

Ceilometer 的聚合时间段

粒度

数字

300

聚合时间序列指标中两次测量之间的时间间隔。此参数仅与 Gnocchi 数据源一起使用,并且必须与指标的任何有效归档策略匹配。

效能指标

算法

有关工作负载均衡迁移策略的更多信息,请参阅:https://specs.openstack.org/openstack/watcher-specs/specs/2025.2/implemented/workload-balance-migration-strategy.html

如何使用它?

使用工作负载均衡策略创建审计模板。

$ openstack optimize audittemplate create \
  at1 workload_balancing --strategy workload_balance

使用工作负载均衡策略运行审计。审计结果应该是将虚拟机从 CPU 使用率超过 26% 的任何主机移动到 CPU 利用率低于阈值的主机的行动计划。CPU 利用率的测量来自配置的数据源插件,聚合周期为 310。

$ openstack optimize audit create -a at1 -p threshold=26.0 \
        -p period=310 -p metrics=instance_cpu_usage

使用工作负载均衡策略运行审计,以获得平衡主机上虚拟机的计划,阈值为 20%。在这种情况下,CPU 利用率指标测量的规定是周期和粒度的组合。

$ openstack optimize audit create -a at1 \
       -p granularity=30 -p threshold=20 -p period=300 \
       -p metrics=instance_cpu_usage --auto-trigger