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側がプライマリに移行することも確認します。