7.4. Compute スケジューラーの重み
それぞれのコンピュートノードは重みを持ち、スケジューラーはこれを使用してインスタンスのスケジューリングの優先度を決定します。フィルターを適用した後、Compute スケジューラーは残った候補のコンピュートノードから最大の重みを持つコンピュートノードを選択します。
Compute スケジューラーは、以下のタスクを実行することにより、各コンピュートノードの重みを決定します。
- スケジューラーは、各重みを 0.0 から 1.0 までの値に正規化します。
- スケジューラーは、正規化された重みを重み付け関数の乗数で乗算します。
Compute スケジューラーは、候補のコンピュートノード全体でリソースの可用性の低い値および高い値を使用して、各リソース種別の重みの正規化を計算します。
- 最も低いリソース可用性 (minval) を持つノードには、'0' が割り当てられます。
- 最も高いリソース可用性 (maxval) を持つノードには '1' が割り当てられます。
minval と maxval 内の範囲のリソース可用性を持つノードには、以下の式を使用して正規化された重みが割り当てられます。
(node_resource_availability - minval) / (maxval - minval)
すべてのコンピュートノードが同じリソース可用性を持つ場合、それらはすべて 0 に正規化されます。
たとえば、スケジューラーは、利用可能な仮想 CPU の数がそれぞれ異なる 10 個のコンピュートノードに関して、利用可能な仮想 CPU の正規化された重みを以下のように計算します。
コンピュートノード | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
仮想 CPU の数 | 5 | 5 | 10 | 10 | 15 | 20 | 20 | 15 | 10 | 5 |
正規化された重み | 0 | 0 | 0.33 | 0.33 | 0.67 | 1 | 1 | 0.67 | 0.33 | 0 |
Compute スケジューラーは、以下の式を使用してコンピュートノードの重みを計算します。
(w1_multiplier * norm(w1)) + (w2_multiplier * norm(w2)) + ...
重みに使用することのできる設定オプションの詳細を以下の表に示します。
以下の表で説明するオプションと同じ名前のアグリゲートメタデータのキーを使用して、ホストアグリゲートに重みを設定することができます。ホストアグリゲートに設定すると、ホストアグリゲートの値が優先されます。
設定オプション | 型 | 説明 |
---|---|---|
| String | このパラメーターを使用して、各コンピュートノードの重みを計算するのに以下の属性のどれを使用するかを設定します。
|
| 浮動小数点 | このパラメーターを使用して、利用可能な RAM 容量に基づいてホストを重み付けするのに使用する重みの乗数を指定します。 利用可能な RAM 容量がより大きいホストを優先するには、正の値に設定します。この場合、インスタンスは多くのホストに分散されます。 利用可能な RAM 容量がより小さいホストを優先するには、負の値に設定します。この場合、可能な限り多くのインスタンスをホストに分担 (スタック) させた後に、使用率が低いホストをスケジューリングします。 正または負の絶対値で、他の重み付け関数と比べて RAM の重み付け関数をどれだけ優先するかを指定します。 デフォルトは 1.0 で、スケジューラーはインスタンスをすべてのホストに均等に分散します。 |
| 浮動小数点 | このパラメーターを使用して、利用可能なディスク容量に基づいてホストを重み付けするのに使用する重みの乗数を指定します。 利用可能なディスク容量がより大きいホストを優先するには、正の値に設定します。この場合、インスタンスは多くのホストに分散されます。 利用可能なディスク容量がより小さいホストを優先するには、負の値に設定します。この場合、可能な限り多くのインスタンスをホストに分担 (スタック) させた後に、使用率が低いホストをスケジューリングします。 正または負の絶対値で、他の重み付け関数と比べてディスクの重み付け関数をどれだけ優先するかを指定します。 デフォルトは 1.0 で、スケジューラーはインスタンスをすべてのホストに均等に分散します。 |
| 浮動小数点 | このパラメーターを使用して、利用可能な仮想 CPU の数に基づいてホストを重み付けするのに使用する重みの乗数を指定します。 利用可能な仮想 CPU の数がより多いホストを優先するには、正の値に設定します。この場合、インスタンスは多くのホストに分散されます。 利用可能な仮想 CPU の数がより少ないホストを優先するには、負の値に設定します。この場合、可能な限り多くのインスタンスをホストに分担 (スタック) させた後に、使用率が低いホストをスケジューリングします。 正または負の絶対値で、他の重み付け関数と比べて仮想 CPU の重み付け関数をどれだけ優先するかを指定します。 デフォルトは 1.0 で、スケジューラーはインスタンスをすべてのホストに均等に分散します。 |
| 浮動小数点 | このパラメーターを使用して、負荷に基づいてホストを重み付けするのに使用する重みの乗数を指定します。 負荷がより軽いホストを優先するには、負の値に設定します。この場合、負荷はより多くのホストに分散されます。 負荷がより重いホストを優先するには、正の値に設定します。この場合、インスタンスはすでにビジー状態にあるホストにスケジューリングされます。 正または負の絶対値で、他の重み付け関数と比べて I/O 操作の重み付け関数をどれだけ優先するかを指定します。 デフォルトは -1.0 で、スケジューラーは負荷をより多くのホストに分散します。 |
| 浮動小数点 | このパラメーターを使用して、直近のビルド失敗回数に基づいてホストを重み付けするのに使用する重みの乗数を指定します。 ホストから報告される直近のビルド失敗回数をより重要視するには、正の値に設定します。直近ビルドに失敗したホストは、選択されにくくなります。
直近の失敗回数でコンピュートホストを重み付けするのを無効にするには、 デフォルト: 1000000.0 |
| 浮動小数点 | このパラメーターを使用して、セルを越えて移動する際にホストを重み付けするのに使用する重みの乗数を指定します。このオプションは、インスタンスを移動する際に、同じ移動元セル内にあるホストに加える重みを決定します。インスタンスを移行する場合、デフォルトではスケジューラーは同じ移行元セル内にあるホストを優先します。 現在インスタンスを実行中のセル内にあるホストを優先するには、正の値に設定します。現在インスタンスを実行中のセルとは別のセルにあるホストを優先するには、負の値に設定します。 デフォルト: 1000000.0 |
| 正の浮動小数点 | このパラメーターを使用して、ホスト上の PCI デバイスの数とインスタンスが要求する PCI デバイスの数に基づいてホストを重み付けするのに使用する重みの乗数を指定します。インスタンスが PCI デバイスを要求する場合、より多くの PCI デバイスを持つコンピュートノードにより高い重みが割り当てられます。 たとえば、ホストが 3 台利用可能で、PCI デバイスが 1 つのホストが 1 台、複数の PCI デバイスがあるホストが 1 台、PCI デバイスがないホストが 1 台の場合には、Compute スケジューラーはインスタンスの需要に基づいてこれらのホストの優先順位付けを行います。スケジューラーは、インスタンスが PCI デバイスを 1 つ要求している場合には 1 番目のホストを、複数の PCI デバイスを要求している場合には 2 番目のホストを、PCI デバイスを要求していない場合には 3 番目のホストを、それぞれ優先するはずです。 このオプションを設定して、PCI を要求しないインスタンスが PCI デバイスを持つホストのリソースを占有するのを防ぎます。 デフォルト: 1.0 |
| Integer | このパラメーターを使用して、ホストを選択するサブセット (絞り込まれたホストのサブセット) のサイズを指定します。このオプションを 1 以上に設定する必要があります。値を 1 に指定した場合には、重み付け関数によって最初に返されるホストが選択されます。スケジューラーは 1 未満の値を無視し、代わりに 1 を使用します。 類似の要求を処理する複数のスケジューラープロセスが同じホストを選択して競合状態が生じるのを防ぐには、1 より大きい値に設定します。要求に最も適した N 台のホストからホストを無作為に選択することで、競合の可能性が低減されます。ただし、この値を高く設定すると、選択されるホストが特定の要求に対して最適ではない可能性が高くなります。 デフォルト: 1 |
| 正の浮動小数点 | このパラメーターを使用して、グループのソフトアフィニティーのホストを重み付けするのに使用する重みの乗数を指定します。 注記 このポリシーでグループを作成する場合は、マイクロバージョンを指定する必要があります。 $ openstack --os-compute-api-version 2.15 server group create --policy soft-affinity <group_name> デフォルト: 1.0 |
| 正の浮動小数点 | このパラメーターを使用して、グループのソフト非アフィニティーのホストを重み付けするのに使用する重みの乗数を指定します。 注記 このポリシーでグループを作成する場合は、マイクロバージョンを指定する必要があります。 $ openstack --os-compute-api-version 2.15 server group create --policy soft-affinity <group_name> デフォルト: 1.0 |
| 浮動小数点 |
このパラメーターを使用して、メトリックの重み付けに使用する重みの乗数を指定します。デフォルトでは 重み全体でメトリックの影響を増大させるには、1.0 を超える数値に設定します。 重み全体でメトリックの影響を減少させるには、0.0 と 1.0 の間の数値に設定します。
メトリックの値を無視して 低いメトリックのホストを優先してインスタンスをホストにスタックするには、負の数値に設定します。 デフォルト: 1.0 |
|
| このパラメーターを使用して、重み付けに使用するメトリック、および各メトリックの重みを計算するのに使用する比率を指定します。有効なメトリック名は以下のとおりです。
例: |
| Boolean |
このパラメーターを使用して、設定した
|
| 浮動小数点 |
このパラメーターを使用して、 デフォルト: -10000.0 |