配置 Liberty 群體抄本集

您可以配置群體抄本集。抄本集為 Liberty 管理網域提供了高可用性的管理功能。

適用於分散式平台適用於 IBM i 平台

開始之前

只有在 WebSphere® Application Server Liberty Network Deployment 和 WebSphere Application Server Liberty for z/OS® 中,才能使用 collectiveController-1.0 特性及其功能。在 WebSphere Application Server Liberty、WebSphere Application Server Liberty - Express 或 WebSphere Application Server Liberty Core 中,無法使用這項特性。如果您有 WebSphere Application Server Liberty Network Deployment 安裝架構,就可以利用其 collectiveController-1.0 特性,來與 WebSphere Application Server Liberty、WebSphere Application Server Liberty - Express 或 WebSphere Application Server Liberty Core 安裝架構中的群體成員搭配運作。群體成員可以出自任何 WebSphere Application Server Liberty 版本。

關於這項作業

抄本集是配置成一起運作的一組群體控制器。每個抄本都會含有集內其他抄本已處理的所有儲存庫更新項目。 因此,成員或用戶端不需要在每次與群體互動時,都要連接特定群體控制器;抄本集中所配置的任何群體控制器都可以提供相同的資料。

如需建立及配置群體控制器的詳細指示,請參閱配置 Liberty 群體

您可以完成下列程序,來配置群體抄本集:

  1. 新增抄本到現有的抄本集中
  2. 修改起始抄本集的預設配置

請參閱範例:建立和啟動抄本集,此範例說明如何建立一個由相同主機上的三部群體控制器組成的抄本集。

程序

  1. 新增抄本到現有的抄本集中。

    在抄本集的生命期間,可能需要新增一或多個抄本到現有的集中,比方說,用來增加容量。

    抄本集中現有抄本的配置不需要進行任何更新。您可以更新它們,使它們在 server.xml 檔中的配置,能更準確地反映形成抄本集的抄本,但此更新並非必要,而且不會影響其行為。

    註: 您不需要變更集中現有抄本的 server.xml 檔中的 replicaSet 值。不需要變更現有抄本的配置。 如果您想要更新集中現有抄本的配置中的 replicaSet 值,使配置值在集中的所有抄本之間是一致的,您必須將現有抄本的配置中的 isInitialReplicaSet 值設為 false。 這是因為在變更 replicaSet 值之後,它就不再說明起始抄本集,因為屆時它會說明已變更的抄本集。
    註: 當您參照抄本時,必須保持一致,並使用相同的 host:port 值。如果有使用主機名稱,則必須一直使用。或者,如果有使用 IP 位址,就必須一直使用。

    如果要新增抄本,請遵循下列步驟:

    1. 確定現有的抄本集在執行中,且大部分抄本都可供使用。
    2. 建立伺服器,來作為新的群體控制器。
      wlp/bin/server create MyNewController
    3. 進行抄寫,將新伺服器轉換成群體控制器。
      wlp/bin/collective replicate MyNewController 
         --host=host_of_running_controller
         --port=https_port_of_running_controller
         --user=user_for_running_controller
         --password=user_password --keystorePassword=password_for_new_controller  

      replicate 指令會將 XML 輸出寫入到主控台畫面。您可以將輸出複製到 server.xml 檔案。

      [8.5.5.2 或更新版本]如果要將指令的輸出寫入至檔案,而不是寫入到主控台畫面,請指定 --createConfigFile=output_file_path 參數。然後,新增 include 陳述式至 server.xml 檔案,以將輸出的檔案併入群體配置中。
      <include location=output_file_path />
    4. 使用 replicate 指令的輸出,來配置新抄本的 server.xml 檔。
      replicate 指令的 XML 輸出複製到 server.xml 檔案中。您可以修改抄本配置,如下所示:
      • 必要的設定:
        值必須明確設定。replicate 指令所列印的 XML 包含這個配置,對這個設定而言,已經足夠。
        [8.5.5.4 或更新版本]hostAuthInfo
        [8.5.5.4 或更新版本]主機鑑別資訊,內含遠端用戶端啟動伺服器時所需要的內容。為抄本設定 RPC 認證的方式有兩種:
        • rpcUser 設為抄本所在主機的作業系統登入使用者 ID,將 rpcUserPassword 設為該使用者 ID 的作業系統登入密碼。舉例來說,如果您使用使用者 test1 和密碼 test1pwd 登入抄本電腦,請將 hostAuthInfo 元素變更為如下:
          <hostAuthInfo rpcUser="test1" rpcUserPassword="test1pwd" />
        • 如果抄本主機已向群體控制器登錄,請將抄本的 hostAuthInfo useHostCredentials 設為 true,以繼承其主機的 RPC 認證。
          <hostAuthInfo useHostCredentials="true" />

        請參閱置換 Liberty 伺服器主機資訊,取得 hostAuthInfo 設定的相關資訊。

        replicaSet
        這是一份空格定界的清單,其中含有抄本集中各個 replicaHostsreplicaPortshost:port,但目前新增到抄本集中的群體控制器的值不包括在內。
        例如,
        original.host.com:10001 some.other.host.com:10003
        這個集至少必須有一個值已是現有抄本集的抄本。
      • 選用設定:
        這些設定是預設值,但可以變更。
        isInitialReplicaSet
        False
        replicaHost
        每個個別抄本的主機名稱
        replicaPort
        每個個別抄本的埠

        這個埠不是群體控制器的 http 或 https 埠,而是在抄本集的抄本之間用來通訊的唯一埠。

        repositoryDir
        用來保存儲存庫資料的目錄位置
      以下是您可能會新增到新抄本 server.xml 檔中的項目範例:
      <collectiveController replicaHost="localhost"
         replicaPort="10012"
         replicaSet="localhost:10010 localhost:10011"
         isInitialReplicaSet="false"/> 
      replicate 指令所列印的 XML 需要更新伺服器的安全配置,以及指定 collectiveRootKeys 金鑰儲存庫密碼。伺服器的安全配置應該與原始群體控制器的配置相同,而且 collectiveRootKeys 金鑰儲存庫密碼應該是用於原始群體控制器的 collectiveRootKeys 金鑰儲存庫密碼的密碼。如果是從 配置 Liberty 群體 中所建立的控制器來建立抄本,新控制器的配置應該包含下列內容:
      <quickStartSecurity userName="adminUser" userPassword="adminPassword" />
        <!-- collective root signers keystore -->
        <keyStore id="collectiveRootKeys" password="yourPassword"
          location="${server.config.dir}/resources/collective/rootKeys.jks" />
    5. 啟動新的群體控制器來啟動新抄本。
    6. 確認原始群體控制器已順利連接新抄本。在原始群體控制器和抄本的 messages.log 檔中,尋找 CWWKX6009I 訊息。
      提示: 對於會執行 replicateaddReplica 指令的 Script,在 replicate 指令執行之後,請多等待 10 秒,以確保在執行 addReplica 指令之前,原始群體控制器和抄本已連接。
    7. 在群體公用程式上呼叫 addReplica 作業來啟動新的抄本。 addReplica 集的引數必須是要新增的抄本之抄本端點(格式為 "replicaHost:replicaPort")。
      wlp/bin/collective addReplica localhost:10012 
        --host=host_of_running_controller
        --port=port_of_running_controller
        --user=user_for_running_controller
        --password=user_password
  2. 選擇性的: 必要的話,您可以修改起始抄本集的預設配置。這個步驟僅是建議,但非必要。

    當建立起始群體控制器時,會配置起始抄本集。 如果需要修改預設抄本配置,您可以變更 server.xml 檔中的下列內容:

    選用設定:這些值是預設值,但可以變更。
    replicaHost
    每個個別抄本的主機名稱
    replicaPort
    每個個別抄本的埠

    這個埠不是群體控制器的 http 或 https 埠,而是在抄本集的抄本之間用來通訊的唯一埠。

    repositoryDir
    用來保存儲存庫資料的目錄位置

範例:建立和啟動抄本集

這個範例說明如何建立抄本集,然後啟動它。抄本集必須至少有三個抄本,最好是位於不同主機上,以達高可用性。這個範例是將抄本置於相同主機上,因此您需要指派唯一埠號給這些抄本。如果抄本位於不同主機上,這些抄本可以使用相同的埠號。

  1. 建立抄本集。

    為了建立抄本集,您將增加群體控制器的數量,並將它們配置成可以彼此通訊。每一部新的群體控制器都稱為抄本,因為新增的群體控制器具有與原始控制器相同的安全配置,且凡是寫入至任何一部控制器的資訊都會自動抄寫到其他所有作用中的控制器。在配置之後,抄本集中的所有群體控制器可以執行與原始控制器相同的作業。

    1. 如果您沒有群體控制器,請建立一個。請見配置 Liberty 群體的步驟 1。
    2. 確定現有的群體控制器正在執行。對於名稱是 myController 的現有控制器,執行 status 指令:
      wlp/bin/server status myController
      如果群體控制器不在執行中,請使用 startrun 指令來啟動它:
      wlp/bin/server start myController
    3. 建立伺服器,來作為新的群體控制器。
      wlp/bin/server create myController2
    4. 將現有群體控制器的配置抄寫到新的群體控制器。新的群體控制器稱為抄本

      執行 replicate 指令,使其使用現有群體控制器的管理安全網域配置,並且為抄本設定新的金鑰儲存庫密碼。查看現有群體控制器的 server.xml 檔,找出 --host--port--user--password 參數的值。對於 --keystorePassword,請設定一值,以用於金鑰儲存庫,例如 myController2。如需這些必要參數和選用參數的相關資訊,請在指令行執行 collective help replicate

      wlp/bin/collective replicate myController2 --host=host_of_existing_controller --port=https_port_of_existing_controller --user=user_for_existing_controller --password=user_password --keystorePassword=password_for_new_controller  

      如果提示您接受憑證鏈,請輸入 y(是)。

      replicate 指令會將 XML 輸出寫入到主控台畫面。您可以將輸出複製到 server.xml 檔案。

      [8.5.5.2 或更新版本]如果要將指令的輸出寫入至檔案,而不是寫入到主控台畫面,請指定 --createConfigFile=output_file_path 參數。然後,新增 include 陳述式至 server.xml 檔案,以將輸出的檔案併入群體配置中。
      <include location=output_file_path />
    5. replicate 指令的 XML 輸出新增到抄本的 server.xml 檔,並視需要編輯參數值。
      • 確定 httpEndpoint 元素已設定抄本的 httpPorthttpsPort 值,且這些值在主機上是唯一的埠號。舉例來說,假設原始控制器的名稱是 myController,它和抄本都位於相同的本端主機上,且 myController 具有如下的 httpEndpoint 元素:
        <httpEndpoint id="defaultHttpEndpoint"
                      host="*"
                      httpPort="9080"
                      httpsPort="9443" />
        myController2 的值變更為:
        <httpEndpoint id="defaultHttpEndpoint"
                      host="*"
                      httpPort="9085"
                      httpsPort="9448" />
      • [8.5.5.4 或更新版本]設定 hostAuthInfo 的 RPC 認證。為抄本設定 RPC 認證的方式有兩種:
        • 設定 hostAuthInfo RPC 使用者和密碼值。將 rpcUser 設為抄本所在主機的作業系統登入使用者 ID,將 rpcUserPassword 設為該使用者 ID 的作業系統登入密碼。舉例來說,如果您使用使用者 test1 和密碼 test1pwd 登入抄本電腦,請將 hostAuthInfo 元素變更為如下:
          <hostAuthInfo rpcUser="test1" rpcUserPassword="test1pwd" />
        • 如果抄本主機已向群體控制器登錄,請將抄本的 hostAuthInfo useHostCredentials 設為 true,以繼承其主機的 RPC 認證。
          <hostAuthInfo useHostCredentials="true" />

        請參閱置換 Liberty 伺服器主機資訊,取得 hostAuthInfo 設定的相關資訊。

      • 確定 replicaPort 所設定的抄本埠號在抄本集中是唯一的,且 replicaSet 所設定的 host:port 值可識別抄本集。舉例來說,如果原始控制器的名稱是 myController,並且它和抄本都位於相同的本端主機上,請將 myController2 的值從 null
        <collectiveController replicaPort="null"
                              replicaSet="localhost:null"
                              isInitialReplicaSet="false" />
        變更為 10011(抄本埠)和 10010(抄本集埠):
        <collectiveController replicaPort="10011"
                              replicaSet="localhost:10010"
                              isInitialReplicaSet="false" />
      • 確定安全配置所設定的值,與原始控制器使用的值相同。例如,myControllermyController2 抄本都使用:
        <quickStartSecurity userName="adminUser" userPassword="adminPassword" />
      • 確定群體的主要簽章者金鑰儲存庫元素所設定的密碼,與原始控制器使用的相同。舉例來說,複製 myController server.xml 檔中的 collectiveRootKeys 金鑰儲存庫密碼,並貼到 myController2 抄本的 server.xml 檔中。這個範例顯示產生的密碼:
        <!-- collective root signers keystore -->
        <keyStore id="collectiveRootKeys" password="{xor}Lz4sLCgwLTs="
                  location="${server.config.dir}/resources/collective/rootKeys.jks"/>
    6. 啟動新的群體控制器來啟動新抄本。
      wlp/bin/server start myController2
    7. 驗證原始群體控制器可以與新抄本通訊。
      1. 在編輯器中開啟原始控制器的訊息日誌 $WLP_USER_DIR/servers/myController/logs/messages.log
      2. 尋找下列訊息,其中您環境中的 IP 位址可能不同:
        CWWKX6009I: 群體控制器已順利連接抄本 127.0.0.1:10011。現行作用中的抄本集是 [127.0.0.1:10010]。所配置的抄本集是 [127.0.0.1:10010]。所連接的待命抄本是 [127.0.0.1:10011]。
    8. 驗證新抄本可以與原始群體控制器通訊。
      1. 在編輯器中開啟抄本的訊息日誌 $WLP_USER_DIR/servers/myController2/logs/messages.log
      2. 尋找下列訊息,其中您環境中的 IP 位址可能不同:
        CWWKX6009I: 群體控制器已順利連接抄本 127.0.0.1:10010。現行作用中的抄本集是 []。所配置的抄本集是 []。所連接的待命抄本是 [127.0.0.1:10011, 127.0.0.1:10010]。
  2. 啟動新抄本。

    執行 addReplica 指令,使其使用群體控制器的管理安全網域配置,並且以 replicaHost:replicaPort 格式,指定您想啟動之抄本的端點。請查看群體控制器的 server.xml 檔,找出 --host--port--user--password 參數的值。查看抄本的 server.xml 檔,找出 replicaHost:replicaPort 的值。如需這些參數的相關資訊,請在指令行執行 collective help addReplica

    wlp/bin/collective addReplica replicaHost:replicaPort --host=host_of_existing_controller --port=port_of_existing_controller --user=user_for_existing_controller --password=user_password

    就本例來說,現有群體控制器和抄本位於相同主機 localhost,因此執行:

    wlp/bin/collective addReplica localhost:10011 --host=localhost --port=9443 --user=adminUser --password=adminPassword

    如果提示您接受憑證鏈,請輸入 y(是)。

  3. 針對新增的抄本,重複步驟 1 和 2。舉例來說,將第三個抄本新增至抄本集。將新抄本命名為 myController3,並指定 replicaPort="10012"。抄本集必須至少有三個抄本,以達高可用性。
    將第三個抄本新增至抄本集之後,您可以驗證原始群體控制器和新抄本是否已順利同步化。
    • 在原始控制器的訊息日誌中,尋找下列訊息。在訊息中,您環境中的 IP 位址可能不同:
      CWWKX6015I: 已收到「變更作用中群體控制器抄本集」要求,現在正在處理。現行作用中的抄本集是 {127.0.0.1:10010,127.0.0.1:10011}。所要求的新作用中抄本集是 {127.0.0.1:10010,127.0.0.1:10011,127.0.0.1:10012}。
      
      CWWKX6016I: 已順利變更作用中的群體控制器抄本集。現行作用中的抄本集是 {127.0.0.1:10010,127.0.0.1:10011,127.0.0.1:10012}。先前作用中的抄本集是 {127.0.0.1:10010,127.0.0.1:10011}。
      
      CWWKX6011I: 群體控制器已備妥,可接受要求。主導器是 127.0.0.1:10010。現行作用中的抄本集是 [127.0.0.1:10012, 127.0.0.1:10011, 127.0.0.1:10010]。所配置的抄本集是 [127.0.0.1:10010, 127.0.0.1:10011, 127.0.0.1:10012]。
      
      CWWKX6014I: 這個群體控制器抄本已完成將資料與其他抄本同步化。
    • 在所新增的抄本的訊息日誌中,尋找下列訊息。在訊息中,您環境中的 IP 位址可能不同:
      CWWKX6016I: 已順利變更作用中的群體控制器抄本集。現行作用中的抄本集是 {127.0.0.1:10010,127.0.0.1:10011,127.0.0.1:10012}。先前作用中的抄本集是 {127.0.0.1:10010,127.0.0.1:10011}。
      
      CWWKX6011I: 群體控制器已備妥,可接受要求。主導器是 127.0.0.1:10010。現行作用中的抄本集是 [127.0.0.1:10012, 127.0.0.1:10011, 127.0.0.1:10010]。所配置的抄本集是 [127.0.0.1:10010, 127.0.0.1:10011, 127.0.0.1:10012]。
      
      CWWKX8112I: 已順利將伺服器的主機資訊發佈到群體儲存庫。
      CWWKX8114I: 已順利將伺服器的路徑發佈到群體儲存庫。
      CWWKX8116I: 已順利將伺服器的「已啟動」狀態發佈到群體儲存庫。

指示主題類型的圖示 作業主題

資訊中心條款 | 意見


「時間戳記」圖示 前次更新: 2015 年 6 月 22 日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=tagt_wlp_configure_replicas
檔名:tagt_wlp_configure_replicas.html