4.6. 計画メンテナンスのためのコンピュートノードの準備
host maintenance strategy で Optimize サービス (watcher) を使用して、Red Hat OpenStack Services on OpenShift (RHOSO) 環境のコンピュートノードからすべてのインスタンスを移行し、ユーザーへの影響なしにホストメンテナンスを実行します。バックアップノードが提供されていない場合、Optimize サービスは nova-scheduler に依存してすべてのインスタンスを移行します。どちらの使用例でも、コンピュートメンテナンスノードは無効になります。
ワークロードへの影響を最小限に抑えるには、負荷の少ない時間帯にメンテナンス期間を計画し、host maintenance strategy を使用してください。監査を実行するときは、デフォルトの audit_type 値 ONESHOT を変更しないようにしてください。
| 目的 | ストラテジー |
|---|---|
|
|
|
前提条件
- RHOSO 18.0 が稼働しており、Optimize サービス (watcher) が実行されている。
コンピュートノードが 2 つ以上ある。
- 少なくとも 1 つのインスタンスが実行されているコンピュートノード 1 つ。
- バックアップノードとして機能する 2 番目のコンピュートノード。
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。
手順
ワークステーションから OpenStackClient Pod のリモートシェルにアクセスします。
$ oc rsh -n openstack openstackclient少なくとも 2 つのコンピュートノードと少なくとも 1 つのインスタンスがあることを確認します。
$ openstack server list --long出力例
この例では、1 つのインスタンスが
compute1で実行され、1 つのインスタンスがcompute2で実行されています。compute1ノードはメンテナンスがスケジュールされているため、host maintenance strategy で Optimize サービスを使用して、ユーザーへの影響なしにインスタンスをcompute1からcompute2に移行します。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test02 | compute2.ctlplane.localdomain | | test01 | compute1.ctlplane.localdomain | +--------+-------------------------------+ストラテジー
host_maintenanceと目標cluster_maintainingを使用する監査テンプレートを作成します。例
この例では、監査テンプレートの名前は
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 | [] | +-------------+--------------------------------------+監査テンプレートが作成されたことを確認します。
$ openstack optimize audittemplate list出力例
+----------------------+------------------+ | Goal | Strategy | +----------------------+------------------+ | cluster_maintaining | host_maintenance | +----------------------+------------------+ストラテジー
host_maintenanceと目標cluster_maintainingに基づいて監査テンプレートを使用する監査を実行します。環境に適した値でストラテジーパラメーターを更新します。例
この例では、
HostMaintenance監査テンプレートが使用され、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 | +---------------+-------------------------------------------------------+Optimize サービスによって監査が作成されたことを確認します。
$ openstack optimize audit list出力例
Stateの値がSUCCEEDEDの場合、監査が実行され、アクションプランが作成されています。+--------------------------------------+-----------+------------------+ | UUID | State | Strategy | +--------------------------------------+-----------+------------------+ | 8cfb4abe-3720-4af2-a8a9-fba8fff1f442 | SUCCEEDED | host_maintenance | +--------------------------------------+-----------+------------------+アクションプランを確認します。
例
$ openstack optimize actionplan list \ --audit 8cfb4abe-3720-4af2-a8a9-fba8fff1f442出力例
+--------------------------------------+-------------+-----------------+ | UUID | State | Global efficacy | +--------------------------------------+-------------+-----------------+ | 40017617-7698-4ce7-b5ce-2917ec522a08 | RECOMMENDED | | +--------------------------------------+-------------+-----------------+アクションプランに含まれるアクションをリストします。
例
$ openstack optimize action list \ --action-plan 40017617-7698-4ce7-b5ce-2917ec522a08出力例
この例では、アクションプランに 2 つのアクションが含まれています。
+--------------------------------------+---------+---------------------------+ | UUID | State | Action | +--------------------------------------+---------+---------------------------+ | 19afe53e-4cf4-4b67-b910-92bca5f40186 | PENDING | change_nova_service_state | | 6e3154ac-279a-4b26-b993-9a6eea70309b | PENDING | migrate | +--------------------------------------+---------+---------------------------+アクションの詳細を表示できます。
例
$ openstack optimize action show \ 6e3154ac-279a-4b26-b993-9a6eea70309b出力例
この例では、アクションプランによって、
compute1ノードで現在実行されている 1 つのインスタンスが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 | +-------------+--------------------------------------------------------+例
$ 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. | +-------------+--------------------------------------------------------+アクションプランを実行します。
例
$ 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 | +---------------------+--------------------------------------+アクションが成功したことを確認します。
例
$ openstack optimize action list \ --action-plan 40017617-7698-4ce7-b5ce-2917ec522a08このストラテジーが使用するパラメーターの詳細は、ホストメンテナンスストラテジー を参照してください。
出力例
この例では、インスタンスは
compute1ノードから移行され、compute1の状態は無効に設定されました。+--------------------------------------+-----------+---------------------------+ | UUID | State | Action | +--------------------------------------+-----------+---------------------------+ | 19afe53e-4cf4-4b67-b910-92bca5f40186 | SUCCEEDED | change_nova_service_state | | 6e3154ac-279a-4b26-b993-9a6eea70309b | SUCCEEDED | migrate | +--------------------------------------+-----------+---------------------------+メンテナンスノードで実行されているすべてのインスタンスが移行されたことを確認します。
$ openstack server list --long出力例
この例では、
compute1ノードで実行されていたインスタンスtest01が、compute2ノードで実行されています。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test02 | compute2.ctlplane.localdomain | | test01 | compute2.ctlplane.localdomain | +--------+-------------------------------+メンテナンスノードが無効になっていることを確認します。
$ openstack compute service list出力例
この例では、
compute1ノードのStatusはdisabledになっています。+-------------------------------+----------+ | Host | Status | +-------------------------------+----------+ | nova-cell0-conductor-0 | enabled | | nova-scheduler-0 | enabled | | nova-cell1-conductor-0 | enabled | | compute2.ctlplane.localdomain | enabled | | compute1.ctlplane.localdomain | disabled | +-------------------------------+----------+openstackclientPod を終了します。$ exit