この章では、プロキシ(dsconfig
またはOracle Directory Services Manager (ODSM))を使用したロード・バランシングに関連する管理タスクを実行する方法について説明します。
注意:
|
この章には、次の項があります。
dsconfig
コマンドを使用したロード・バランシングの構成ロード・バランシングを使用してクライアント・リクエストをリモートLDAPサーバーに転送するには、次の要素が必要です:
ロード・バランシング・ワークフロー要素
ロード・バランシング・アルゴリズム
ロード・バランシング・ルート(リモートLDAPサーバーごと)
1つのロード・バランシング・ワークフロー要素で、ロード・バランシング・アルゴリズムを1つのみ使用できます。ただし、デプロイメント内のすべてのロード・バランシング・ルートで同一のロード・バランシング・アルゴリズムが使用されます。
次の各例は、dsconfig
コマンドを使用して、ロード・バランシングを構成する方法を示しています。すべての例で、プロキシ・ホスト名(-h
)、プロキシ管理ポート(-p
)、バインドDN(-D
)およびバインド・パスワード・ファイル(-j
)が指定され、すべての証明書を信頼するために-X
オプションが使用されています。
ロード・バランシング・ワークフロー要素を作成します。第21.1.1項「ロード・バランシング・ワークフロー要素の作成」を参照してください。
ロード・バランシング・アルゴリズムを作成します。第21.1.2項「ロード・バランシング・アルゴリズムの作成」を参照してください。
ロード・バランシング・ワークフロー要素ごとに1つのロード・バランシング・ルートを作成します。第21.1.3項「ロード・バランシング・ルートの作成」を参照してください。
ロード・バランシングを構成するには、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
です。
ロード・バランシング・デプロイメントで、リクエストが転送される方法を指定するには、ロード・バランシング・アルゴリズムを構成する必要があります。ロード・バランシング・アルゴリズム・セットによって、クライアント・リクエストが各リモートLDAPサーバーのプールにディスパッチされる方法が指定されます。使用可能なロード・バランシング・タイプは、failover
、optimal
、proportional
またはsaturation
です。
ロード・バランシング・アルゴリズムを作成するには、ロード・バランシング・ワークフロー要素が必要です。第21.1.1項「ロード・バランシング・ワークフロー要素の作成」を参照してください。
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
ロード・バランシング・アルゴリズムを作成するために、タイプをproportional
、optimal
、failover
またはsaturation
として指定する必要があります。ワークフロー要素の名前は、element-name
で定義され、この例ではload-bal-we1
です。
データ・ソースごとに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.4項「ロード・バランシングのプロパティの変更」を参照してください。
ロード・バランシング・デプロイメントを設定したら、優先度、重み、飽和しきい値など特定のプロパティを変更できます。これらのプロパティのほとんどが、ロード・バランシング・ルート・レベルで変更されます。
ロード・バランシング・アルゴリズムに応じて、ロード・バランシングの次のプロパティを変更できます:
フェイルオーバー | 最適 | 比例 | 飽和 | 検索フィルタ |
---|---|---|---|---|
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
コマンドを使用します。
サーバーを再起動する必要なく、実行中のアルゴリズムに新規ルートを追加したり、ルートを削除したり、ルートの優先度を変更したりできます。
注意: ロード・バランシング・アルゴリズムのタイプを変更することはできません。たとえば、フェイルオーバー・ロード・バランシング・デプロイメントを比例ロード・バランシング・デプロイメントに変更するには、新規ロード・バランシング・デプロイメントを作成する必要があります。第21.1項「 |
次の各項では、1つのロード・バランシング・デプロイメントで使用可能な様々な設定について説明します:
フェイルオーバー・アルゴリズムを使用するロード・バランシング・デプロイメントでは、プロキシ・ワークフロー要素を変更して、使用されるルートを変更したり、指定された操作タイプのルートの優先度を変更したりできます。
フェイルオーバー・アルゴリズムでは、優先度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つのルートの優先度が同じ場合、リクエストを処理するアクティブ・ルートの選択はランダムです。 |
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
最適アルゴリズムまたは飽和アルゴリズムを使用するロード・バランシング・デプロイメントでは、飽和精度レベルを設定できます。飽和精度は、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
比例アルゴリズムを使用してロード・バランシング・デプロイメントを作成したら、プロキシ・ワークフロー要素を変更して、使用するルートおよびルートの重みを変更できます。操作タイプごとに異なる重みを指定できます。重みの値は、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-weight
を0
に設定すると、load-bal-route1
では、関連付けられているリモートLDAPサーバーに追加リクエストが転送されることはありません。特定の操作について、構成されているすべてのルートが重み0
を示している場合、その操作はサポートされません。
飽和アルゴリズムを使用してロード・バランシング・デプロイメントを作成したら、使用されるプロキシ・ワークフロー要素、ルートの優先度、飽和しきい値および飽和しきい値アラートを変更できます。
飽和アルゴリズムでは、リクエストは次の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%に設定されています。
飽和しきい値アラートを使用して、サーバーが飽和限度を超えたことを知らせる通知をシステム管理者が受信する時点を指定します。通常、飽和しきい値アラートは、飽和が飽和しきい値を超えた後も増え続けている(これは問題を示唆している可能性がある)かどうかを示すために、飽和限度より高く設定されます。リクエストが別のルートに転送されるまでに短い遅延があって、その間に飽和の増加が続くことになる可能性があるため、アラートに受け入れ可能なバッファを設定しておく必要があります。
飽和しきい値を変更するには、次のコマンドを使用します:
$ 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つ以上のサーバーをそのサーバーのセットに追加します。)これは、飽和しきい値に達していない場合でも通知を受信することを意味しています。つまり、飽和しきい値アラートが送信されたが、飽和限度が低くなっていて、飽和しきい値には達していないということです。ただし、飽和しきい値に達したときにのみ、リクエストは優先度が次のルートに送信されます。
通知メッセージの設定の詳細は、第35.4項「アラートおよびアカウント・ステータス通知ハンドラの構成」を参照してください。
クライアント接続アフィニティを定義すると、指定されたクライアント接続からのリクエストは、指定されたロード・バランシング・アルゴリズムをバイパスして、同一サーバーにルーティングされます。クライアント接続アフィニティは、ネットワーク・グループ・レベルで設定されます。
クライアント接続アフィニティを設定するには、dsconfig create-network-group-qos-policy
コマンドを使用します。詳細は、第17.1.6.3項「ネットワーク・グループのサービス品質ポリシーの作成」を参照してください。
例21-1 クライアント接続アフィニティが拒否される場合の例
クライアント接続アフィニティを設定すると、定義されている重みの制約が順守されている場合、ロード・バランシング・アルゴリズムはバイパスされます。
たとえば、次のルートが次の重みで設定されているとします:
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
では許可されていないため、ロード・バランシング・アルゴリズムはクライアント・アフィニティによってバイパスされません。
ロード・バランシング・ワークフロー全体(ワークフロー要素、アルゴリズムおよびルートを含む)を削除するために必要な処理は、ロード・バランシング・ワークフロー要素の削除のみです。ロード・バランシング・ワークフロー要素を削除すると、関連付けられているロード・バランシング・アルゴリズムおよびルートは通知なしに削除されます。
ロード・バランシングまたは分散を構成せずにプロキシ・サーバー・インスタンスを設定した場合は、ODSMを使用してロード・バランシングを構成できます。開始する前に、ロード・バランシング・デプロイメントを構成しているコンポーネントについて理解しておくと便利です。詳細は、第3.2.1項「構成1: 単純なロード・バランシング」を参照してください。
ODSMを使用してロード・バランシングを構成するには、次のステップを実行します:
第16.2項「ODSMを使用したサーバーへの接続」の説明に従って、ODSMからプロキシ・サーバーに接続します。
「ホーム」タブを選択します。
「構成」項目の「ロード・バランサの設定」を選択します。
「ロード・バランシング: バックエンド・サーバー」画面で、次の情報を入力します:
「ロード・バランシング名」フィールドに、このロード・バランシング・ワークフロー要素の名前を入力します。
「追加」をクリックして、クライアント・リクエストのロード・バランシング対象とする少なくとも2つのレプリケート済バックエンドLDAPサーバーの接続詳細を入力します。
ODSMでは、アクセス可能かどうかを確認するために、これらのバックエンドLDAPサーバーへの接続が試行されます。接続試行が失敗した場合、それでもそのサーバー詳細を使用するか、それとも接続詳細を確認するかを尋ねるプロンプトが表示されます。
すべてのバックエンドLDAPサーバーを追加したら、「次」をクリックして続行します。
「ロード・バランシング: オプション」画面で、次の情報を入力します:
「ロード・バランシング・アルゴリズム」を選択します。
選択したロード・バランシング・アルゴリズムに応じて、各バックエンドLDAPサーバーの関連する重みまたは優先度を指定します。
ロード・バランシング・アルゴリズムの詳細は、第12.2項「プロキシを使用したロード・バランシングの理解」を参照してください。
ロード・バランシングのオプションを指定したら、「次」をクリックして続行します。
「ロード・バランシング: ネーミング・コンテキスト」画面で、「追加」をクリックして、対象のプロキシ・インスタンスで対応する少なくとも1つのネーミング・コンテキスト、つまり接尾辞を指定します。
必要なネーミング・コンテキストをすべて追加したら、「次」をクリックして続行します。
「ロード・バランシング設定: サマリー」画面で、ロード・バランシング構成を確認し、「終了」をクリックして構成を完了します。
ロード・バランシングを構成した後は、ODSMの「構成」タブで構成の任意の側面を変更できます。