21 プロキシを使用したロード・バランシングの構成

プロキシdsconfigまたはOracle Unified Directory Services Manager (OUDSM)を使用したロード・バランシングに関連する管理タスクを実行できます。

管理タスクの実行方法に関するトピックは次のとおりです。

ノート:

21.1 dsconfigコマンドを使用したロード・バランシングの構成

dsconfigコマンドは、ロード・バランシングの構成、ワークフロー要素の作成およびアルゴリズムとルートの作成に使用します。

次の各トピックは、dsconfigコマンドを使用して、ロード・バランシングを構成する方法を示しています。

21.1.1 dsconfigコマンドを使用したロード・バランシングの構成

1つのロード・バランシング・ワークフロー要素で、ロード・バランシング・アルゴリズムを1つのみ使用できます。ただし、デプロイメント内のすべてのロード・バランシング・ルートで同一のロード・バランシング・アルゴリズムが使用されます。ロード・バランシングは、dsconfigコマンドを使用して構成できます。

ロード・バランシングを使用してクライアント・リクエストをリモートLDAPサーバーに転送するには、次の要素が必要です:

  • ロード・バランシング・ワークフロー要素

  • ロード・バランシング・アルゴリズム

  • ロード・バランシング・ルート(リモートLDAPサーバーごと)

次の各例は、dsconfigコマンドを使用して、ロード・バランシングを構成する方法を示しています。すべての例で、プロキシ・ホスト名(-h)、プロキシ管理ポート(-p)、バインドDN(-D)およびバインド・パスワード・ファイル(-j)が指定され、すべての証明書を信頼するために-Xオプションが使用されています。

  1. ロード・バランシング・ワークフロー要素を作成します。「ロード・バランシング・ワークフロー要素の作成」を参照してください。
  2. ロード・バランシング・アルゴリズムを作成します。「ロード・バランシング・アルゴリズムの作成」を参照してください。
  3. ロード・バランシング・ワークフロー要素ごとに1つのロード・バランシング・ルートを作成します。「ロード・バランシング・ルートの作成」を参照してください。

21.1.2 ロード・バランシング・ワークフロー要素の作成

ロード・バランシングを構成するには、dsconfig create-workflow-elementコマンドを使用して、ロード・バランシング・ワークフロー要素を作成する必要があります。

ワークフロー要素の作成については、次に示す例を参照してください。

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  create-workflow-element \
  --element-name load-bal-we1 \
  --type load-balancing \
  --set enabled:true

ロード・バランシング・ワークフロー要素を作成する場合、タイプをload-balancingにする必要があります。ワークフロー要素の名前は、element-nameで定義され、この例ではload-bal-we1です。

21.1.3 ロード・バランシング・アルゴリズムの作成

ロード・バランシング・デプロイメントで、リクエストが転送される方法を指定するには、ロード・バランシング・アルゴリズムを構成する必要があります。ロード・バランシング・アルゴリズム・セットによって、クライアント・リクエストが各リモートLDAPサーバーのプールにディスパッチされる方法が指定されます。

使用可能なロード・バランシング・タイプは、failoveroptimalproportionalまたはsaturationです。

ロード・バランシング・アルゴリズムを作成するには、ロード・バランシング・ワークフロー要素が必要です。「ロード・バランシング・ワークフロー要素の作成」を参照してください。

dsconfig create-load-balancing-algorithmコマンドを使用して、ロード・バランシング・アルゴリズムを作成します。たとえば:

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  create-load-balancing-algorithm \
  --element-name load-bal-we1 \
  --type failover

ロード・バランシング・アルゴリズムを作成するために、タイプをproportionaloptimalfailoverまたはsaturationとして指定する必要があります。ワークフロー要素の名前は、element-nameで定義され、この例ではload-bal-we1です。

21.1.4 ロード・バランシング・ルートの作成

データ・ソースごとに1つのロード・バランシング・ルートが必要です。ロード・バランシング・ルートを作成する前に、ロード・バランシング・ワークフロー要素およびロード・バランシング・アルゴリズムを作成しておく必要があります。

ロード・バランシング・ルートを作成するには、dsconfig create-load-balancing-routeコマンドを使用します。たとえば:

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  create-load-balancing-route \
  --element-name load-bal-we1 \
  --route-name load-bal-route1 \
  --type failover \
  --set workflow-element:proxy-we1 \
  --set add-priority:1 \
  --set bind-priority:2 \
  --set compare-priority:2 \
  --set delete-priority:1 \
  --set extended-priority:2 \
  --set modify-priority:1 \
  --set modifydn-priority:1 \
  --set search-priority:2 

この例では、load-bal-route1が新規ロード・バランシング・ルートの名前、load-bal-we1が既存のロード・バランシング・ワークフロー要素の名前およびproxy-we1がLDAPプロキシ・ワークフロー要素の名前です。タイプは、関連付けられているロード・バランシング・アルゴリズムで定義されているものと同じにする必要があり、ここではfailoverです。

設定するプロパティ(ここでは優先度)は、作成したロード・バランシングのタイプに関連します。アルゴリズム・タイプに関連した、ルートのプロパティの詳細は、「ロード・バランシングのプロパティの変更」を参照してください。

21.1.5 ロード・バランシングのプロパティの変更

ロード・バランシング・デプロイメントを設定したら、優先度、重み、飽和しきい値など特定のプロパティを変更できます。これらのプロパティのほとんどが、ロード・バランシング・ルート・レベルで変更されます。

次の各項では、1つのロード・バランシング・デプロイメントで使用可能な様々な設定について説明します:

21.1.5.1 ロード・バランシングのプロパティの変更

ロード・バランシング・アルゴリズムに応じて、ロード・バランシングの次のプロパティを変更できます:

フェイルオーバー 最適 比例 飽和 検索フィルタ

add-priority

alert-threshold

add-weight

alert-threshold

priority

bind-priority

saturation-precision*

bind-weight

priority

allowed-attributes

compare-priority

workflow-element

compare-weight

threshold

prohibited-attributes

delete-priority

delete-weight

saturation-precision*

workflow-element

extended-priority

extended-weight

workflow-element

modify-priority

modify-weight

modifydn-priority

modifydn-weight

search-priority

search-weight

workflow-element

workflow-element

switch-back flag

* 飽和精度は、LDAPサーバー拡張のプロパティの1つです。

ロード・バランシング・ルートのプロパティを変更するには、dsconfig set-load-balancing-route-propコマンドを使用します。

サーバーを再起動する必要なく、実行中のアルゴリズムに新規ルートを追加したり、ルートを削除したり、ルートの優先度を変更したりできます。

ノート:

ロード・バランシング・アルゴリズムのタイプを変更することはできません。

たとえば、フェイルオーバー・ロード・バランシング・デプロイメントを比例ロード・バランシング・デプロイメントに変更するには、新規ロード・バランシング・デプロイメントを作成する必要があります。「dsconfigコマンドを使用したロード・バランシングの構成」を参照してください。

21.1.5.2 フェイルオーバー・アルゴリズムでの優先度の設定

フェイルオーバー・アルゴリズムを使用するロード・バランシング・デプロイメントでは、プロキシ・ワークフロー要素を変更して、使用されるルートを変更したり、指定された操作タイプのルートの優先度を変更したりできます。

フェイルオーバー・アルゴリズムでは、優先度1が最高の優先度で、特定の操作タイプに使用されるメイン・ルートであることを示します。優先度2(またはこれ以降)のルートは、プライマリ・ルートで障害が発生した場合に使用されるセカンダリ・ルートです。優先度は、操作タイプごとに設定されます。つまり、追加操作用としては優先度1のルートに、バインドおよび検索操作用として優先度2を指定できます。

たとえば、ルートload-bal-route1を最初は追加操作用の優先度1のメイン・ルートとして設定したが、このルートをバックアップ・ルートにする必要が生じた場合、次のコマンドを使用して優先度を2に設定できます。

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  set-load-balancing-route-prop \
  --element-name load-bal-we1 \
  --route-name load-bal-route1
  --set add-priority: 2

ノート:

指定された操作タイプについて、2つのルートの優先度が同じ場合、リクエストを処理するアクティブ・ルートの選択はランダムです。

21.1.5.3 switch-backフラグの設定

ロード・バランシング・デプロイメントでのフェイルオーバーの後、バックアップ・ルートでは、障害が発生した優先サーバーが使用可能になった後でも、すべての受信リクエストの処理が続けられます。

プライマリ・ルートへのスイッチバックまたはフェイルバックは、switch-backフラグがtrueに設定されていないかぎり、自動的には発生しません。デフォルトで、switch-backフラグはfalseに設定されます。

switch-backフラグは、拡張プロパティです。switch-backフラグをtrueに設定するには、次のように実行します:

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  --advanced set-load-balancing-algorithm-prop \
  --element-name load-bal-we1 \
  --set switch-back:true
21.1.5.4 最適アルゴリズムまたは飽和アルゴリズムでの飽和精度の設定

最適アルゴリズムまたは飽和アルゴリズムを使用するロード・バランシング・デプロイメントでは、飽和精度レベルを設定できます。

飽和精度は、2つの飽和レベルの差分であり、飽和レベルが最低のルートの判別に使用されます。デフォルトで、飽和精度レベルは5に設定されます。

飽和精度レベルが低すぎて、ルートが頻繁に変わりすぎると思われる場合は、次のように飽和精度レベルを変更できます:

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  --advanced set-extension-prop \
  --extension-name proxy1 \
  --set saturation-precision:10
21.1.5.5 比例アルゴリズムの重みの設定

比例アルゴリズムを使用してロード・バランシング・デプロイメントを作成したら、プロキシ・ワークフロー要素を変更して、使用するルートおよびルートの重みを変更できます。

操作タイプごとに異なる重みを指定できます。重みの値は、0以上である必要があります。0は、指定された操作には対象のルートが使用されないことを示します。

対話モードのdsconfigを使用すると、次のプロパティが変更可能なことがわかります:

>>>> Configure the properties of the Proportional Load Balancing Route

        Property          Value(s)
        ---------------------------
    1)  add-weight        1
    2)  bind-weight       1
    3)  compare-weight    1
    4)  delete-weight     1
    5)  extended-weight   1
    6)  modify-weight     1
    7)  modifydn-weight   1
    8)  search-weight     1
    9)  workflow-element  proxy-we1

たとえば、最初にすべての操作に対してすべてのルートを重み1に設定した場合、すべてのサーバーで同等の比率で操作が処理されます。ただし、リモートLDAPサーバーを、デプロイメント内の他のユーザーより多くの検索リクエストを処理するよう設定する場合は、リモートLDAPサーバーのsearch-weightを5などのより大きな値に設定できます。これには、次のようなコマンドを使用します:

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  set-load-balancing-route-prop \
  --element-name load-bal-we1 \
  --route-name load-bal-route1 \
  --set search-weight:5

ノート:

すべての操作について重みを変更するには、各操作の重みを個別に変更する必要があります。

他方のルートの2倍の操作を処理するようload-bal-route1を変更するには、すべての操作の重みを2に設定します(他方のルートの重みが1に設定されていることを前提としています)。つまり、次のようなコマンドを実行します:

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  set-load-balancing-route-prop \
  --element-name load-bal-we1 \
  --route-name load-bal-route1 \
  --set add-weight:2 \
  --set bind-weight:2 \
  --set compare-weight:2 \
  --set delete-weight:2 \
  --set extended-weight:2 \
  --set modify-weight:2 \
  --set modifydn-weight:2 \
  --set search-weight:2 

いずれかの操作について重みが0に設定されている場合、ルートではその指定された操作は実行されません。たとえば、add-weight0に設定すると、load-bal-route1では、関連付けられているリモートLDAPサーバーに追加リクエストが転送されることはありません。特定の操作について、構成されているすべてのルートが重み0を示している場合、その操作はサポートされません。

21.1.5.6 飽和アルゴリズムでのしきい値の設定

飽和アルゴリズムを使用してロード・バランシング・デプロイメントを作成したら、使用されるプロキシ・ワークフロー要素、ルートの優先度、飽和しきい値および飽和しきい値アラートを変更できます。

飽和アルゴリズムでは、リクエストは次の2つの条件に基づいて分散されます。サーバーの優先度とサーバーの飽和しきい値です。飽和しきい値は、サーバーが最大化されているとみなされ、サービスの機能が低下する可能性がある限界値です。飽和アルゴリズムを使用したロード・バランシング・デプロイメントでは、リクエストは、優先度が最高(1)のサーバーに、そのサーバーに指定されている飽和しきい値に達するまで送信されます。

たとえば、load-bal-route1を最高優先度のサーバーとして指定し、しきい値を80%に指定すると、すべてのリクエストは、飽和しきい値の80%を超えるまでload-bal-route1に送信されます。80%を超えると、リクエストは、優先度リストの次のサーバーにルーティングされます。

>>>> Configure the properties of the Saturation Load Balancing Route

        Property          Value(s)
        ---------------------------
    1)  alert-threshold   85
    2)  priority          1
    3)  threshold         80
    4)  workflow-element  proxy-we1

飽和しきい値を変更するには、次のコマンドを使用します:

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  set-load-balancing-route-prop \
  --element-name load-bal-we1 \
  --route-name load-bal-route1 \
  --set threshold:90

この例では、飽和しきい値は90%に設定されています。

21.1.5.7 飽和しきい値アラートの設定

飽和しきい値アラートを使用して、サーバーが飽和限度を超えたことを知らせる通知をシステム管理者が受信する時点を指定します。

通常、飽和しきい値アラートは、飽和が飽和しきい値を超えた後も増え続けている(これは問題を示唆している可能性がある)かどうかを示すために、飽和限度より高く設定されます。リクエストが別のルートに転送されるまでに短い遅延があって、その間に飽和の増加が続くことになる可能性があるため、アラートに受け入れ可能なバッファを設定しておく必要があります。

飽和しきい値を変更するには、次のコマンドを使用します:

$ dsconfig -h localhost -p 4444 -D "cn=Directory Manager" -j pwd-file -X -n \
  set-load-balancing-route-prop \
  --element-name load-bal-we1 \
  --route-name load-bal-route1 \
  --set alert-threshold:85

予防措置を講じるには、飽和しきい値アラートを飽和しきい値より低い値に設定します。(たとえば、メイン・ルートがロード・バランシングされたサーバーのセットの場合、予防措置として1つ以上のサーバーをそのサーバーのセットに追加します。)これは、飽和しきい値に達していない場合でも通知を受信することを意味しています。つまり、飽和しきい値アラートが送信されたが、飽和限度が低くなっていて、飽和しきい値には達していないということです。ただし、飽和しきい値に達したときにのみ、リクエストは優先度が次のルートに送信されます。

通知メッセージの設定の詳細は、「アラートおよびアカウント・ステータス通知ハンドラの構成」を参照してください。

21.1.5.8 クライアント接続アフィニティの設定

クライアント接続アフィニティを定義すると、指定されたクライアント接続からのリクエストは、指定されたロード・バランシング・アルゴリズムをバイパスして、同一サーバーにルーティングされます。クライアント接続アフィニティは、ネットワーク・グループ・レベルで設定されます。

クライアント接続アフィニティを設定するには、dsconfig create-network-group-qos-policyコマンドを使用します。詳細は、「ネットワーク・グループのサービス品質ポリシーの作成」を参照してください。

クライアント接続アフィニティが拒否される場合の例

クライアント接続アフィニティを設定すると、定義されている重みの制約が順守されている場合、ロード・バランシング・アルゴリズムはバイパスされます。

たとえば、次のルートが次の重みで設定されているとします:

  • LB-route1: add=10, search= 0

  • LB-route2: add=0, search=10

LB-route1がすべての追加リクエストを受信し、LB-route2がすべての検索リクエストを受信することが明らかです。

この例でロード・バランシング・デプロイメントをクライアント接続アフィニティall-requests-after-first-write-requestで設定するとします。ロード・バランシング・デプロイメントで追加、検索、追加という一連のリクエストを受信した場合、通常、クライアント接続アフィニティでは、最初の追加リクエストと同じルート(LB-route1)に検索リクエストが送信されます。ところが、この場合、検索リクエストはLB-route1では許可されていないため、ロード・バランシング・アルゴリズムはクライアント・アフィニティによってバイパスされません

21.1.5.9 ロード・バランシング要素の削除

この項では、ロード・バランシング要素の削除の概念を紹介します。

ロード・バランシング・ワークフロー全体(ワークフロー要素、アルゴリズムおよびルートを含む)を削除するために必要な処理は、ロード・バランシング・ワークフロー要素の削除のみです。ロード・バランシング・ワークフロー要素を削除すると、関連付けられているロード・バランシング・アルゴリズムおよびルートは通知なしに削除されます。

21.2 OUDSMを使用したロード・バランシングの構成

ロード・バランシングまたは分散を構成せずにプロキシ・サーバー・インスタンスを設定した場合は、OUDSMを使用してロード・バランシングを構成できます。

開始する前に、ロード・バランシング・デプロイメントを構成しているコンポーネントについて理解しておくと便利です。詳細は、「構成1: 単純なロード・バランシング」を参照してください。

OUDSMを使用してロード・バランシングを構成するには:

  1. 「OUDSMを使用したサーバーへの接続」の説明に従って、OUDSMからプロキシ・サーバーに接続します。
  2. 「ホーム」タブを選択します。
  3. 「構成」項目の「ロード・バランサの設定」を選択します。
  4. 「ロード・バランシング: バックエンド・サーバー」画面で、次の情報を入力します:
    • 「ロード・バランシング名」フィールドに、このロード・バランシング・ワークフロー要素の名前を入力します。

    • 「追加」をクリックして、クライアント・リクエストのロード・バランシング対象とする少なくとも2つのレプリケート済バックエンドLDAPサーバーの接続詳細を入力します。

      OUDSMでは、アクセス可能かどうかを確認するために、これらのバックエンドLDAPサーバーへの接続が試行されます。接続試行が失敗した場合、それでもそのサーバー詳細を使用するか、それとも接続詳細を確認するかを尋ねるプロンプトが表示されます。

  5. すべてのバックエンドLDAPサーバーを追加したら、「次」をクリックして続行します。
  6. 「ロード・バランシング: オプション」画面で、次の情報を入力します:
    • 「ロード・バランシング・アルゴリズム」を選択します。

    • 選択したロード・バランシング・アルゴリズムに応じて、各バックエンドLDAPサーバーの関連する重みまたは優先度を指定します。

    ロード・バランシング・アルゴリズムの詳細は、「プロキシを使用したロード・バランシングの概要」を参照してください。

  7. ロード・バランシングのオプションを指定したら、「次」をクリックして続行します。
  8. 「ロード・バランシング: ネーミング・コンテキスト」画面で、「追加」をクリックして、対象のプロキシ・インスタンスで対応する少なくとも1つのネーミング・コンテキスト、つまり接尾辞を指定します。
  9. 必要なネーミング・コンテキストをすべて追加したら、「次」をクリックして続行します。
  10. 「ロード・バランシング設定: サマリー」画面で、ロード・バランシング構成を確認し、「終了」をクリックして構成を完了します。

ロード・バランシングを構成した後は、OUDSMの「構成」タブで構成の任意の側面を変更できます。