4.2. 仮想マシンインスタンスの統合
VM workload consolidation strategy で Optimize サービス (watcher) を使用して、物理ホストの CPU または RAM 使用率が指定されたしきい値を超えたときに仮想マシンインスタンスのワークロードを移動します。移行するインスタンスは、対象ホストのワークロードが Red Hat OpenStack Services on OpenShift (RHOSO) クラスター内のすべてのコンピュートノードの平均に近づくようにする必要があります。node resource consolidation strategy とは異なり、VM workload consolidation strategy では、ソースコンピュートノードのステータスが disabled に設定されます。
| 目的 | ストラテジー |
|---|---|
|
|
|
前提条件
- RHOSO 18.0 が稼働しており、Optimize サービス (watcher) が実行されている。
- RHOSO 環境には、各ノードで少なくとも 1 つのインスタンスを実行する少なくとも 2 つのコンピュートノードが含まれています。
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。
手順
ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
$ oc rsh -n openstack openstackclientRHOSO 環境に、各ノードで少なくとも 1 つのインスタンスを実行する少なくとも 2 つのコンピュートノードが含まれていることを確認します。
$ openstack server list --long出力例
この例では、
compute1で実行されているインスタンスtest01とtest03の RAM の負荷が高くなっています。workload balance strategy で Optimize サービスを使用して、ユーザーへの影響なしに、これらのインスタンスの少なくとも 1 つを、より容量の多いコンピュートノードに移行することを想定します。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test04 | compute2.ctlplane.localdomain | | test03 | compute1.ctlplane.localdomain | | test02 | compute2.ctlplane.localdomain | | test01 | compute1.ctlplane.localdomain | +--------+-------------------------------+ストラテジー
vm_workload_consolidationと目標server_consolidationを使用する監査テンプレートを作成します。例
この例では、監査テンプレートの名前は
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 | [] | +-------------+--------------------------------------+監査テンプレートが作成されたことを確認します。
$ openstack optimize audittemplate list出力例
+----------------------+-----------------------------+ | Goal | Strategy | +----------------------+-----------------------------+ | server_consolidation | vm_workload_consolidation | +----------------------+-----------------------------+ストラテジー
vm_workload_consolidationと目標server_consolidationに基づいて監査テンプレートを使用する監査を実行します。環境に適した値でストラテジーパラメーターを更新します。例
この監査では、
WorkLoadConsolidation監査テンプレートが使用され、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 | +---------------+------------------------------------------------------+Optimize サービスが監査を実行したことを確認します。
$ openstack optimize audit list出力例
監査の
Stateの値がSUCCEEDEDの場合、監査が実行され、アクションプランが作成されています。+----------------------------+-----------+-----------------------------+ | UUID | State | Strategy | +----------------------------+-----------+-----------------------------+ | bdb0edfa-344a-4897-a7fd- | SUCCEEDED | vm_workload_consolidation | | 3b1994d87db7 | | | +----------------------------+-----------+-----------------------------+アクションプランを確認します。
例
$ openstack optimize actionplan list \ --audit bdb0edfa-344a-4897-a7fd-3b1994d87db7出力例
この例では、
Global efficacyは、Live_migrations_count: 50.00 %です。この値は、アクションプランを実行すると、コンピュートサービスによって現在稼働中のインスタンスの 50% が移行されることを示します。+---------------------------+-------------+----------------------------+ | UUID | State | Global efficacy | +---------------------------+-------------+----------------------------+ | 71bb6d02-50a9-4e18-b030- | RECOMMENDED | Released_nodes_ratio: | | c070d5b36cde | | 50.00 % | | | | | +---------------------------+-------------+----------------------------+アクションプランに含まれるアクションをリストします。
例
$ openstack optimize action list \ --action-plan 71bb6d02-50a9-4e18-b030-c070d5b36cde出力例
この例では、アクションプランには
migrateアクションが 1 つ含まれています。+-----------------------------+---------+---------------------------+ | 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 | | | +-----------------------------+---------+---------------------------+アクションの詳細を表示できます。
例
$ openstack optimize action show 7207af7a-569f-4d72-9a9a-0be7f9c9b175出力例
この例では、アクションプランは、CPU 使用率の高いインスタンスの 1 つを、インスタンスの CPU 使用率が低いコンピュートノードにライブマイグレーションします。
+-------------+--------------------------------------------------------+ | 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. | +-------------+--------------------------------------------------------+アクションプランを実行します。
例
$ 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 | +---------------------+------------------------------------------------+アクションが成功したことを確認します。
例
$ 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 | | +-----------+----------------------------+---------------------------+CPU 使用率の高いインスタンスの 1 つが別のコンピュートノードに移行されていることを確認します。
$ openstack server list --long出力例
この例では、インスタンス
test01とtest03が別のノードcompute2で実行されています。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test04 | compute2.ctlplane.localdomain | | test03 | compute2.ctlplane.localdomain | | test02 | compute2.ctlplane.localdomain | | test01 | compute2.ctlplane.localdomain | +--------+-------------------------------+openstackclientPod を終了します。$ exit