[pgcluster: 1038] Re: ネットワーク障害時の自動復旧機能

A. Mitani a.mitani @ sra-europe.com
2008年 3月 22日 (土) 21:21:08 JST


鈴木さん,こんにちは.

DBサーバに障害が発生した場合,
それがDBサーバの問題なのか,ネットワークの問題なのか,それともハードウェアの問題なのか,
障害の切り分けをサーバに自動的にさせることは困難です.
サーバの保守に係わることですので,人(管理者)の判断で行う必要があると思い,
クラスタDBには自動的にリカバリーする機能を持たせていません.

しかし,実際の運用環境において,廉価なネットワーク機器を使っている場合,
予想よりも頻繁にネットワーク障害が発生するという事例も聞いています.
結果として,サーバは動いているのに,いつの間にかサービスが停止しているという状態になるようです.

不安定なネットワーク上においてもPGClusterシステムを安定運用させるためには,
鈴木さんの言われるような機能が必要だろうと思います.
しかし,その為には,今のDBサーバに自動リカバリ機能を付与するのではなく,
独立した監視・管理機能が必要になるのではないかと考えています.

ヨーロッパで運用されているところからの要望もあり,
各サーバの起動・停止・状態監視・自動復旧等の機能を持った管理サーバの構築を予定しています.

必要と思われる機能がありましたらご提案いただければ幸いです.

三谷

----- Original Message -----
From: peopleskip @ mail.goo.ne.jp
To: pgcluster @ ml.postgresql.jp
Sent: 2008年3月22日 18時19分00秒 (GMT+0900) Asia/Tokyo
Subject: [pgcluster: 1037] ネットワーク障害時の自動復旧機能

お世話になっております。
鈴木と申します。


ネットワーク障害時の動作に関して質問させてください。
以下の様な構成で実験をしています。


<構成>
	OS
		RedHatLinux Enterprise4

	PGCluster
		1.7.0rc12

	サーバ1:testsv1
		クラスタDB
		レプリケーションサーバ

	サーバ2:testsv2
		クラスタDB

	※サーバ1とサーバ2はIP固定。
	 testsv1とtestsv2は、それぞれのサーバのhostsファイルに記述しています。


<質問内容>

(1)サーバ2:testsv2のLANケーブルを抜いてネットワーク障害を発生させる
(2)サーバ1:testsv1のクラスタDBにてInsert文を発行
(3)サーバ2:testsv2のLANケーブルを繋いでネットワークを復旧させる

とした場合、サーバ2:testsv2にあるクラスタDBに対して
サーバ1:testsv1のクラスタDBの更新内容が
自動で反映されるような仕組みは可能でしょうか?


実験してみたところ、ネットワーク復旧後(上記の(3))にそのまま放置しておいた場合は、
サーバ2のクラスタDBにはサーバ1のクラスタDBの更新内容が反映されず、
一度、サーバ2のクラスタDBを落として、再度リカバリーモードで立ち上げなおすと、更新内容が反映さ
れました。

ただこれだと、ネットワーク障害が発生した場合に、クラスタDBを再起動するために管理者が必要にな
ってしまいます。
もし、ネットワーク障害から復旧した場合に自動で更新内容を反映してくれると
管理者も不要になるため便利だなと思った次第です。
そのような機能(ネットワーク障害時に自動で更新内容を反映してくれる)に関して、
情報を頂ければ幸いです。よろしくお願い申し上げます。


以上です。


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