Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

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

mod_cluster サブシステムは、管理コンソールおよび管理 CLI を使用して設定できます。このトピックでは、管理コンソールに表示されるさまざまな設定オプションについて説明します。各オプションの管理 CLI コマンドの例が提供されます。
注記
mod_cluster 設定ページは、ha プロファイルと full- ha プロファイルでのみ表示されます。管理対象ドメインの場合、これらのプロファイルは ha および full-ha で、スタンドアロンサーバーの場合は standalone-ha および standalone-full-ha になります。

管理コンソール

Configuration タブをクリックします。管理対象ドメインを設定する場合は、Profile ドロップダウンリストから正しいプロファイルを選択します。Subsystems メニューを展開し、Web メニューを展開し、mod_cluster を選択します。

表17.8 mod_cluster アドバタイズの設定オプション

オプション 説明 CLI コマンド
負荷分散グループ (Load Balancing Group)
null でない場合、要求はロードバランサーの特定の負荷分散グループに送信されます。ロードバランシンググループを使用しない場合は、空欄のままにします。これは、デフォルトでは未設定です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=load-balancing-group,value=myGroup)
バランサー (Balancer)
この属性は、Apache HTTP Server の mod_cluster により自動的に設定される mod_proxy バランサーを指定します。デフォルトは none です。この場合、mycluster のデフォルトが使用されます(mod_proxy 用語で表される場合はbalancer://mycluster/ )。このデフォルト値は、ManagerBalancerName ディレクティブで Apache HTTP Server 側で設定されます。
JBoss EAP 6 のワーカーインスタンスで 2 つの異なる balancer 属性値を使用する場合、Apache HTTP Server で mod_cluster によって自動的に作成される 2 つの異なる mod_proxy バランサーがあります。
/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)

表17.9 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)

表17.10 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")

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

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

SSL 通信の設定 mod_cluster

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

表17.12 mod_cluster SSL 設定オプション

オプション 説明 CLI コマンド
キーエイリアス (Key Alias)
証明書が作成されたときに選択されたキーエイリアス。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=key-alias,value=jboss)
パスワード
このパスワードは、certificate-key-file(Key File)と ca-certificate-file(Cert File)の両方のキーストアパスワードで、Cert File 内の Key Alias で指定するキー/証明書エントリーの両方です。
注記
@CA-certificate-password はトラストストアのパスワードであり、指定がない場合は値は undefined のままになります。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=password,value=changeit)
CA 証明書ファイル/トラストストア
Web サーバー証明書の検証に使用されるトラストストア。
/subsystem=modcluster/mod-cluster-config=configuration/ssl=configuration/:write-attribute(name=ca-certificate-file,value=${user.home}/jboss.crt)
キーストア (Key Store)
このインスタンスを識別する証明書および秘密鍵を保持するキーストア。
/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)
失効 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 サービスが通信するさまざまなタイプのサービスに対して、さまざまなタイムアウト動作を制御します。

表17.13 mod_cluster ネットワーク設定オプション

オプション 説明 CLI コマンド
ノードタイムアウト (Node Timeout)
ワーカーへのプロキシー接続のタイムアウト (秒単位)。mod_cluster はこの期間バックエンド応答を待ち、その経過後にエラーを返します。node-timeout 属性が未定義の場合は、httpd ProxyTimeout ディレクティブが使用されます。ProxyTimeout が定義されていない場合は、httpd Timeout ディレクティブが使用されます。デフォルトは 300 秒です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=node-timeout,value=-1)
ソケットタイムアウト (Socket Timeout)
タイムアウトの前およびプロキシーをエラーのように警告する前に、httpd プロキシーから MCMP コマンドへの応答を待つ秒数。
/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 です。
/subsystem=modcluster/mod-cluster-config=configuration/:write-attribute(name=ttl,value=-1)

mod_cluster Load Provider 設定オプション

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

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

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

オプション 説明 CLI コマンド
衰退 (Decay)
履歴メトリックの重要性が衰退すべき要因。
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/:write-attribute(name=decay,value=2)
履歴
負荷を決定するときに考慮する、負荷メトリックの履歴記録数。
/subsystem=modcluster/mod-cluster-config=configuration/dynamic-load-provider=configuration/:write-attribute(name=history,value=9)
負荷メトリック (Load Metric)
JBoss EAP 6 の動的ロードプロバイダーに含まれるデフォルトの負荷メトリックはビジー状態であり、リクエストに対応するスレッドプールのスレッド数からワーカーの負荷を計算します。実際の負荷を分割するこのメトリックの容量を設定できます(calculated_load / capacity)。動的ロードプロバイダー内に複数の負荷メトリクスを設定できます。
/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
ヒープ 負荷メトリックは、ヒープ使用率を使用して次のワークロードを取得するワーカーを決定します。
セッション
セッション 負荷メトリックは、アクティブなセッションの数をメトリックとして使用します。
requests
要求 負荷メトリックは、クライアント要求の数を使用して次のワークロードを受け取るワーカーを決定します。たとえば、容量 1000 は、1000 要求/秒がフルロードであると見なされます。
send-traffic
send-traffic 負荷メトリックは、ワーカーからクライアントに送信されるトラフィックの量を使用します。たとえば、デフォルトの容量が 512 の場合は、平均送信トラフィックが 512 KB/秒以上である場合に、ノードがフルロードであると見なされます。
receive-traffic
receive-traffic 負荷メトリックは、クライアントからワーカーに送信されるトラフィックの量を使用します。たとえば、デフォルトの容量が 1024 の場合は、平均受信トラフィックが 1024 KB/秒以上である場合にワーカーがフルロードであると見なされます。
busyness
このメトリックは、要求の処理で負荷が大きいスレッドプールからのスレッドの量を表します。

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

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

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

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

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

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

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

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