第19章 クラスタリングの概念
次項では、JBoss のクラスタリングサービスの基礎となる基本概念について説明します。 この概念を先に理解してから残りのクラスタリングガイドを読むようにするとよいでしょう。
19.1. クラスター定義
クラスターは、お互いにやりとりし、目的を共有する一連のノードです。JBoss Application Server クラスター (パーティションとも呼ばれます) では、ノードは JBoss Enterprise Application Server インスタンスです。ノード間の通信は、クラスター内のノードを追跡する中核的な機能を提供し、クラスターメンバー間のメッセージを安定的に交換する JGroups
Channel とともに JGroups グループ通信ライブラリによって処理されます。同じ設定と名前を持つ JGroups Channel は動的にお互いのノードを検索し、グループを形成することができます。このため、同じネットワークの 2 つの AS インスタンスで「run -c production」を実行するだけで、ノードがクラスターを形成するようになります。各 Enerprise Application Platform は同じデフォルト設定で Channel (実際には複数) を開始し、その結果、お互いのノードが動的に検索され、クラスターが形成されます。ノードは、他のクラスターメンバーと同じ設定と名前で Channel を開始または停止するだけでいつでもクラスターに動的に追加、あるいはクラスターから動的に削除できます。
同じ Enterprise Application Platform インスタンス上で、別サービスが独自の
Channel を作成することができます。Enterprise Application Platform 5 の production サーバープロファイルを標準起動すると、 2 つの異なるサービスが合計 4 つのチャネルを作成します。JBoss Messaging が 2 つのチャネルを作成し、 HAPartition と呼ばれるコアの汎用クラスタリングサービスも 2 つのチャネルを作成します。 クラスター化された Web アプリケーションやクラスター化された EJB3 SFSB、クラスター化された JPA/Hibernate エンティティキャッシュをデプロイすると、追加のチャネルが作成されます。 Enterprise Application Platform が接続するチャネルは、大きく 3 つに分類されます (HAPartition サービスが使用する汎用チャネル、特別用途のキャッシングやクラスター全体のステートレプリケーション向けに JBoss Cache が作成したチャネル、 JBoss Messaging が使用する 2 つのチャネル)。
したがって、2 つの Enterprise Application Platform 5.0.x インスタンスで
run -c production を実行すると、お互いのチャネルが検索され、概念的な cluster が形成されます。これは 2 ノードクラスターと考えると分かりやすいですが、実際には 4 つのチャネル、したがって 4 つの 2 ノードクラスターであると理解することが重要です。
同じネットワーク上でサービスがクラスタリングしたい異なるセットのサーバーがあるとします。 図19.1「クラスターとサーバーノード」 は、 3 つのセットに分割された JBoss サーバーインスタンスのネットワーク例です。 3 番目のセットにはノードが 1 つしかありません。 このようなトポロジは、 ノードのセット内でチャネル設定と名前が一致するようクラスターを形成するようにして設定します。 この場合、 チャネル設定と名前が他のチャネル設定と名前のマッチと異なるようにし、 同じネットワークの別のチャンネルとも異なるようにします。 Enterprise Application Platform はこの設定をなるべく簡単にします。 クラスター化するサーバーは、 同じ値をコマンドラインの
-g (パーティション名) と -u (マルチキャストアドレス) 起動スイッチに渡すことだけが必要になります。 各サーバーセットには異なる値を選択する必要があります。「JGroups 設定」と「JGroups チャネルの分離」の項に、 検索したいピアのみを見つけるようEnterprise Application Platform を設定する方法が説明されています。

図19.1 クラスターとサーバーノード