下記の記事にて、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を利用しました。
こちらは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パターン」に繋げる事ができればと思います。