4.6. 为计划维护准备 Compute 节点


使用带有 主机维护策略的 Optimize 服务(watcher)将 Red Hat OpenStack Services on OpenShift (RHOSO)环境中的所有实例从您的 Red Hat OpenStack Services (RHOSO)环境中迁移,以便在用户中断的情况下执行主机维护。如果没有提供备份节点,则 Optimize 服务通过依赖 nova-scheduler 来迁移所有实例。在这两种用例中,计算维护节点将被禁用。

注意

在计划维护窗口中使用主机维护策略,其中负载较低,以最大程度降低对工作负载的影响。运行审计时,请确保不会更改默认的 audit_typeONESHOT

Expand
表 4.6. 目标和策略演示了
目标策略

cluster_maintaining

host_maintenance

先决条件

  • 您有一个可正常工作的 RHOSO 18.0,在其上运行 Optimize 服务(watcher)。
  • 您至少有两个 Compute 节点:

    • 一个 Compute 节点,至少有一个实例正在运行。
    • 充当备份节点的第二个 Compute 节点。
  • 在工作站上安装了 oc 命令行工具。
  • 以具有 cluster-admin 权限的用户身份登录到可访问 RHOSO 控制平面的工作站。

步骤

  1. 从您的工作站访问 OpenStackClient pod 的远程 shell:

    $ oc rsh -n openstack openstackclient
  2. 验证至少有两个计算节点和至少一个实例。

    $ openstack server list --long

    输出示例

    在本例中,一个实例在 compute1 上运行,一个实例在 compute2 上运行。compute1 节点计划进行维护,因此我们希望使用带有主机维护策略的 Optimize 服务,将实例从 compute1 迁移到 compute2,而无需用户中断:

    +--------+-------------------------------+
    | Name   | Host                          |
    +--------+-------------------------------+
    | test02 | compute2.ctlplane.localdomain |
    | test01 | compute1.ctlplane.localdomain |
    +--------+-------------------------------+
  3. 创建使用 strategy、host_maintenance 和目标 cluster_maintaining 的审计模板。

    Example

    在本例中,审计模板名为 HostMaintenance

    $ openstack optimize audittemplate create -s host_maintenance \
    HostMaintenance cluster_maintaining

    输出示例

    +-------------+--------------------------------------+
    | Field       | Value                                |
    +-------------+--------------------------------------+
    | UUID        | 96c46352-352d-43eb-97ef-4bf3235d9574 |
    | Created At  | 2025-07-04T14:52:19.919765+00:00     |
    | Updated At  | None                                 |
    | Deleted At  | None                                 |
    | Description | None                                 |
    | Name        | HostMaintenance                      |
    | Goal        | cluster_maintaining                  |
    | Strategy    | host_maintenance                     |
    | Audit Scope | []                                   |
    +-------------+--------------------------------------+
  4. 确认已创建了 audit 模板:

    $ openstack optimize audittemplate list

    输出示例

    +----------------------+------------------+
    | Goal                 | Strategy         |
    +----------------------+------------------+
    | cluster_maintaining  | host_maintenance |
    +----------------------+------------------+
  5. 运行基于策略、host_maintenance 和目标 cluster_maintaining 的审计,它使用审计模板。使用适合您环境的值更新策略参数。

    Example

    本例中使用 HostMaintenance audit 模板,同时为维护计划提供 compute1 主机:

    $ openstack optimize audit create -a HostMaintenance \
    -p maintenance_node=compute1.ctlplane.localdomain

    有关此策略使用的参数的更多信息,请参阅 主机维护策略

    输出示例

    +---------------+-------------------------------------------------------+
    | Field         | Value                                                 |
    +---------------+-------------------------------------------------------+
    | UUID          | 8cfb4abe-3720-4af2-a8a9-fba8fff1f442                  |
    | Name          | host_maintenance-2025-07-04T14:54:58.410413           |
    | Created At    | 2025-07-04T14:54:58.419668+00:00                      |
    | Updated At    | None                                                  |
    | Deleted At    | None                                                  |
    | State         | PENDING                                               |
    | Audit Type    | ONESHOT                                               |
    | Parameters    | {'maintenance_node': 'compute1.ctlplane.localdomain'} |
    | Interval      | None                                                  |
    | Goal          | cluster_maintaining                                   |
    | Strategy      | host_maintenance                                      |
    | Audit Scope   | []                                                    |
    | Auto Trigger  | False                                                 |
    | Next Run Time | None                                                  |
    | Hostname      | None                                                  |
    | Start Time    | None                                                  |
    | End Time      | None                                                  |
    | Force         | False                                                 |
    +---------------+-------------------------------------------------------+
  6. 确认 Optimize 服务创建了审计:

    $ openstack optimize audit list

    输出示例

    如果 State 的值为 SUCCEEDED,则审计运行并创建了操作计划:

    +--------------------------------------+-----------+------------------+
    | UUID                                 | State     | Strategy         |
    +--------------------------------------+-----------+------------------+
    | 8cfb4abe-3720-4af2-a8a9-fba8fff1f442 | SUCCEEDED | host_maintenance |
    +--------------------------------------+-----------+------------------+
  7. 检查操作计划。

    Example

    $ openstack optimize actionplan list \
    --audit 8cfb4abe-3720-4af2-a8a9-fba8fff1f442

    输出示例

    +--------------------------------------+-------------+-----------------+
    | UUID                                 | State       | Global efficacy |
    +--------------------------------------+-------------+-----------------+
    | 40017617-7698-4ce7-b5ce-2917ec522a08 | RECOMMENDED |                 |
    +--------------------------------------+-------------+-----------------+
  8. 列出操作计划中包含的操作。

    Example

    $ openstack optimize action list \
    --action-plan 40017617-7698-4ce7-b5ce-2917ec522a08

    输出示例

    在本例中,操作计划包含两个操作:

    +--------------------------------------+---------+---------------------------+
    | UUID                                 | State   | Action                    |
    +--------------------------------------+---------+---------------------------+
    | 19afe53e-4cf4-4b67-b910-92bca5f40186 | PENDING | change_nova_service_state |
    | 6e3154ac-279a-4b26-b993-9a6eea70309b | PENDING | migrate                   |
    +--------------------------------------+---------+---------------------------+
  9. 您可以查看更多有关操作的详细信息。

    Example

    $ openstack optimize action show \
    6e3154ac-279a-4b26-b993-9a6eea70309b

    输出示例

    在本例中,操作计划会将当前在 compute1 节点上运行的实例迁移到 compute2 节点:

    +-------------+--------------------------------------------------------+
    | Field       | Value                                                  |
    +-------------+--------------------------------------------------------+
    | UUID        | 6e3154ac-279a-4b26-b993-9a6eea70309b                   |
    | Created At  | 2025-07-04T14:54:58+00:00                              |
    | Updated At  | None                                                   |
    | Deleted At  | None                                                   |
    | Parents     | ['19afe53e-4cf4-4b67-b910-92bca5f40186']               |
    | State       | PENDING                                                |
    | Action Plan | 40017617-7698-4ce7-b5ce-2917ec522a08                   |
    | Action      | migrate                                                |
    | Parameters  | {'migration_type': 'live', 'source_node':              |
    |             | '87254b5a-257b-48ea-aee0-0d4189d84fc7',                |
    |             | 'resource_name': 'test01', 'resource_id':              |
    |             | '19bb7593-1b6d-43aa-a0a1-f88921fb4b42'}                |
    | Description | Moving a VM instance from source_node to               |
    |             | destination_node                                       |
    +-------------+--------------------------------------------------------+

    Example

    $ openstack optimize action show \
    19afe53e-4cf4-4b67-b910-92bca5f40186

    输出示例

    在本例中,操作计划会将 compute1 节点状态更改为 disabled

    +-------------+--------------------------------------------------------+
    | Field       | Value                                                  |
    +-------------+--------------------------------------------------------+
    | UUID        | 19afe53e-4cf4-4b67-b910-92bca5f40186                   |
    | Created At  | 2025-07-04T14:54:58+00:00                              |
    | Updated At  | None                                                   |
    | Deleted At  | None                                                   |
    | Parents     | []                                                     |
    | State       | PENDING                                                |
    | Action Plan | 40017617-7698-4ce7-b5ce-2917ec522a08                   |
    | Action      | change_nova_service_state                              |
    | Parameters  | {'state': 'disabled', 'disabled_reason':               |
    |             | 'watcher_maintaining', 'resource_name':                |
    |             | 'compute1.ctlplane.localdomain', 'resource_id':        |
    |             | '87254b5a-257b-48ea-aee0-0d4189d84fc7'}                |
    | Description | Disables or enables the nova-compute service.A         |
    |             | disabled nova-compute service can not be selected by   |
    |             | the nova for future deployment of new server.          |
    +-------------+--------------------------------------------------------+
  10. 执行操作计划。

    Example

    $ openstack optimize actionplan start \
    40017617-7698-4ce7-b5ce-2917ec522a08

    输出示例

    +---------------------+--------------------------------------+
    | Field               | Value                                |
    +---------------------+--------------------------------------+
    | UUID                | 40017617-7698-4ce7-b5ce-2917ec522a08 |
    | Created At          | 2025-07-04T14:54:58+00:00            |
    | Updated At          | 2025-07-04T15:04:47+00:00            |
    | Deleted At          | None                                 |
    | Audit               | 8cfb4abe-3720-4af2-a8a9-fba8fff1f442 |
    | Strategy            | host_maintenance                     |
    | State               | PENDING                              |
    | Efficacy indicators | []                                   |
    | Global efficacy     | []                                   |
    | Hostname            | None                                 |
    +---------------------+--------------------------------------+
  11. 确认操作是否成功。

    Example

    $ openstack optimize action list \
    --action-plan 40017617-7698-4ce7-b5ce-2917ec522a08

    有关此策略使用的参数的更多信息,请参阅 主机维护策略

    输出示例

    在本例中,实例从 compute1 节点迁移,compute1 的状态被设置为 disabled :

    +--------------------------------------+-----------+---------------------------+
    | UUID                                 | State     | Action                    |
    +--------------------------------------+-----------+---------------------------+
    | 19afe53e-4cf4-4b67-b910-92bca5f40186 | SUCCEEDED | change_nova_service_state |
    | 6e3154ac-279a-4b26-b993-9a6eea70309b | SUCCEEDED | migrate                   |
    +--------------------------------------+-----------+---------------------------+
  12. 确认在维护节点上运行的所有实例都已迁移:

    $ openstack server list --long

    输出示例

    在本例中,在 compute1 节点上运行的实例,test01 现在在 compute2 节点上运行:

    +--------+-------------------------------+
    | Name   | Host                          |
    +--------+-------------------------------+
    | test02 | compute2.ctlplane.localdomain |
    | test01 | compute2.ctlplane.localdomain |
    +--------+-------------------------------+
  13. 确认维护节点已被禁用。

    $ openstack compute service list

    输出示例

    在本例中,compute1 节点的 Statusdisabled

    +-------------------------------+----------+
    | Host                          | Status   |
    +-------------------------------+----------+
    | nova-cell0-conductor-0        | enabled  |
    | nova-scheduler-0              | enabled  |
    | nova-cell1-conductor-0        | enabled  |
    | compute2.ctlplane.localdomain | enabled  |
    | compute1.ctlplane.localdomain | disabled |
    +-------------------------------+----------+
  14. 退出 openstackclient pod:

    $ exit
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部