負荷分散とクライアントアフィニティーについては、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の第 16 章「Directory Proxy Server Load Balancing and Client Affinity」を参照してください。この章の内容は次のとおりです。
負荷分散の詳細は、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の「Load Balancing」を参照してください。この節では、負荷分散を設定する方法について説明し、設定例を示します。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
LDAP データソースプールのプロパティーを表示することで、現在の負荷分散アルゴリズムを取得します。
$ dpconf get-ldap-data-source-pool-prop -h host -p port pool-name |
LDAP データソースプールのデフォルトプロパティーは次のとおりです。
client-affinity-policy : write-affinity-after-write client-affinity-timeout : 20s description : - enable-client-affinity : false load-balancing-algorithm : proportional |
デフォルトでは、負荷分散アルゴリズムは proportional です。
アルゴリズムを使用するように LDAP データソースプールを設定します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:selected-algorithm |
ここで、selected-algorithm は次のいずれかです。
failover
operational-affinity
proportional
saturation
アルゴリズムの詳細は、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の「Introduction to Load Balancing」を参照してください。
Directory Proxy Server のインスタンスを再起動します。
$ dpadm restart instance-path |
データソースのウェイトは、データソースプールに接続されているほかのすべてのデータソースのウェイトを考慮して設定する必要があります。データソースに操作のタイプに対して disabled のウェイトがある場合、そのタイプの要求がそのデータソースに送信されることはありません。データソースに ウェイト 0 (zero) がある場合、他のすべてのデータソースが使用不可でないかぎり、そのデータソースには要求は配信されません。このため、ウェイトが 0 に設定されたデータソースは、他のすべてのデータソースが停止している場合だけ使用されます。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
データソースプールに接続されているデータソースのリストを表示します。
$ dpconf list-attached-ldap-data-sources -h host -p port pool-name |
接続済みデータソースのいずれかのプロパティーを表示します。
$ dpconf get-attached-ldap-data-source-prop pool-name \ attached-data-source-name |
接続済みデータソースのプロパティーは、各タイプの操作に対するウェイトを定義します。接続済みデータソースのデフォルトウェイトは次のとおりです。
add-weight : disabled bind-weight : disabled compare-weight : disabled delete-weight : disabled modify-dn-weight : disabled modify-weight : disabled search-weight : disabled |
接続済みデータソースのいずれかのウェイトを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name \ attached-data-source-name add-weight:value \ bind-weight:value compare-weight:value delete-weight:value \ modify-dn-weight:value modify-weight:value search-weight:value |
接続済みデータソースのキーパラメータを比較します。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name |
たとえば、データソースプールには、次のようなウェイトを持つデータソースを含めることができます。
$ dpconf list-attached-ldap-data-sources -h host1 -p 1389 -v myPool Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight ---- ---------- ----------- -------------- ------------- ---------------- ------------- ------------- DS-1 disabled 3 disabled disabled disabled disabled disabled DS-2 2 2 2 2 2 2 2 DS-3 1 1 1 1 1 1 1 |
この節では、各負荷分散アルゴリズムの設定手順の例を示します。
比例アルゴリズムについては、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の「Proportional Algorithm for Load Balancing」を参照してください。
この例では、データソース ds–1 が、他の 2 つのデータソースのウェイトの 2 倍に設定されます。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
データソースプールに少なくとも 3 つの接続済みデータソースが含まれていることを確認します。データソースとデータソースプールを作成する方法については、第 20 章「LDAP データソースとデータソースプール」を参照してください。
負荷分散に対して比例アルゴリズムを使用するようにデータソースプールを設定します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:proportional |
最初のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \ modify-weight:2 search-weight:2 |
2 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
3 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
接続済みデータソースのキーパラメータを比較します。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight --- ---------- ----------- -------------- ------------- ---------------- ------------- ------------- ds-1 2 2 2 2 2 2 2 ds-2 1 1 1 1 1 1 1 ds-3 1 1 1 1 1 1 1 |
Directory Proxy Server のインスタンスを再起動します。
$ dpadm restart instance-path |
飽和アルゴリズムについては、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の「Saturation Algorithm for Load Balancing」を参照してください。
この例では、データソース ds-1 で大半のバインド操作が実行されますが、ほかのタイプの操作は実行されません。3 つのデータソースが次のウェイトによって設定されます。
ds-1 は、バインド操作に対してウェイト 3 を持つよう設定され、他のすべてのタイプの操作に対しては無効です。
ds-2 は、すべての操作に対してウェイト 2 を持つよう設定されます。
ds-3 は、すべての操作に対してウェイト 1 を持つよう設定されます。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
データソースプールに少なくとも 3 つの接続済みデータソースが含まれていることを確認します。データソースとデータソースプールを作成する方法については、第 20 章「LDAP データソースとデータソースプール」を参照してください。
負荷分散に対して飽和アルゴリズムを使用するようにデータソースプールを設定します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:saturation |
最初のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:disabled bind-weight:3 compare-weight:disabled delete-weight:disabled \ modify-dn-weight:disabled modify-weight:disabled search-weight:disabled |
2 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \ modify-weight:2 search-weight:2 |
3 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
接続済みデータソースのキーパラメータを比較します。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight --- ---------- ----------- -------------- ------------- ---------------- ------------- ------------- ds-1 disabled 3 disabled disabled disabled disabled disabled ds-2 2 2 2 2 2 2 2 ds-3 1 1 1 1 1 1 1 |
Directory Proxy Server のインスタンスを再起動します。
$ dpadm restart instance-path |
このアルゴリズムについては、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の「Operational Affinity Algorithm for Global Account Lockout」を参照してください。
この例には、3 つのデータソースがあります。データソース ds-1 は、すべてのバインド要求を受信するように設定されます。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
データソースプールに少なくとも 3 つの接続済みデータソースが含まれていることを確認します。データソースとデータソースプールを作成する方法については、第 20 章「LDAP データソースとデータソースプール」を参照してください。
アフィニティーアルゴリズムを使用するようにデータソースプールを設定します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:operational-affinity |
最初のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:1 bind-weight:100 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
2 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
3 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
接続済みデータソースのキーパラメータを比較します。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight -- ---------- ----------- -------------- ------------- ---------------- ------------- ------------- ds-1 1 1 1 1 1 1 1 ds-2 1 100 1 1 1 1 1 ds-3 1 1 1 1 1 1 1 |
Directory Proxy Server のインスタンスを再起動します。
$ dpadm restart instance-path |
このアルゴリズムについては、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の「Operational Affinity Algorithm for Cache Optimization」を参照してください。
この例には、3 つのデータソースがあります。すべての検索操作と比較操作は、データソース ds-1 で処理されます。ds-1 が要求に応答すると、ターゲットエントリがキャッシュ内に格納されます。ds-1 が同じ要求に繰り返し応答する場合、データソースはキャッシュに入れられたデータを使用できます。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
データソースプールに少なくとも 3 つの接続済みデータソースが含まれていることを確認します。データソースとデータソースプールを作成する方法については、第 20 章「LDAP データソースとデータソースプール」を参照してください。
アフィニティーアルゴリズムを使用するようにデータソースプールを設定します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:operational-affinity |
最初のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:1 bind-weight:1 compare-weight:100 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:100 |
2 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
3 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
接続済みデータソースのキーパラメータを比較します。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight --- ---------- ----------- -------------- ------------- ---------------- ------------- ------------- ds-1 1 1 100 1 1 1 100 ds-2 1 1 1 1 1 1 1 ds-3 1 1 1 1 1 1 1 |
Directory Proxy Server のインスタンスを再起動します。
$ dpadm restart instance-path |
フェイルオーバーアルゴリズムについては、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の「Failover Algorithm for Load Balancing」を参照してください。
この例には、3 つのデータソースがあります。データソース ds-1 はすべての要求を受信します。ds-1 が失敗した場合は、ds-1 が回復するまで ds-2 がすべての要求を受信します。ds-1 が回復する前に ds-2 が失敗した場合は、ds-3 がすべての要求を受信します。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
データソースプールに少なくとも 3 つの接続済みデータソースが含まれていることを確認します。データソースとデータソースプールを作成する方法については、第 20 章「LDAP データソースとデータソースプール」を参照してください。
負荷分散に対してフェイルオーバーアルゴリズムを使用するように、データソースプールを設定します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ load-balancing-algorithm:failover |
最初のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-1 \ add-weight:3 bind-weight:3 compare-weight:3 delete-weight:3 modify-dn-weight:3 \ modify-weight:3 search-weight:3 |
2 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-2 \ add-weight:2 bind-weight:2 compare-weight:2 delete-weight:2 modify-dn-weight:2 \ modify-weight:2 search-weight:2 |
3 番目のデータソースのプロパティーを設定します。
$ dpconf set-attached-ldap-data-source-prop -h host -p port pool-name ds-3 \ add-weight:1 bind-weight:1 compare-weight:1 delete-weight:1 modify-dn-weight:1 \ modify-weight:1 search-weight:1 |
接続済みデータソースのキーパラメータを比較します。
$ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name Name add-weight bind-weight compare-weight delete-weight modify-dn-weight modify-weight search-weight --- ---------- ----------- -------------- ------------- ---------------- ------------- ------------- ds-1 3 3 3 3 3 3 3 ds-2 2 2 2 2 2 2 2 ds-3 1 1 1 1 1 1 1 |
Directory Proxy Server のインスタンスを再起動します。
$ dpadm restart instance-path |
クライアントアフィニティーにより、負荷分散された配備での伝播遅延のリスクが削減されます。クライアントアフィニティーについては、『Sun Java System Directory Server Enterprise Edition 6.2 Reference』の「Client Affinity」を参照してください。この節では、クライアント接続とデータソース間のアフィニティーを設定する方法を説明し、設定例を示します。
この手順では、クライアント接続とデータソース間のアフィニティーを設定する方法について説明します。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
データソースプールのプロパティーを表示することで、現在の負荷分散アルゴリズムを表示します。
$ dpconf get-ldap-data-source-pool-prop -h host -p port pool-name |
データソースプールのデフォルトプロパティーは、次のとおりです。
client-affinity-policy : write-affinity-after-write client-affinity-timeout : 20s description : - enable-client-affinity : false load-balancing-algorithm : proportional |
次のパラメータは、クライアントアフィニティーを設定します。client-affinity-policy 、client-affinity-timeout、enable-client-affinity 。プロパティーの詳細とそれらの有効な値のリストについては、次のように入力します。
dpconf help-properties ldap-data-source-pool client-affinity-policy \ client-affinity-timeout enable-client-affinity |
プロパティーの詳細は、次のマニュアルページを参照してください。client-affinity-policy(5dpconf)、client-affinity-timeout(5dpconf)、および enable-client-affinity(5dpconf)。
クライアントアフィニティーを有効にします。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ enable-client-affinity:true |
クライアントアフィニティーに対するポリシーを選択します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ client-affinity-policy:selected-policy |
ここで、selected-policy は次のいずれかです。
最初の書き込み要求のあとの書き込み要求に対するアフィニティー
最初の書き込み要求のあとのすべての要求に対するアフィニティー
最初の読み取り要求または書き込み要求のあとのすべての要求に対するアフィニティー
書き込み要求のあとの最初の読み取り要求に対するアフィニティー
クライアントアフィニティーの期間を設定します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ client-affinity-timeout:time-out[unit] |
タイムアウトのデフォルトの unit はミリ秒です。
この節では、クライアントアフィニティーに関連する設定の例を示し、レプリケーションの遅延、書き込み操作の検証、接続ベースのルーティングの例を示します。
この手順では、最初の書き込み操作後、3 秒までの間に行われるすべての読み取り操作と書き込み操作に対するクライアントアフィニティーを設定します。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
データソースプールのアフィニティーパラメータを設定します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ client-affinity-policy:read-write-affinity-after-write client-affinity-timeout:3000 \ enable-client-affinity:true |
この手順では、それぞれの書き込み操作のあとの最初の読み取り操作に対するクライアントアフィニティーを設定します。例は、読み取り操作を行うことで指定した DN がそれぞれの書き込み操作の妥当性検査を行うアプリケーションの場合もあります。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
データソースプールのアフィニティーパラメータを設定します。
$ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \ client-affinity-policy:read-affinity-after-write enable-client-affinity:true |
Directory Proxy Server 6.0 より前のバージョンでは、クライアントと LDAP サーバー間で確立される接続数は 1 つです。この接続が閉じられるまで、クライアントからのすべての要求に使用されました。このタイプのルーティングを、connection-based routing といいます。この手順では、接続ベースのルーティングに対してクライアントアフィニティーを設定する方法について説明します。
DSCC を使用してこの作業を実行できます。詳細は、「Directory Service Control Center のインタフェース」と DSCC のオンラインヘルプを参照してください。
すべてのデータソースがデータソースプールに接続されていて、clientCredentialsForwarding が useBind に設定されていることを確認します。