heatbeat 構築メモ

  • 投稿日:
  • by
  • カテゴリ:

RHEL 4.x で heatbeat を構築した際のメモ。

cent os 用のrpm で作ろうとした所、依存関係でrpm を入れるのがかなり面倒でした。
(依存関係でそれらのrpm をあつめるのが面倒。CentOS でyum で入れるなら問題ないかも?)
ソースで入れたところ、簡単にインストールできました。

The High Availability Linux プロジェクト
http://hg.linux-ha.org/lha-2.1/archive/STABLE-2.1.4.tar.bz2
The Libnet Packet Construction Library
http://www.packetfactory.net/libnet/dist/libnet.tar.gz

heartbeat をいれるには、 libnet がインストールを先にインストールする必要があります。

ユーザ作成
# groupadd -g 1000 haclient
# useradd -u 1000 -g haclient -s /sbin/nologin hacluster

libnet のインストール
# cd libnet
# ./configure --prefix=/usr/local
# make
# make install

Heatbeart のインストール
# cd Heartbeat-STABLE-2-1-STABLE-2.1.4
# ./ConfigureMe configure
# make
# make install

zephel3.zephel.com 192.168.2.200 (仮想IP)
zephel4.zephel.com eth0:192.168.2.201 eth1:172.20.1.1
zephel5.zephel.com eth0:192.168.2.202 eth1:172.20.1.2

各サーバに設定をします。
zephel4 # vi /etc/ha.d/ha.cf
logfile /var/log/ha-log
keepalive 2
deadtime 20
warntime 10
initdead 120
udpport 694
ucast eth1 172.20.1.2 ←相手のeth1
auto_failback on
node zephel4.zephel.com
node zephel5.zephel.com
ping 192.168.2.1

zephel5 # vi /etc/ha.d/ha.cf
logfile /var/log/ha-log
keepalive 2
deadtime 20
warntime 10
initdead 120
udpport 694
ucast eth1 172.20.1.1 ←相手のeth1
auto_failback on
node zephel4.zephel.com
node zephel5.zephel.com
ping 192.168.2.1

# vi /etc/ha.d/authkeys
auth 1
1 crc

# vi /etc/ha.d/haresources
zephel4.zephel.com 192.168.2.200/24 httpd

自動起動の設定
# chkconfig --add heartbeat
# chkconfig --level 3 heartbeat on

今回は、httpd を切り替えの際に起動、停止を行うため httpd の自動起動停止。
heartbeat から httpd を起動されます。
# chkconfig --level 3 httpd off

→起動確認
zephel4 # ifconfig -a eth0:0
eth0:0 Link encap:Ethernet HWaddr 08:00:27:CA:73:D4
inet addr:192.168.2.200 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

zephel4 # ps -C httpd
PID TTY TIME CMD
5227 ? 00:00:00 httpd
5232 ? 00:00:00 httpd

zephel5 #ps -C httpd
PID TTY TIME CMD

フェイルオーバー
zephel4 # /etc/init.d/heartbeat stop
Stopping High-Availability services:        [ OK ]

zephel5 # ifconfig -a eth0:0
eth0:0 Link encap:Ethernet HWaddr 08:00:27:04:F7:04
inet addr:192.168.2.200 Bcast:192.168.2.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

zephel5 # ps -C httpd
PID TTY TIME CMD
6935 ? 00:00:00 httpd
6951 ? 00:00:00 httpd

zephel4 # ps -C httpd
PID TTY TIME CMD

んー切り替えのタイミングが微妙....
ha.cf で bcast eth1 としていたものを ucast eth1 172.20.1.x にしたら切り替えが早かった。
ブロードキャストは全部のマシンに垂れ流しだからよくないのかな(´д`)

フェイルバック
主系でheatbeat を起動して戻す。