heartbeatの設定
昨日に引き続きheartbeatの設定。やりたいことは、
ってこと。昨日の設定では/etc/ha.d/ha.cfでCRMをonにしたんだけれども、CRMを使った設定の例がどうしてもうまくいかなくて、挫折。CRMを使わない方法でやりました。
/etc/ha.d/ha.cfを編集
こんな内容。
logfacility daemon # Log to syslog as facility "daemon" keepalive 1 # 1秒毎にお互いのノードの生死を確認 deadtime 10 # 10秒死んでたら切り替える warntime 5 initdead 120 udpport 694 ping 1.2.100.1 # これよくわかんないな。デフォルトGWを書くみたい。 bcast eth0 #生死の確認に使うインタフェイス auto_failback on node marron # クラスタのメンバ node verde # クラスタのメンバ use_logd yes
heartbeatを再起動
設定が済んだら、両方の機器でheartbeatを再起動
# /etc/init.d/heartbeat restart
ちょっと確認
marronでifconfigを実行するとちゃんと仮想インタフェイスが追加されています。
eth0:0 Link encap:Ethernet HWaddr XX:XX:XX:90:29:63 inet addr:1.2.3.4 Bcast:1.2.3.127 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1514 Metric:1
別の機器からpingを打ちながらクラスタを構成している機器のLANケーブルを抜き差ししてみると、10秒のタイムアウトの後、ちゃんとクラスタの別ノードに仮想IPが引き継がれます。
今回クラスタを構成した目的は、本来ならばデータベースの同期とか、ウェブアプリケーションの同期だとかバックエンドのややこしい話があるんでしょうが、今回はパケットをリレーするだけが目的なのでこれで終了。