SlideShare a Scribd company logo
1 of 20
Download to read offline
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

More Related Content

What's hot

tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
 
VM ロールで仮想デスクトップ環を作ってみよう
VM ロールで仮想デスクトップ環を作ってみようVM ロールで仮想デスクトップ環を作ってみよう
VM ロールで仮想デスクトップ環を作ってみよう
Masayuki Ozawa
 
Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5
Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5
Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5
Naoya Nakazawa
 
Jenkins javascript ci
Jenkins javascript ciJenkins javascript ci
Jenkins javascript ci
hisame64
 
実践!データベースリファクタリングツール
実践!データベースリファクタリングツール実践!データベースリファクタリングツール
実践!データベースリファクタリングツール
Tatsunori Matoba
 
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
Mikiya Okuno
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
 

What's hot (20)

Mysql casial01
Mysql casial01Mysql casial01
Mysql casial01
 
ゆるふわMySQLフェイルオーバー
ゆるふわMySQLフェイルオーバーゆるふわMySQLフェイルオーバー
ゆるふわMySQLフェイルオーバー
 
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
 
VM ロールで仮想デスクトップ環を作ってみよう
VM ロールで仮想デスクトップ環を作ってみようVM ロールで仮想デスクトップ環を作ってみよう
VM ロールで仮想デスクトップ環を作ってみよう
 
RedHat MW 2015
RedHat MW 2015RedHat MW 2015
RedHat MW 2015
 
Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5
Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5
Apache 2.4 ChangeLog at 闇Webサーバ勉強会#5
 
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveMySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slave
 
Jenkins javascript ci
Jenkins javascript ciJenkins javascript ci
Jenkins javascript ci
 
実践!データベースリファクタリングツール
実践!データベースリファクタリングツール実践!データベースリファクタリングツール
実践!データベースリファクタリングツール
 
Art of MySQL Replication.
Art of MySQL Replication.Art of MySQL Replication.
Art of MySQL Replication.
 
MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24
 
MySQL のオンラインバックアップ & リカバリ
MySQL のオンラインバックアップ & リカバリMySQL のオンラインバックアップ & リカバリ
MySQL のオンラインバックアップ & リカバリ
 
MHAを検証して導入した話
MHAを検証して導入した話MHAを検証して導入した話
MHAを検証して導入した話
 
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話MySQLメインの人がPostgreSQLのベンチマークをしてみた話
MySQLメインの人がPostgreSQLのベンチマークをしてみた話
 
MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012MySQL 5.6新機能解説@dbtechshowcase2012
MySQL 5.6新機能解説@dbtechshowcase2012
 
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
 
Java 7
Java 7Java 7
Java 7
 
MHA for MySQL の話
MHA for MySQL の話MHA for MySQL の話
MHA for MySQL の話
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
MySQL 冗長化モデル
MySQL 冗長化モデルMySQL 冗長化モデル
MySQL 冗長化モデル
 

Similar to mod_cluster

Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
Shinji Tanaka
 
Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514
samemoon
 

Similar to mod_cluster (20)

Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
20160625 cloud samuai_final
20160625 cloud samuai_final20160625 cloud samuai_final
20160625 cloud samuai_final
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理
 
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web serviceYAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
 
Mvp road show_0830_rev1
Mvp road show_0830_rev1Mvp road show_0830_rev1
Mvp road show_0830_rev1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
 
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
 
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
 
OSvの概要と実装
OSvの概要と実装OSvの概要と実装
OSvの概要と実装
 
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
 
AWSのデータベースサービス全体像
AWSのデータベースサービス全体像AWSのデータベースサービス全体像
AWSのデータベースサービス全体像
 
Snr001 azure iaa_s_応用編~実務で
Snr001 azure iaa_s_応用編~実務でSnr001 azure iaa_s_応用編~実務で
Snr001 azure iaa_s_応用編~実務で
 
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #Eプロビジョニングの今 ーフルマネージド・サービスを目指してー  #cmdevio2016 #E
プロビジョニングの今 ーフルマネージド・サービスを目指してー #cmdevio2016 #E
 
Vitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE WebインターフェイスVitochaを用いた Jail+VIMAGE Webインターフェイス
Vitochaを用いた Jail+VIMAGE Webインターフェイス
 
serverless
serverlessserverless
serverless
 
Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514Cloud stack徹底入門7章 20130514
Cloud stack徹底入門7章 20130514
 
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料第11回ACRiウェビナー_東工大/坂本先生ご講演資料
第11回ACRiウェビナー_東工大/坂本先生ご講演資料
 

More from nekop (7)

Java Drag Race Tuning
Java Drag Race TuningJava Drag Race Tuning
Java Drag Race Tuning
 
Infinispan - Open Source Data Grid rev2
Infinispan - Open Source Data Grid rev2Infinispan - Open Source Data Grid rev2
Infinispan - Open Source Data Grid rev2
 
CDI, Seam 3 and Forge
CDI, Seam 3 and ForgeCDI, Seam 3 and Forge
CDI, Seam 3 and Forge
 
Infinispan - Open Source Data Grid
Infinispan - Open Source Data GridInfinispan - Open Source Data Grid
Infinispan - Open Source Data Grid
 
Iteratorパターン
IteratorパターンIteratorパターン
Iteratorパターン
 
Proxy
ProxyProxy
Proxy
 
ClassLoader Leak Patterns
ClassLoader Leak PatternsClassLoader Leak Patterns
ClassLoader Leak Patterns
 

mod_cluster

  • 1. mod_cluster Takayoshi Kimura Senior Software Maintenance Engineer, JBoss Global Support Service Red Hat
  • 2. mod_cluster とは ● インテリジェントロードバランサ – バックエンドサーバからフロントエンドプロキシ へのフィードバック機能のあるロードバランサ – あとで詳しく ● ふつうのロードバランサ – ラウンドロビン、ランダムロビン – プロキシ側で見える情報のみで振り分け ● リクエスト転送数の多いものとかリクエスト転送トラ フィック量の多いものとか ● 振り分けている HTTP 以外の情報は基本的になし
  • 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 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
  • 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/