工作负载均衡迁移策略¶
概要¶
显示名称: 工作负载 均衡 迁移 策略
目标: workload_balancing
使用实时迁移进行工作负载均衡
描述
这是一种基于物理服务器虚拟机工作负载的迁移策略。当服务器的 CPU 或 RAM 利用率百分比高于指定阈值时,它会生成解决方案来移动工作负载。指定的阈值用于触发迁移,但也用于确定是否存在具有足够低利用率的可用主机来迁移实例。要移动的虚拟机应使主机接近所有计算节点的平均工作负载。
需求
硬件:计算节点应使用相同的物理 CPU/RAM
软件:Ceilometer 组件 ceilometer-agent-compute 在每个计算节点上运行,并且 Ceilometer API 可以成功报告这些遥测数据“instance_cpu_usage”和“instance_ram_usage”。
要运行此策略,您必须至少有 2 个物理计算节点。
Limitations
我们无法预测应迁移多少台服务器。这就是为什么我们一次只计划迁移一台虚拟机的原因。因此,最好将此算法与 CONTINUOUS 审计一起使用。
它假定可以进行实时迁移
指标¶
workload_balance 策略需要以下指标
指标 |
服务名称 |
插件 |
单位 |
comment |
|---|---|---|---|---|
|
none |
百分比 |
实例的 CPU。用于计算阈值 |
|
|
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_node 和 destination_node 参数分别是源和目标计算主机名。
注意
如果提供了 destination_node 参数,则 Nova API 版本必须为 2.56 或更高版本。
规划器¶
默认 Watcher 的规划器
权重规划器实现
此实现根据权重构建具有父级的动作。权重较高的动作集将在其他动作之前被调度。有 2 个配置选项可以配置:action_weights 和 parallelization。
Limitations
此规划器需要对 action_weights 和 parallelization 配置进行良好的调整。
配置¶
策略参数是
参数 |
type |
默认值 |
description |
|---|---|---|---|
|
字符串 |
instance_cpu_usage |
基于 CPU 或 RAM 利用率的工作负载均衡。选项:[‘instance_cpu_usage’,‘instance_ram_usage’] |
|
数字 |
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
外部链接¶
None。