Yoshiyuki Takahashi
yosiy****@takah*****
2011年 5月 6日 (金) 14:40:27 JST
松尾さん 御回答ありがとうございます。 高橋です。 メールさせて頂いた後、色々と確認していたのですが、フェールオーバー時 httpd が 2 回連続で実行されるケースがあるような気がしています。 今回メールさせて頂いた中にも以下の記述がありました。 ResourceManager[3555] が httpd を起動後、ResourceManager[3943](番号 が違うので別のプロセス?)が再度 httpd を実行している様に思えました。 〜略〜 Apr 27 20:01:24 server01 ResourceManager[3555]: debug: /etc/ha.d/resource.d/httpd start done. RC=0 〜略〜 Apr 27 20:01:24 server01 ResourceManager[3943]: debug: /etc/ha.d/resource.d/httpd start done. RC=1 〜略〜 /etc/ha.d/resouce.d/httpd は、/etc/init.d/httpd からのシンボリック リンクとしています。今迄何度かフェールオーバーしていましたが、これ まで問題なく切り替わり正常動作していました。 /etc/init.d/httpd だけで試しに以下のように確認したところ、2 回目が エラーとなりました。3 回目以降は正常終了しました。 /etc/init.d/httpd は、何度実行しても問題ない様ですが、初回起動時に 連続して実行された場合、実行が完了していない時点での再度の起動は、 エラーとなるのではないかと考えています。 ------------------------------------------------------ flg=0 while [ $flg -lt 10 ] do /etc/init.d/httpd start echo "ret[$?]" flg=`expr $flg + 1` done ------------------------------------------------------ なので、単純に /etc/init.d/httpd が実行時エラーだった場合 1, 2 秒 程度 sleep させ、最大 5 回程度ループさせるようなシェルを作成して、 様子を見ようかと考えています。 上記対応でも問題があれば再度メールさせて頂きたいと思っております。 以上宜しくお願い致します。 ----- Original Message ----- >Date: Fri, 6 May 2011 13:14:25 +0900 >From: Takatoshi MATSUO <matsu****@gmail*****> >To: linux****@lists***** >Subject: Re: [Linux-ha-jp] > heartbeat の切り替え時の不具合について > > >高橋さん >松尾です。 > >ver1モードで使ったことないのであまり自信ないのですが、 >ログを眺めていると、server01側のhttpdの起動に失敗し、 >その結果仮想IPもstopしたように見えます。 > >------------------ >Apr 27 20:01:23 server01 ResourceManager[3555]: debug: /etc/ha.d/resource.d/IP >addr 10.100.1.82/24/eth0 start done. RC=0 ★仮想IP起動成功 >〜 省略 〜 >Apr 27 20:01:24 server01 ResourceManager[3943]: debug: /etc/ha.d/resource.d/ht >tpd start done. RC=1 ★httpd起動失敗 (起動失敗なのにhttpdは動いいるのはおかしい) >〜 省略 〜 >Apr 27 20:01:24 server01 ResourceManager[3943]: debug: /etc/ha.d/resource.d/ht >tpd stop done. RC=0 ★httpd停止成功 (実際には停止しできていなかった?) >〜 省略 〜 >Apr 27 20:01:24 server01 ResourceManager[3943]: debug: /etc/ha.d/resource.d/IP >addr 10.100.1.82/24/eth0 stop done. RC=0 ★仮想IP停止成功 >------------------ > >実際にはserver01ではapacheは起動していたとのことなので、 >/etc/ha.d/resource.d/httpd (スクリプト?) でどのような処理をやっているか追っかけてみるか、 >この時のapache側のログを見てみると起動失敗の理由がわかるのではないでしょうか。 > >個人的には以下のような事象が起きたのではと予想します > > 1. apacheがserver01ですでに起動していた > - 誤って手動で起動や再起動した等 > 2. /etc/ha.d/resource.d/httpd の処理がおかしい > - httpdのstartやstopの処理の正常性をきちんと判断できていない。 > >server02再起動後に、server02で自動的にサービスが上がらないのは、 >別の要因(設定?)のように思います。 > >以上ご確認ください。 >_______________________________________________ >Linux-ha-japan mailing list >Linux****@lists***** >http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan ------------- yosiy****@takah*****