[pgcluster: 221] Re: 障害によるスタンドアローン構成への切替検証

高橋 hiroo-t @ po.ntts.co.jp
2004年 3月 30日 (火) 18:34:05 JST


いつもお世話になっております。
高橋です。

> PGClusterで使っている「スタンドアロン」の状態とは,
> レプリケーションサーバ(複数ある場合は全て)が停止して,クラスタサーバが
> 単独で動いている状態を言っています.

書き方が不適当でした。
意図としては、クラスタサーバ2(スレーブ)の異常に引っ張られずに、
クラスタサーバ1(マスタ)が単独で動くことを検証したかった次第です。

> > (2)擬似AP処理中に、クラスタサーバ2(スレーブ)のLANケーブルを抜く。
> これなんですが,LANケーブルを抜かれても,障害検知ができません.
> LinuxやBSDでもそうだったのですが,LANケーブルを抜いてもソケットのコネク
> ションは切断されず,送信した場合は送信されたことになってしまいます.
> 実際にはソケットのキューに溜まっているだけなのだと思いますが,このキュー
> が一杯になって溢れるまで接続異常になってくれません.
>
>LANケーブルを抜いた場合の異常検知は,ライフチェックを併用する必要がある
>と思い,現在設計中です.

了解しました。
教えていただき、ありがとうございます。

追加の確認になりますが、レプリケーションサーバのLANケーブルを
抜いた場合もこれと同様、と考えてよろしいでしょうか?

> 現在検知できるサーバの障害は,サーバプロセスやサーバ自体が停止した場合で
> す.

上記検証以外に、レプリケーションサーバのプロセスを
停止した場合の機能検証も行いました。
こちらの動作についても、確認させて下さい。

【試験内容】
レプリケーションサーバが停止した場合、クラスタサーバ1
(マスタ)が単独で動作することを検証。

【手順】
(1)APサーバより、クラスタサーバ1(マスタ)に対して、
   1000件のレコードを、連続してinsertする擬似APを実行。
   (1件毎にcommit)
(2)擬似AP処理中に、pgreplicateを停止する。
    =>即時的に、クラスタサーバ1(マスタ)単独での動作に
     切り替わることを想定。

【結果】
(1)クラスタサーバ1(マスタ)への擬似APによるinsert処理は、
   pgreplicate停止直後から、1件につき10秒経過したところで
   エラーとなる。
(2)クラスタサーバ1(マスタ)のDBに対し、psqlで新たなConnectionを
   張った直後、擬似APによるinsert処理が正常に行われた。

【考察】
pgreplicate停止後に、新たなConncetionを張ったことで、クラスタ
サーバ1(マスタ)で管理するレプリケーションサーバの状態が更新された。
これにより擬似APは、レプリケーションサーバのエラー状態を認識し、
クラスタサーバ単独での処理に切り替わって処理を継続する。


以上、よろしくお願いします。

/Takahashi, Hiroo




pgcluster メーリングリストの案内