CentOS に heartbeat と rsync でフェイルオーバーする Webサーバを作る - 1

基本的にはLinuxアドバンストネットワークサーバ構築ガイド HAサーバ構築編 (Network server construction guide series (13))の4.3をなぞる。

構成

OS

CentOS 4.4 x86_64

IPアドレス
仮想アドレス 192.168.0.10
稼働系サーバ 192.168.0.11
待機系サーバ 192.168.0.12

それぞれのマシンに NIC が一つづつしかないので、監視用のネットワークは eth0 を兼用してみる。
クロスケーブルでシリアルポートを接続。(/dev/ttyS0)

インストール

yum install heartbeat

設定

かいつまんで。デフォルトからコメントアウトを外しただけのは省略。

ha.cf

稼働系サーバ

#ハートビートは eth0 と シリアルで。
ucast eth0 192.168.0.12
#各ノードの名前
node sv01
node sv02
#ping 監視先
ping 192.168.0.1

待機系サーバ

ucast eth0 192.168.0.11
node sv01
node sv02
ping 192.168.0.1
haresource (共通)
#httpd と vsftp をフェイルオーバー
sv01 192.168.0.10/24 httpd vsftpd
#いちおうメールする
sv02 MailTo::hoge@example.jp::fail_over_shitayo!!
authkeys
auth 1
1 crc

パーミッションを調整しとく

chmod 600 authkeys
監視サービスの設定

監視するサービスを chkconfig でオフにする。(heartbeat が管理するので)

パッケージのミス?

設定して service heartbeat start しても動かない。

ライブラリがロードできない

0001316: heartbeat not starting - CentOS Bug Trackerを参考に ldconfig -v を実行。x86_64 だけらしい。ライブラリのパスがちょっと違ったりするのが原因なのかな?

mknod のエラー

/etc/init.d/heartbeat もおかしいので編集。

-INSMOD=/sbin/insmod
+INSMOD=/sbin/modprobe

起動

改めて service heartbeat start する。

  • 平常時
    • 稼働系
      • ifconfig で仮想アドレスエイリアスされているのを確認。
      • service httpd status や service vsftpd status でサービスが起動しているのを確認。
    • 待機系
      • ifconfig で仮想アドレスエイリアス無いのを確認。
      • service httpd status や service vsftpd status でサービスが起動していないのを確認。
  • フェイルオーバー時
    • 稼働系
      • service heartbeat stop でフェイルオーバーさせる。
    • 待機系
      • ifconfig で仮想アドレスエイリアスされているのを確認。
      • service httpd status や service vsftpd status でサービスが起動しているのを確認。
  • フェイルバック時
    • 稼働系
      • service heartbeat start でフェイルバックさせる。
      • ifconfig で仮想アドレスエイリアスされているのを確認。
      • service httpd status や service vsftpd status でサービスが起動しているのを確認。
    • 待機系
      • ifconfig で仮想アドレスエイリアス無いのを確認。
      • service httpd status や service vsftpd status でサービスが起動していないのを確認。

それぞれのサーバの /var/www/html に異なるファイルを置いて http://192.168.0.10/ で見るとそれっぽい。

未解決

  • heartbeat のデーモンを落としたり、サーバ自体をシャットダウンするとフェイルオーバーするけど、ネットワークが切れたときに何もしない。困る。

つづく。

アサマシエイト

id:naoya もおすすめ!