2010年2月18日木曜日

HeartbeatでMySQL止めたらフェイルオーバー(その2)

スズキです。

下記でフェイルオーバーすると思いきや、同じマシンで再度起動してしまったので、
http://blog.suz-lab.com/2010/02/heartbeatmysql1.html
今回は、もう一方のマシンへのフェイルオーバーを実現してみます。

以前、自動フェイルバックを抑止するエントリを書いたのですが、
http://blog.suz-lab.com/2009/07/heartbeat_30.html
やり方は、それに非常に似ています。

自動フェイルバックの抑止は、以下のように"/var/lib/heartbeat/crm/cib.xml"の、
"default-resource-stickiness"の値を"INFINITY"にすることで実現できました。

--------【cib.xml】--------
...
<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"/>
...
--------

同様に、MySQLを止めたときの他のマシンへのフェイルオーバーは、上記のように
"default-resource-failure-stickiness"の値を"-INFINITY"にすることで実現できます。

この設定で、次のように"ha-back-02"で稼動しているMySQLを

# crm_mon
--------
Resource Group: group_1
drbddisk_1 (heartbeat:drbddisk): Started ha-back-02
Filesystem_2 (ocf::heartbeat:Filesystem): Started ha-back-02
drbdlinks_3 (heartbeat:drbdlinks): Started ha-back-02
mysqld_4 (lsb:mysqld): Started ha-back-02
IPaddr2_5 (ocf::heartbeat:IPaddr2): Started ha-back-02
--------

"ha-back-02"で"/etc/init.d/mysqld stop"を使って止めると、

# crm_mon
--------
Resource Group: group_1
drbddisk_1 (heartbeat:drbddisk): Started ha-back-01
Filesystem_2 (ocf::heartbeat:Filesystem): Started ha-back-01
drbdlinks_3 (heartbeat:drbdlinks): Started ha-back-01
mysqld_4 (lsb:mysqld): Started ha-back-01
IPaddr2_5 (ocf::heartbeat:IPaddr2): Started ha-back-01
Failed actions:
mysqld_4_monitor_120000 (node=ha-back-02, call=14, rc=7): complete
--------

上記のように、もう一方の"ha-back-01"に、
フェイルオーバーしていることを確認することが出来ます。

ようやく、最後のNFSだ。

--------
http://www.suz-lab.com

0 コメント: