mod_cluster

                          Takayoshi Kimura

Senior Software Maintenance Engineer, JBoss
                      Global Support Service
                                    Red Hat
mod_cluster とは

●   インテリジェントロードバランサ
    –   バックエンドサーバからフロントエンドプロキシ
        へのフィードバック機能のあるロードバランサ
    –   あとで詳しく
●   ふつうのロードバランサ
    –   ラウンドロビン、ランダムロビン
    –   プロキシ側で見える情報のみで振り分け
        ●   リクエスト転送数の多いものとかリクエスト転送トラ
             フィック量の多いものとか
        ●   振り分けている HTTP 以外の情報は基本的になし
http://oddthesis.org/posts/2008-12-jboss-and-mod_cluster
動作要件
●   フロントエンドプロキシ
    –   Apache HTTPD 2.2.8+
         ●   mod_proxy と mod_proxy_ajp に依存
●   バックエンド
    –   JBoss AS
    –   Tomcat
    –   JBoss Web
機能
●   自動構成
    –   ノードの追加削除を検出し自動設定
●   カスタマイズ自由なサーバサイドロードファク
    タ算出
    –   フロントエンド ( プロキシ ) 側の情報のみで振り分
        けするのではなく、振り分け先のバックエンド
        サーバから情報を取得
機能
●   より細かいライフサイクルコントロール
    –   デプロイされている、いないといった情報もバッ
        クエンドサーバから
●   HTTP と AJP の両方をサポート
    –   リクエスト転送は mod_proxy/mod_proxy_ajp
        で行う
    –   基本 AJP
デモ
●   JBoss AS 6.0.0.M2
     –   mod_cluster 1.1.0.Beta1 が同梱
●   mod_cluster 1.1.0.Beta1 linux x86 bin
自動構成 (Advertise)
●   プロキシが自分の情報をマルチキャスト
    (Advertise) し、バックエンドがそれを元にプ
    ロキシへ情報を送信する
●   マルチキャストが到達する同一ネットワーク内
    のみ使用可能
    –   マルチキャストが利用できない、もしくは到達し
        ないネットワーク構成では手動で構成する必要が
        ある
自動構成 (Advertise)
HTTP/1.0 200 OK
Date: Wed, 08 Apr 2009 12:26:32 GMT
Sequence: 16
Digest: f2d5f806a53effa6c67973d2ddcdd233
Server: 1b60092e-76f3-49fd-9f99-a51c69c89e2d
X-Manager-Address: 127.0.0.1:6666
X-Manager-Url: /bla
X-Manager-Protocol: http
X-Manager-Host: 10.33.144.3
MCMP

●   Mod Cluster Management Protocol
●   バックエンドからプロキシへ、ロードファクタ
    やライフサイクルイベントなどの情報伝達に利
    用するプロトコル
●   フロントエンド側に MCMP を受けるのに利用
    する VirtualHost を一つ定義して
    mod_manager を有効化する
●   プロトロルフォーマットは HTTP リクエストも
    どき
MCMP

ENABLE-APP / HTTP/1.0
Content-Length: 51

JvmRoute=node1&Alias=localhost&Context=/jmx-
console
MCMP リクエスト

●   CONFIG        ●   STATUS
●   ENABLE-APP    ●   INFO
●   DISABLE-APP   ●   DUMP
●   STOP-APP      ●   PING
●   REMOVE-APP
バックエンドクラスタモード
●   JBoss AS のみサポート
    –   ModClusterService の代わりに
        HAModClusterService を有効化
●   全てのバックエンドから各フロントエンドにバ
    ラバラで通信するのではなく、 1 ノードがまと
    めて行う
バックエンドクラスタモード
●   non-clustered




http://ordinarythoughts.org/2008/12/27/mod_cluster-nowe-spojrzenie-na-load-balancery/
バックエンドクラスタモード
●   clustered




http://ordinarythoughts.org/2008/12/27/mod_cluster-nowe-spojrzenie-na-load-balancery/
ロードバランス
●   SimpleLoadBalanceFactorProvider
    –   固定値のロードファクタを返却
●   DynamicLoadBalanceFactorProvider
    –   様々なロードメトリクスからロードファクタを算
        出して返却
ロードメトリクス
●   AverageSystemLoadMetric
●   BusyConnectorsLoadMetric
●   SystemMemoryUsageLoadMetric
●   HeapMemoryUsageLoadMetric
●   RequestCountLoadMetric
ロードメトリクス
●   ReceiveTrafficLoadMetric
●   SendTrafficLoadMetric
●   ActiveSessionsLoadMetric
●   ConnectionPoolUsageMetric
●   MBeanAttributeLoadMetric
●   MBeanAttributeRatioLoadMetric
リファレンス
●   http://www.jboss.org/mod_cluster/
●   http://community.jboss.org/wiki/ModClust
    erDesign
●   http://anonsvn.jboss.org/repos/mod_clust
    er/
mod_cluster

mod_cluster

  • 1.
    mod_cluster Takayoshi Kimura Senior Software Maintenance Engineer, JBoss Global Support Service Red Hat
  • 2.
    mod_cluster とは ● インテリジェントロードバランサ – バックエンドサーバからフロントエンドプロキシ へのフィードバック機能のあるロードバランサ – あとで詳しく ● ふつうのロードバランサ – ラウンドロビン、ランダムロビン – プロキシ側で見える情報のみで振り分け ● リクエスト転送数の多いものとかリクエスト転送トラ フィック量の多いものとか ● 振り分けている HTTP 以外の情報は基本的になし
  • 3.
  • 4.
    動作要件 ● フロントエンドプロキシ – Apache HTTPD 2.2.8+ ● mod_proxy と mod_proxy_ajp に依存 ● バックエンド – JBoss AS – Tomcat – JBoss Web
  • 5.
    機能 ● 自動構成 – ノードの追加削除を検出し自動設定 ● カスタマイズ自由なサーバサイドロードファク タ算出 – フロントエンド ( プロキシ ) 側の情報のみで振り分 けするのではなく、振り分け先のバックエンド サーバから情報を取得
  • 6.
    機能 ● より細かいライフサイクルコントロール – デプロイされている、いないといった情報もバッ クエンドサーバから ● HTTP と AJP の両方をサポート – リクエスト転送は mod_proxy/mod_proxy_ajp で行う – 基本 AJP
  • 7.
    デモ ● JBoss AS 6.0.0.M2 – mod_cluster 1.1.0.Beta1 が同梱 ● mod_cluster 1.1.0.Beta1 linux x86 bin
  • 8.
    自動構成 (Advertise) ● プロキシが自分の情報をマルチキャスト (Advertise) し、バックエンドがそれを元にプ ロキシへ情報を送信する ● マルチキャストが到達する同一ネットワーク内 のみ使用可能 – マルチキャストが利用できない、もしくは到達し ないネットワーク構成では手動で構成する必要が ある
  • 9.
    自動構成 (Advertise) HTTP/1.0 200OK Date: Wed, 08 Apr 2009 12:26:32 GMT Sequence: 16 Digest: f2d5f806a53effa6c67973d2ddcdd233 Server: 1b60092e-76f3-49fd-9f99-a51c69c89e2d X-Manager-Address: 127.0.0.1:6666 X-Manager-Url: /bla X-Manager-Protocol: http X-Manager-Host: 10.33.144.3
  • 10.
    MCMP ● Mod Cluster Management Protocol ● バックエンドからプロキシへ、ロードファクタ やライフサイクルイベントなどの情報伝達に利 用するプロトコル ● フロントエンド側に MCMP を受けるのに利用 する VirtualHost を一つ定義して mod_manager を有効化する ● プロトロルフォーマットは HTTP リクエストも どき
  • 11.
    MCMP ENABLE-APP / HTTP/1.0 Content-Length:51 JvmRoute=node1&Alias=localhost&Context=/jmx- console
  • 12.
    MCMP リクエスト ● CONFIG ● STATUS ● ENABLE-APP ● INFO ● DISABLE-APP ● DUMP ● STOP-APP ● PING ● REMOVE-APP
  • 13.
    バックエンドクラスタモード ● JBoss AS のみサポート – ModClusterService の代わりに HAModClusterService を有効化 ● 全てのバックエンドから各フロントエンドにバ ラバラで通信するのではなく、 1 ノードがまと めて行う
  • 14.
    バックエンドクラスタモード ● non-clustered http://ordinarythoughts.org/2008/12/27/mod_cluster-nowe-spojrzenie-na-load-balancery/
  • 15.
    バックエンドクラスタモード ● clustered http://ordinarythoughts.org/2008/12/27/mod_cluster-nowe-spojrzenie-na-load-balancery/
  • 16.
    ロードバランス ● SimpleLoadBalanceFactorProvider – 固定値のロードファクタを返却 ● DynamicLoadBalanceFactorProvider – 様々なロードメトリクスからロードファクタを算 出して返却
  • 17.
    ロードメトリクス ● AverageSystemLoadMetric ● BusyConnectorsLoadMetric ● SystemMemoryUsageLoadMetric ● HeapMemoryUsageLoadMetric ● RequestCountLoadMetric
  • 18.
    ロードメトリクス ● ReceiveTrafficLoadMetric ● SendTrafficLoadMetric ● ActiveSessionsLoadMetric ● ConnectionPoolUsageMetric ● MBeanAttributeLoadMetric ● MBeanAttributeRatioLoadMetric
  • 19.
    リファレンス ● http://www.jboss.org/mod_cluster/ ● http://community.jboss.org/wiki/ModClust erDesign ● http://anonsvn.jboss.org/repos/mod_clust er/