これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド hspace です。
プログラム:
NAME
hspace - Ganeti のクラスター空間アナライザー
SYNOPSIS
hスペース {バックエンド オプション...} [アルゴリズム オプション...] [リクエスト オプション...] [出力
オプション...] [-v... | -q]
hスペース - バージョン
バックエンドのオプション:
{ -m | -L [ path ] | -t データファイル | -シミュレート スペック | -I path }
アルゴリズムのオプション:
[ --最大CPU CPU比率 ] [ --最小ディスク ディスク比 ] [ -O 名... ] [ --独立グループ ]
リクエストのオプション:
[--ディスク テンプレート template ]
[ --standard-alloc ディスク、RAM、CPU ]
[--階層型割り当て ディスク、RAM、CPU ]
出力オプション:
[--機械可読[=*選択肢*] ] [-NS[フィールド]]
DESCRIPTION
hspace は、クラスターに適合できる追加のインスタンスの数を計算します。
N+1ステータス。
プログラムは、クラスタ上にすべて同じサイズのインスタンスを配置しようとします。
N+1 個の可能な割り当てがない点。 まったく同じ割り当てを使用します
hail iallocator プラグインとしてのアルゴリズム 割り当てる モード。
プログラムの出力は、人間が消費することを目的として設計されているか (デフォルト)、
--machine-readable オプション (後述) で有効化 (マシンの場合)
消費。 後者の場合、シェルのフラグメント (または
として解析される key = value ファイル)。 出力を拡張するオプション (-p、-v など) が出力されます。
stderr に関する追加情報 (stdout がまだ解析可能であるなど)。
デフォルトでは、インスタンスの仕様はクラスターから読み取られます。 オプション
--standard-alloc および --tiered-alloc を使用してそれらをオーバーライドできます。
次のキーは、スクリプトの機械可読出力で使用できます (すべて
接頭辞が付く HTS_):
SPEC_MEM、 SPEC_DSK、 SPEC_CPU、 SPEC_RQN、 SPEC_DISK_TEMPLATE、 SPEC_SPN
これらは、割り当てに使用されるインスタンス モデルの仕様を表します (
メモリ、ディスク、CPU、要求されたノード、ディスク テンプレート、スピンドル)。
TSPEC_INI_MEM、 TSPEC_INI_DSK、 TSPEC_INI_CPU、 ...
段階的モード割り当てが有効な場合にのみ定義されます。これらは、
上記の仕様ですが、段階的割り当ての初期開始仕様を示しています。
クラスター_MEM、 クラスター_DSK、 クラスター_CPU、 CLUSTER_NODES、 クラスター_SPN
これらは、合計メモリ、ディスク、CPU 数、合計ノード、合計スピンドルを表します。
クラスター内で。
INI_スコア、 FIN_SCORE
これらは、初期 (現在の) クラスター スコアと最終クラスター スコアです (hbal のマニュアル ページを参照してください)。
スコアリング アルゴリズムの詳細)。
INI_INST_CNT、 FIN_INST_CNT
最初と最後のインスタンス数。
INI_MEM_FREE、 FIN_MEM_FREE
クラスター内の最初と最後の合計空きメモリ (ただし、これは異なります)
必ずしも使用可能であることを意味します)。
INI_MEM_AVAIL、 FIN_MEM_AVAIL
クラスター内で割り当て可能な最初と最後の合計利用可能メモリ。 もし
冗長インスタンスを割り当てると、新しいインスタンスによって予約メモリが増加する可能性があるため、
このメモリ全体が新しいデータに使用できるというわけではありません。
インスタンスの割り当て。
INI_MEM_RESVD、 FIN_MEM_RESVD
最初と最後の予約メモリ (冗長性/N+1 の目的)。
INI_MEM_INST、 FIN_MEM_INST
インスタンスに使用される初期メモリと最終メモリ (実際のランタイムに使用される RAM)。
INI_MEM_オーバーヘッド、 FIN_MEM_OVERHEAD
最初と最後のメモリ オーバーヘッド、つまりノード自体に使用されるメモリと、
考慮されていないメモリ (ハイパーバイザーのオーバーヘッドなどによる)。
INI_MEM_EFF、 HTS_INI_MEM_EFF
初期および最終のメモリ効率。インスタンス メモリを次の値で割って表されます。
総メモリ。
INI_DSK_FREE、 INI_DSK_AVAIL、 INI_DSK_RESVD、 INI_DSK_INST、 INI_DSK_EFF
メモリの統計と同様の初期ディスク統計。
FIN_DSK_FREE、 FIN_DSK_AVAIL、 FIN_DSK_RESVD、 FIN_DSK_INST、 FIN_DSK_EFF
最終的なディスク統計情報 (メモリ統計と同様)。
INI_SPN_無料、 ···、 FIN_SPN_無料、 ..
初期および最終のスピンドル統計。メモリ統計と同様です。
INI_CPU_INST、 FIN_CPU_INST
インスタンスによって使用される仮想 CPU の初期数と最終数。
INI_CPU_EFF、 FIN_CPU_EFF
初期および最終の CPU 効率 (仮想インスタンスの数として表されます)
CPU を物理 CPU の合計数で割った値。
INI_MNODE_MEM_AVAIL、 FIN_MNODE_MEM_AVAIL
ノードごとに使用可能な初期および最終の最大メモリ。 これはあまり役に立ちません
メトリックとしてだけでなく、ノードのステータスの印象を与えることもできます。 例として、
この値は、上で作成できる最大インスタンス サイズを制限します。
クラスタ。
INI_MNODE_DSK_AVAIL、 FIN_MNODE_DSK_AVAIL
上記と同様ですが、ディスク用です。
スペック このパラメータは、仕様とインスタンスの数のペアを保持します。
で作成される 層状 配分 モード。 キーの値は、
スペースで区切られた値のリスト。 各値の形式は次のとおりです
メモリ、ディスク、vcpu、スピンドル=数 ここで、メモリ、ディスク、vcpu は次の値です。
現在の仕様、および count は、この仕様のインスタンスを作成できる数です。 あ
この変数の完全な値は次のようになります。 4096,102400,2,1 = 225 2560,102400,2,1 = 20
512,102400,2,1 = 21.
KM_USED_CPU、 KM_USED_NPU、 KM_USED_MEM、 KM_USED_DSK
これらは、計算開始時に使用されたリソースのメトリックを表します。
(段階的割り当てモードの場合のみ)。 NPU 値は「正規化された」CPU 数です。つまり、
仮想 CPU の数を仮想 CPU と物理 CPU の最大比率で割った値
CPU。
KM_POOL_CPU、 KM_POOL_NPU、 KM_POOL_MEM、 KM_POOL_DSK
これらは、段階的割り当て中に割り当てられたリソースの合計を表します。
プロセス。 実際、それらは割り当てにどれだけすぐに利用できるかを表します。
KM_UNAV_CPU、 KM_POOL_NPU、 KM_UNAV_MEM、 KM_UNAV_DSK
これらは、残っているリソース (割り当て不可能な空きリソース、または割り当て不可能なリソースのいずれか) を表します。
段階的割り当てが完了した後、独自に割り当て可能)。 彼らは
他のリソースが割り当てられているため、実際の割り当て不可能なリソースをより適切に表現できます。
疲れ果てた。 たとえば、クラスターにはまだ 100 GiB の空きディスクがある可能性がありますが、
インスタンスにメモリが残っていない場合、別のインスタンスを割り当てることはできません。
その結果、ディスク領域が割り当てられなくなります。 ここでの CPU はインスタンスを表すことに注意してください
仮想 CPU、および --最大CPU オプションが指定されていない場合、これは次のようになります
-1。
ALLOC_USAGE
現在の使用量は、最終的なインスタンスごとに分割された初期インスタンス数として表されます。
インスタンスの数。
ALLOC_COUNT
割り当てられたインスタンスの数 (FIN_INST_CNT と INI_INST_CNT の間の差分)。
ALLOC_FAIL*_CNT
最後の割り当て試行の場合 (これにより、FIN_INST_CNT が増加します)
成功した場合は XNUMX つ)、これは失敗ごとの失敗理由の数です。
タイプ; 現在定義されているのは、エラーを表す FAILMEM、FAILDISK、FAILCPU です。
メモリ、ディスク、CPU が不足しており、非 N+1 を表す FAILN1 が原因です。
インスタンスをまったく割り当てることができない準拠クラスター。
ALLOC_FAIL_REASON
ほとんどの失敗の理由は、上記の FAIL* 文字列のいずれかです。
OK 計算が正常に終了したことを表すマーカー。値は「1」です。
このキーが出力に存在しない場合は、計算が失敗したことを意味します。
存在する値に依存すべきではありません。
INI_/FIN_ メトリクスの多くは、TRL_ プレフィックスも付けて表示され、
段階的割り当ての実行終了時のクラスターのステータス。
人間の出力形式については一目瞭然なので、これ以上は説明しません。
OPTIONS
プログラムに渡すことができるオプションは次のとおりです。
--ディスクテンプレート template
クラスターから読み取られたインスタンスのディスク テンプレートをオーバーライドします。 のXNUMXつ
Ganeti ディスク テンプレート (プレーン、drbd など) を渡す必要があります。
--スピンドル使用 スピンドル
クラスターから読み取られたインスタンスのスピンドル使用をオーバーライドします。 値は次のとおりです。
0 (たとえば、非常に低い I/O を使用するインスタンス)、ただし負ではありません。 共有対象
storage の値は無視されます。
--max-cpu=*cpu-ratio*
仮想 CPU と物理 CPU の最大比率。以下の浮動小数点数で表されます。
またはXNUMXに等しい。 たとえば、次のように指定します。 CPU比率 as 2.5 つまり、4 CPU の場合
マシンの場合、プライマリには最大 10 個の仮想 CPU の使用を許可する必要があります。
インスタンス。 値がちょうど XNUMX の場合、CPU のオーバーサブスクリプションが発生しないことを意味します。
(ノード自体が使用する CPU 時間を除く)、XNUMX 未満の値は使用しません。
これは、他のリソース (ディスクなど) が次の理由で完全に利用されなくなることを意味します。
CPU の制限。
--min-disk=*ディスク比率*
残りの空きディスク容量の最小量 (浮動小数点数)。 のために
たとえば、指定する ディスク比 as 0.25 ディスクの少なくとも XNUMX 分の XNUMX を意味します
ノード上に空き領域を残しておく必要があります。
--独立グループ
すべてのグループが独立していると考えてください。 つまり、N+1 ハッピーではないノードが
見つかった場合、そのグループは無視されますが、他のグループでは割り当てが行われます。 デフォルト
N+1 ではない正常なノードが見つかった場合、割り当てをまったく試行しないことです。
--既存のエラーを受け入れる
これは、--independent-groups の強化された形式です。 hspace に無視するように指示します。
N+1 の正常なノードが存在しない場合は、他のすべてのノードに割り当てます。
新しい N+1 違反が発生します。 これは容量を過大評価する傾向があることに注意してください。
インスタンスは、既存の N+1 ではないノードから引き続き移動する必要があるためです。
-l ラウンド, --max-length=*丸め*
インスタンスの割り当て数をこの長さに制限します。 これはあまりありません
実際には便利ですが、hspace 自体をテストしたり、hspace を制限したりするために使用できます。
非常に大規模なクラスター用のランタイム。
-NS、 --print-nodes
ユーザーが実行できるように設計された形式で、前後のノードのステータスを出力します。
ノードの最も重要なパラメータを理解します。 マニュアルページを参照してください htools(1)
このオプションの詳細については、こちらをご覧ください。
-O 名
このオプション (複数回指定可能) は、ノードを次のようにマークします。 オンライン.
これには次のような意味があります。
· 一時的であっても、インスタンスはこれらのノードに配置されません。 たとえば、 replace
主要な この移動は、セカンダリ ノードがオフラインの場合は利用できません。
フェイルオーバーが必要です。
· これらのノードはスコア計算に含まれません (ただし、
オフラインノード上のインスタンスの割合)
このアルゴリズムは、によって報告されたノードもオフラインとしてマークすることに注意してください。
RAPI 自体、または「?」が付いているもの任意の数値フィールドへのファイルベースの入力。
-S ファイル名, --save-cluster=*ファイル名*
指定した場合、割り当て終了時のクラスターの状態がファイルに保存されます。
命名 ファイル名.alloc、段階的割り当てが有効な場合、段階的割り当て後の状態
割り当てはに保存されます ファイル名.階層化。 これにより、クラスターへの再フィードが可能になります。
状態を hspace 自体 (異なるパラメーターを使用) または hbal などに設定します。
-t オプション。
-t データファイル, --text-data=*データファイル*
バックエンドの仕様: ノードとインスタンスの情報を保持するファイルの名前
(RAPI または LUXI 経由で収集しない場合)。 このバックエンドまたは他のバックエンドのいずれかが、
選択されました。 オプションはマニュアルページに記載されています htoolsとします。
-m
バックエンド仕様: データを直接収集します。 引数として与えられる
RAPI経由で。 オプションはマニュアルページに記載されています htoolsとします。
-L [path]
バックエンドの仕様: マスター デーモンから直接データを収集します。
LUXI (Ganeti 内部プロトコル) 経由で接続されます。 オプションについては、
マニュアルページ htoolsとします。
-シミュレート 説明
バックエンド仕様: と同様 -t オプションを使用すると、クラスターをオーバーライドできます。
シミュレートされたクラスターを含むデータ。 説明の詳細については、マニュアルページを参照してください。
htoolsとします。
--standard-alloc ディスク、RAM、CPU
このオプションは、クラスタから読み取られたインスタンス サイズをオーバーライドします。 標準
割り当てモードでは、同じ固定サイズのインスタンスを単純に割り当てます。
クラスターのスペースが不足します。
与えられた仕様は次のものと似ています -シミュレート オプションであり、それは次のようになります。
· インスタンスのディスク サイズ (単位は使用可能)
・インスタンスのメモリサイズ(単位は使用可能)
· インスタンスの vcpu 数
説明の例は次のようになります。 100G、4g、2 のインスタンス仕様の説明
100 GB のディスク容量、4 GiB のメモリ、および 2 つの VCPU。
--tiered-alloc ディスク、RAM、CPU
このオプションは、 層状 割り当てモード。 この中で
モードでは、アルゴリズムは指定された仕様から開始され、仕様が完了するまで割り当てられます。
もうスペースはありません。 次に、仕様を減らして割り当てを試みます
また。 減少は、割り当て中に最後に失敗したメトリックに対して行われます。 の
引数は --standard-alloc と同じ形式にする必要があります。
また、通常の割り当てと段階的割り当ては独立していることにも注意してください。
どちらも初期クラスター状態から始まります。 したがって、これらのインスタンス数は
XNUMX つのモードは相互に関連しません。
--機械可読[=*選択*]
デフォルトでは、プログラムの出力は「人間が読める」形式、つまりテキストです。
説明。 このフラグを渡すことで、(--machine-readable または
--machine-readable=yes) またはマシンを明示的に無効にする (--machine-readable=no)
前述の読み取り可能な形式。
-v、 -詳細
出力の冗長性を高めます。 このオプションを使用するたびに、
冗長性 (現在は 2 を超えると意味がありません) をデフォルトの XNUMX から変更します。
-NS、 - 静かな
出力の冗長性を減らします。 このオプションを使用するたびに、
冗長性 (ゼロ未満は意味を持ちません) をデフォルトの XNUMX から変更します。
-V、 - バージョン
プログラムのバージョンを表示して終了します。
単位
デフォルトでは、単位を受け入れるすべてのオプションでメビバイトが使用されます。 小文字の使用 m,
g t (またはそれに相当する長いもの ミブ, ジブ, TIB、その場合は関係ありません)
明示的なバイナリ単位を選択できます。 SI システムの単位は、
の大文字 M, G T (またはそれに相当する長いもの MB, GB, TB、そのために
大文字と小文字は関係ありません)。
SI とバイナリ システムの違いの詳細については、次のドキュメントを参照してください。
ユニット(7)マニュアルページ。
EXIT ステータス
何らかの理由でアルゴリズムが致命的になる場合を除き、コマンドの存在ステータスはゼロになります。
失敗しました (例: 間違ったノードまたはインスタンス データ)。
onworks.net サービスを使用してオンラインで hspace を使用する