Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

4.5.2. スケジューリングの重みの設定

ホストは、スケジューリング用に重み付けすることができます。(フィルタリング後に) 重みが最大のホストが選択されます。(フィルタリング後に) 重みが最大のホストが選択されます。ノードの重みは以下のように計算されます。

w1_multiplier * norm(w1) + w2_multiplier * norm(w2) + ...

重みのオプションは、コンピュートノードの設定ファイルで定義することができます。

表4.8 スケジューリングサービスの重みの設定オプション

設定オプション詳細

filter_scheduler/weight_classes

このパラメーターを使用して、各ホストの重みを計算するのに以下の属性のどれを使用するかを設定します。

  • nova.scheduler.weights.ram.RAMWeigher: コンピュートノードで利用可能な RAM を重み付けします。
  • nova.scheduler.weights.cpu.CPUWeigher: コンピュートノードで利用可能な CPU の数を重み付けします。
  • nova.scheduler.weights.disk.DiskWeigher: コンピュートノードで利用可能なディスクを重み付けします。
  • nova.scheduler.weights.metrics.MetricsWeigher: コンピュートノードのメトリクスを重み付けします。
  • nova.scheduler.weights.affinity.ServerGroupSoftAffinityWeigher: 指定したインスタンスグループの他のノードとコンピュートノードの近接性を重み付けします。
  • nova.scheduler.weights.affinity.ServerGroupSoftAntiAffinityWeigher: 指定したインスタンスグループの他のノードとコンピュートノードの近接性を重み付けします。
  • nova.scheduler.weights.compute.BuildFailureWeigher: 直近ブート試行の失敗回数でコンピュートノードを重み付けします。
  • nova.scheduler.weights.io_ops.IoOpsWeigher: ワークロードでコンピュートノードを重み付けします。
  • nova.scheduler.weights.pci.PCIWeigher: PCI の可用性でコンピュートノードを重み付けします。
  • nova.scheduler.weights.cross_cell.CrossCellWeigher: 置かれているセルに基づいてコンピュートノードを重み付けします。インスタンスを移動する際に、移行元セル内にあるコンピュートノードを優先します。
  • nova.scheduler.weights.all_weighers: (デフォルト) 上記の重み付け関数をすべて使用します。

型: 文字列

filter_scheduler/ram_weight_multiplier

このパラメーターを使用して、利用可能な RAM 容量に基づいてホストを重み付けするのに使用する重みの乗数を指定します。

利用可能な RAM 容量がより大きいホストを優先するには、正の値に設定します。この場合、インスタンスは多くのホストに分散されます。

利用可能な RAM 容量がより小さいホストを優先するには、負の値に設定します。この場合、可能な限り多くのインスタンスをホストに分担 (スタック) させた後に、使用率が低いホストをスケジューリングします。

正または負の絶対値で、他の重み付け関数と比べて RAM の重み付け関数をどれだけ優先するかを指定します。

デフォルトでは、スケジューラーはインスタンスをすべてのホストに均等に分散します (ram_weight_multiplier=1.0)。

型: 浮動小数点

filter_scheduler/disk_weight_multiplier

このパラメーターを使用して、利用可能なディスク容量に基づいてホストを重み付けするのに使用する重みの乗数を指定します。

利用可能なディスク容量がより大きいホストを優先するには、正の値に設定します。この場合、インスタンスは多くのホストに分散されます。

利用可能なディスク容量がより小さいホストを優先するには、負の値に設定します。この場合、可能な限り多くのインスタンスをホストに分担 (スタック) させた後に、使用率が低いホストをスケジューリングします。

正または負の絶対値で、他の重み付け関数と比べてディスクの重み付け関数をどれだけ優先するかを指定します。

デフォルトでは、スケジューラーはインスタンスをすべてのホストに均等に分散します (disk_weight_multiplier=1.0)。

型: 浮動小数点

filter_scheduler/cpu_weight_multiplier

このパラメーターを使用して、利用可能な仮想 CPU の数に基づいてホストを重み付けするのに使用する重みの乗数を指定します。

利用可能な仮想 CPU の数がより多いホストを優先するには、正の値に設定します。この場合、インスタンスは多くのホストに分散されます。

利用可能な仮想 CPU の数がより少ないホストを優先するには、負の値に設定します。この場合、可能な限り多くのインスタンスをホストに分担 (スタック) させた後に、使用率が低いホストをスケジューリングします。

正または負の絶対値で、他の重み付け関数と比べて仮想 CPU の重み付け関数をどれだけ優先するかを指定します。

デフォルトでは、スケジューラーはインスタンスをすべてのホストに均等に分散します (cpu_weight_multiplier=1.0)。

型: 浮動小数点

filter_scheduler/io_ops_weight_multiplier

このパラメーターを使用して、負荷に基づいてホストを重み付けするのに使用する重みの乗数を指定します。

負荷がより軽いホストを優先するには、負の値に設定します。この場合、負荷はより多くのホストに分散されます。

負荷がより重いホストを優先するには、正の値に設定します。この場合、インスタンスはすでにビジー状態にあるホストにスケジューリングされます。

正または負の絶対値で、他の重み付け関数と比べて I/O 操作の重み付け関数をどれだけ優先するかを指定します。

デフォルトでは、スケジューラーは負荷をより多くのホストに分散します (io_ops_weight_multiplier=-1.0)。

型: 浮動小数点

filter_scheduler/build_failure_weight_multiplier

このパラメーターを使用して、直近のビルド失敗回数に基づいてホストを重み付けするのに使用する重みの乗数を指定します。

ホストから報告される直近のビルド失敗回数をより重要視するには、正の値に設定します。直近ビルドに失敗したホストは、選択されにくくなります。

直近の失敗回数でコンピュートホストを重み付けするのを無効にするには、0 に設定します。

デフォルト: 1000000.0

型: 浮動小数点

filter_scheduler/cross_cell_move_weight_multiplier

このパラメーターを使用して、セルを越えて移動する際にホストを重み付けするのに使用する重みの乗数を指定します。このオプションは、インスタンスを移動する際に、同じ移動元セル内にあるホストに加える重みを決定します。インスタンスを移行する場合、デフォルトではスケジューラーは同じ移行元セル内にあるホストを優先します。

現在インスタンスを実行中のセル内にあるホストを優先するには、正の値に設定します。現在インスタンスを実行中のセルとは別のセルにあるホストを優先するには、負の値に設定します。

デフォルト: 1000000.0

型: 浮動小数点

filter_scheduler/pci_weight_multiplier

このパラメーターを使用して、ホスト上の PCI デバイスの数とインスタンスが要求する PCI デバイスの数に基づいてホストを重み付けするのに使用する重みの乗数を指定します。インスタンスが PCI デバイスを要求する場合、より多くの PCI デバイスを持つコンピュートノードにより高い重みが割り当てられます。

たとえば、ホストが 3 台利用可能で、PCI デバイスが 1 つのホストが 1 台、複数の PCI デバイスがあるホストが 1 台、PCI デバイスがないホストが 1 台の場合には、Compute のスケジューラーはインスタンスの需要に基づいてこれらのホストの優先順位付けを行います。インスタンスが PCI デバイスを 1 つ要求している場合には 1 番目のホスト、複数の PCI デバイスを要求している場合には 2 番目のホスト、PCI デバイスを要求していない場合には 3 番目のホストが優先されるべきです。

このオプションを設定して、PCI を要求しないインスタンスが PCI デバイスを持つホストのリソースを占有するのを防ぎます。

デフォルト: 1.0

型: 正の浮動小数点

filter_scheduler/host_subset_size

このパラメーターを使用して、ホストを選択するサブセット (絞り込まれたホストのサブセット) のサイズを指定します。1 以上に設定する必要があります。値を 1 に指定した場合には、重み付け関数によって最初に返されるホストが選択されます。1 未満の値が設定された場合には、無視されて 1 が使用されます。

類似の要求を処理する複数のスケジューラープロセスが同じホストを選択して競合状態が生じるのを防ぐには、1 より大きい値に設定します。要求に最も適した N 台のホストからホストを無作為に選択することで、競合の可能性が低減されます。ただし、この値を高く設定すると、選択されるホストが特定の要求に対して最適ではない可能性が高くなります。

デフォルト: 1

型: 整数

filter_scheduler/soft_affinity_weight_multiplier

このパラメーターを使用して、グループのソフトアフィニティーのホストを重み付けするのに使用する重みの乗数を指定します。

デフォルト: 1.0

型: 正の浮動小数点

filter_scheduler/soft_anti_affinity_weight_multiplier

このパラメーターを使用して、グループのソフト非アフィニティーのホストを重み付けするのに使用する重みの乗数を指定します。

デフォルト: 1.0

型: 正の浮動小数点

metrics/weight_multiplier

このパラメーターを使用して、メトリックの重み付けに使用する重みの乗数を指定します。デフォルトでは weight_multiplier=1.0 に設定されており、使用可能な全ホストの間でインスタンスを分散します。

重み全体でメトリックの影響を増大させるには、1.0 を超える数値に設定します。

重み全体でメトリックの影響を減少させるには、0.0 と 1.0 の間の数値に設定します。

メトリックの値を無視して「weight_of_unavailable」オプションの値を返すには、0.0 に設定します。

低いメトリックのホストを優先してインスタンスをホストにスタックするには、負の数値に設定します。

デフォルト: 1.0

型: 浮動小数点

metrics/weight_setting

このパラメーターを使用して、重み付けに使用するメトリック、および各メトリックの重みを計算するのに使用する比率を指定します。有効なメトリック名は以下のとおりです。

  • cpu.frequency: CPU の周波数
  • cpu.user.time: CPU のユーザーモード時間
  • cpu.kernel.time: CPU のカーネル時間
  • cpu.idle.time: CPU のアイドル時間
  • cpu.iowait.time: CPU の I/O 待機時間
  • cpu.user.percent: CPU のユーザーモード率
  • cpu.kernel.percent: CPU のカーネル率
  • cpu.idle.percent: CPU のアイドル率
  • cpu.iowait.percent: CPU の I/O 待機率
  • cpu.percent: 汎用 CPU の使用率

例: weight_setting=cpu.user.time=1.0

型: metric=ratio ペアのコンマ区切りリスト

metrics/required

このパラメーターを使用して、設定した metrics/weight_setting メトリックが使用できない場合の処理方法を指定します。

  • True: メトリックは必須です。メトリックが使用できない場合には、例外が発生します。この例外を回避するには、NovaSchedulerDefaultFiltersMetricsFilter フィルターを使用します。
  • False: 使用できないメトリックは、重み付け処理において負の係数として扱われます。weight_of_unavailable 設定オプションを使用して、戻り値を設定します。

型: ブール値

metrics/weight_of_unavailable

このパラメータを使用して、metrics/weight_setting メトリックが使用できず、かつ metrics/required=False の場合に用いる重みを指定します。

デフォルト: -10000.0

型: 浮動小数点