19.5.2. mod_cluster サブシステムの設定

管理コンソールでは、mod_cluster オプションを Web サブシステム設定エリアで使用できます。Configuration タブをクリックします。監理対象ドメインを使用する場合は、設定するプロファイルを左上にある Profile 選択ボックスから選択します。デフォルトでは、ha および full-ha プロファイルで mod_cluster サブシステムが有効になっています。スタンドアロンサーバーを使用する場合は、standalone-ha または standalone-full-ha プロファイルを使用してサーバーを起動する必要があります。 Web メニューを展開し、mod_cluster を選択します。オプションの説明は下表を参照してください。最初に設定全体が示され、次にセッション、Web コンテキスト、プロキシ、SSL、およびネットワーキングの設定が示されます。これらのタブは mod_cluster 設定画面内に表示されます。

注記

mod_cluster 設定ページは、ha プロファイルと full-ha プロファイルに対してのみ表示可能です。管理対象ドメインの場合、これらのプロファイルは hafull-ha であり、スタンドアロンサーバーの場合は standalone-hastandalone-full-ha です。

表19.4 mod_cluster 設定オプション

オプション説明CLI コマンド
負荷分散グループ (Load Balancing Group)
これが null でない場合、要求はロードバランサーの特定の負荷分散グループに送信されます。負荷分散グループを使用しない場合は、これを空白のままにしてください。これはデフォルトでは設定されません。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=load-balancing-group,value=myGroup)
バランサー (Balancer)
バランサーの名前。httpd プロキシの設定と一致する必要があります。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=balancer,value=myBalancer)
ソケットのアドバタイズ (Advertise Socket)
クラスターのアドバタイズに使用するソケットバインディングの名前です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=advertise-socket,value=modcluster)
セキュリティーキーのアドバタイズ (Advertise Security Key)
アドバタイズのセキュリティーキーが含まれる文字列。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=advertise-security-key,value=myKey)
アドバタイズ (Advertise)
アドバタイズが有効かどうかを指定します。デフォルト値は true です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=advertise,value=true)

表19.5 mod_cluster セッション設定オプション

オプション説明CLI コマンド
スティッキーセッション (Sticky Session)
要求にスティッキーセッションを使用するかどうかを指定します。つまり、クライアントが特定のクラスターノードに接続すると、クラスターノードが利用不可能でない限り、それ以降の通信は同じノードにルーティングされます。デフォルト値および推奨される設定値は true です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=sticky-session,value=true)
スティッキーセッションの強制 (Sticky Session Force)
true を設定すると、最初のノードが利用不可能になった場合に要求は新しいクラスターノードにリダイレクトされず、失敗します。デフォルト値は false です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=sticky-session-force,value=false)
スティッキーセッションの削除 (Sticky Session Remove)
フェイルオーバー時にセッション情報を削除します。デフォルト値は false です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=sticky-session-remove,value=false)

表19.6 mod_cluster Web コンテキスト設定オプション

オプション説明CLI コマンド
コンテキストの自動有効化 (Auto Enable Contexts)
デフォルトで mod_cluster に新しいコンテンツを追加するかどうかを指定します。このデフォルト値は true です。デフォルト値を変更し、コンテキストを手動で有効にする必要がある場合は、Web アプリケーションで enable() MBean メソッドまたは mod_cluster マネージャー (httpd の設定で指定された名前付き仮想ホストまたはポートの httpd プロキシで実行される Web アプリケーション) を使用してコンテキストを有効にできます。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=auto-enable-contexts,value=true)
除外されたコンテキスト (Excluded Contexts)
mod_cluster が無視する必要がある、コンテキストのカンマ区切りリスト。ホストが指定されない場合、ホストは localhost と見なされます。ROOT は Web アプリケーションのルートコンテキストを示します。デフォルト値は ROOT,invoker,jbossws,juddi,console です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=excluded-contexts,value="ROOT,invoker,jbossws,juddi,console")

表19.7 mod_cluster プロキシー設定オプション

オプション説明CLI コマンド
プロキシ URL (Proxy URL)
定義された場合、この値は MCMP コマンドの URL の前に付加されます。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=proxy-url,value=myhost)
プロキシリスト (Proxy List)
httpd プロキシアドレスのカンマ区切りリスト (hostname:port 形式)。これは、mod_cluster プロセスが最初に通信しようとするリストを示します。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=proxy-list,value="127.0.0.1,127.0.0.2")
mod_cluster に対する SSL 通信の設定

デフォルトでは、mod_cluster 通信は暗号化されていない HTTP リンクを介して行われます。コネクタースキームを HTTPS (表19.5「mod_cluster セッション設定オプション」を参照) に設定する場合、以下の設定では、mod_cluster に、接続を暗号化する情報を見つける場所が通知されます。

表19.8 mod_cluster SSL 設定オプション

オプション説明CLI コマンド
ssl
SSL を有効にするかどうか。デフォルトは false です。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ssl,value=true)
キーエイリアス (Key Alias)
証明書が作成されたときに選択されたキーエイリアス。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-alias,value=jboss)
キーストア (Key Store)
クライアント証明書が含まれるキーストアの場所。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-store,value=System.getProperty("user.home") + "/.keystore")
キーストアタイプ (Key Store Type)
キーストアのタイプ
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-store-type,value=JKS)
キーストアプロバイダー (Key Store Provider)
キーストアプロバイダー。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-store-provider,value=IBMJCE)
パスワード
証明書が作成された時に選択されたパスワード。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=password,value=changeit)
トラストアルゴリズム (Trust Algorithm)
トラストマネージャーファクトリーのアルゴリズム。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=trust-algorithm,value=PKIX)
証明書ファイル (Cert File)
証明書ファイルの場所。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ca-certificate-file,value=${user.home}/jboss.crt)
CRL ファイル (CRL File)
証明書失効リスト (CRL) ファイル。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ca-crl-file,value=${user.home}/jboss.crl)
証明書の最大長 (Max Certificate Length)
トラストストアの保持される証明書の最大長。デフォルトは 5 です。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=trust-max-cert-length,value=5)
キーファイル (Key File)
証明書のキーファイルの場所。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=certificate-key-file,value=${user.home}/.keystore)
暗号スイート (Cipher Suite)
許可された暗号スイート。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=cipher-suite,value=ALL)
証明書エンコーディングアルゴリズム (Certificate Encoding Algorithms)
キーマネージャーファクトリーのアルゴリズム。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=encoding-algorithms,value=ALL)
失効 URL (Revocation URL)
証明局失効リストの URL。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ca-revocation-url,value=jboss.crl)
プロトコル
有効 な SSL プロトコル。
また、プロトコルの組み合わせをコンマで区切って指定することもできます (例: TLSv1, TLSv1.1,TLSv1.2)。

警告

Red Hat は、影響するすべてのパッケージで TLSv1.1 または TLSv1.2 を利用するために SSL を明示的に無効化することを推奨しています。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=protocol,value="TLSv1, TLSv1.1,TLSv1.2")
mod_cluster ネットワーキングオプションの設定

利用可能な mod_cluster ネットワーキングオプションは、mod_cluster サービスが通信する異なるタイプのサービスのさまざまなタイムアウト動作を制御します。

表19.9 mod_cluster ネットワーキング設定オプション

オプション説明CLI コマンド
ノードタイムアウト (Node Timeout)
ノードに対するプロキシ接続のタイムアウト (秒単位)。これは、mod_cluster がバックエンド応答を待機する時間です。この時間が経過するとエラーが返されます。これはワーカー mod_proxy ドキュメンテーションのタイムアウトに対応します。値が -1 の場合は、タイムアウトがないことを示します。mod_cluster は要求を転送する前に cping/cpong を常に使用し、mod_cluster により使用される connectiontimeout 値は ping 値であることに注意してください。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=node-timeout,value=-1)
ソケットタイムアウト (Socket Timeout)
MCMP コマンドに対する httpd プロキシからの応答を待機する時間 (ミリ秒単位)。この時間が経過すると、タイムアウトになり、プロキシでエラーが発生していると示されます。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=socket-timeout,value=20)
停止コンテキストタイムアウト (Stop Context Timeout)
コンテキストがクリーンにシャットアウトされるまでの、stopContextTimeoutUnit で指定された単位の時間 (配布可能なコンテキストに対する保留中の要求の完了、または配布可能でないコンテキストに対するアクティブなセッションの破棄/期限切れ)。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=stop-context-timeout,value=10)
セッション排出ストラテジ (Session Draining Strategy)
Web アプリケーションをアンデプロイする前にセッションを排出 (drain) するかどうか。
DEFAULT
web アプリケーションが分散可能でない場合のみ、web アプリケーションのアンデプロイ前にセッションをドレインします。
ALWAYS
web アプリケーションが分散可能であっても、web アプリケーションのアンデプロイ前に常にセッションをドレインします。
NEVER
Web アプリケーションをアンデプロイする前にセッションを排出 (drain) しません (配布不可能な Web アプリケーションを含む)。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=session-draining-strategy,value=DEFAULT)
最大試行回数 (Max Attempts)
httpd プロキシが該当する要求を送信しようとする回数。最小値は、1 であり、試行回数は 1 回だけです。mod_proxy のデフォルト値も 1 であり、再試行は行われません。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=max-attempts,value=1)
パケットのフラッシュ (Flush Packets)
Web サーバーへのパケットのフラッシュを有効にするかどうかを指定します。デフォルト値は false です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=flush-packets,value=false)
フラッシュの待機 (Flush Wait)
Web サーバーにパケットをフラッシュするまでの時間 (秒単位)。デフォルト値は -1 です。値が -1 の場合は、パケットをフラッシュするまで永遠に待機します。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=flush-wait,value=-1)
Ping
ping に対するクラスターノードからの応答を待つ時間 (秒数単位)。デフォルト値は 10 秒です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=ping,value=10)
SMAX
ソフトリミットのアイドル接続最大数 (ワーカー mod_proxy ドキュメントの smax と同じ)。httpd スレッド設定により最大値が異なり、ThreadsPerChild または 1 になります。
profile=full-ha/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=smax,value=ThreadsPerChild)
TTL
smax より上のアイドル接続の残存時間 (秒数単位)。デフォルト値は 60 です。
nodeTimeout が定義されていない場合は、ProxyTimeout ディレクティブの Proxy が使用されます。ProxyTimeout が定義されていない場合は、サーバータイムアウト Timeout が使用されます。このデフォルト値は 300 秒です。nodeTimeoutProxyTimeout、および Timeout はソケットレベルで設定されます。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=ttl,value=-1)
ノードタイムアウト (Node Timeout)
外部 Web サーバーの利用可能なワーカープロセスが要求を処理するまで待機する時間 (秒数単位)。デフォルト値は -1 で、mod_cluster は httpd ワーカーが要求を処理するまで永遠に待機します。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=node-timeout,value=-1)
mod_cluster ロードプロバイダー設定オプション

以下の mod_cluster 設定オプションは管理コンソールで利用できません。管理 CLI を使用した場合のみ設定できます。

動的なロードプロバイダーが存在しない場合は、簡単なロードプロバイダーが使用されます。これは、各クラスターメンバーに負荷係数 1 を割り当て、負荷分散アルゴリズムを適用せずにワークを均等に分散します。これを追加するには、以下の管理 CLI コマンドを使用します。
/subsystem=modcluster/mod-cluster-config=configuration/simple-load-provider:add
次のリクエストを受信するクラスターノードを決定するためにさまざまなアルゴリズムの組み合わせを使用するよう動的ロードプロバイダーを設定できます。ロードプロバイダーを作成して環境に適した設定を行い、CLI を使用して複数の負荷メトリックを追加し、同時に複数の負荷メトリックをアクティブにすることができます。デフォルトの動的ロードプロバイダーは、負荷メトリックの決定に busyness を使用します。以下に、動的ロードプロバイダーのオプションや可能な負荷メトリックを示します。

表19.10 mod_cluster 動的ロードプロバイダーオプション

オプション説明CLI コマンド
衰退 (Decay)
履歴メトリックの重要性が衰退すべき要因。
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/:write-attribute(name=decay,value=2)
履歴 (History)
負荷を決定するときに考慮する、負荷メトリックの履歴記録数。
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/:write-attribute(name=history,value=9)
負荷メトリック (Load Metric)
JBoss EAP 6 の動的ロードプロバイダーに含まれるデフォルトの負荷メトリックは busyness で、リクエストに対応するスレッドプールのスレッド数からワーカーノードの負荷を計算します。このメトリックの容量を設定できます (実際の負荷をこの容量で割ります: 計算された負荷/容量)。動的ロードプロバイダー内に複数の負荷メトリックを設定できます。
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=busyness/:write-attribute(name=capacity,value=1.0)
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=busyness/:write-attribute(name=type,value=busyness)
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=busyness/:write-attribute(name=weight,value=1)

負荷メトリックアルゴリズム

cpu
cpu 負荷メトリックは、CPU 負荷の平均を使用して次のワークロードを取得するクラスターノードを決定します。
mem
mem 負荷メトリックはネイティブメモリーの空き容量を負荷係数として使用します。このメトリックの使用は推奨されません。これは、バッファーとキャッシュを含む値が提供され、メモリー管理が優れたシステムでは値が常に非常に小さくなるためです。
heap
heap 負荷メトリックは、ヒープ使用率を使用して次のワークロードを取得するクラスターを決定します。
sessions
session 負荷メトリックは、アクティブなセッションの数をメトリックとして使用します。
requests
requests 負荷メトリックは、クライアント要求の数を使用して次のワークロードを取得するクラスターノードを決定します。たとえば、容量 1000 の場合、 1000 要求数/秒はフルロードと見なされます。
send-traffic
send-traffic 負荷メトリックは、ワーカーノードからクライアントに送信されるトラフィックの量を使用します。たとえば、デフォルト容量が 512 の場合は、平均送信トラフィックが 512 KB/秒以上のとき、ノードがフルロードであると見なされます。
receive-traffic
receive-traffic 負荷メトリックは、クライアントからワーカーノードに送信されるトラフィックの量を使用します。たとえば、デフォルト容量が 1024 の場合は、平均受信トラフィックが 1024 KB/秒以上のとき、ノードがフルロードであると見なされます。
busyness
このメトリックは、要求の処理で負荷が大きいスレッドプールからのスレッドの量を表します。

例19.1 負荷メトリックの追加

負荷メトリックを追加するには、add-metric コマンドを使用します。
/subsystem=modcluster/mod-cluster-config=configuration/:add-metric(type=sessions)

例19.2 既存メトリックの値設定

既存メトリックの値を設定するには、write-attribute コマンドを使用します。
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=cpu/:write-attribute(name="weight",value="3")

例19.3 既存メトリックの値変更

既存メトリックの値を変更するには、write-attribute コマンドを使用します。
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/load-metric=cpu/:write-attribute(name="type",value="busyness")

例19.4 既存メトリックの削除

既存メトリックを削除するには remove-metric コマンドを使用します。
/subsystem=modcluster/mod-cluster-config=configuration/:remove-metric(type=sessions)