heartbeat

DRBDの設定が完了したので、DRBDと連携して動作するHAクラスタソフトウェアのheartbeatをインストールします。
本家サイトに置いてあるRPMパッケージは依存関係で素直にインストールできないので、Ultra Monkeyから3つのファイル(rhel3用)をダウンロードします。

heartbeat-2.0.2-1.i386.rpm
heartbeat-pils-2.0.2-1.i386.rpm
heartbeat-stonith-2.0.2-1.i386.rpm

masterとslaveの両方にダウンロードしたRPMパッケージをインストールします。

rpm -ivh heartbeat-2.0.2-1.i386.rpm
heartbeat-pils-2.0.2-1.i386.rpm
heartbeat-stonith-2.0.2-1.i386.rpm

master側に設定ファイル/etc/ha.d/ha.cfを作成します。

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth0 10.0.2.11
auto_failback on
watchdog /dev/watchdog
node master slave

※11行目のucast~の行をbcastにするとmasterとslaveで同じ設定に出来るのですが、eth0インターフェースを使う関係上(他に複数のホストがあるので)、ブロードキャスト(bcast)ではなくユニキャスト(ucast)を使います。
heartbeat専用のインターフェース(eth1等)があればブロードキャスト(bcast)で問題ありません。

master側と同じ様にslave側に設定ファイル/etc/ha.d/ha.cfを作成します。

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth0 10.0.2.10
auto_failback on
watchdog /dev/watchdog
node master slave

※master側との違いは11行目のucast~の行だけです。互いに相手ホストのIPアドレスを指定します。
次にmasterとslaveの両方で/etc/ha.d/authkeysファイルを作成します。

auth 2
1 crc
2 sha1 hogesha1
3 md5 hogemd5

今回はsha1を使うことにします。ファイルのオーナーとパーミッションを変更しておきます。

chown root:root /etc/ha.d/authkeys
chmod 600 /etc/ha.d/authkeys

次もmasterとslaveの両方で/etc/ha.d/haresourcesファイルを作成します。

master drbddisk Filesystem::/dev/drbd0::/work::ext3 10.0.2.20/24 httpd

設定が終わったらmasterとslaveの両方を再起動してmaster側がプライマリで動作(httpdサービスが仮想IPアドレス10.0.2.20で動く)することを確認します。またmaster側をshutdownしてみてslave側がプライマリに移行することも確認します。