Liberty 集合のレプリカ・セットの構成

集合のレプリカ・セットを構成できます。レプリカ・セットにより、Liberty 管理ドメインの高可用性管理機能が提供されます。

For distributed platformsFor IBM i platforms

始める前に

collectiveController-1.0 フィーチャーとその機能は、WebSphere® Application Server Network Deployment Liberty および WebSphere Application Server for z/OS® Liberty でのみ提供されています。このフィーチャーは、WebSphere Application Server LibertyWebSphere Application Server Liberty Core では使用できません。WebSphere Application Server Network Deployment Liberty のインストール済み環境がある場合は、その collectiveController-1.0 フィーチャーを使用して、WebSphere Application Server LibertyWebSphere Application Server Liberty Core のインストール済み環境の集合メンバーを操作することができます。集合メンバーは、どの WebSphere Application Server Liberty リリースのものでも構いません。

このタスクについて

レプリカ・セットは、連携して動作するように構成された集合コントローラーのセットです。各レプリカには、セット内の他のレプリカが処理したすべてのリポジトリーの更新が含まれています。そのため、メンバーまたはクライアントは、特定の集合と対話するたびにその集合コントローラーに接続する必要はありません。レプリカ・セット内で構成されたいずれの集合コントローラーも、同じデータを提供できます。

集合コントローラーの作成および構成に関する詳細な説明については、Liberty 集合の構成を参照してください。

以下の手順を実行して、集合レプリカ・セットを構成できます。

  1. 既存のレプリカ・セットにレプリカを追加します
  2. 初期のレプリカ・セットのデフォルト構成を変更します

同一ホスト上の 3 つの集合コントローラーから構成されるレプリカ・セットの作成例については、 『例: レプリカ・セットの作成とアクティブ化』を参照してください。

レプリカ・セットには、奇数個のレプリカが必要です。

手順

  1. 既存のレプリカ・セットにレプリカを追加します。

    レプリカ・セットの存続期間中、例えば容量の増加などの目的で、既存のセットに 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=userName_for_running_controller 
         --password=userPassword_for_running_controller 
         --keystorePassword=keystore_password_for_new_controller

      [18.0.0.1 and later]必要なオプションの数を減らすには、--user--password--host、および --port の代わりに、--controller オプションを使用します。

      wlp/bin/collective replicate MyNewController 
      --controller=userName_for_running_controller:userPassword_for_running_controller@host_of_running_controller:https_port_of_running_controller 
      --keystorePassword=keystore_password_for_new_controller

      replicate コマンドは、XML 出力をコンソール画面に書き込みます。この出力を server.xml ファイルにコピーします。

      コマンドの出力をコンソール画面ではなくファイルに書き込むには、--createConfigFile=output_file_path パラメーターを指定します。次に、以下のように、include ステートメントを server.xml ファイルに追加して、出力されたファイルを集合構成に含めます。
      <include location=output_file_path />
    4. replicate コマンドの出力を使用して、新規レプリカの server.xml ファイルを構成します。
      replicate コマンドの XML 出力を server.xml ファイルにコピーします。以下のようにして、レプリカ構成を変更することができます。
      • 必要な設定:
        この値は、明示的に設定する必要があります。replicate コマンドによって表示される XML にこの構成が含まれていて、この設定の場合、そのまま使用できます。
        hostAuthInfo
        リモート・クライアントでサーバーを始動するために必要なプロパティーを含むホスト認証情報。 この設定が必要なのは、新しいレプリカのホストで SSH が有効になっていない場合だけです。 通常、Linux ホストでは SSH が有効になっていて、Windows ホストでは SSH が有効になっていません。 そのため、この設定は、Windows ホストでのみ必要であることがあります。 レプリカの RPC クレデンシャルは、以下の 2 つのいずれかの方法で設定します。
        • rpcUser に、レプリカが存在するホストのオペレーティング・システム・ログイン・ユーザー ID を設定し、 rpcUserPassword に、ユーザー ID のオペレーティング・システム・ログイン・パスワードを設定します。 例えば、ユーザー test1、パスワード test1pwd でレプリカ・コンピューターにログインする場合は、 hostAuthInfo エレメントを次のように変更します。
          <hostAuthInfo rpcUser="test1" rpcUserPassword="test1pwd" />
        • レプリカ・ホストが集合コントローラーに登録されている場合は、レプリカがそのホストから RPC クレデンシャルを継承するように、 hostAuthInfouseHostCredentialstrue を設定します。
          <hostAuthInfo useHostCredentials="true" />

        hostAuthInfo の設定については、Liberty サーバー・ホスト情報のオーバーライドを参照してください。

        replicaSet
        レプリカ・セット内の replicaHosts および replicaPorts のそれぞれの host:port を含む、スペース区切りのリスト (セットに追加中の集合コントローラーの値を除く)
        以下に例を示します。
        original.host.com:10001 some.other.host.com:10003
        このセット内の値のうち少なくとも 1 つは、既存のレプリカ・セットのレプリカである必要があります。
      • オプションの設定:
        これらの設定はデフォルトですが、変更できます。
        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 を探します。
      ヒント: replicate コマンドと addReplica コマンドを実行するスクリプトでは、 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

      [18.0.0.1 and later]必要なオプションの数を減らすには、--user--password--host、および --port の代わりに、--controller オプションを使用します。

      wlp/bin/collective addReplica localhost:10012 --controller=user_for_running_controller:user_password@host_of_running_controller:port_of_running_controller
  2. オプション: 必要に応じて、初期のレプリカ・セットのデフォルト構成を変更することができます。このステップは推奨されていますが、必須ではありません。

    初期のレプリカ・セットの構成は、初期の集合コントローラーの作成時に行われます。デフォルトのレプリカ構成を変更する必要がある場合には、次のプロパティーを server.xml ファイルで変更することができます。

    オプション設定: これらの値はデフォルトですが、変更することができます。
    replicaHost
    各レプリカのホスト名
    replicaPort
    各レプリカのポート

    このポートは集合コントローラーの http ポートまたは https ポートとは異なりますが、レプリカ・セットのレプリカ間での通信に使用される固有のポートです。

    repositoryDir
    リポジトリー・データを保管するために使用するディレクトリー・ロケーション

例: レプリカ・セットの作成とアクティブ化

以下の例では、レプリカ・セットを作成してアクティブ化する方法について説明します。 高可用性のために、レプリカ・セットには少なくとも 3 つのレプリカが必要で、それらが異なるホスト上にあることが推奨されます。 この例では、同一ホスト上にレプリカがあり、このため、レプリカに固有のポート番号を割り当てる必要があります。 異なるホスト上にレプリカがある場合は、同一ポート番号を使用できます。

  1. レプリカ・セットを作成します。

    レプリカ・セットを作成するには、集合コントローラーの数を増やし、それらが相互に通信できるように構成します。 新規の各集合コントローラーはレプリカ と呼ばれます。 これは、追加された集合コントローラーのセキュリティー構成は元のコントローラーと同じになり、 いずれか 1 つのコントローラーに書き込まれた情報はすべて、他のアクティブなすべてのコントローラーに自動的に複製されるためです。 構成後、レプリカ・セット内のすべての集合コントローラーは、元のコントローラーと同じ操作を実行することができます。

    1. 集合コントローラーがない場合は、作成します。 Liberty 集合の構成のステップ 1 を参照してください。
    2. 既存の集合コントローラーが稼働していることを確認します。 myController という名前の既存コントローラーであれば、次の status コマンドを実行します。
      wlp/bin/server status myController
      集合コントローラーが稼働していない場合は、 start コマンドまたは run コマンドでそれを開始します。
      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=userName_for_existing_controller --password=userPassword_for_existing_controller --keystorePassword=keystore_password_for_new_controller

      [18.0.0.1 and later]必要なオプションの数を減らすには、--user--password--host、および --port の代わりに、--controller オプションを使用します。

      wlp/bin/collective replicate myController2 --controller=userName_for_existing_controller:userPassword_for_existing_controller@host_of_existing_controller:https_port_of_existing_controller --keystorePassword=keystore_password_for_new_controller

      証明書チェーンの受け入れを要求するプロンプトが出されたら、y (yes) を入力します。

      replicate コマンドは、XML 出力をコンソール画面に書き込みます。この出力を server.xml ファイルにコピーします。

      コマンドの出力をコンソール画面ではなくファイルに書き込むには、--createConfigFile=output_file_path パラメーターを指定します。次に、以下のように、include ステートメントを server.xml ファイルに追加して、出力されたファイルを集合構成に含めます。
      <include location=output_file_path />
    5. replicate コマンドの XML 出力をレプリカの server.xml ファイルに追加し、 必要に応じてパラメーター値を編集します。
      • httpEndpoint エレメントでは、必ず、ホスト上の固有のポート番号である、レプリカの httpPort 値と httpsPort 値を設定します。 例えば、myController という名前の元のコントローラーとレプリカが同じ localhost 上にあって、myControllerhttpEndpoint エレメントが以下であるとします。
        <httpEndpoint id="defaultHttpEndpoint"
                      host="*"
                      httpPort="9080"
                      httpsPort="9443" />
        myController2 の値を以下のように変更します。
        <httpEndpoint id="defaultHttpEndpoint"
                      host="*"
                      httpPort="9085"
                      httpsPort="9448" />
      • hostAuthInfo の RPC クレデンシャルを設定します。 レプリカの RPC クレデンシャルは、以下の 2 つのいずれかの方法で設定できます。
        • hostAuthInfo の RPC ユーザーおよびパスワードの値を設定します。 rpcUser に、レプリカが存在するホストのオペレーティング・システム・ログイン・ユーザー ID を設定し、 rpcUserPassword に、ユーザー ID のオペレーティング・システム・ログイン・パスワードを設定します。 例えば、ユーザー test1、パスワード test1pwd でレプリカ・コンピューターにログインする場合は、 hostAuthInfo エレメントを次のように変更します。
          <hostAuthInfo rpcUser="test1" rpcUserPassword="test1pwd" />
        • レプリカ・ホストが集合コントローラーに登録されている場合は、レプリカがそのホストから RPC クレデンシャルを継承するように、 hostAuthInfouseHostCredentialstrue を設定します。
          <hostAuthInfo useHostCredentials="true" />

        hostAuthInfo の設定については、Liberty サーバー・ホスト情報のオーバーライドを参照してください。

      • 必ず、replicaPort ではレプリカ・セット内で固有のレプリカ・ポート番号を設定し、 replicaSet ではレプリカ・セットを識別する host:port 値を設定します。 例えば、myController という名前の元のコントローラーとレプリカが同じ localhost 上にあるとします。myController2 の値は、以下のように null になっています。
        <collectiveController replicaPort="null"
                              replicaSet="localhost:null"
                              isInitialReplicaSet="false" />
        レプリカ・ポートを 10011 に、 レプリカ・セット・ポートを 10010 に変更します。
        <collectiveController replicaPort="10011"
                              replicaSet="localhost:10010"
                              isInitialReplicaSet="false" />
      • セキュリティー構成では、必ず、元のコントローラーが使用したものと同じ値を設定してください。 例えば、myController とレプリカ myController2 の両方が以下を使用します。
        <quickStartSecurity userName="adminUser" userPassword="adminPassword" />
      • 集合ルート署名者鍵ストア・エレメントでは、必ず、元のコントローラーが使用していたものと同じパスワードを設定します。 例えば、collectiveRootKeys の鍵ストア・パスワードを myControllerserver.xml ファイルからコピーして、 レプリカ myController2server.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] です。
        また、コントローラーが現時点では非アクティブであるため、以下のメッセージが表示されます。このメッセージは無視しても問題ありません。
        CWWKX6008E: 集合コントローラーは、おそらくレプリカ・セットの大多数の損失が原因か、あるいは通信障害が原因で使用できません。現在アクティブなレプリカ・セットは [127.0.0.1:10010] です。構成されているレプリカ・セットは [127.0.0.1:10010] です。接続されているスタンバイ・レプリカは [127.0.0.1:10011] です。
  2. 新しいレプリカをアクティブ化します。

    集合コントローラーの管理セキュリティー・ドメイン構成を使用する、 アクティブ化するレプリカのエンドポイントが replicaHost:replicaPort の形式で指定された addReplica コマンドを実行します。 集合コントローラーの 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

    [18.0.0.1 and later]必要なオプションの数を減らすには、--user--password--host、および --port の代わりに、--controller オプションを使用します。

    wlp/bin/collective addReplica replicaHost:replicaPort --controller=user_for_existing_controller:user_password@host_of_existing_controller:port_of_existing_controller

    この例では、 同じホスト (localhost) に既存の集合コントローラーとレプリカがあるので、以下のコマンドを実行します。

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

    [18.0.0.1 and later]必要なオプションの数を減らすには、--user--password--host、および --port の代わりに、--controller オプションを使用します。

    wlp/bin/collective addReplica localhost:10011 --controller=adminUser:adminPassword@localhost:9443

    証明書チェーンの受け入れを要求するプロンプトが出されたら、y (yes) を入力します。

  3. 追加のレプリカについて、ステップ 1 および 2 を繰り返します。 例えば、3 つ目のレプリカをレプリカ・セットに追加します。 新しいレプリカは、myController3 という名前にして、replicaPort="10012" を指定します。 高可用性のために、レプリカ・セットには少なくとも 3 つのレプリカが必要です。
    レプリカ・セットに 3 つ目のレプリカを追加したら、元の集合コントローラーと新しいレプリカが正常に同期したことを確認できます。
    • 元のコントローラーのメッセージ・ログで以下のメッセージを探します。 ご使用の環境では、メッセージ内の IP アドレスが異なる場合があります。
      CWWKX6015I: アクティブな collective controller のレプリカ・セットの変更要求を受信し、現在処理中です。現在アクティブなレプリカ・セットは {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: アクティブな collective controller のレプリカ・セットが正常に変更されました。現在アクティブなレプリカ・セットは {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: collective controller は作動可能で、要求を受け入れることができます。リーダーは 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: この collective controller のレプリカが、他のレプリカとのデータの同期を終了しました。
    • 追加されたレプリカのメッセージ・ログで以下のメッセージを探します。 ご使用の環境では、メッセージ内の IP アドレスが異なる場合があります。
      CWWKX6016I: アクティブな collective controller のレプリカ・セットが正常に変更されました。現在アクティブなレプリカ・セットは {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: collective controller は作動可能で、要求を受け入れることができます。リーダーは 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: サーバーの開始済み状態が正常に集合リポジトリーにパブリッシュされました。

トピックのタイプを示すアイコン タスク・トピック

ファイル名: tagt_wlp_configure_replicas.html