クラスタ検証 続報4

気になるポイントをいくつか検証中.先月は主に"正常系"のクラスタ検証をしていた.マニュアルに「できるよ」と書いてあることは一通り全て動作確認した.しかし"エラー系"とでも呼ぶべき類についてはまだチェックが甘い.そこで….

  1. プロセスをctrl+cじゃなくてkill -9で落としたらどうなるかチェック
  2. ネットワークケーブルを引っこ抜いたらどうなるかチェック

をやってみた.

そしたらなんと…,フェイルオーバーに20秒以上かかるんだけど!

ctrl+cのときは1秒未満でフェイルオーバーしてたのに,くそだな.一体何やってるんだろう.JGroupsの設定をいじればもっと短くできる? せっかくNDBとかが1秒未満フェイルオーバー機能を実装しているというのに,アプリケーションサーバがこれじゃ駄目だ.

ネットワークの切断テストは面白い結果になった.ネットワークが切れただけでサーバのプロセスは生きているのでそれぞれのコンソールログを見ているといろいろ出てくる.アクティブ/アクティブな複数Nodeによって構成されるクラスタでは,ネットワーク切断時にはマジョリティ/マイノリティ判断みたいなのをして,マイノリティであると自己認識したノードは自殺するのよ(データベースの話).

で,JBossはどうかというと,例え孤立した状態になったとしても,自分一人でパーティション構成を再構築して動きつづける.その後ネットワークがその後回復すると,同一ネットワーク上に複数の同じ名前のパーティションが存在する状態になる.そうすると,今度はMergeする.あるいは自分はクラスタをやめて他のノードのクラスタに入りなおす.

ちょっとここらへんの動きがまだちゃんとつかめてない.JBossの各パーティションにはCoordinatorという役割をするNodeが1つ居るので,これを中心に動くんだろうけど.

ということで明日もう少し調査予定.