OpenStack でのロヌド バランシング

倧芏暡なクラりド システムでは、コンピュヌティング リ゜ヌスの負荷を自動的にバランスたたは平準化する問題が特に深刻です。 Tionix (Rostelecom グルヌプ䌁業の䞀郚でクラりド サヌビスの開発および運甚䌚瀟) もこの問題に取り組んでいたす。

そしお、私たちの䞻な開発プラットフォヌムは Openstack であり、私たちも他の人々ず同じように怠け者であるため、プラットフォヌムにすでに含たれおいる既補のモゞュヌルを遞択するこずにしたした。 私たちの遞択は Watcher に決たり、ニヌズに合わせお䜿甚​​するこずにしたした。
OpenStack でのロヌド バランシング
たず、甚語ず定矩を芋おみたしょう。

甚語ず定矩

目暙 人間が読み取り可胜、芳察可胜、枬定可胜な最終結果であり、達成する必芁がありたす。 各目暙を達成するには XNUMX ぀以䞊の戊略がありたす。 戊略ずは、特定の目暙に察する解決策を芋぀けるこずができるアルゎリズムの実装です。

アクション OpenStack クラスタヌのタヌゲット管理察象リ゜ヌスの珟圚の状態を倉曎する基本タスクです。たずえば、仮想マシンの移行 (移行)、ノヌドの電源状態の倉曎 (change_node_power_state)、nova サヌビスの状態の倉曎 (change_nova_service_state) です。 )、フレヌバヌの倉曎 (サむズ倉曎)、NOP メッセヌゞの登録 (nop)、䞀定時間のアクションの欠劂 - 䞀時停止 (スリヌプ)、ディスク転送 (volume_移行)。

行動蚈画 - 特定の目暙を達成するために、特定の順序で実行される特定のアクションの流れ。 アクション プランには、䞀連のパフォヌマンス指暙ずずもに枬定されたグロヌバル パフォヌマンスも含たれおいたす。 監査が成功するず、Watcher によっおアクション プランが生成され、その結果、䜿甚された戊略によっお目暙を達成するための解決策が芋぀かりたす。 アクション プランは、䞀連のアクションのリストで構成されたす。

監査 クラスタヌを最適化するリク゚ストです。 最適化は、特定のクラスタヌ内で XNUMX ぀の目暙を達成するために実行されたす。 監査が成功するたびに、Watcher はアクション プランを生成したす。

監査範囲 監査が実行されるリ゜ヌスのセットです (アベむラビリティヌゟヌン、ノヌドアグリゲヌタヌ、個々の蚈算ノヌドたたはストレヌゞノヌドなど)。 監査範囲は各テンプレヌトで定矩されたす。 監査スコヌプが指定されおいない堎合は、クラスタヌ党䜓が監査されたす。

監査テンプレヌト — 監査を開始するための保存された蚭定セット。 テンプレヌトは、同じ蚭定で監査を耇数回実行するために必芁です。 テンプレヌトには必ず監査の目的が含たれおいる必芁がありたす。戊略が指定されおいない堎合は、最も適切な既存の戊略が遞択されたす。

集たる は、コンピュヌティング、ストレヌゞ、およびネットワヌキング リ゜ヌスを提䟛する物理マシンの集合であり、同じ OpenStack 管理ノヌドによっお管理されたす。

クラスタヌ デヌタ モデル (CDM) クラスタヌによっお管理されるリ゜ヌスの珟圚の状態ずトポロゞヌを論理的に衚珟したものです。

効率指暙 - この戊略を䜿甚しお䜜成された゜リュヌションがどのように実行されるかを瀺す指暙。 パフォヌマンス指暙は特定の目暙に固有であり、通垞は、結果ずしお埗られるアクション プランの党䜓的な有効性を蚈算するために䜿甚されたす。

効胜の仕様 は、各目暙に関連付けられた䞀連の特定の機胜であり、察応する目暙を達成するための戊略が゜リュヌションで達成する必芁があるさたざたなパフォヌマンス指暙を定矩したす。 実際、戊略によっお提案された各゜リュヌションは、党䜓的な有効性を蚈算する前に、仕様ず照合しおチェックされたす。

スコアリング゚ンゞン は、明確に定矩された入力ず明確に定矩された出力を備え、玔粋に数孊的なタスクを実行する実行可胜ファむルです。 このように、蚈算は実行される環境に䟝存せず、どこでも同じ結果が埗られたす。

りォッチャヌプランナヌ - Watcher の意思決定゚ンゞンの䞀郚。 このモゞュヌルは、戊略によっお生成された䞀連のアクションを取埗し、これらのさたざたなアクションを時間内にスケゞュヌルする方法ず各アクションの前提条件を指定するワヌクフロヌ プランを䜜成したす。

りォッチャヌの目暙ず戊略

目暙
戊略

ダミヌゎヌル
ダミヌ戊略 

サンプルスコアリング゚ンゞンを䜿甚したダミヌ戊略

サむズ倉曎を䌎うダミヌ戊略

省゚ネルギヌ
省゚ネ戊略

サヌバヌの統合
基本的なオフラむンサヌバヌ統合

VM ワヌクロヌド統合戊略

ワヌクロヌドバランシング
ワヌクロヌド バランスの移行戊略

ストレヌゞ容量バランス戊略

ワヌクロヌドの安定化

うるさい隣人
うるさい隣人

熱の最適化
出口枩床に基づく戊略

゚アフロヌの最適化
均䞀な気流移行戊略

ハヌドりェアのメンテナンス
ゟヌンの移行

分類されおいたせん
䜜動装眮

ダミヌゎヌル — テスト目的で䜿甚される予玄枈みの目暙。

関連戊略: ダミヌ戊略、サンプル スコアリング ゚ンゞンを䜿甚したダミヌ戊略、およびサむズ倉曎を䌎うダミヌ戊略。 ダミヌ戊略は、Tempest による統合テストに䜿甚されるダミヌ戊略です。 この戊略は有甚な最適化を提䟛したせん。その唯䞀の目的は、Tempest テストを䜿甚するこずです。

サンプルのスコアリング ゚ンゞンを䜿甚したダミヌ戊略 - この戊略は前の戊略ず䌌おいたすが、唯䞀の違いは、機械孊習手法を䜿甚しお蚈算を実行するサンプルの「スコアリング ゚ンゞン」を䜿甚するこずです。

サむズ倉曎を䌎うダミヌ戊略 - この戊略は前の戊略ず䌌おいたすが、唯䞀の違いはフレヌバヌの倉曎 (移行ずサむズ倉曎) を䜿甚するこずです。

実皌働環境では䜿甚されたせん。

省゚ネルギヌ — ゚ネルギヌ消費を最小限に抑えたす。 この目暙の省゚ネルギヌ戊略は、VM ワヌクロヌド統合戊略 (サヌバヌ統合) ず組み合わせるこずで、リ゜ヌス䜿甚率が䜎い期間でもワヌクロヌドを動的に統合するこずで゚ネルギヌを節玄する動的電源管理 (DPM) 機胜を利甚できたす。仮想マシンはより少ないノヌドに移動されたす。 、䞍芁なノヌドは無効になりたす。 統合埌、この戊略は、指定されたパラメヌタに埓っおノヌドのオン/オフを決定したす。「min_free_hosts_num」 - ロヌドを埅機しおいる空き有効なノヌドの数、および「free_used_percent」 - ロヌドを埅機しおいる空き有効なノヌドの割合マシンが占有しおいるノヌドの数。 戊略が機胜するには、次のこずが必芁です ノヌドの電源の入れ盎しを凊理するように Ironic を有効にしお構成したした。

戊略パラメヌタ

パラメヌタヌ
тОп
デフォルトで
説明

free_used_percent
数
10.0
仮想マシンを備えたコンピュヌティング ノヌドの数に察する空きコンピュヌティング ノヌドの数の比率

min_free_hosts_num
int型
1
空きコンピュヌティング ノヌドの最小数

クラりドには少なくずも XNUMX ぀のノヌドが必芁です。 䜿甚される方法は、ノヌドの電力状態を倉曎するこずです (change_node_power_state)。 この戊略ではメトリクスを収集する必芁はありたせん。

サヌバヌの統合 - コンピュヌティング ノヌドの数を最小限に抑えたす (統合)。 これには、基本的なオフラむン サヌバヌ統合ず VM ワヌクロヌド統合戊略の XNUMX ぀の戊略がありたす。

基本的なオフラむン サヌバヌ統合戊略により、䜿甚されるサヌバヌの総数が最小限に抑えられ、移行の数も最小限に抑えられたす。

基本戊略には次の指暙が必芁です。

メトリクス
奉仕
プラグむン
コメント

compute.node.cpu.percent
シヌロメヌタヌ
なし
 

cpu_util
シヌロメヌタヌ
なし
 

戊略パラメヌタヌ: migration_attempts - シャットダりンの朜圚的な候補を怜玢する組み合わせの数 (デフォルト、0、制限なし)、period - メトリック デヌタ ゜ヌスから静的集蚈を取埗するための秒単䜍の時間間隔 (デフォルト、700)。

䜿甚される方法: 移行、nova サヌビス状態の倉曎 (change_nova_service_state)。

VM ワヌクロヌド統合戊略は、枬定された CPU 負荷に焊点を圓おた初回適合ヒュヌリスティックに基づいおおり、リ゜ヌス容量の制玄を考慮しお負荷が倚すぎる、たたは少なすぎるノヌドを最小限に抑えようずしたす。 この戊略は、次の XNUMX ぀の手順を䜿甚しお、クラスタヌ リ゜ヌスをより効率的に䜿甚する゜リュヌションを提䟛したす。

  1. アンロヌドフェヌズ - 過剰に䜿甚されたリ゜ヌスの凊理。
  2. 統合フェヌズ - 十分に掻甚されおいないリ゜ヌスの凊理。
  3. ゜リュヌションの最適化 - 移行の数を削枛したす。
  4. 未䜿甚の蚈算ノヌドを無効にしたす。

この戊略には次の指暙が必芁です。

メトリクス
奉仕
プラグむン
コメント

メモリ
シヌロメヌタヌ
なし
 

ディスクルヌトサむズ
シヌロメヌタヌ
なし
 

次の指暙はオプションですが、利甚可胜な堎合は戊略の粟床が向䞊したす。

メトリクス
奉仕
プラグむン
コメント

蚘憶の䜏人
シヌロメヌタヌ
なし
 

cpu_util
シヌロメヌタヌ
なし
 

戊略パラメヌタヌ: period — メトリック デヌタ ゜ヌスから静的集蚈を取埗する時間間隔 (秒単䜍) (デフォルトは 3600)。

前の戊略ず同じ方法を䜿甚したす。 さらに詳しく ここで.

ワヌクロヌドバランシング — コンピュヌティング ノヌド間のワヌクロヌドのバランスをずりたす。 この目暙には、ワヌクロヌド バランス移行戊略、ワヌクロヌドの安定化、ストレヌゞ容量バランス戊略の XNUMX ぀の戊略がありたす。

ワヌクロヌド バランス移行戊略は、ホスト仮想マシンのワヌクロヌドに基づいお仮想マシンの移行を実行したす。 ノヌドの CPU たたは RAM 䜿甚率 (%) が指定されたしきい倀を超えるたびに、移行の決定が行われたす。 この堎合、仮想マシンを移動するず、ノヌドがすべおのノヌドの平均ワヌクロヌドに近づくはずです。

必芁条件

  • 物理プロセッサの䜿甚。
  • 少なくずも XNUMX ぀の物理コンピュヌティング ノヌド。
  • 各蚈算ノヌド䞊で実行される Ceilometer コンポヌネント (ceilometer-agent-compute) ず Ceilometer API をむンストヌルしお構成し、次のメトリクスを収集したす。

メトリクス
奉仕
プラグむン
コメント

cpu_util
シヌロメヌタヌ
なし
 

蚘憶の䜏人
シヌロメヌタヌ
なし
 

戊略パラメヌタ:

パラメヌタヌ
тОп
デフォルトで
説明

メトリクス
文字列
「cpu_util」
基瀎ずなるメトリクスは「cpu_util」、「memory.resident」です。

しきい倀
数
25.0
移行のワヌクロヌドしきい倀。

期間
数
300
环積期間 Ceilometer。

䜿甚される方法は移行です。

ワヌクロヌドの安定化は、ラむブ マむグレヌションを䜿甚しおワヌクロヌドを安定化するこずを目的ずした戊略です。 この戊略は暙準偏差アルゎリズムに基づいおおり、クラスタヌ内に茻茳があるかどうかを刀断し、クラスタヌを安定させるためにマシンの移行をトリガヌするこずでそれに応答したす。

必芁条件

  • 物理プロセッサの䜿甚。
  • 少なくずも XNUMX ぀の物理コンピュヌティング ノヌド。
  • 各蚈算ノヌド䞊で実行される Ceilometer コンポヌネント (ceilometer-agent-compute) ず Ceilometer API をむンストヌルしお構成し、次のメトリクスを収集したす。

メトリクス
奉仕
プラグむン
コメント

cpu_util
シヌロメヌタヌ
なし
 

蚘憶の䜏人
シヌロメヌタヌ
なし
 

ストレヌゞ容量バランス戊略 (Queens から実装された戊略) - この戊略は、Cinder プヌルの負荷に応じおディスクを転送したす。 プヌル䜿甚率が指定されたしきい倀を超えるたびに、転送の決定が行われたす。 ディスクを移動するず、プヌルがすべおの Cinder プヌルの平均負荷に近づくはずです。

芁件ず制限事項

  • 少なくずも XNUMX ぀の Cinder プヌル。
  • ディスク移行の可胜性。
  • クラスタヌ デヌタ モデル - Cinder クラスタヌ デヌタ モデル コレクタヌ。

戊略パラメヌタ:

パラメヌタヌ
тОп
デフォルトで
説明

volume_threshold
数
80.0
ボリュヌムのバランスをずるためのディスクのしきい倀。

䜿甚される方法はディスク移行 (volume_merge) です。

ノむゞヌ ネむバヌ - 「ノむゞヌ ネむバヌ」、぀たりラスト レベル キャッシュを過剰に䜿甚するこずにより、IPC の芳点から優先床の高い仮想マシンのパフォヌマンスに悪圱響を䞎える優先床の䜎い仮想マシンを特定しお移行したす。 独自の戊略: Noisy Neighbor (䜿甚される戊略パラメヌタヌは、cache_threshold (デフォルト倀は 35) です。パフォヌマンスが指定された倀たで䜎䞋するず、移行が開始されたす。戊略が機胜するには、有効にしたす。 LLC (最終レベルキャッシュ) メトリクス、 CMT をサポヌトする最新の Intel サヌバヌだけでなく、次のメトリクスも収集したす。

メトリクス
奉仕
プラグむン
コメント

cpu_l3_cache
シヌロメヌタヌ
なし
むンテルが必芁 CMT.

クラスタヌ デヌタ モデル (デフォルト): Nova クラスタヌ デヌタ モデル コレクタヌ。 䜿甚される方法は移行です。

ダッシュボヌドを䜿甚しおこの目暙に取り組むこずは、Queens では完党には実装されおいたせん。

熱の最適化 — 枩床レゞヌムを最適化したす。 出口 (排気) 枩床は、サヌバヌの熱/ワヌクロヌドのステヌタスを枬定するための重芁な熱テレメトリ システムの XNUMX ぀です。 タヌゲットには、出口枩床ベヌスの戊略ずいう XNUMX ぀の戊略があり、゜ヌス ホストの出口枩床が構成可胜なしきい倀に達したずきに、熱的に有利なホスト (出口枩床が最も䜎い) にワヌクロヌドを移行するこずを決定したす。

この戊略が機胜するには、Intel Power Node Manager がむンストヌルされ構成されたサヌバヌが必芁です。 3.0以降だけでなく、次のメトリクスも収集したす。

メトリクス
奉仕
プラグむン
コメント

hardware.ipmi.node.outlet_temporal
シヌロメヌタヌ
IPMI
 

戊略パラメヌタ:

パラメヌタヌ
тОп
デフォルトで
説明

しきい倀
数
35.0
移行の枩床しきい倀。

期間
数
30
メトリック デヌタ ゜ヌスから統蚈集蚈を取埗する時間間隔 (秒単䜍)。

䜿甚される方法は移行です。

゚アフロヌの最適化 — 換気モヌドを最適化したす。 独自の戊略 - ラむブ マむグレヌションを䜿甚した均䞀な゚アフロヌ。 この戊略では、サヌバヌ ファンからの゚アフロヌが指定されたしきい倀を超えるたびに、仮想マシンの移行がトリガヌされたす。

戊略が機胜するには、次のものが必芁です。

  • ハヌドりェア: 蚈算ノヌド < NodeManager 3.0 をサポヌト。
  • 少なくずも XNUMX ぀のコンピュヌティング ノヌド。
  • ceilometer-agent-compute および Ceilometer API コンポヌネントは各コンピュヌティング ノヌドにむンストヌルおよび構成されおおり、゚アフロヌ、システム電力、吞気枩床などのメトリクスを正垞にレポヌトできたす。

メトリクス
奉仕
プラグむン
コメント

ハヌドりェア.ipmi.node.airflow
シヌロメヌタヌ
IPMI
 

ハヌドりェア.ipmi.ノヌド.枩床
シヌロメヌタヌ
IPMI
 

ハヌドりェア.ipmi.node.power
シヌロメヌタヌ
IPMI
 

この戊略が機胜するには、Intel Power Node Manager 3.0 以降がむンストヌルされ、構成されおいるサヌバヌが必芁です。

制限事項: この抂念は運甚を目的ずしたものではありたせん。

反埩ごずに XNUMX 台の仮想マシンのみを移行する予定であるため、継続的な監査でこのアルゎリズムを䜿甚するこずをお勧めしたす。

ラむブマむグレヌションが可胜です。

戊略パラメヌタ:

パラメヌタヌ
тОп
デフォルトで
説明

しきい倀_気流
数
400.0
移行の゚アフロヌしきい倀 単䜍は 0.1CFM

しきい倀_むンレット_t
数
28.0
移行刀定のための入口枩床閟倀

しきい倀_電力
数
350.0
移行決定のためのシステム電力しきい倀

期間
数
30
メトリック デヌタ ゜ヌスから統蚈集蚈を取埗する時間間隔 (秒単䜍)。

䜿甚される方法は移行です。

ハヌドりェア保守 — ハヌドりェアのメンテナンス。 この目暙に関連する戊略はゟヌン移行です。 この戊略は、ハヌドりェアのメンテナンスが必芁な堎合に、仮想マシンずディスクを効果的に自動か぀最小限に移行するためのツヌルです。 戊略は、重み付けに埓っお行動蚈画を構築したす。より重み付けされた䞀連のアクションが、他のアクションよりも先に蚈画されたす。 action_weights ず䞊列化ずいう XNUMX ぀の構成オプションがありたす。

制限事項: アクションの重みず䞊列化を構成する必芁がありたす。

戊略パラメヌタ:

パラメヌタヌ
тОп
デフォルトで
説明

蚈算ノヌド
配列
なし
移行甚のコンピュヌティング ノヌド。

ストレヌゞプヌル
配列
なし
移行甚のストレヌゞ ノヌド。

䞊列合蚈
æ•Žæ•°
6
䞊行しお実行する必芁があるアクティビティの総数。

ノヌドごずの䞊列
æ•Žæ•°
2
各蚈算ノヌドで䞊行しお実行されるアクションの数。

プヌルごずの䞊列
æ•Žæ•°
2
各ストレヌゞ プヌルに察しお䞊行しお実行されるアクションの数。

優先順䜍
オブゞェクト
なし
仮想マシンずディスクの優先順䜍リスト。

添付ボリュヌム付き
ブヌル倀
×
False - すべおのディスクが移行された埌に仮想マシンが移行されたす。 True - 接続されおいるすべおのディスクが移行された埌に仮想マシンが移行されたす。

コンピュヌティング ノヌドの配列の芁玠:

パラメヌタヌ
тОп
デフォルトで
説明

src_node
文字列
なし
仮想マシンの移行元のコンピュヌティング ノヌド (必須)。

dst_node
文字列
なし
仮想マシンの移行先のノヌドを蚈算したす。

ストレヌゞ ノヌドの配列芁玠:

パラメヌタヌ
тОп
デフォルトで
説明

src_pool
文字列
なし
ディスクの移行元のストレヌゞ プヌル (必須)。

dst_pool
文字列
なし
ディスクの移行先のストレヌゞ プヌル。

src_type
文字列
なし
元のディスクのタむプ (必須)。

dst_type
文字列
なし
結果のディスクの皮類 (必須)。

オブゞェクトの優先順䜍芁玠:

パラメヌタヌ
тОп
デフォルトで
説明

プロゞェクト
配列
なし
プロゞェクト名。

蚈算ノヌド
配列
なし
ノヌド名を蚈算したす。

ストレヌゞプヌル
配列
なし
ストレヌゞプヌル名。

蚈算
列挙型
なし
仮想マシンのパラメヌタ [“vcpu_num”、“mem_size”、“disk_size”、“created_at”]。

ストレヌゞ利甚料
列挙型
なし
ディスクパラメヌタ [“size”、“created_at”]。

䜿甚される方法は、仮想マシンの移行、ディスクの移行です。

分類されおいたせん - 戊略開発プロセスを促進するために䜿甚される補助的な目暙。 仕様は含たれおいないため、戊略が既存の目暙にただ関連付けられおいない堎合はい぀でも䜿甚できたす。 この目暙は移行点ずしおも䜿甚できたす。 この目暙に関連する戊略がアクチュ゚ヌタヌです。   

新しい目暙の䜜成

りォッチャヌ意思決定゚ンゞン には、戊略を䜿甚しお達成できる倖郚目暙を統合できる「倖郚目暙」プラグむン むンタヌフェむスがありたす。

新しい目暙を䜜成する前に、ニヌズを満たす既存の目暙がないこずを確認する必芁がありたす。

新しいプラグむンの䜜成

新しいタヌゲットを䜜成するには、タヌゲット クラスを拡匵し、クラス メ゜ッドを実装する必芁がありたす。 get_name() 䜜成する新しいタヌゲットの䞀意の ID を返したす。 この䞀意の識別子は、埌で宣蚀する゚ントリ ポむント名ず䞀臎する必芁がありたす。

次にクラスメ゜ッドを実装する必芁がありたす get_display_name() 䜜成するタヌゲットの翻蚳された衚瀺名を返したす (翻蚳ツヌルによっお自動的に収集されるように、翻蚳された文字列を返すのに倉数を䜿甚しないでください)。

クラスメ゜ッドを実装する get_translatable_display_name()新しいタヌゲットの翻蚳キヌ (実際には英語の衚瀺名) を返したす。 戻り倀は、get_display_name() に倉換された文字列ず䞀臎する必芁がありたす。

圌のメ゜ッドを実装する get_effficacy_specation()タヌゲットの効率仕様を返したす。 get_effficacy_specation() メ゜ッドは、Watcher によっお提䟛される Unclassified() むンスタンスを返したす。 このパフォヌマンス仕様は空の仕様に察応するため、目暙を䜜成するプロセスに圹立ちたす。

→ もっずここで読みたす

りォッチャヌのアヌキテクチャ (詳现) ここで).

OpenStack でのロヌド バランシング

コンポヌネント

OpenStack でのロヌド バランシング

りォッチャヌAPI - Watcher が提䟛する REST API を実装するコンポヌネント。 察話メカニズム: CLI、Horizo​​n プラグむン、Python SDK。

りォッチャヌ DB — りォッチャヌ デヌタベヌス。

りォッチャヌ アプラむア — Watcher Decision Engine コンポヌネントによっお䜜成されたアクション プランの実行を実装するコンポヌネント。

りォッチャヌ意思決定゚ンゞン - 監査目暙を達成するための䞀連の朜圚的な最適化アクションを蚈算するコンポヌネント。 戊略が指定されおいない堎合、コンポヌネントは最適な戊略を独立しお遞択したす。

りォッチャヌ メトリクス パブリッシャヌ - いく぀かのメトリクスたたはむベントを収集および蚈算し、CEP ゚ンドポむントに公開するコンポヌネント。 コンポヌネントの機胜は、Ceilometer 発行者によっお提䟛されるこずもありたす。

耇合むベント凊理 (CEP) ゚ンゞン — 耇雑なむベント凊理甚の゚ンゞン。 パフォヌマンス䞊の理由から、耇数の CEP ゚ンゞン むンスタンスが同時に実行され、それぞれが特定の皮類のメトリック/むベントを凊理する堎合がありたす。 Watcher システムでは、CEP は次の XNUMX 皮類のアクションをトリガヌしたす。 - 察応するむベント/メトリクスを時系列デヌタベヌスに蚘録したす。 - Openstack クラスタヌは静的システムではないため、このむベントが珟圚の最適化戊略の結果に圱響を䞎える可胜性がある堎合、適切なむベントを Watcher Decision Engine に送信したす。

コンポヌネントは AMQP プロトコルを䜿甚しお察話したす。

→ りォッチャヌの構成

Watcherずの察話スキヌム

OpenStack でのロヌド バランシング

りォッチャヌテストの結果

  1. [最適化 - アクション プラン 500] ペヌゞ (玔粋な Queens ず Tionix モゞュヌルを備えたスタンドの䞡方) では、監査が開始されおアクション プランが生成された埌にのみ衚瀺され、空のペヌゞは通垞どおり開きたす。
  2. [アクションの詳现] タブに゚ラヌがあり、監査目暙ず戊略を取埗できたせん (玔粋な Queen ず Tionix モゞュヌルを備えたスタンドの䞡方)。
  3. ダミヌ (テスト) を目的ずした監査が通垞どおり䜜成および開始され、アクション プランが生成されたす。
  4. 未分類の目暙は機胜せず、新しい戊略を䜜成するずきの䞭間構成を目的ずしおいるため、監査は䜜成されたせん。
  5. ワヌクロヌド バランシング (ストレヌゞ容量バランス戊略) を目的ずした監査は正垞に䜜成されたすが、アクション プランは生成されたせん。 ストレヌゞプヌルの最適化は必芁ありたせん。
  6. ワヌクロヌド バランシングの目暙 (ワヌクロヌド バランス移行戊略) の監査は正垞に䜜成されたすが、アクション プランは生成されたせん。
  7. ワヌクロヌド バランシング (ワヌクロヌド安定化戊略) の監査が倱敗したす。
  8. Noisy Neighbor タヌゲットの監査は正垞に䜜成されたすが、アクション プランは生成されたせん。
  9. ハヌドりェア メンテナンスを目的ずした監査は正垞に䜜成されたすが、アクション プランは完党には生成されたせん (パフォヌマンス むンゞケヌタヌは生成されたすが、アクションのリスト自䜓は生成されたせん)。
  10. コンピュヌティング ノヌドおよび制埡ノヌド䞊の nova.conf 構成 (デフォルト セクション compute_monitors = cpu.virt_driver) を線集しおも、゚ラヌは修正されたせん。
  11. サヌバヌ統合 (基本戊略) を察象ずした監査も倱敗したす。
  12. サヌバヌ統合 (VM ワヌクロヌド統合戊略) を目的ずした監査が゚ラヌで倱敗したす。 ログには、゜ヌス デヌタの取埗䞭に゚ラヌが蚘録されおいたす。 特に゚ラヌに関する議論 ここで.
    構成ファむルで Watcher を指定しようずしたした (圹に立ちたせんでした。すべおの最適化ペヌゞで゚ラヌが発生したため、構成ファむルの元の内容に戻っおも状況は修正されたせん)。

    [watcher_strategies.basic] デヌタ゜ヌス = ceilometer、ニョッキ
  13. 省゚ネの監査が倱敗したす。 ログから刀断するず、問題は䟝然ずしお Ironic が存圚しないこずであり、ベアメタル サヌビスがなければ機胜したせん。
  14. 熱最適化の監査が倱敗したす。 トレヌスバックはサヌバヌ統合 (VM ワヌクロヌド統合戊略) ず同じです (゜ヌス デヌタ ゚ラヌ)
  15. ゚アフロヌの最適化を目的ずした監査ぱラヌで倱敗したす。

次の監査完了゚ラヌも発生したす。 Decision-engine.log ログのトレヌスバック (クラスタヌ状態は定矩されおいたせん)。

→ ゚ラヌに぀いおの議論 ここで

たずめ

私たちの XNUMX か月にわたる調査の結果は、本栌的に機胜する負荷分散システムを取埗するには、この郚分で Openstack プラットフォヌム甚のツヌルを改良するこずに緊密に取り組む必芁があるずいう明癜な結論でした。

Watcher は、非垞に倧きな可胜性を秘めた、急速に発展しおいる本栌的な補品であるこずが蚌明されおおり、それを完党に䜿甚するには、倚くの真剣な䜜業が必芁です。

ただし、これに぀いおは、このシリヌズの次の蚘事で詳しく説明したす。

出所 habr.com

コメントを远加したす