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

第 21 章 目錄代理伺服器負載平衡與用戶端相似性

如需有關負載平衡與用戶端相似性的描述,請參閱「Sun Java System Directory Server Enterprise Edition 6.3 Reference」中的第 16 章「Directory Proxy Server Load Balancing and Client Affinity」。本章包含下列主題:

配置負載平衡

如需有關負載平衡的資訊,請參閱「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

    依預設,負載平衡演算法為比例

  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

配置用戶端相似性

用戶端相似性可降低負載平衡部署中的傳播延遲風險。如需有關用戶端相似性的資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.3 Reference」中的「Client Affinity」。本節說明如何配置用戶端連線與資料來源之間的相似性,並提供配置範例。

Procedure配置用戶端相似性

本程序說明如何配置用戶端連線與資料來源之間的相似性。

您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 透過檢視資料來源池的特性檢視目前的負載平衡演算法。


    $ 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-policyclient-affinity-timeoutenable-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)

  2. 啟用用戶端相似性。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     enable-client-affinity:true
  3. 選取用戶端相似性的策略。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:selected-policy
    

    其中 selected-policy 是下列其中之一:

    write-affinity-after-write

    第一個寫入請求之後的寫入請求相似性

    read-write-affinity-after-write

    第一個寫入請求之後的所有請求相似性

    read-write-affinity-after-any

    第一個讀取請求或寫入請求之後的所有請求相似性

    read-affinity-after-write

    寫入請求之後的第一個讀取請求相似性

  4. 配置用戶端相似性的持續時間。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-timeout:time-out[unit]

    逾時的預設單位為毫秒。

用戶端相似性的配置範例

本節包含與用戶端相似性相關的配置範例,並包含複寫延遲、驗證寫入作業以及以連線為基礎的路由之範例。

Procedure配置當資料來源池包含主機與用戶時,複寫延遲的用戶端相似性

此程序為首次寫入作業之後三秒內發生的所有讀取與寫入作業配置用戶端相似性。

您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 配置資料來源池的相似性參數。


    $ 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

Procedure將用戶端相似性配置為利用讀取作業驗證每個寫入作業

此程序為每個寫入作業之後的首次讀取作業配置用戶端相似性。此範例可用於由其中指定的連結 DN 會透過執行讀取作業驗證每個寫入作業之應用程式。

您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

  1. 配置資料來源池的相似性參數。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:read-affinity-after-write enable-client-affinity:true

Procedure配置以連線為基礎之路由的用戶端相似性

在 Directory Proxy Server 6.0 之前的版本中,用戶端與 LDAP 伺服器之間已開啟一個連線。來自用戶端的所有請求會使用相同的連線,直到連線關閉為止。此路由類型稱為以連線為基礎的路由。本程序說明如何配置以連線為基礎的路由之用戶端相似性。

您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

開始之前

確保所有資料來源皆附加至資料來源池,且 client-cred-mode 設定為 use-client-identity

  1. 配置資料來源池的相似性參數。


    $ dpconf set-ldap-data-source-pool-prop -h host -p port pool-name \
     client-affinity-policy:read-write-affinity-after-any enable-client-affinity:true