renay****@ybb*****
renay****@ybb*****
2012年 12月 26日 (水) 15:01:10 JST
黄さん こんにちは、山内です。 参考までに手元にあった2.1.4で使っていたstonith有りの設定のサンプルcib.xmlを開示します。 #ただし、動作確認したわけではありませんので、修正の必要があるかも知れません。 (サンプルの構成) ACT/STB構成(Host01がACT,Host02がSTB) リソースはgrpDummyで構成 stonithにはexternal/ssh(heartbeatに存在するstonithモジュール)を利用 リソースgrpDummyのstopで故障が発生するか(stopのon_fail=fence)、クラスタ構成中に 相手ノードがdead検出されるとstonithが発動します。 #ただし、この設定のままでは、相打ちが発生する可能性がありますので、Linux-HA JapanでHeartbeat用に開示されている拡張リソースエージェント・プラグイン (hb-extras) に含まれるstonith-wrapper(http://sourceforge.jp/projects/linux-ha/releases/50887/note)を利用して相打ちを回避する必要があります。 (サンプルcib.xml) <cib admin_epoch="0" epoch="0" num_updates="0"> <configuration> <crm_config> <cluster_property_set id="cib-bootstrap-options"> <attributes> <nvpair id="cib-bootstrap-options-no-quorum-policy" name="no-quorum-policy" value="ignore"/> <nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="true"/> <nvpair id="cib-bootstrap-options-default-resource-stickiness" name="default-resource-stickiness" value="INFINITY"/> <nvpair id="cib-bootstrap-options-default-resource-failure-stickiness" name="default-resource-failure-stickiness" value="-INFINITY"/> <nvpair id="cib-bootstrap-options-default-action-timeout" name="default-action-timeout" value="120s"/> <nvpair id="cib-bootstrap-options-startup-fencing" name="startup-fencing" value="true"/> </attributes> </cluster_property_set> </crm_config> <nodes/> <resources> <group id="grpDummy"> <instance_attributes id="grpDummy-instance_attributes"> <attributes/> </instance_attributes> <primitive class="ocf" id="prmDummy" provider="heartbeat" type="Dummy"> <instance_attributes id="prmDummy-instance_attributes"> <attributes/> </instance_attributes> <operations> <op id="prmDummy-stop" name="stop" on_fail="fence" timeout="60s"/> <op id="prmDummy-monitor" interval="10s" name="monitor" on_fail="restart" timeout="90s"/> <op id="prmDummy-start" name="start" on_fail="restart" prereq="fencing" timeout="300s"/> </operations> </primitive> </group> <primitive class="stonith" id="prmStonithN1" provider="heartbeat" resource_stickiness="INFINITY" type="external/ssh"> <instance_attributes id="prmStonithN1-instance_attributes"> <attributes> <nvpair id="prmStonithN1-instance_attributes-hostlist" name="hostlist" value="Host01"/> </attributes> </instance_attributes> <operations> <op id="prmStonithN1-stop" name="stop" timeout="90s"/> <op id="prmStonithN1-monitor" interval="10s" name="monitor" timeout="90s"/> <op id="prmStonithN1-start" name="start" prereq="nothing" timeout="90s"/> </operations> </primitive> <primitive class="stonith" id="prmStonithN2" provider="heartbeat" resource_stickiness="INFINITY" type="external/ssh"> <instance_attributes id="prmStonithN2-instance_attributes"> <attributes> <nvpair id="prmStonithN2-instance_attributes-hostlist" name="hostlist" value="Host02"/> </attributes> </instance_attributes> <operations> <op id="prmStonithN2-stop" name="stop" timeout="90s"/> <op id="prmStonithN2-monitor" interval="10s" name="monitor" timeout="90s"/> <op id="prmStonithN2-start" name="start" prereq="nothing" timeout="90s"/> </operations> </primitive> </resources> <constraints> <rsc_location id="grpDummy-node1" rsc="grpDummy"> <rule id="grpDummy-node1-rule:1" score="200"> <expression attribute="#uname" id="grpDummy-node1-rule:1-expression:1" operation="eq" value="Host01"/> </rule> </rsc_location> <rsc_location id="grpDummy-node2" rsc="grpDummy"> <rule id="grpDummy-node2-rule:1" score="100"> <expression attribute="#uname" id="grpDummy-node2-rule:1-expression:1" operation="eq" value="Host02"/> </rule> </rsc_location> <rsc_location id="prmStonithN1-node6" rsc="prmStonithN1"> <rule id="prmStonithN1-node6-rule:1" score="-INFINITY"> <expression attribute="#uname" id="prmStonithN1-node6-rule:1-expression:1" operation="eq" value="Host01"/> </rule> </rsc_location> <rsc_location id="prmStonithN2-node7" rsc="prmStonithN2"> <rule id="prmStonithN2-node7-rule:1" score="-INFINITY"> <expression attribute="#uname" id="prmStonithN2-node7-rule:1-expression:1" operation="eq" value="Host02"/> </rule> </rsc_location> </constraints> </configuration> <status/> </cib> --- On Wed, 2012/12/26, renay****@ybb***** <renay****@ybb*****> wrote: > 黄さん > > こんにちは、山内です。 > > 2.1.3の頃だと、stonithについては、あまり良い例がみあたらないのですが、 > > http://linux-ha.org/ja/ExternalStonithPlugins_ja > > あたりなど参考にされると雰囲気はわかるかも知れません。 > > 詳細な設定は、本家のMLや日本語のMLの過去の投稿などから設定で参考に出来るものがあると思います。 > > 以上です。 > > --- On Wed, 2012/12/26, renay****@ybb***** <renay****@ybb*****> wrote: > > > 黄さん > > > > こんにちは、山内です。 > > > > まず、timeout(30s)とdeadtime(60s)の扱いが異なるので優先という意味では違うと思います。 > > > > ①timeout(30s)の扱い > > monitorのoperationを例にして書きますが、これは、設定されているinterval毎にmonitor処理を実行して、30sの応答がない場合に発生します。 > > > > ②deadtime(60s)の扱い > > クラスタ動作中に常にノード間でのHeartbeat通信を実行しているのですが、この通信が60s間途切れた場合に発生します。 > > > > 上記の通りで扱いが異なります。 > > ですが、どちらの場合でも、故障後(stopなどの設定によりますが)に、該当ノードでリソースが起動していた場合には、通常フェイルオーバー(待機系へのリソース移動)の動作を始めます。 > > > > > 今回、障害が起きたサーバはtimeout = 60で設定されていましたが、Heartbeatの 誤動作のため、 DB Connection failが起きました。 > > > timeout = 60も設定されているのに、 Heartbeatは現用系のeth1がdeadしたと判断して、 failoverをすすめ、結局、Split-Brain状態になりました。 > > > > > > Split-Brain状態を防ぐ根本的な解決策はあるんでしょうか? > > > > 上記の状況から判断すると、「eth1がdead」となっているので、こちらは、deadtimeが有効になってフェイルオーバーをしたことになります。 > > #先の②が発生して、①は発生していない。 > > #どちらも設定によっては、フェイルオーバーは起きますので、正しい動作をいえば正しい動作です。 > > > > 誤動作で「eth1がdead」となってフェイルオーバーが発生したのであれば、その原因を回避することですが、 > > Split-Brainを回避するということであれば、stonithの利用をお勧めします。 > > > > stonithを設定することによって、「eth1がdead」し、リソース起動しているノードがdeadと判定された後、フェイルオーバー前に待機系ノードがまずは、リソース起動しているノードをリセット(電源断など)することによって、リソースを解放することが出来ます。 > > > > > > お使いのHeartbeatは2.1.3とかなり古いバージョンですね。 > > 現状、Heartbeatの環境をお使いになるのであれば、バグや動作不具合などを回避する為にも、Heartbeat+Pacemakerでのクラスタ構築をお勧めします。 > > > > #DRBDのあたりの設定については、詳しくありませんので、他の方からのコメントにゆだねます。 > > > > 以上です。 > > > > > > --- On Wed, 2012/12/26, 황세원 <swhwa****@linux*****> wrote: > > > > > 山内さん、 > > > おはようございます。 > > > > > > 黄です。 > > > メールありがとうございます。 > > > > > > また、質問がありますが、 > > > もし、timeout = 30 deatime = 60だと設定されていると、障害が起こったと仮定したら、どちらを優先すべきですか?(例;30秒後にfailover or 60秒後にfailover) > > > > > > 今回、障害が起きたサーバはtimeout = 60で設定されていましたが、Heartbeatの 誤動作のため、 DB Connection failが起きました。 > > > timeout = 60も設定されているのに、 Heartbeatは現用系のeth1がdeadしたと判断して、 failoverをすすめ、結局、Split-Brain状態になりました。 > > > > > > Split-Brain状態を防ぐ根本的な解決策はあるんでしょうか? > > > > > > システム情報は以下になります。 > > > > > > システム情報 > > > OS Version:Red Hat Enterprise Linux Server release 5.4 (Tikanga) > > > Kernel version:2.6.18-194.el5xen > > > Memory:8GB > > > > > > Software情報 > > > MySQLバージョン;MySQL-community 5.5.25a > > > DRBD バージョン:8.3.8.1 > > > Heartbeatバージョン:2.1.3 > > > > > > 構成 > > > xxdb1 (Active) , xxdb2 (Standby) > > > DRBD : /dev/drbd0 /MYSQL_DATA > > > MySQL > > > VIP : 172.18.79.26 / Heartbeat VIP : 200.200.200.151 > > > > > > 以上、教えをお願いいたします。 > > > 黄世元 > > > > > > > > > ============================== > > > (주)리눅스데이타시스템 > > > 컨설팅사업부 DB팀 과장 황세원 > > > Mobile. 010-6718-1196 > > > Tel. 02-6207-1159,1160 > > > Fax. 02-6207-1161 > > > E-mail. swhwa****@linux***** > > > 서울시 강남구 삼성동 166-5 홍선빌딩 2F > > > 우:135-090 > > > > > > -----Original Message----- > > > From: linux****@lists***** [mailto:linux****@lists*****] On Behalf Of renay****@ybb***** > > > Sent: Wednesday, December 19, 2012 9:10 AM > > > To: linux****@lists***** > > > Subject: Re: [Linux-ha-jp] timeout値とdeadtime値の設定に関して。 > > > > > > 黄さん > > > > > > こんにちは、山内です。 > > > > > > > timeout値とdeadtime値の中で、優先順位が高い設定値はどちでしょうか? > > > > > > > > timeout値 とdeadtime値の 相関関係に関して、教えていただけましょうか? > > > > > > cibの中のtimeoutが各リソースのop設定のtimeoutのことを言っていると仮定して > > > 回答します。 > > > > > > timeoutとdeadtimeの値に関係はありません。 > > > > > > deadtimeは、ノード間のHeartbeat通信が切れた後、そのノードがクラスタ構成からいなくなったことを判断する値になります。(ノード離脱判定値) > > > > > > timeoutは、リソースの操作(start,monitor,stop)を実行してから、その応答がない場合のタイムアウト判定値になります。(リソース操作判定値) > > > > > > 以上です。 > > > > > > > > > > > > --- On Tue, 2012/12/18, 황세원 <swhwa****@linux*****> wrote: > > > > > > > > > > > > > > > > > > > お疲れ様です。 > > > > > > > > 黄です。 > > > > > > > > > > > > > > > > 現在、運用している、システムの環境は以下になります。 > > > > > > > > > > > > > > > > システム情報 > > > > > > > > OS Version:Red Hat Enterprise Linux Server release 5.4 (Tikanga) > > > > > > > > Kernel version:2.6.18-194.el5xen > > > > > > > > Memory:8GB > > > > > > > > > > > > > > > > Software情報 > > > > > > > > MySQLバージョン;MySQL-community 5.5.25a > > > > > > > > DRBD バージョン:8.3.8.1 > > > > > > > > Heartbeatバージョン:2.1.3 > > > > > > > > > > > > > > > > 構成 > > > > > > > > xxdb1 (Active) , xxdb2 (Standby) > > > > > > > > DRBD : /dev/drbd0 /MYSQL_DATA > > > > > > > > MySQL > > > > > > > > VIP : 172.18.79.26 / Heartbeat VIP : 200.200.200.151 > > > > > > > > > > > > > > > > Heartbeatのcib.xmlファイルを見ると、timeoutという設定値があります。 > > > > > > > > Ha.cfを見るとdeadtime値があります。 > > > > > > > > timeout値とdeadtime値の中で、優先順位が高い設定値はどちでしょうか? > > > > > > > > timeout値 とdeadtime値の 相関関係に関して、教えていただけましょうか? > > > > > > > > > > > > > > > > 以上、よろしくお願いいたします。 > > > > > > > > 黄世元 > > > > > > > > > > > > > > > > > > > > > > > > ============================== > > > > > > > > (주)리눅스데이타시스템 > > > > > > > > 컨설팅사업부 DB팀 과장 황세원 > > > > > > > > Mobile. 010-6718-1196 > > > > > > > > Tel. 02-6207-1159,1160 > > > > > > > > Fax. 02-6207-1161 > > > > > > > > E-mail. swhwa****@linux***** > > > > > > > > 서울시 강남구 삼성동 166-5 홍선빌딩 2F > > > > > > > > 우:135-090 > > > > > > > > > > > > > > _______________________________________________ > > > Linux-ha-japan mailing list > > > Linux****@lists***** > > > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > > > > > > > > > _______________________________________________ > > Linux-ha-japan mailing list > > Linux****@lists***** > > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > > > > _______________________________________________ > Linux-ha-japan mailing list > Linux****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan >