Sun Java System Directory Server Enterprise Edition 6.3 管理指南

配置负载平衡

有关负载平衡的信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Load Balancing”。本部分介绍如何配置负载平衡,并提供了样例配置。

Procedure选择负载平衡算法

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 通过查看 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(比例)

  2. 将 LDAP 数据源池配置为使用某种算法。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
      load-balancing-algorithm:selected-algorithm
    

    其中 selected-algorithm 可为以下任一选项:

    • 故障转移

    • 操作相似性

    • 比例

    • 饱和度

    有关算法的详细信息,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Introduction to Load Balancing”

  3. 重新启动目录代理服务器实例。


    $ dpadm restart instance-path
    

Procedure配置负载平衡的权重

对于连接到数据源池的某个数据源,其权重需要相对于连接到数据源池的任何其他数据源的权重进行配置。请考虑所有连接数据源的权重。对于某一类型的操作,如果数据源的权重为已禁用,则始终不会将此类型的请求发送到该数据源。如果数据源的权重为 0(零),则不会将任何请求分发到该数据源。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 查看已连接到数据源池的数据源的列表。


    $ dpconf list-attached-ldap-data-sources -h host -p port pool-name
    
  2. 查看某个连接数据源的属性。


    $ 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 
  3. 配置其中一个连接数据源的权重。


    $ 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
    
  4. 对其他连接数据源重复步骤 2步骤 3

  5. 比较连接数据源的主要参数。


    $ 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
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    DS-1     disabled   3		       disabled       disabled      
    DS-2     2          2           2              2             
    DS-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    disabled         disabled      disabled
    2                2             2
    1                1             1

负载平衡的示例配置

本部分包含配置每种负载平衡算法的样例过程。

Procedure配置负载平衡的比例算法

有关比例算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Proportional Algorithm for Load Balancing”

在此示例中,为数据源 ds–1 配置的权重是其他两个数据源权重的两倍。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

开始之前

请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图

  1. 将数据源池配置为使用负载平衡的比例算法。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
      load-balancing-algorithm:proportional
  2. 配置第一个数据源的属性。


    $ 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
  3. 配置第二个数据源的属性。


    $ 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
  4. 配置第三个数据源的属性。


    $ 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
  5. 比较连接数据源的主要参数。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     2          2           2              2             
    ds-2     1          1           1              1             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    2                2             2
    1                1             1
    1                1             1
  6. 重新启动目录代理服务器实例。


    $ dpadm restart instance-path
    

Procedure配置负载平衡的饱和度算法

有关饱和度算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Saturation Algorithm for Load Balancing”

在此示例中,数据源 ds-1 执行大多数绑定操作,但不执行任何其他类型的操作。对三个数据源的权重进行如下配置:

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

开始之前

请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图

  1. 将数据源池配置为使用负载平衡的饱和度算法。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:saturation
  2. 配置第一个数据源的属性。


    $ 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
  3. 配置第二个数据源的属性。


    $ 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
  4. 配置第三个数据源的属性。


    $ 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
  5. 比较连接数据源的主要参数。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     disabled   3		       disabled       disabled      
    ds-2     2          2           2              2             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    disabled         disabled      disabled
    2                2             2
    1                1             1
  6. 重新启动目录代理服务器实例。


    $ dpadm restart instance-path
    

Procedure为全局帐户锁定配置操作相似性算法

有关此算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Operational Affinity Algorithm for Global Account Lockout”

此示例具有三个数据源。数据源 ds-1 被配置为接收所有绑定请求。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

开始之前

请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图

  1. 将数据源池配置为使用操作相似性算法。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:operational-affinity
  2. 配置第一个数据源的属性。


    $ 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
  3. 配置第二个数据源的属性。


    $ 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
  4. 配置第三个数据源的属性。


    $ 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
  5. 比较连接数据源的主要参数。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     1          100         1              1             
    ds-2     1          1           1              1             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    1                1             1
    1                1             1
    1                1             1
  6. 重新启动目录代理服务器实例。


    $ dpadm restart instance-path
    

Procedure为缓存优化配置操作相似性算法

有关此算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Operational Affinity Algorithm for Cache Optimization”

此示例具有三个数据源。数据源 ds-1 处理所有搜索和比较操作。当 ds-1 响应请求时,目标条目将被存储到缓存中。如果 ds-1 重复响应同一请求,数据源可以使用缓存的数据。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

开始之前

请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图

  1. 将数据源池配置为使用操作相似性算法。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:operational-affinity
  2. 配置第一个数据源的属性。


    $ 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
  3. 配置第二个数据源的属性。


    $ 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
  4. 配置第三个数据源的属性。


    $ 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
  5. 比较连接数据源的主要参数。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     1          1           100            1             
    ds-2     1          1           1              1             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    1                1             100
    1                1             1
    1                1             1
  6. 重新启动目录代理服务器实例。


    $ dpadm restart instance-path
    

Procedure配置负载平衡的故障转移算法

有关故障转移算法的描述,请参见《Sun Java System Directory Server Enterprise Edition 6.3 Reference》中的“Failover Algorithm for Load Balancing”

此示例具有三个数据源。数据源 ds-1 接收所有请求。如果 ds-1 出现故障,ds-2 将接收所有请求,直到 ds-1 恢复为止。如果 ds-2ds-1 恢复之前出现故障,ds-3 将接收所有请求。

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

开始之前

请确保您的数据源池至少包含三个连接数据源。有关如何创建数据源和数据源池的信息, 请参见创建 LDAP 数据视图

  1. 将数据源池配置为使用负载平衡的故障转移算法。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     load-balancing-algorithm:failover
  2. 配置第一个数据源的属性。


    $ 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
  3. 配置第二个数据源的属性。


    $ 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
  4. 配置第三个数据源的属性。


    $ 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
  5. 比较连接数据源的主要参数。


    $ dpconf list-attached-ldap-data-sources -h host -p port -v pool-name
    SRC_NAME add-weight bind-weight compare-weight delete-weight 
    -------- ---------- ----------- -------------- ------------- 
    ds-1     3          3           3              3             
    ds-2     2          2           2              2             
    ds-3     1          1           1              1             
    
    modify-dn-weight modify-weight search-weight
    ---------------- ------------- -------------
    3                3             3
    2                2             2
    1                1             1
  6. 重新启动目录代理服务器实例。


    $ dpadm restart instance-path
    

配置目录代理服务器以执行负载平衡

一个简单的负载平衡案例就是将搜索和比较操作发送到一组目录,而将其他操作发送到另一组目录。目录代理服务器接收所有客户端操作。服务器必须确定哪组目录获取读取操作,哪组目录获取其他操作。

    配置目录代理服务器以处理此负载平衡方案的重要阶段如下所示。

  1. 将目录添加为目录代理服务器的数据源。

  2. 将数据源添加到数据源池中。

  3. 将某些数据源配置为接受搜索和比较操作,而将其他数据源配置为接受添加、绑定、删除、修改以及修改 DN 操作。

  4. 将数据源池添加到数据视图中。

下面的示例使用侦听端口 9389 的目录代理服务器。此处按上述方式将代理配置为在一个目录服务器实例 ds1:1389(用于处理搜索和比较操作)和另一个目录服务器实例 ds2:2389(用于处理其他操作)之间平衡负载。

第一步是创建并启用数据源。此步骤需要重新启动代理服务器。


$ dpconf create-ldap-data-source -p 9389 ds1 localhost:1389
$ dpconf create-ldap-data-source -p 9389 ds2 localhost:2389
$ dpconf set-ldap-data-source-prop -p 9389 ds1 is-enabled:true
$ dpconf set-ldap-data-source-prop -p 9389 ds2 is-enabled:true
$ dpadm restart /local/dps

第二步是将数据源添加到数据源池中。


$ dpconf create-ldap-data-source-pool -p 9389 "Directory Pool"
$ dpconf attach-ldap-data-source -p 9389 "Directory Pool" ds1 ds2

第三步是将 ds1 配置为接受搜索和比较操作,而将 ds2 配置为接受其他操作。


$ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds1 \
add-weight:disabled bind-weight:disabled compare-weight:1 delete-weight:disabled \
modify-dn-weight:disabled modify-weight:disabled search-weight:1
$ dpconf set-attached-ldap-data-source-prop -p 9389 "Directory Pool" ds2 \
add-weight:1 bind-weight:1 compare-weight:disabled delete-weight:1 \
modify-dn-weight:1 modify-weight:1 search-weight:disabled

第四步是将数据源池添加到数据视图中,以便将客户端应用程序请求路由到该池。


$ dpconf create-ldap-data-view -p 9389 "Balanced View" "Directory Pool" \
dc=example,dc=com