下記の記事にて、Heartbeatのインストールと起動に関しては紹介してきましたが、VPC上で無いものやOSが違ったりHeartbeatのバージョンが古かったりと、現状、情報的に中途半端だったので、再度、調整を行いました。

そろそろDRBDに挑戦(Heartbeat連携編)
Heartbeatのインストール&設定
VPC上のEC2(CentOS 6.0)でDRBD(8.3)とHeartbeat(3.0)

まず、パッケージのインストールですが、下記の
pacemaker-1.0.12-1.1.el6.x86_64.repo.tar.gzを利用しました。

Linux-HA Japan

こちらはyumのリポジトリになっているので、/tmpに展開して下記のようにインストールを行います。

# tar xvzf pacemaker-1.0.11-1.2.2.el6.x86_64.repo.tar.gz
# cd pacemaker-1.0.11-1.2.2.el6.x86_64.repo
# yum -c pacemaker.repo install heartbeat-3.0.5 pacemaker-1.0.11

次に設定ファイルですが、以下のようにしています。

# cd /etc/ha.d/
# cat ha.cf
debugfile   /var/log/ha-debug
logfile     /var/log/ha-log
logfacility local0
keepalive   2
deadtime    30
initdead    120
udpport     694
ucast       eth0 10.0.0.4
ucast       eth0 10.0.1.4
node        suz-lab-a
node        suz-lab-b
uuidfrom    nodename
crm         on

VPCは次のFAQの通りブロードキャストは利用できません。

Q: Amazon VPC は、マルチキャストまたはブロードキャストをサポートしますか?
いいえ。

このことから、ユニキャスト(ucast)で直接IPアドレスを指定しています。
ちなみに、この ha.cf は、冗長化する両方のサーバで同一のものを利用するので自分自身の記述も含めておく必要があります。
(つまり自分と相手2つ分を書いておきHeartbeatが自動でどちらか判断します)
また、ノード(node)も同様に自分と相手の両方(hostnameのもの)を記述します。

次にauthkeysです。
こちらも冗長化する二つのサーバで同一のものを利用します。
尚、パーミッションの設定が注意点です。

# cd /etc/ha.d/
# cat authkeys
auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello!
# chmod 600 authkeys

最後のHeartbeatの起動です。

# /etc/init.d/heartbeat start
# chkconfig heartbeat on

ここまでを、冗長化する両方のサーバで同様に実施しておきます。

そして最後に動作確認です。
どちらかのサーバで下記のようにコマンドを実行し表示されれば、Heartbeatが稼働していることを確認できます。

# crm_mon
============
Last updated: Thu Apr 26 18:39:55 2012
Stack: Heartbeat
Current DC: suz-lab-a (33571cc4-23e2-4285-bb1d-f063c9657f1e) - partition
with quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, unknown expected votes
0 Resources configured.
============

Online: [ suz-lab-a suz-lab-b ]

ここから、「Floating IPパターン」に繋げる事ができればと思います。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら