4.2. 整合虚拟机实例


使用带有 VM 工作负载整合策略的 Optimize 服务(watcher)在物理主机 CPU 或 RAM 利用率百分比超过指定阈值时移动虚拟机实例工作负载。所迁移的实例应该会导致主机的工作负载大约是 OpenShift (RHOSO)集群中红帽 OpenStack 服务中所有 Compute 节点的平均工作负载。与节点资源整合策略不同,VM 工作负载整合策略会将源 Compute 节点的状态设置为 禁用

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

server_consolidation

vm_workload_consolidation

先决条件

  • 您有一个可正常工作的 RHOSO 18.0,在其上运行 Optimize 服务(watcher)。
  • 您的 RHOSO 环境至少包含两个 Compute 节点,每个节点至少运行一个实例。
  • 在工作站上安装了 oc 命令行工具。
  • 以具有 cluster-admin 权限的用户身份登录到可访问 RHOSO 控制平面的工作站。

步骤

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

    $ oc rsh -n openstack openstackclient
  2. 验证 RHOSO 环境是否包含至少两个 Compute 节点,每个节点至少运行一个实例:

    $ openstack server list --long

    输出示例

    在本例中,在 compute1 上运行的 test01test03 实例具有较大的 RAM 负载。我们希望将 Optimize 服务与工作负载平衡策略结合使用,将至少一个这些实例迁移到具有更多容量的 Compute 节点,而无需用户中断:

    +--------+-------------------------------+
    | Name   | Host                          |
    +--------+-------------------------------+
    | test04 | compute2.ctlplane.localdomain |
    | test03 | compute1.ctlplane.localdomain |
    | test02 | compute2.ctlplane.localdomain |
    | test01 | compute1.ctlplane.localdomain |
    +--------+-------------------------------+
  3. 创建使用策略 vm_workload_consolidation 和目标 server_consolidation 的审计模板。

    Example

    在本例中,audit 模板名为 WorkLoadConsolidation

    $ openstack optimize audittemplate create -s vm_workload_consolidation \
    WorkLoadConsolidation server_consolidation

    输出示例

    +-------------+--------------------------------------+
    | Field       | Value                                |
    +-------------+--------------------------------------+
    | UUID        | eebd556d-b95b-4f1b-91fa-8a08a04a765b |
    | Created At  | 2025-07-11T19:18:28.283497+00:00     |
    | Updated At  | None                                 |
    | Deleted At  | None                                 |
    | Description | None                                 |
    | Name        | WorkLoadConsolidation                |
    | Goal        | server_consolidation                 |
    | Strategy    | vm_workload_consolidation            |
    | Audit Scope | []                                   |
    +-------------+--------------------------------------+
  4. 确认已创建了 audit 模板:

    $ openstack optimize audittemplate list

    输出示例

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

    Example

    在这个审核中,使用 WorkLoadConsolidation audit 模板,并使用 workload_balance 策略检查 CPU 用量:

    $ openstack optimize audit create -a WorkLoadConsolidation

    有关此策略使用的参数的更多信息,请参阅 虚拟机工作负载整合策略

    输出示例

    +---------------+------------------------------------------------------+
    | Field         | Value                                                |
    +---------------+------------------------------------------------------+
    | UUID          | bdb0edfa-344a-4897-a7fd-3b1994d87db7                 |
    | Name          | vm_workload_consolidation-2025-07-11T19:23:52.285726 |
    | Created At    | 2025-07-11T19:23:52.296188+00:00                     |
    | Updated At    | None                                                 |
    | Deleted At    | None                                                 |
    | State         | PENDING                                              |
    | Audit Type    | ONESHOT                                              |
    | Parameters    | {'period': 3600, 'granularity': 300}                 |
    | Interval      | None                                                 |
    | Goal          | server_consolidation                                 |
    | Strategy      | vm_workload_consolidation                            |
    | 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

    输出示例

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

    +----------------------------+-----------+-----------------------------+
    | UUID                       | State     | Strategy                    |
    +----------------------------+-----------+-----------------------------+
    | bdb0edfa-344a-4897-a7fd-   | SUCCEEDED | vm_workload_consolidation   |
    | 3b1994d87db7               |           |                             |
    +----------------------------+-----------+-----------------------------+
  7. 检查操作计划。

    Example

    $ openstack optimize actionplan list \
    --audit bdb0edfa-344a-4897-a7fd-3b1994d87db7

    输出示例

    在本例中,全局 efficacyLive_migrations_count: 50.00 %。这个值表示,如果您执行操作计划,计算服务将迁移当前运行的实例的 50%:

    +---------------------------+-------------+----------------------------+
    | UUID                      | State       | Global efficacy            |
    +---------------------------+-------------+----------------------------+
    | 71bb6d02-50a9-4e18-b030-  | RECOMMENDED | Released_nodes_ratio:      |
    | c070d5b36cde              |             | 50.00 %                    |
    |                           |             |                            |
    +---------------------------+-------------+----------------------------+
  8. 列出操作计划中包含的操作。

    Example

    $ openstack optimize action list \
    --action-plan 71bb6d02-50a9-4e18-b030-c070d5b36cde

    输出示例

    在本例中,操作计划包含一个操作,迁移

    +-----------------------------+---------+---------------------------+
    | UUID                        | State   | Action                    |
    +-----------------------------+---------+---------------------------+
    | 7207af7a-569f-4d72-9a9a-    | PENDING | change_nova_service_state |
    | 0be7f9c9b175                |         |                           |
    | 29404127-f9ad-4124-b3d3-    | PENDING | migrate                   |
    | 497420f46e6b                |         |                           |
    | c6cb91d7-26e8-4864-8a5c-    | PENDING | migrate                   |
    | 5ebfe23d6c91                |         |                           |
    +-----------------------------+---------+---------------------------+
  9. 您可以查看更多有关操作的详情:

    Example

    $ openstack optimize action show 7207af7a-569f-4d72-9a9a-0be7f9c9b175

    输出示例

    在本例中,操作计划将把 CPU 使用率高负载的其中一个实例实时迁移到实例 CPU 使用量较低的 Compute 节点。

    +-------------+--------------------------------------------------------+
    | Field       | Value                                                  |
    +-------------+--------------------------------------------------------+
    | UUID        | 7207af7a-569f-4d72-9a9a-0be7f9c9b175                   |
    | Created At  | 2025-07-11T19:23:52+00:00                              |
    | Updated At  | None                                                   |
    | Deleted At  | None                                                   |
    | Parents     | []                                                     |
    | State       | PENDING                                                |
    | Action Plan | 71bb6d02-50a9-4e18-b030-c070d5b36cde                   |
    | Action      | change_nova_service_state                              |
    | Parameters  | {'state': 'disabled', 'disabled_reason':               |
    |             | 'watcher_disabled', '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 \
    71bb6d02-50a9-4e18-b030-c070d5b36cde

    输出示例

    +---------------------+------------------------------------------------+
    | Field               | Value                                          |
    +---------------------+------------------------------------------------+
    | UUID                | 71bb6d02-50a9-4e18-b030-c070d5b36cde           |
    | Created At          | 2025-07-11T19:23:52+00:00                      |
    | Updated At          | 2025-07-11T19:30:45+00:00                      |
    | Deleted At          | None                                           |
    | Audit               | bdb0edfa-344a-4897-a7fd-3b1994d87db7           |
    | Strategy            | vm_workload_consolidation                      |
    | State               | PENDING                                        |
    | Efficacy indicators | [{'name': 'compute_nodes_count',               |
    |                     | 'description': 'The total number of enabled    |
    |                     | compute nodes.', 'unit': None, 'value': 2.0},  |
    |                     | {'name': 'released_compute_nodes_count',       |
    |                     | 'description': 'The number of compute nodes to |
    |                     | be released.', 'unit': None, 'value': 1.0},    |
    |                     | {'name': 'instance_migrations_count',          |
    |                     | 'description': 'The number of VM migrations to |
    |                     | be performed.', 'unit': None, 'value': 2.0}]   |
    | Global efficacy     | [{'name': 'released_nodes_ratio',              |
    |                     | 'description': 'Ratio of released compute      |
    |                     | nodes divided by the total number of enabled   |
    |                     | compute nodes.', 'unit': '%', 'value': 50.0}]  |
    | Hostname            | None                                           |
    +---------------------+------------------------------------------------+
  11. 确认操作是否成功。

    Example

    $ openstack optimize action list \
    --action-plan 71bb6d02-50a9-4e18-b030-c070d5b36cde

    输出示例

    +-----------+----------------------------+---------------------------+
    | State     | Action Plan                | Action                    |
    +-----------+----------------------------+---------------------------+
    | SUCCEEDED | 71bb6d02-50a9-4e18-b030-   | change_nova_service_state |
    |           | c070d5b36cde               |                           |
    | SUCCEEDED | 71bb6d02-50a9-4e18-b030-   | migrate                   |
    |           | c070d5b36cde               |                           |
    | SUCCEEDED | 71bb6d02-50a9-4e18-b030-   | migrate                   |
    |           | c070d5b36cde               |                           |
    +-----------+----------------------------+---------------------------+
  12. 确认 CPU 使用量较重的实例已迁移到不同的 Compute 节点:

    $ openstack server list --long

    输出示例

    在本例中,实例 test01test03 现在在不同节点 compute2 上运行:

    +--------+-------------------------------+
    | Name   | Host                          |
    +--------+-------------------------------+
    | test04 | compute2.ctlplane.localdomain |
    | test03 | compute2.ctlplane.localdomain |
    | test02 | compute2.ctlplane.localdomain |
    | test01 | compute2.ctlplane.localdomain |
    +--------+-------------------------------+
  13. 退出 openstackclient pod:

    $ exit
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部