WebLogic Serverのクラスタ機能について理解したい!~MAN/WANレプリケーション~
※ この記事は書籍「OracleWebLogicServer構築運用ガイド11g」の内容を自分なりに解釈して記述したものです。
前回「WebLogic Serverのクラスタ機能について理解したい!」の続きです。
MAN/WANレプリケーション
インメモリレプリケーションは、クラスター内におけるHTTPセッションオブジェクトを永続化する方式です。
一方、MANレプリケーションとWANレプリケーションは、MANやWAN上のクラスター間におけるHTTPセッションオブジェクトを永続化する方式です。
クラスター間をつなぐレプリケーションチャネルはHTTPセッションオブジェクトをIPソケットでレプリケーションする必要があるため、高速なネットワーク帯域が求められます。
2つのクラスターの前段にあるローカル負荷分散装置は、クラスター内の各メンバーへの負荷分散を行います。
ただし、この部分にWebサーバープラグインを使用することはできません。
2つのローカル負荷分散装置の前段にあるグローバル負荷分散装置は、Active/Standbyで設定を行うようにします。
WebLogic Server側の設定では、2つのドメインとそのドメイン内に属するサーバー(管理対象サーバー)、およびサーバーをグループにまとめたクラスターがそれぞれ必要です。両方のレプリケーション方式の基本的な仕組みはほとんど同じです。
クラスタ間のレプリケーションを同期で行うのがMANレプリケーション
クラスタ間のレプリケーションを非同期で行うのがWANレプリケーション
WANレプリケーションは非同期でレプリケーションを行うため、一旦HTTPセッションオブジェクトをデータベースに保存してからレプリケーションを行います。
MANレプリケーション
MANレプリケーションは、インメモリレプリケーションの動作をクラスター内ではなくクラスター間で行います。
WANレプリケーション
WANレプリケーションは少し異なります。
まず、クライアントからActive側のWebLogicServerにアクセスされてHTTPセッションオブジェクトのプライマリが更新されると、Active側のデータベースにその内容が反映されます。
すぐにStandby側のWebLogicServerに更新内容が適用されるわけではなく、デフォルトでは180秒周期で更新されます。
更新はActive側のデータベースに保存されているすべてのHTTPセッションオブジェクトが対象で、レプリケーションチャネル経由でStandby側のWebLogicServerメモリ上にレプリケーションが行われます。
その後、Standby側のデータベースにもレプリケーションされたHTTPセッションオブジェクトが保存されます。
また、Active側からStandbyへの一定周期による更新のレプリケーション以外に、Active側のHTTPセッションオブジェクトの更新の数が特定の数に達すると、Standby側にHTTPセッションオブジェクトがレプリケーションされます。
MAN/WANレプリケーションの動作イメージ
正常時
クラスターA内のメンバーにHTTPセッションオブジェクトのプライマリが生成され、クラスターB内にHTTPセッションオブジェクトのセカンダリが生成されます。
クラスターAとクラスターBの間でHTTPセッションオブジェクトのレプリケーションが行われる動作イメージ。
インスタンス障害
クラスターA内のあるメンバーが障害で利用できなくなると、他のメンバーにHTTPセッションオブジェクトのプライマリが生成されます(フェールオーバー)。
この際、プライマリの生成はクラスターB内にあるセカンダリからレプリケーションされて行われます。
ネットワーク障害
クラスターAからクラスターBへの通信ができなくなると、クラスターA内でHTTPセッションオブジェクトのプライマリとセカンダリのペアが生成されます。
これはクラスターA内でインメモリレプリケーションが行われる動作イメージです。
クラスター障害
クラスターA内のすべてのメンバーが障害で利用できなくなると、クラスターB内でHTTPセッションオブジェクトのプライマリとセカンダリのペアが生成されます。
これはクラスターB内でインメモリレプリケーションが行われる動作イメージです。