Oracle® Solaris Cluster システム管理

印刷ビューの終了

更新: 2015 年 10 月
 
 

負荷制限の構成

負荷制限を設定することによって、ノードをまたがるリソースグループ負荷の自動分散を有効にできます。一連の負荷制限はクラスタノードごとに設定できます。 リソースグループに負荷係数を割り当てると、その負荷係数はノードの定義済み負荷制限に対応します。デフォルトの動作では、リソースグループの負荷がそのリソースグループのノードリスト内の使用可能なすべてのノードに均等に分散されます。

リソースグループは RGM によってリソースグループのノードリストのノード上で起動されるため、ノードの負荷制限を超えることはありません。RGM によってリソースグループがノードに割り当てられると、各ノードのリソースグループの負荷係数が合計され、合計負荷が算出されます。 次に、合計負荷がそのノードの負荷制限と比較されます。

    負荷制限は次の項目から構成されます。

  • ユーザーが割り当てた名前。

  • 弱い制限値 – 弱い負荷制限は一時的に超えることができます。

  • 強い負荷制限 – 強い負荷制限は超えることはできず、厳格に適用されます。

1 つのコマンドで強い制限と弱い制限の両方を設定できます。いずれかの制限が明示的に設定されていない場合は、デフォルト値が使用されます。 各ノードの強いおよび弱い負荷制限値は、clnode create-loadlimitclnode set-loadlimit、および clnode delete-loadlimit コマンドで作成および変更されます。詳細は、clnode(1CL) のマニュアルページを参照してください。

高い優先度を持つようにリソースグループを構成すると、特定のノードから移動させられる可能性が低くなります。preemption_mode プロパティーを設定して、ノードの過負荷が原因であるリソースグループが優先度の高いリソースグループによってノードから横取りされるかどうかを判定することもできます。concentrate_load プロパティーを使用して、リソースグループの負荷をできるだけ少ないノードに集中させることもできます。 concentrate_load プロパティーは、デフォルトで FALSE です。


注 -  負荷制限は、グローバルクラスタまたはゾーンクラスタのノード上で構成できます。負荷制限を構成するには、コマンド行、clsetup ユーティリティー、または Oracle Solaris Cluster Manager GUI を使用できます。GUI のログイン手順については、Oracle Solaris Cluster Manager にアクセスする方法を参照してください。次の手順は、コマンド行を使用して負荷制限を構成する方法を示したものです。

ノードに負荷制限を構成する

Oracle Solaris Cluster Manager GUI を使用して、グローバルクラスタノードまたはゾーンクラスタノード上の負荷制限を作成および構成することもできます。また、GUI を使用して、ノードの既存の負荷制限を編集または削除することもできます。GUI のログイン手順については、Oracle Solaris Cluster Manager にアクセスする方法を参照してください。

  1. グローバルクラスタの任意のノードで、RBAC の承認 solaris.cluster.modify を提供する役割になります。
  2. 負荷分散を使用するノードに対して、負荷制限を作成および設定します。
    # clnode create-loadlimit -p limitname=mem_load -Z zc1 -p
    softlimit=11 -p hardlimit=20 node1 node2 node3

    この例では、ゾーンクラスタ名は zc1 です。サンプルプロパティーは mem_load で、弱い負荷制限は 11、強い負荷制限は 20 です。強い制限と弱い制限はオプションの引数で、特に定義しなかった場合、デフォルトは無制限です。 詳細は、clnode(1CL) のマニュアルページを参照してください。

  3. 負荷係数値を各リソースグループに割り当てます。
    # clresourcegroup set -p load_factors=mem_load@50,factor2@1 rg1 rg2

    この例では、2 つのリソースグループ (rg1 と rg2) で負荷係数が設定されています。負荷係数の設定は、ノードの定義済み負荷制限に対応します。 この手順は、リソースグループの作成中に clresourceroup create コマンドを使用して実行することもできます。 詳細は、clresourcegroup(1CL) のマニュアルページを参照してください。

  4. 必要に応じて、既存の負荷を再分散できます (clrg remaster)。
    # clresourcegroup remaster rg1 rg2

    このコマンドにより、リソースグループを現在のマスターからほかのノードに移動し、均等な負荷分散を実現できます。

  5. 必要に応じて、一部のリソースグループに、ほかのリソースグループより高い優先度を与えることができます。
    # clresourcegroup set -p priority=600 rg1

    デフォルトの優先度は 500 です。優先度の値が高いリソースグループは、ノードの割り当てにおいて、優先度の値が低いリソースグループよりも優先されます。

  6. 必要に応じて、Preemption_mode プロパティーを設定できます。
    # clresourcegroup set -p Preemption_mode=No_cost rg1

    HAS_COSTNO_COST、および NEVER オプションについては、clresourcegroup(1CL) のマニュアルページを参照してください。

  7. 必要に応じて、Concentrate_load プロパティーを設定できます。
    # cluster set -p Concentrate_load=TRUE
  8. 必要に応じて、リソースグループ間のアフィニティーを指定できます。

    強い正または負のアフィニティーは負荷分散より優先されます。強いアフィニティーや強い負荷制限が無効になることはありません。 強いアフィニティーと強い負荷制限の両方を設定すると、両方の制限が満たされなかった場合に一部のリソースグループが強制的にオフラインのままになることがあります。

    次の例では、ゾーンクラスタ zc1 のリソースグループ rg1 とゾーンクラスタ zc2 のリソースグループ rg2 の間の強い正のアフィニティーを指定しています。

    # clresourcegroup set -p RG_affinities=++zc2:rg2 zc1:rg1
  9. クラスタ内のすべてのグローバルクラスタノードとゾーンクラスタノードのステータスを確認します。
    # clnode status -Z all -v

    出力には、ノードで定義された負荷制限設定がすべて含まれます。