インフラストラクチャーリソースの使用の最適化
Optimize サービス (watcher) を使用した Red Hat OpenStack Services on OpenShift でのインフラストラクチャーリソースの使用の管理
概要
このガイドの内容はテクノロジープレビューです。 リンクのコピーリンクがクリップボードにコピーされました!
このガイドに記載されている機能は、このリリースでは テクノロジープレビュー としての利用となるため、Red Hat では完全にはサポートされていません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。詳細は テクノロジープレビュー を参照してください。
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。
問題の作成 フォームを使用して、Red Hat OpenStack Services on OpenShift (RHOSO) または Red Hat OpenStack Platform (RHOSP) の以前のリリースのドキュメントに関するフィードバックを提供します。RHOSO または RHOSP ドキュメントの問題を作成すると、その問題は RHOSO Jira プロジェクトに記録され、フィードバックの進行状況を追跡できるようになります。
問題の作成 フォームを完了するには、Jira にログインしていることを確認してください。Red Hat Jira アカウントをお持ちでない場合は、https://issues.redhat.com でアカウントを作成できます。
- 次のリンクをクリックして、問題の作成 ページを開きます (問題の作成)。
- Summary フィールドと Description フィールドに入力します。Description フィールドに、ドキュメントの URL、章またはセクション番号、および問題の詳しい説明を入力します。フォーム内の他のフィールドは変更しないでください。
- Create をクリックします。
第1章 Optimize サービスの概要 リンクのコピーリンクがクリップボードにコピーされました!
このセクションの以下のコンテンツは、今回のリリースでは テクノロジープレビュー としての利用となるため、Red Hat によって完全にはサポートされません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。詳細は、テクノロジープレビュー を参照してください。
Red Hat OpenStack Services on OpenShift (RHOSO) Optimize サービス (watcher) は、マルチテナント RHOSO ベースのクラウド向けに柔軟でスケーラブルなリソース最適化サービスを提供します。Optimize サービスは、インフラストラクチャーリソースの使用率の目標を設定および管理するのに役立つフレームワークを提供します。
このセクションに含まれるトピックは次のとおりです。
1.1. データセンターの最適化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Services on OpenShift (RHOSO) Optimize サービス (watcher) は、データセンターの運用コストを削減するための幅広いインフラストラクチャーリソース使用目標の実現を支援する堅牢なフレームワークを提供します。Optimize サービスフレームワークには、メトリクスレシーバー、複合イベントプロセッサーとプロファイラー、最適化プロセッサー、アクションプランアプライヤーが含まれます。
| 用語 | 説明 |
|---|---|
| アクション | 監査後に Optimize サービスがクラスターの現在の状態を変換できるようにするアトミックタスク。 |
| アクションプラン | 特定の目標達成のために実行する必要があるアクションのフローを指定し、推定された全体的な有効性と有効性指標のセットを含みます。 |
| 監査 | クラスターを最適化するリクエスト。 |
| 監査テンプレート | 監査の目的が含まれます。また、エラー処理設定や自動化設定が含まれる場合があります。 |
| 目的 | 達成すべき 1 つの目標を、人間が読み取り、観察し、測定できる最終結果にします。 |
| 解決方法 | 関連する監査の目標を達成するための一連の提案されたアクションを含むストラテジーの実行結果。 |
| ストラテジー | 特定の目標に対して推奨されるソリューションを提供できるアルゴリズムの実装。 |
次のワークフローは、RHOSO 管理者が Optimize サービスを使用する方法について説明しています。
達成すべき目標を特定します。
たとえば、コンピュートノードによって消費されるエネルギーを節約するには、仮想マシンインスタンスを統合して、より少ないノードで実行します。
- Optimize サービスを使用して RHOSO 環境の監査を実行するときに使用する目標やその他の設定を定義する監査テンプレートを作成します。
- 必要に応じて、監査テンプレートにストラテジーを追加します。
監査テンプレートを使用して Optimize サービスを実行し、RHOSO 環境を監査します。
監査後、Optimize サービスは目標に基づいたアクションプランを作成します。
アクションプランを実行します。
たとえば、Compute サービス (nova) を生成してインスタンスの他のノードへのライブマイグレーションを実行するなど、アクションプランを使用して最適化サービスを実行します。
- クラウドのメトリクスをチェックして、目標達成に向けて改善が見られているか確認します。
1.2. Optimize サービスコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Services on OpenShift (RHOSO) Optimize サービス (watcher) コンポーネントは、RHOSO コントロールプレーンをホストする Red Hat OpenShift Container Platform (RHOCP) ワーカーノードでホストされます。Optimize サービスは、次のコンポーネントで構成されています。
Optimize サービス (watcher) のコンポーネント
- AMQP バス
- さまざまな watcher コンポーネント間の内部非同期通信を処理します。
- データソース
- クラスターに関連するメトリクスを保存します。オープンソースの時系列データベースである Prometheus は、watcher の主なデータソースです。
- Watcher API
- CLI、ダッシュボード (horizon) プラグイン、および Python SDK を通じて、watcher によって外部ユーザーに提供される REST API を実装します。
- Watcher アプライヤー
- watcher 決定エンジンによって構築されたアクションプランの実行を管理します。Taskflow は watcher のデフォルトのワークフローエンジンです。
- Watcher CLI
- watcher コンポーネントと対話するために使用されます。
- Watcher ダッシュボード
- ダッシュボード (horizon) を通じてウォッチャーコンポーネントと対話するために使用されます。
- Watcher データベース
RHOSO 環境でのリソースの最適化に使用されるすべての watcher オブジェクトを保存します。
- ゴール
- ストラテジー
- 監査テンプレート
- Audit (監査)
- アクションプラン
- アクションプラン API 経由の有効性指標
- アクション
- Watcher デシジョンエンジン
- 監査の目標を達成するための潜在的な最適化アクションのセットを作成します。
第2章 Optimize サービスの実装に関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
このセクションの以下のコンテンツは、今回のリリースでは テクノロジープレビュー としての利用となるため、Red Hat によって完全にはサポートされません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。詳細は、テクノロジープレビュー を参照してください。
このセクションでは、Red Hat OpenStack Services on OpenShift (RHOSO) 環境での Optimize サービス (ウォッチャー) のデプロイメントを計画する際に考慮する必要がある重要なトピックについて説明します。
このセクションに含まれるトピックは次のとおりです。
2.1. Optimize サービス (watcher) でサポートされる機能 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Services on OpenShift (RHOSO) 18.0 Optimize サービス (watcher) は、インフラストラクチャーリソースの使用の最適化 に記載されている機能のみを公式にサポートします。
2.2. Optimize サービスのソフトウェア要件 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Services on OpenShift (RHOSO) Optimize サービス (watcher) には、少なくとも以下のコンポーネントを含む RHOSO 18.0.6 以降の既存のデプロイメントが必要です。
- Compute サービス (nova)
- Identity サービス (keystone)
- Image サービス (glance)
- MariaDB
- RabbitMQ
- Prometheus メトリクスストアを含む Telemetry サービス
Dashboard サービス (horizon) は必要ありません。ただし、OpenStack クラウドで有効になっている場合は、デプロイメント以降の Dashboard サービスで Optimize サービスダッシュボードを利用できます。
2.3. Optimize サービスのストラテジー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Services on OpenShift (RHOSO) Optimize サービス (watcher) ストラテジーは、目標の達成に使用できるアルゴリズムの実装です。ストラテジーによっては目標が同じものもありますが、目標を達成する方法が異なります。自分の環境に最適なストラテジーと目標を選択してください。
RHOSO 18.0.10 では、Optimize サービスは次のストラテジーをサポートします。
2.3.1. Host maintenance strategy リンクのコピーリンクがクリップボードにコピーされました!
host migration strategy は、ユーザーに影響を与えることなく、スケジュールされたメンテナンスを実行できるようにコンピュートノードを準備するために使用できます。バックアップノードがある場合、このストラテジーでは、Compute サービス (nova) の移行機能を使用して、すべてのインスタンスをバックアップノードに移動します。バックアップノードがない場合、このストラテジーでは nova-scheduler を使用してすべてのインスタンスを移行します。host migration strategy では、実行中のインスタンスをホストしなくなったコンピュートノードのステータスを disabled に設定します。
このストラテジーの使用方法のデモンストレーションは、計画されたメンテナンスのためのコンピュートノードの準備 を参照してください。
要件
- コンピュートノードとして機能する物理ホストが少なくとも 2 台。
- Compute サービス (nova) がライブ移行とコールド移行を実行する機能。
ユーザー指定のパラメーター:
-
-p maintenance_node=<compute_node_name>(必須) - メンテナンスが必要なコンピュートノードの名前。 -
-p backup_node=<compute_node_name>(オプション) - インスタンスがライブマイグレーションされるバックアップコンピュートノードの名前。バックアップノードがない場合、このストラテジーではnova-schedulerを使用してすべてのインスタンスを移行します。
-
2.3.2. Node resource consolidation strategy リンクのコピーリンクがクリップボードにコピーされました!
Node resource consolidation strategy は、クラスター内の移行元コンピュートノードと移行先コンピュートノード間でインスタンスを移動します。リソースの使用を統合するために、Compute サービス (nova) のライブマイグレーション機能を使用します。ノードリソースストラテジーでは、ソースコンピュートノードのステータスは変更されません。
このストラテジーの使用方法のデモンストレーションは、ノードリソースの統合 を参照してください。
要件
- 同じ CPU と RAM ハードウェアを使用するコンピュートノードが少なくとも 2 つ。
- アクティブなコンピュートノードへのライブマイグレーションを Compute サービスが実行できる。
ユーザー指定のパラメーター:
-
-p host_choice=<auto | specify>(オプション) - サーバーの移行先ノードの選択に使用する方法。値がautoの場合、Compute サービス (nova) スケジューラーが移行先ノードを選択します。値がspecifyの場合、ストラテジーによって移行先ノードが選択されます。host_choiceが指定されていない場合、ストラテジーはデフォルトでautoに設定されます。
-
2.3.3. VM workload consolidation strategy リンクのコピーリンクがクリップボードにコピーされました!
VM workload consolidation strategy は、クラスター内の移行元コンピュートノードと移行先コンピュートノード間でインスタンスを移動します。Compute サービス (nova) 移行機能を使用して、ノードの CPU 使用率が高すぎたり低すぎたりしないようにします。VM workload consolidation strategy により、ソースコンピュートノードのステータスが disabled に設定されます。
このストラテジーの使用方法のデモンストレーションは、仮想マシンインスタンスの統合 を参照してください。
要件
- コンピュートノードとして機能する物理ホストが少なくとも 2 台。
- アクティブなコンピュートノードへの移行を Compute サービスが実行できる。
ユーザー指定のパラメーター:
-
-p period=<seconds>(オプション) - メトリクスデータソースから統計の集計を取得する時間間隔 (秒)。periodが指定されていない場合、ストラテジーはデフォルトで 1 時間 (3600秒) に設定されます。
-
2.3.4. Workload balance migration strategy リンクのコピーリンクがクリップボードにコピーされました!
Workload balance migration strategy では、仮想マシンインスタンスの CPU または RAM 使用率が指定されたしきい値を超えるたびに、Compute サービス (nova) のライブマイグレーション機能を使用して、1 つの仮想マシンインスタンスを移動します。このストラテジーは、ホストされたインスタンスによって使用されるリソースの合計として計算される、コンピュートノードとして機能する物理ホストのワークロードに基づいています。移動するインスタンスは、対象ホストのワークロードがクラスター内の全コンピュートノードの平均に近づくように選びます。
このストラテジーの使用方法のデモンストレーションについては、単一インスタンスのワークロードの分散 を参照してください。
要件
- CPU と RAM ハードウェアを使用するコンピュートノードが少なくとも 2 つ。
- アクティブなコンピュートノードへのライブマイグレーションを Compute サービスが実行できる。
ユーザー指定のパラメーター:
すべてのパラメーターはオプションです。ユーザーがパラメーターを指定しない場合、このストラテジーではデフォルト値が使用されます。
-
-p metrics=instance_cpu_usage|instance_ram_usage- 必要なワークロード分散のタイプ: CPU または RAM 使用率に基づきます。デフォルトはinstance_cpu_usageです。 -
-p threshold=<percentage>- 割合 (0.0から100.0の範囲の (nn) 形式で指定する少数)。これは、コンピュートホストの CPU またはメモリー使用量のしきい値です。CPU 使用率または RAM 使用率のいずれかがしきい値のパーセンテージを超えると、Optimize サービスは、コンピュートノードリソースの使用率のバランスを改善するインスタンスのライブマイグレーションを検索します。thresholdは、移行に関係する移行元ノードと移行先ノードの両方に適用されます。デフォルトは25.0です。 -
-p period=<seconds>- しきい値が評価される時間間隔 (秒)。デフォルトは 5 分 (300秒) です。
-
2.3.5. Workload stabilization strategy リンクのコピーリンクがクリップボードにコピーされました!
Workload stabilization strategy は、仮想マシンインスタンスを移動することでクラスターの過負荷に対応します。クラスターを安定させるために、Compute サービス (nova) のライブマイグレーション機能を使用します。このストラテジーは標準偏差に基づいています。
このストラテジーの使用方法のデモンストレーションは、複数のワークロードの安定化 を参照してください。
要件
- CPU と RAM ハードウェアを使用するコンピュートノードが少なくとも 2 つ。
- アクティブなコンピュートノードへのライブマイグレーションを Compute サービスが実行できる。
ユーザー指定のパラメーター:
すべてのパラメーターはオプションです。ユーザーがパラメーターを指定しない場合、このストラテジーではデフォルト値が使用されます。
-
-p metrics='["instance_cpu_usage","instance_ram_usage"]'- クラスターのワークロードを評価するためにストラテジーが使用するメトリクスまたはメトリクス。デフォルトでは、指定されていない限り、CPU 使用量と RAM 使用量の両方が評価されます。 -
-p thresholds='{"instance_cpu_usage": <trigger_value>、"instance_ram_usage": <trigger_value>}'- 正規化された CPU または RAM 使用量の標準偏差を表す0.0 - 0.5の範囲の数値。値0.0は完全に負荷が均等に分散されたクラスターであり、値0.5は完全に不均衡なクラスターになります。thresholdsを超えると、アクションプランを探すストラテジーがトリガーされます。両方の使用タイプのデフォルトのしきい値は0.2です。 -
-p weights='{"instance_cpu_usage_weight": 1.0、"instance_ram_usage_weight": 1.0}'- 共通標準偏差の計算に使用される小数形式の数値。両方の使用タイプのデフォルトの重み値は1.0です。 -
-p instance_metrics='{"instance_cpu_usage":"host_cpu_usage","instance_ram_usage":"host_ram_usage"}'- CPU および RAM 使用量のインスタンスメトリクスを使用してハードウェア統計を取得するためにストラテジーが使用するマッピング。これらのパラメーターやその値を変更しないでください。 -
-p host_choice='cycle|retry|fullsearch'- 各ライブマイグレーションの宛先ホストを取得するためにストラテジーが使用する方法。有効な値は、反復的にホストを照会するcycle、count_retryパラメーターを使用してランダムにホストを照会するretry、リストから各ホストを照会するfullsearchです。デフォルト値はretryです。 -
-p retry_count='<number>'- 使用されるランダムクエリーの数として-p host_choice='retry'が指定されている場合に使用される数値。デフォルト値は1です。 -
-p periods='{"instance":<seconds>,"node":<seconds>}'- インスタンスとホストのサンプルを集計のためにグループ化する、繰り返しの時間間隔 (秒単位)。Optimize サービス (watcher) は最後の期間のみを使用します。インスタンスとノードのデフォルトの期間はそれぞれ720秒と600秒です。
-
2.3.6. Zone migration strategy リンクのコピーリンクがクリップボードにコピーされました!
Zone migration strategy では、Compute サービス (nova) ライブマイグレーション機能を使用して、ユーザーへの影響やハードウェアメンテナンスのダウンタイムを最小限に抑えながら、多数の仮想マシンインスタンスを効率的に移動します。
このストラテジーの使用方法のデモンストレーションは、ワークロード移行の合理化 を参照してください。
ゾーン移行ストラテジーにおける ゾーン という用語は、ユーザー定義のコンピュートノードとストレージプールのセットを指します。ゾーン は OpenStack のアベイラビリティーゾーンを指すものではありません。
要件
- コンピュートノードとして機能する物理ホストが少なくとも 2 台。
- Compute サービス (nova) がライブ移行とコールド移行を実行する機能。
ユーザー指定のパラメーター:
-
-p compute_nodes='[{<compute_nodes_array_elements>}]'(必須) - 移行するコンピュートノード。このドキュメントの後半の「compute_nodes配列要素」を参照してください。 -
-p parallel_total(オプション) - 並列実行されるアクションの合計数。parallel_totalが指定されていない場合、ストラテジーのデフォルトは6です。 -
-p parallel_per_node(オプション) - 1 つのアクションプランでコンピュートノードごとに並列実行されるアクションの数。parallel_per_nodeが指定されていない場合、ストラテジーはデフォルトで2に設定されます。 -
-p priority(オプション) - インスタンスの優先順位を示すリスト。
-
compute_nodes配列要素:`-p compute_nodes='[{"src_node":"<compute_node_name>", "dst_node":"<compute_node_name>"}]'`-
"src_node":"<compute_node_name>"(必須) - インスタンスの移行元のコンピュートノードの名前。 -
"dst_node":"<compute_node_name>"(オプション) - インスタンスの移行先のコンピュートノードの名前。宛先ノードが指定されていない場合、このストラテジーはnova-schedulerに依存して宛先ノードを選択します。
-
優先オブジェクト要素:`-p priority='[{ "project":"<project_name>,...", "compute_nodes='[{<compute_node_array_elements>}]'", "compute='["vcpu_num", "mem_size", "disk_size", "created_at"]'" }]'`-
"project":"<project_name>,..."(オプション) - 優先順位付けされたコンピュートノードとボリュームを含むプロジェクト (テナント) の名前。 -
"compute_nodes='[{<compute_node_array_elements>}]'"(オプション) - 優先順位を付けるコンピュートノード名。このドキュメントで前述した「compute_nodes配列要素」を参照してください。 -
"compute='["vcpu_num"、"mem_size"、"disk_size"、"created_at"]'"(オプション) - 優先順位を付けるインスタンスの属性。
-
2.4. Optimize サービスの RHOSO 環境の確認 リンクのコピーリンクがクリップボードにコピーされました!
Optimize サービス (watcher) をデプロイする前に、Red Hat OpenStack Services on OpenShift (RHOSO) 環境が必要な要件を満たしていることを確認してください。
前提条件
- 機能する RHOSO 18.0.6 以降のデプロイメント。デプロイメントには 2 つ以上のコンピュートノードを含める。
- Compute サービス (nova) のライブマイグレーション機能が動作する。
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。
手順
サービスエンドポイントが利用可能であることを確認します。
$ oc rsh openstackclient openstack endpoint list -c 'ID' -c 'Service Name' -c 'Enabled'出力例
+----------------------------------+--------------+---------+ | ID | Service Name | Enabled | +----------------------------------+--------------+---------+ | 0bada656064a4d409bc5fed610654edd | neutron | True | | 17453066f8dc40bfa0f8584007cffc9a | cinderv3 | True | | 22768bf3e9a34fefa57b96c20d405cfe | keystone | True | | 54e3d48cdda84263b7f1c65c924f3e3a | glance | True | | 74345a18262740eb952d2b6b7220ceeb | keystone | True | | 789a2d6048174b849a7c7243421675b4 | placement | True | | 9b7d8f26834343a59108a4225e0e574a | nova | True | | a836d134394846ff88f2f3dd8d96de34 | nova | True | | af1bf23e62c148d3b7f6c47f8f071739 | placement | True | | ce0489dfeff64afb859338e480397f90 | glance | True | | db69cc22117344b796f97e8dd3dc67e5 | neutron | True | | fa48dc132b524915b4d1ca963c50a653 | cinderv3 | True | +----------------------------------+--------------+---------+Prometheus メトリクスストレージを備えた Telemetry Operator の準備ができていることを確認します。
$ oc get telemetry出力例
NAME STATUS MESSAGE telemetry True Setup complete$ oc get metricstorage出力例
NAME STATUS MESSAGE metric-storage True Setup complete
第3章 既存の RHOSO 環境での Optimize サービスのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
このセクションの以下のコンテンツは、今回のリリースでは テクノロジープレビュー としての利用となるため、Red Hat によって完全にはサポートされません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。詳細は、テクノロジープレビュー を参照してください。
Red Hat OpenStack Services on OpenShift (RHOSO) コントロールプレーンには、クラウドを管理する RHOSO サービスが含まれています。Optimize サービス (watcher) とその他の RHOSO サービスは、Red Hat OpenShift Container Platform (RHOCP) ワークロードとして実行されます。
通常、OpenStack Operator (openstack-operator) はすべての OpenStack サービス Operator をインストールします。また、それらの Operator の管理に使用するインターフェイスです。ただし、RHOSO 18.0.6 以降では、Optimize サービスの Operator である watcher-operator はスタンドアロン Operator であり、独立して管理されます。
RHOSO 環境での Optimize サービスのデプロイには、次の手順が含まれます。
Optimize service Operator をインストールします。
注記OCP コマンドラインインターフェイス または OCP コンソール のいずれかを使用できます。
- Optimize サービス認証情報の Secret CR を更新します。
- 既存の RHOSO コントロールプレーンに Optimize サービスを作成します。
3.1. OpenShift コンソールを使用した Optimize サービス Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Optimize サービス (watcher) とその他の Red Hat OpenStack Services on OpenShift (RHOSO) IaaS サービスは、Red Hat OpenShift Container Platform (RHOCP) クラスター上で実行される Operator のコレクションとして実装されます。これらの Operator は、RHOSO クラウドのコンピュート、ストレージ、ネットワーク、およびその他のサービスを管理します。Optimize サービスをデプロイするには、RHOSO コントロールプレーンをホストする RHOCP クラスターに watcher-operator をインストールします。
この手順では、Red Hat OpenShift コンソールを使用して watcher-Operator をインストールする方法を説明します。コンソールを使用する代わりに、OpenShift CLI を使用して watcher-operator をインストールすることもできます。
通常、OpenStack Operator (openstack-operator) はすべての OpenStack サービス Operator をインストールします。また、それらの Operator の管理に使用するインターフェイスです。ただし、RHOSO 18.0.6 以降では、Optimize サービスの Operator である watcher-operator はスタンドアロン Operator であり、独立して管理されます。
前提条件
- cluster-admin 権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。
- ワークステーションに OpenShift コンソールがインストールされています。
手順
-
cluster-admin権限を持つユーザーとして OpenShift コンソールにログインします。 - Operators → OperatorHub をクリックします。
Filter by keyword フィールドに
Watcherと入力します。Watcher Operator (Technology Preview)という名前の Operator がRed Hatソースラベルとともに表示されます。- Watcher Operator (Technology Preview) をクリックします。
- Installation mode が All namespaces in the cluster に設定されていることを確認します。
Installed Namespace で openstack-operators を選択し、Install をクリックします。
Watcher Operator のステータスが Succeeded になると、Operator のデプロイと準備が完了します。
次のステップ
3.2. Optimize Service Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
Optimize サービス (watcher) とその他の Red Hat OpenStack Services on OpenShift (RHOSO) IaaS サービスは、Red Hat OpenShift Container Platform (RHOCP) クラスター上で実行される Operator のコレクションとして実装されます。これらの Operator は、RHOSO クラウドのコンピュート、ストレージ、ネットワーク、およびその他のサービスを管理します。Optimize サービスをデプロイするには、RHOSO コントロールプレーンをホストする RHOCP クラスターに watcher-operator をインストールします。
この手順では、RHOCP コマンドラインインターフェイスを使用して watcher-operator をインストールする方法を説明します。CLI を使用する代わりに、RHOCP Console を使用して watcher-operator をインストールできます。
通常、OpenStack Operator (openstack-operator) はすべての OpenStack サービス Operator をインストールします。また、それらの Operator の管理に使用するインターフェイスです。ただし、RHOSO 18.0.6 以降では、Optimize サービスの Operator である watcher-operator はスタンドアロン Operator であり、独立して管理されます。
手順
watcher Operatorのカスタムリソース定義 (CRD) を含む YAML ファイル (例:watcher-operator.yaml) を作成します。apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: watcher-operator namespace: openstack-operators spec: name: watcher-operator channel: stable-v1.0 source: redhat-operators sourceNamespace: openshift-marketplacewatcher-operatorのリソースを作成します。$ oc apply -f watcher-operator.yaml subscription.operators.coreos.com/watcher-operator createdwatcher-operatorがインストールされていることを確認します。$ oc get csv watcher-operator.v1.0.7出力例:
NAME DISPLAY VERSION REPLACES PHASE watcher-operator.v1.0.7 Watcher Operator 1.0.7 Succeeded
次のステップ
3.3. Optimize サービス認証情報の Secret CR の更新 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Services on OpenShift (RHOSO) Optimize サービス (ウォッチャー) Pod への安全なアクセスを提供するには、Secret カスタムリソース (CR) を作成する必要があります。
コントロールプレーンがデプロイされた後は、サービスパスワードは変更できません。コントロールプレーンをデプロイした後に osp-secret でサービスパスワードが変更されると、サービスは新しいパスワードを使用するように再設定されますが、Identity サービス (keystone) ではパスワードは更新されません。その結果、サービスが停止します。
前提条件
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。
手順
-
初期 RHOSO コントロールプレーンのデプロイメントで RHOSO サービス Pod へのセキュアなアクセスを提供するために使用した
SecretCR ファイル (通常はosp-secretという名前) (例:openstack_service_secret.yaml) を開きます。 WatcherPasswordフィールドを追加します。apiVersion: v1 data: ... NeutronDatabasePassword: <base64_password> NeutronPassword: <base64_password> NovaAPIDatabasePassword: <base64_password> NovaAPIMessageBusPassword: <base64_password> NovaCell0DatabasePassword: <base64_password> NovaCell0MessageBusPassword: <base64_password> NovaCell1DatabasePassword: <base64_password> NovaCell1MessageBusPassword: <base64_password> NovaPassword: <base64_password> OctaviaDatabasePassword: <base64_password> OctaviaPassword: <base64_password> PlacementDatabasePassword: <base64_password> PlacementPassword: <base64_password> SwiftPassword: <base64_password> WatcherPassword: <base64_password> kind: Secret metadata: name: osp-secret namespace: openstack type: Opaque<base64_password>を、base64 でエンコードされた 32 文字のキーに置き換えます。次のコマンドを使用して、base64 でエンコードされたパスワードを手動で生成できます。$ echo -n <password> | base64詳細は、Red Hat OpenStack Services on OpenShift のデプロイ の Red Hat OpenStack Services on OpenShift へのセキュアなアクセスの提供 を参照してください。
SecretCR を更新します。$ oc apply -f openstack_service_secret.yaml -n openstack
検証
WatcherPasswordフィールドが存在することを確認します。$ oc describe secret osp-secret -n openstack | grep Watcher出力例
WatcherPassword: 9 bytes
次のステップ
3.4. 既存の RHOSO コントロールプレーンでの Optimize サービスの作成 リンクのコピーリンクがクリップボードにコピーされました!
既存の Red Hat OpenStack Services on OpenShift (RHOSO) コントロールプレーンで Optimize サービス (watcher) を作成するには、次の手順を実行します。
-
RHOSO がセキュアな HTTP 接続 (HTTPS) を介して
watcherサービスにアクセスするために使用する必須の証明書を作成します。 -
Watcherカスタムリソース (CR) を定義して、RHOSO コントロールプレーンで Red Hat OpenShift Container Platform (RHOCP) ワークロードとして実行される Optimize サービスを作成します。
次のアクションを実行するには、3 つの個別の証明書が必要です。
- OpenShift ルートで TLS を設定します。
-
watcher内部エンドポイントと通信します。 -
watcherパブリックエンドポイントと通信します。
watcher-certificates.yaml ファイルを定義して、3 つの必須 Certificate オブジェクトを作成します。証明書ファイルに oc apply を実行すると、OpenStack Operator を使用してインストールされた Cert-Manager Operator によって証明書が作成されます。
前提条件
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。
手順
OpenStack コントロールプレーンの正しいプロジェクト (例:
openstack) とクラスターの正しいドメイン (例:watcher-internal.openstack.svc.cluster.local) が含まれるwatcher-certificates.yamlファイルを作成します。ヒントクラスターの正しいドメインを取得するには、次のコマンドを実行します。
$ oc get ingresses.config/cluster -o jsonpath={.spec.domain}watcher-certificates.yamlファイルに、作成する必要がある証明書の名前を追加します。例
次の例では、証明書は以下の目的で使用されます。
-
内部エンドポイント
cert-watcher-internal-svcと通信します。 -
外部エンドポイント
cert-watcher-public-routeと通信します。 OpenShift ルート
cert-watcher-public-svcで TLS を設定します。--- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: watcher-internal-svc namespace: openstack spec: dnsNames: - watcher-internal.openstack.svc - watcher-internal.openstack.svc.cluster.local duration: 43800h0m0s issuerRef: group: cert-manager.io kind: Issuer name: rootca-internal secretName: cert-watcher-internal-svc usages: - key encipherment - digital signature - server auth --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: watcher-public-route spec: dnsNames: - watcher-public-openstack.example.com issuerRef: group: cert-manager.io kind: Issuer name: rootca-public secretName: cert-watcher-public-route usages: - key encipherment - digital signature - server auth --- apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: watcher-public-svc spec: dnsNames: - watcher-public.openstack.svc - watcher-public.openstack.svc.cluster.local duration: 43800h0m0s issuerRef: group: cert-manager.io kind: Issuer name: rootca-public secretName: cert-watcher-public-svc usages: - key encipherment - digital signature - server auth
-
内部エンドポイント
watcher-certificates.yamlファイルを適用して、次の 3 つの証明書を作成します。$ oc apply -f watcher-certificates.yaml -n openstack出力例
certificate.cert-manager.io/watcher-internal-svc created certificate.cert-manager.io/watcher-public-route created certificate.cert-manager.io/watcher-public-svc createdワークステーションに
watcher.yamlという名前のファイルを作成し、WatcherCR を定義します。apiVersion: watcher.openstack.org/v1beta1 kind: Watcher metadata: name: watcherOptimize サービス認証情報の Secret CR の更新 で、
watcherサービス Pod へのセキュアなアクセスを提供するために使用したSecretCR を指定します。apiVersion: watcher.openstack.org/v1beta1 kind: Watcher metadata: name: watcher spec: databaseInstance: "openstack" secret: osp-secret apiServiceTemplate: ...WatcherCR ファイルwatcher.yamlで、endpointURLフィールドのexample.comドメインをクラスターの正しいドメインに置き換えます。apiVersion: watcher.openstack.org/v1beta1 kind: Watcher metadata: name: watcher spec: databaseInstance: "openstack" secret: osp-secret apiOverride: tls: secretName: cert-watcher-public-route apiServiceTemplate: override: service: public: endpointURL: https://watcher-public-openstack.example.com tls: caBundleSecretName: "combined-ca-bundle" api: internal: secretName: cert-watcher-internal-svc public: secretName: cert-watcher-public-svcWatcherCR をデプロイします。$ oc apply -f watcher.yaml -n openstack出力例
watcher.watcher.openstack.org/watcher configuredサービスのステータスを確認します。
$ oc wait -n openstack --for condition=Ready --timeout=300s Watcher watcherWatcherは CR ファイル内のkindフィールドを参照し、watcherは CR ファイル内のnameフィールドを参照します。出力例
watcher.watcher.openstack.org/watcher condition met
検証
Optimize サービス (watcher) が Identity サービス (keystone) に登録され、OpenStack サービスのリストに表示されていることを確認します。
$ oc rsh openstackclient openstack service list出力例
+----------------------------------+------------+-------------+ | ID | Name | Type | +----------------------------------+------------+-------------+ | 1470e8d6019446a1bcdfdb6dc55f3f6a | nova | compute | | 41d60e1c678142cf8e5daf7a82af1864 | neutron | network | | 5b0d95d1c08e4deb832815addd859924 | ceilometer | Ceilometer | | 7e081cb4928945d7aa41d1622f7b8586 | cinderv3 | volumev3 | | 8d7ee56ca2bb4dba999d67580909dd90 | glance | image | | c3348e10fb414780988fbbceac9c4b5f | watcher | infra-optim | | db60453eca65409bbb0b61f4295c66ec | placement | placement | | fa717124fbcb4d708ba4c41c9109df81 | keystone | identity | +----------------------------------+------------+-------------+openstackclientPod がwatcherサービスと通信できることを確認するには、OpenStack クラウドが watcher エンドポイントと通信できることを確認します。$ oc rsh openstackclient openstack optimize service list出力例
+----+-------------------------+---------------------------+--------+ | ID | Name | Host | Status | +----+-------------------------+---------------------------+--------+ | 1 | watcher-applier | watcher-applier-0 | ACTIVE | | 2 | watcher-decision-engine | watcher-decision-engine-0 | ACTIVE | +----+-------------------------+---------------------------+--------+エンドポイントが HTTPS を使用していることを確認します。
$ oc rsh openstackclient openstack endpoint list --service infra-optim -c 'Service Name' -c 'Interface' -c 'URL'出力例
+--------------+-----------+---------------------------------------------------------------+ | Service Name | Interface | URL | +--------------+-----------+---------------------------------------------------------------+ | watcher | public | https://watcher-public-watcher-kuttl-default.example.com | | watcher | internal | https://watcher-internal.watcher-kuttl-default.svc:9322 | +--------------+-----------+---------------------------------------------------------------+
第4章 Optimize サービスワークフローの例 リンクのコピーリンクがクリップボードにコピーされました!
このセクションの以下のコンテンツは、今回のリリースでは テクノロジープレビュー としての利用となるため、Red Hat によって完全にはサポートされません。これは、テスト用途にのみご利用いただく機能です。実稼働環境にはデプロイしないでください。詳細は、テクノロジープレビュー を参照してください。
Red Hat OpenStack Services on OpenShift (RHOSO) の Optimize サービス (watcher) のこのリリースには、2 つのサンプルワークフローが同梱されています。1 つのワークフローでは OpenStack CLI を使用し、もう 1 つのワークフローでは OpenStack Dashboard (horizon) を使用します。2 つのサンプルワークフローでは、インスタンスを作成する必要があります。インスタンスの作成については、インスタンスの作成と管理 の インスタンスの作成 を参照してください。
このセクションに含まれるトピックは次のとおりです。
前提条件
- 機能する RHOSO 18.0 のデプロイメント。デプロイメントには 2 つ以上のコンピュートノードを含める。
- Compute サービス (nova) のライブマイグレーション機能が動作する。
- Optimize サービスが稼働している。
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。
4.1. ノードリソースの統合 リンクのコピーリンクがクリップボードにコピーされました!
node resource consolidation strategy を使用して、ワークロードの拡散を減らし、インスタンスをコンピュートノードの小さなサブセットにまとめます。Red Hat OpenStack Services on OpenShift (RHOSO) 管理者は、node resource consolidation strategy で Optimize サービス (watcher) を使用して、ユーザーへの影響なしに、実行中のすべてのインスタンスを移行元コンピュートノードから移行先コンピュートノードに移行できます。VM workload consolidation strategy とは異なり、node resource 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 -c Name -c Host出力例
この例では、それぞれ
compute1とcompute2で実行されているインスタンスtest01とtest02は次のとおりです。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test02 | compute2.ctlplane.localdomain | | test01 | compute1.ctlplane.localdomain | +--------+-------------------------------+ストラテジー
node_resource_consolidationと目標server_consolidationを使用する監査テンプレートを作成します。例
この例では、監査テンプレートの名前は
NodeResourceConsolidationです。$ openstack optimize audittemplate create -s node_resource_consolidation NodeResourceConsolidation server_consolidation出力例
+-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | UUID | 6e7f98fc-c311-4097-9370-fa66e5bfedcf | | Created At | 2025-07-11T17:39:37.776106+00:00 | | Updated At | None | | Deleted At | None | | Description | None | | Name | NodeResourceConsolidation | | Goal | server_consolidation | | Strategy | node_resource_consolidation | | Audit Scope | [] | +-------------+--------------------------------------+監査テンプレートが作成されたことを確認します。
$ openstack optimize audittemplate list出力例
+----------------------+-----------------------------+ | Goal | Strategy | +----------------------+-----------------------------+ | server_consolidation | node_resource_consolidation | +----------------------+-----------------------------+ストラテジー
node_resource_consolidationと目標server_consolidationに基づいて監査テンプレートを使用する監査を実行します。例
この監査では、
NodeResourceConsolidation監査テンプレートが使用され、両方のコンピュートノードのリソース使用状況がチェックされます。ストラテジーパラメーターhost_choice=specifyが設定されています。これは、ストラテジーによってインスタンスが移行されるノードが指定されることを意味します。$ openstack optimize audit create -a NodeResourceConsolidation \ -p host_choice=specifyこのストラテジーが使用するパラメーターの詳細は、ノードリソース統合ストラテジー を参照してください。
出力例
+---------------+--------------------------------------------------------+ | Field | Value | +---------------+--------------------------------------------------------+ | UUID | 7984626e-cc14-4b87-ab96-f0127f2da51e | | Name | node_resource_consolidation-2025-07-11T17:45:36.604178 | | Created At | 2025-07-11T17:45:36.615613+00:00 | | Updated At | None | | Deleted At | None | | State | PENDING | | Audit Type | ONESHOT | | Parameters | {'host_choice': 'specify'} | | Interval | None | | Goal | server_consolidation | | Strategy | node_resource_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 | +----------------------------+-----------+-----------------------------+ | 7984626e-cc14-4b87-ab96- | SUCCEEDED | node_resource_consolidation | | f0127f2da51e | | | +----------------------------+-----------+-----------------------------+アクションプランを確認します。
例
$ openstack optimize actionplan list \ --audit 7984626e-cc14-4b87-ab96-f0127f2da51e出力例
この例では、
Global efficacyはReleased_nodes_ratio: 50.00 %.です。この値は、アクションプランを実行すると、コンピュートサービスがインスタンスをライブマイグレーションし、環境内のコンピュートノードの半分が解放され、実行中のインスタンスがホストされなくなることを示します。+---------------------------+-------------+----------------------------+ | UUID | State | Global efficacy | +---------------------------+-------------+----------------------------+ | 71fc5c0c-5890-4cd8-b919- | RECOMMENDED | Released_nodes_ratio: | | f06eb94da94b | | 50.00 % | | | | | +---------------------------+-------------+----------------------------+アクションプランに含まれるアクションをリストします。
例
$ openstack optimize action list \ --action-plan 71fc5c0c-5890-4cd8-b919-f06eb94da94b出力例
この例では、アクションプランには
migrateアクションが 1 つ含まれています。+--------------------------------------+---------+---------+ | UUID | State | Action | +--------------------------------------+---------+---------+ | bda5053b-2489-49fe-bc04-5b2ad3bc5075 | PENDING | migrate | +--------------------------------------+---------+---------+アクションの詳細を表示できます。
例
$ openstack optimize action show bda5053b-2489-49fe-bc04-5b2ad3bc5075出力例
この例では、アクションプランは、コンピュートノードの 1 つで実行されている全インスタンスのライブマイグレーションを実行して、ノードを解放します。
+-------------+--------------------------------------------------------+ | Field | Value | +-------------+--------------------------------------------------------+ | UUID | bda5053b-2489-49fe-bc04-5b2ad3bc5075 | | Created At | 2025-07-11T17:45:36+00:00 | | Updated At | None | | Deleted At | None | | Parents | [] | | State | PENDING | | Action Plan | 71fc5c0c-5890-4cd8-b919-f06eb94da94b | | Action | migrate | | Parameters | {'migration_type': 'live', 'source_node': | | | 'compute1.ctlplane.localdomain', 'resource_name': | | | 'test01', 'destination_node': | | | 'compute2.ctlplane.localdomain', 'resource_id': | | | '331141f0-2335-4bef-8129-c27041c4d632'} | | Description | Moving a VM instance from source_node to | | | destination_node | +-------------+--------------------------------------------------------+アクションプランを実行します。
例
$ openstack optimize actionplan start \ 71fc5c0c-5890-4cd8-b919-f06eb94da94b出力例
+---------------------+------------------------------------------------+ | Field | Value | +---------------------+------------------------------------------------+ | UUID | 71fc5c0c-5890-4cd8-b919-f06eb94da94b | | Created At | 2025-07-11T17:45:36+00:00 | | Updated At | 2025-07-11T18:04:55+00:00 | | Deleted At | None | | Audit | 7984626e-cc14-4b87-ab96-f0127f2da51e | | Strategy | node_resource_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': 1.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 71fc5c0c-5890-4cd8-b919-f06eb94da94出力例
+-----------------------+-----------+------------------------+---------+ | UUID | State | Action Plan | Action | +-----------------------+-----------+------------------------+---------+ | bda5053b-2489-49fe- | SUCCEEDED | 71fc5c0c-5890-4cd8- | migrate | | bc04-5b2ad3bc5075 | | b919-f06eb94da94b | | +-----------------------+-----------+------------------------+---------+コンピュートノードの 1 つがインスタンスをホストしていないことを確認します。
$ openstack server list --long出力例
この例では、
test01とtest02の両方のインスタンスが同じコンピュートノードcompute2上で実行されています。これはcompute1ノードが解放されたことを意味します。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test02 | compute2.ctlplane.localdomain | | test01 | compute2.ctlplane.localdomain | +--------+-------------------------------+openstackclientPod を終了します。$ exit
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
4.3. 複数のワークロードの安定化 リンクのコピーリンクがクリップボードにコピーされました!
物理ホストの CPU または RAM の使用率が指定されたしきい値を超えたときに workload stabilization strategy で Optimize サービス (watcher) を使用して仮想マシンインスタンスのワークロードを移動します。移行するインスタンスは、対象ホストのワークロードが Red Hat OpenStack Services on OpenShift (RHOSO) クラスター内のすべてのコンピュートノードの平均に近づくようにする必要があります。
このトピックでは、複数のワークロードを安定化するときに OpenStack Dashboard (horizon) を使用する方法も説明します。
| 目的 | ストラテジー |
|---|---|
|
|
|
前提条件
- RHOSO 18.0 が稼働しており、Optimize サービス (watcher) が実行されている。
- 異なるノードで実行されるインスタンスを少なくとも 2 つ作成した。
- ワークステーションに Dashboard サービス (horizon) がインストールされている。
-
ワークステーションに
ocコマンドラインツールがインストール済みである。 -
cluster-admin権限を持つユーザーとして、RHOSO コントロールプレーンにアクセスできるワークステーションにログオン済みである。
手順
Adminロールが割り当てられているプロジェクトにいることを確認します。
Computeメニューをクリックし、Instancesを選択します。
RHOSO 環境に、各ノードで少なくとも 1 つのインスタンスを実行する少なくとも 2 つのコンピュートノードが含まれていることを確認します。
この例では、
compute1で実行されているインスタンスtest01とtest03の CPU 負荷が高くなっています。workload stabilization strategy で Optimize サービスを使用して、ユーザーへの影響なしに、これらのインスタンスの少なくとも 1 つを、より容量の多いコンピュートノードにライブマイグレーションできます。
Adminタブをクリックします。
Optimizationメニューをクリックし、Audit Templatesを選択します。
Audit TemplatesパネルでCreate Templateをクリックします。
Create Audit Templateダイアログボックスが表示されます。WorkLoadStabilizationという名前のAudit Templateを作成し、目標としてWorkload Balancingを、ストラテジーとしてWorkload stabilizationを選択します。完了したら、Create Audit Templateボタンをクリックします。
Auditsサブタブをクリックし、Create Auditボタンをクリックします。
Create Auditダイアログボックスが表示されます。次の値を選択し、
Create Auditボタンをクリックします。-
Audit Templateで、WorkLoadStabilizationを選択します。 -
Audit TypeでCONTINUOUSを選択します。 Intervalに180を入力します。
-
新しい監査用に作成されたアクションプランを表示するには、
Auditの UUID をクリックします。
詳細を表示するには、アクションプランの UUID をクリックしてください。
Related Actionsの UUID をクリックします。
Actionsパネルでは、推奨アクションに関する詳細情報を確認できます。この例では、CPU 負荷が高いインスタンスである
test01インスタンスが、compute1ノードからcompute2ノードにライブマイグレーションされます。
アクションの確認が完了したら、
Action plansサブメニューをクリックします。
Action PlansパネルのRECOMMENDEDアクションプランで、Start Action Planボタンをクリックします。
Stateの値がONGOINGに変わります。StateにSUCCEEDEDの値が表示されるまで、アクションプランパネルを監視します。Computeメニューをクリックし、Instancesを選択します。
CPU 使用率の高いインスタンスの 1 つが別のコンピュートノードに移行されていることを確認します。
この例では、インスタンス
test01は別のノードcompute2で実行されています。
Optimizationメニューをクリックし、Auditsを選択します。
AuditsパネルのGo to Action PlanドロップダウンからCancel Auditを選択して、CONTINUOUS監査を停止します。
4.4. 単一インスタンスのワークロードの分散 リンクのコピーリンクがクリップボードにコピーされました!
物理ホストの CPU または RAM の使用率が指定されたしきい値を超えたときに、workload balance strategy で Optimize サービス (watcher) を使用して仮想マシンインスタンスのワークロードを移動します。移行するインスタンスは、対象ホストのワークロードが Red Hat OpenStack Services on OpenShift (RHOSO) クラスター内のすべてのコンピュートノードの平均に近づくようにする必要があります。
| 目的 | ストラテジー |
|---|---|
|
|
|
前提条件
- 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の CPU 負荷が高くなっています。workload balance strategy で Optimize サービスを使用して、ユーザーへの影響なしに、これらのインスタンスの少なくとも 1 つを、より容量の多いコンピュートノードにライブマイグレーションすることを想定します。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test04 | compute2.ctlplane.localdomain | | test03 | compute1.ctlplane.localdomain | | test02 | compute2.ctlplane.localdomain | | test01 | compute1.ctlplane.localdomain | +--------+-------------------------------+ストラテジー
workload_balance、および目標workload_balancingを使用する監査テンプレートを作成します。例
この例では、監査テンプレートの名前は
WorkLoadBalanceです。$ openstack optimize audittemplate create -s workload_balance \ WorkLoadBalance workload_balancing出力例
+-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | UUID | 5990155a-e3f2-46f8-a81e-c87d0b2f09a2 | | Created At | 2025-07-03T14:05:23.231411+00:00 | | Updated At | None | | Deleted At | None | | Description | None | | Name | WorkLoadBalance | | Goal | workload_balancing | | Strategy | workload_balance | | Audit Scope | [] | +-------------+--------------------------------------+監査テンプレートが作成されたことを確認します。
$ openstack optimize audittemplate list出力例
+----------------------+------------------+ | Goal | Strategy | +----------------------+------------------+ | workload_balancing | workload_balance | +----------------------+------------------+ストラテジー
workload_balance、および目標workload_balancingに基づいて監査テンプレートを使用する監査を実行します。環境に適した値でストラテジーパラメーターを更新します。例
この監査では、
WorkLoadBalance監査テンプレートが使用され、さまざまな値を持つworkload_balanceストラテジーパラメーターを使用して CPU 使用率をチェックします。$ openstack optimize audit create -a WorkLoadBalance -p granularity=30 \ -p threshold=20 -p period=300 -p metrics=instance_cpu_usageこのストラテジーが使用するパラメーターの詳細は、Workload balance migration strategy を参照してください。
出力例
+---------------+------------------------------------------------------+ | Field | Value | +---------------+------------------------------------------------------+ | UUID | ad815d54-5b7d-4562-aa12-17e1b64d0868 | | Name | workload_balance-2025-07-03T15:55:08.016161 | | Created At | 2025-07-03T15:55:08.026706+00:00 | | Updated At | None | | Deleted At | None | | State | PENDING | | Audit Type | ONESHOT | | Parameters | {'granularity': 30, 'threshold': 20, 'period': 300, | | | 'metrics': 'instance_cpu_usage'} | | Interval | None | | Goal | workload_balancing | | Strategy | workload_balance | | 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 | +--------------------------------------+-----------+------------------+ | ad815d54-5b7d-4562-aa12-17e1b64d0868 | SUCCEEDED | workload_balance | +--------------------------------------+-----------+------------------+アクションプランを確認します。
例
$ openstack optimize actionplan list \ --audit ad815d54-5b7d-4562-aa12-17e1b64d0868出力例
この例では、
Global efficacyはLive_migrations_count: 25.00 %です。この値は、アクションプランを実行すると、コンピュートサービスによって現在稼働中のインスタンスの 25% が移行されることを示します。+---------------------------+-------------+----------------------------+ | UUID | State | Global efficacy | +---------------------------+-------------+----------------------------+ | f40dfa4e-1b96-4883-b85f- | RECOMMENDED | Live_migrations_count: | | 3bfa73554359 | | 25.00 % | | | | | +---------------------------+-------------+----------------------------+アクションプランに含まれるアクションをリストします。
例
$ openstack optimize action list \ --action-plan f40dfa4e-1b96-4883-b85f-3bfa73554359出力例
この例では、アクションプランには
migrateアクションが 1 つ含まれています。+--------------------------------------+---------+---------+ | UUID | State | Action | +--------------------------------------+---------+---------+ | 9a510bf9-ebac-450d-a4ea-a10b66d6d869 | PENDING | migrate | +--------------------------------------+---------+---------+アクションの詳細を表示できます。
例
$ openstack optimize action show 9a510bf9-ebac-450d-a4ea-a10b66d6d869出力例
この例では、アクションプランは、CPU 使用率の高いインスタンスの 1 つを、インスタンスの CPU 使用率が低いコンピュートノードにライブマイグレーションします。
+-------------+--------------------------------------------------------+ | Field | Value | +-------------+--------------------------------------------------------+ | UUID | 9a510bf9-ebac-450d-a4ea-a10b66d6d869 | | Created At | 2025-07-03T15:55:08+00:00 | | Updated At | None | | Deleted At | None | | Parents | [] | | State | PENDING | | Action Plan | f40dfa4e-1b96-4883-b85f-3bfa73554359 | | Action | migrate | | Parameters | {'migration_type': 'live', 'source_node': | | | 'compute1.ctlplane.localdomain', 'destination_node': | | | 'compute2.ctlplane.localdomain', 'resource_name': | | | 'test03', 'resource_id': | | | 'd6ae1c7c-8e69-45ae-92b3-6218b8c1570b'} | | Description | Moving a VM instance from source_node to | | | destination_node | +-------------+--------------------------------------------------------+アクションプランを実行します。
例
$ openstack optimize actionplan start \ f40dfa4e-1b96-4883-b85f-3bfa73554359出力例
+---------------------+------------------------------------------------+ | Field | Value | +---------------------+------------------------------------------------+ | UUID | f40dfa4e-1b96-4883-b85f-3bfa73554359 | | Created At | 2025-07-03T15:55:08+00:00 | | Updated At | 2025-07-03T16:00:23+00:00 | | Deleted At | None | | Audit | f878bd64-96bc-4063-97a6-dc7500edfb55 | | Strategy | workload_balance | | State | PENDING | | Efficacy indicators | [{'name': 'instance_migrations_count', | | | 'description': 'The number of VM migrations to | | | be performed.', 'unit': None, 'value': 1.0}, | | | {'name': 'instances_count', 'description': | | | 'The total number of audited instances in | | | strategy.', 'unit': None, 'value': 4.0}] | | Global efficacy | [{'name': 'live_migrations_count', | | | 'description': 'Ratio of migrated virtual | | | machines to audited virtual machines', 'unit': | | | '%', 'value': 25.0}] | | Hostname | None | +---------------------+------------------------------------------------+アクションが成功したことを確認します。
例
$ openstack optimize action list \ --action-plan dfdcb491-89c5-4c07-a5ed-65d2085c488c出力例
+------------------+---------+-----------+-------------------+---------+ | UUID | Parents | State | Action Plan | Action | +------------------+---------+-----------+-------------------+---------+ | 9a510bf9-ebac- | [] | SUCCEEDED | f40dfa4e-1b96- | migrate | | 450d-a4ea- | | | 4883-b85f- | | | a10b66d6d869 | | | 3bfa73554359 | | +------------------+---------+-----------+-------------------+---------+CPU 使用率の高いインスタンスの 1 つが別のコンピュートノードに移行されていることを確認します。
$ openstack server list --long出力例
この例では、インスタンス
test03が別のノードcompute2で実行されています。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test04 | compute2.ctlplane.localdomain | | test03 | compute2.ctlplane.localdomain | | test02 | compute2.ctlplane.localdomain | | test01 | compute1.ctlplane.localdomain | +--------+-------------------------------+openstackclientPod を終了します。$ exit
4.5. ワークロード移行の効率化 リンクのコピーリンクがクリップボードにコピーされました!
zone migration strategy で Optimize サービス (watcher) を使用すると、Red Hat OpenStack Services on OpenShift (RHOSO) 環境で、ユーザーへの影響やハードウェアメンテナンスのダウンタイムを最小限に抑えながら、多数のインスタンスを効率的に移行できます。
ゾーン移行ストラテジーにおける ゾーン という用語は、ユーザー定義のコンピュートノードとストレージプールのセットを指します。ゾーン は Openstack のアベイラビリティーゾーンを指すものではありません。
| 目的 | ストラテジー |
|---|---|
|
|
|
前提条件
- 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出力例
この例では、2 つのインスタンスが
compute1で、1 つのインスタンスがcompute2で実行されています。compute1ノードはメンテナンスがスケジュールされているため、zone migration strategy を指定した Optimize サービスを使用して、ユーザーへの影響なしにインスタンスを他のコンピュートノードにライブマイグレーションします。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test03 | compute2.ctlplane.localdomain | | test02 | compute1.ctlplane.localdomain | | test01 | compute1.ctlplane.localdomain | +--------+-------------------------------+ストラテジー
zone_migrationと目標hardware_maintenanceを使用する監査テンプレートを作成します。例
この例では、監査テンプレートの名前は
ZoneMigrationです。$ openstack optimize audittemplate create -s zone_migration ZoneMigration hardware_maintenanceこのストラテジーが使用するパラメーターの詳細は、ゾーンの移行 を参照してください。
出力例
+-------------+--------------------------------------+ | Field | Value | +-------------+--------------------------------------+ | UUID | 519d3a5e-30b2-48ae-aabf-83b246a12e13 | | Created At | 2025-07-04T12:34:54.691287+00:00 | | Updated At | None | | Deleted At | None | | Description | None | | Name | ZoneMigration | | Goal | hardware_maintenance | | Strategy | zone_migration | | Audit Scope | [] | +-------------+--------------------------------------+監査テンプレートが作成されたことを確認します。
$ openstack optimize audittemplate list出力例
+----------------------+------------------+ | Goal | Strategy | +----------------------+------------------+ | hardware_maintenance | zone_migration | +----------------------+------------------+ストラテジー
zone_migrationと目標hardware_maintenanceに基づいて監査テンプレートを使用する監査を実行します。環境に適した値でストラテジーパラメーターを更新します。例
この例では、次のストラテジーパラメーター値を持つ
ZoneMigration監査テンプレートが使用されています。-
src_node:compute1の値が含まれます。これは、メンテナンスの実行先のノードです。 dst_node:compute2の値が含まれます。これは、compute1で実行されているインスタンスが移行されるノードです。$ openstack optimize audit create -a ZoneMigration -p compute_nodes=\ '[{"src_node":"compute1.ctlplane.localdomain", "dst_node":"compute2.ctlplane.localdomain"}]'出力例
+---------------+------------------------------------------------------+ | Field | Value | +---------------+------------------------------------------------------+ | UUID | 9e9eeb70-63bd-427e-a5a6-a2f049f1bc73 | | Name | zone_migration-2025-07-04T12:38:25.151645 | | Created At | 2025-07-04T12:38:25.163096+00:00 | | Updated At | None | | Deleted At | None | | State | PENDING | | Audit Type | ONESHOT | | Parameters | {'compute_nodes': [{'src_node': 'compute1.ctlplane. | | | localdomain', 'dst_node': 'compute2.ctlplane. | | | localdomain'}], 'parallel_total': 6, | | | 'parallel_per_node': | | | 2, 'parallel_per_pool': 2, 'with_attached_volume': | | | False} | | Interval | None | | Goal | hardware_maintenance | | Strategy | zone_migration | | 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 | +--------------------------------------+-----------+------------------+ | 9e9eeb70-63bd-427e-a5a6-a2f049f1bc73 | SUCCEEDED | zone_migration | +--------------------------------------+-----------+------------------+アクションプランを確認します。
例
$ openstack optimize actionplan list \ --audit 9e9eeb70-63bd-427e-a5a6-a2f049f1bc73 \ -c UUID -c State -c "Global efficacy"出力例
この例では、
Live_instance_migrate_ratioは、アクションプランでライブマイグレーションされるインスタンスの割合を表します。つまり、アクションプラン内のライブマイグレーションの数を、ユーザー入力に従って移行できるインスタンスの数で割った値です。たとえば、src_nodeに 4 つのアクティブインスタンスがあり、そのうち 2 つがアクションプランで移行されている場合、比率は 50% になります。+---------------------------+-------------+----------------------------+ | UUID | State | Global efficacy | +---------------------------+-------------+----------------------------+ | 40305df2-c240-464b-ac56- | RECOMMENDED | Live_instance_migrate_rati | | 62e51bf139ef | | o: 100.00 % | | | | Cold_instance_migrate_rati | | | | o: 0.00 % | | | | Volume_migrate_ratio: 0.00 | | | | % | | | | Volume_update_ratio: 0.00 | | | | % | | | | | +---------------------------+-------------+----------------------------+アクションプランに含まれるアクションをリストします。
例
$ openstack optimize action list \ --action-plan 40305df2-c240-464b-ac56-62e51bf139ef \ -c 'UUID' -c 'State' -c 'Action'出力例
この例では、アクションプランには 2 つのインスタンスを移行するための 2 つのアクションが含まれています。
+--------------------------------------+---------+---------+ | UUID | State | Action | +--------------------------------------+---------+---------+ | 680e6152-e163-443d-9bd4-178b73494aa4 | PENDING | migrate | | 51a04b16-7231-4001-b3be-d5125bcd2365 | PENDING | migrate | +--------------------------------------+---------+---------+アクションの詳細を表示できます。
例
この例では、移行アクション
680e6152-e163-443d-9bd4-178b73494aa4の詳細が要求されています。$ openstack optimize action show 680e6152-e163-443d-9bd4-178b73494aa4出力例
この例では、アクションプランは
test01インスタンスをcompute1ノードからcompute2ノードに移行します。+-------------+--------------------------------------------------------+ | Field | Value | +-------------+--------------------------------------------------------+ | UUID | 680e6152-e163-443d-9bd4-178b73494aa4 | | Created At | 2025-07-04T12:38:26+00:00 | | Updated At | None | | Deleted At | None | | Parents | [] | | State | PENDING | | Action Plan | 40305df2-c240-464b-ac56-62e51bf139ef | | Action | migrate | | Parameters | {'migration_type': 'live', 'source_node': | | | 'compute1.ctlplane.localdomain', 'resource_name': | | | 'test01', 'destination_node': | | | 'compute2.ctlplane.localdomain', 'resource_id': | | | 'd6ae1c7c-8e69-45ae-92b3-6218b8c1570b'} | | Description | Moving a VM instance from source_node to | | | destination_node | +-------------+--------------------------------------------------------+アクションプランを実行します。
例
$ openstack optimize actionplan start \ 40305df2-c240-464b-ac56-62e51bf139ef出力例
この例では、両方のインスタンスが
compute1からcompute2にライブマイグレーションされています。+---------------------+------------------------------------------------+ | Field | Value | +---------------------+------------------------------------------------+ | UUID | 40305df2-c240-464b-ac56-62e51bf139ef | | Created At | 2025-07-04T12:38:26+00:00 | | Updated At | 2025-07-04T13:06:53+00:00 | | Deleted At | None | | Audit | 9e9eeb70-63bd-427e-a5a6-a2f049f1bc73 | | Strategy | zone_migration | | State | PENDING | | Efficacy indicators | [{'name': 'live_migrate_instance_count', | | | 'description': 'The number of instances | | | actually live migrated.', 'unit': None, | | | 'value': 2.0}, {'name': | | | 'planned_live_migrate_instance_count', | | | 'description': 'The number of instances | | | planned to live migrate.', 'unit': None, | | | 'value': 2.0}, {'name': | | | 'cold_migrate_instance_count', 'description': | | | 'The number of instances actually cold | | | migrated.', 'unit': None, 'value': 0.0}, | | | {'name': | | | 'planned_cold_migrate_instance_count', | | | 'description': 'The number of instances | | | planned to cold migrate.', 'unit': None, | | | 'value': 0.0}, {'name': | | | 'volume_migrate_count', 'description': 'The | | | number of detached volumes actually | | | migrated.', 'unit': None, 'value': 0.0}, | | | {'name': 'planned_volume_migrate_count', | | | 'description': 'The number of detached volumes | | | planned to migrate.', 'unit': None, 'value': | | | 0.0}, {'name': 'volume_update_count', | | | 'description': 'The number of attached volumes | | | actually migrated.', 'unit': None, 'value': | | | 0.0}, {'name': 'planned_volume_update_count', | | | 'description': 'The number of attached volumes | | | planned to migrate.', 'unit': None, 'value': | | | 0.0}] | | Global efficacy | [{'name': 'live_instance_migrate_ratio', | | | 'description': 'Ratio of actual live migrated | | | instances to planned live migrate instances.', | | | 'unit': '%', 'value': 100.0}, {'name': | | | 'cold_instance_migrate_ratio', 'description': | | | 'Ratio of actual cold migrated instances to | | | planned cold migrate instances.', 'unit': '%', | | | 'value': 0}, {'name': 'volume_migrate_ratio', | | | 'description': 'Ratio of actual detached | | | volumes migrated to planned detached volumes | | | migrate.', 'unit': '%', 'value': 0}, {'name': | | | 'volume_update_ratio', 'description': 'Ratio | | | of actual attached volumes migrated to planned | | | attached volumes migrate.', 'unit': '%', | | | 'value': 0}] | | Hostname | None | +---------------------+------------------------------------------------+アクションが成功したことを確認します。
例
$ openstack optimize action list \ --action-plan 40305df2-c240-464b-ac56-62e51bf139ef出力例
+--------------------------------------+-----------+---------+ | UUID | State | Action | +--------------------------------------+-----------+---------+ | 680e6152-e163-443d-9bd4-178b73494aa4 | SUCCEEDED | migrate | | 51a04b16-7231-4001-b3be-d5125bcd2365 | SUCCEEDED | migrate | +--------------------------------------+-----------+---------+すべてのインスタンスが別のコンピュートノードに移行されていることを確認します。
$ openstack server list --long出力例
この例では、
compute1で実行されていた 2 つのインスタンスがcompute2で実行されるようになりました。+--------+-------------------------------+ | Name | Host | +--------+-------------------------------+ | test03 | compute2.ctlplane.localdomain | | test02 | compute2.ctlplane.localdomain | | test01 | compute2.ctlplane.localdomain | +--------+-------------------------------+openstackclientPod を終了します。$ exit
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