宿主机维护策略

概要

显示名称: 宿主机 维护 策略

目标: cluster_maintaining

宿主机维护

描述

这是一种用于单个计算节点维护的迁移策略,不会中断用户的应用程序。如果提供了一个备份节点(备份节点是迁移的目标节点),该策略首先会将维护节点上的所有实例迁移到备份节点。如果没有提供备份节点,它将迁移所有实例,依赖于 nova-scheduler。然后将维护节点禁用。

需求

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

Limitations

  • 它假定冷迁移和实时迁移是可能的。

注意

它将所有实例从一个宿主机迁移到其他宿主机。建议在负载较低的计划维护窗口中使用此策略,以最大程度地减少对工作负载的影响,并使用 ONESHOT 审计与此算法一起使用。

指标

集群数据模型

默认 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

必需

maintenance_node

字符串

需要维护的计算节点名称。

必需

backup_node

字符串

将备份维护节点的计算节点名称。

可选

disable_live_migration

布尔值

False:活动实例将被实时迁移。True:如果未禁用冷迁移,则活动实例将被冷迁移。否则,它们将被停止。默认值为 False。

可选

disable_cold_migration

布尔值

False:非活动实例将被冷迁移。True:非活动实例将不会被冷迁移。默认值为 False。

可选

效能指标

算法

有关宿主机维护策略的更多信息,请参阅:https://specs.openstack.org/openstack/watcher-specs/specs/2025.2/approved/cluster-maintenance-strategy.html

如何使用它?

使用宿主机维护策略运行审计。执行动作会将服务器从 compute01 宿主机移动到 Nova 调度器服务确定的宿主机。

$ openstack optimize audit create \
  -g cluster_maintaining -s host_maintenance \
  -p maintenance_node=compute01

使用指定备份节点的宿主机维护策略运行审计。执行动作会将服务器从 compute01 宿主机移动到 compute02 宿主机。

$ openstack optimize audit create \
  -g cluster_maintaining -s host_maintenance \
  -p maintenance_node=compute01 \
  -p backup_node=compute02

使用禁用迁移的宿主机维护策略运行审计。这将仅停止 compute01 上的活动实例,适用于维护场景,在这种场景中操作员不希望将工作负载迁移到其他宿主机。

$ openstack optimize audit create \
  -g cluster_maintaining -s host_maintenance \
  -p maintenance_node=compute01 \
  -p disable_live_migration=True \
  -p disable_cold_migration=True

请注意,执行此策略后,maintenance_node 将被标记为禁用,原因设置为 watcher_maintaining。要再次启用该节点

$ openstack compute service set --enable compute01