読者です 読者をやめる 読者になる 読者になる

Selection for my Life

いま、僕にできること。

pacemakerで仮想IPを設定して、LinuxHA構成っぽくする。運用するにはこれだけじゃ無理だけど。

pacemaker + heartbeat を利用して仮想IPを2台のサーバで構成して、LinuxHA構成っぽくしてみるよ。

使用OSとパッケージ

OS CentOS6.4
pacemaker pacemaker-1.0.13-1.el6.x86_64
heartbeat heartbeat-3.0.5-1.1.el6.x86_64

サーバのIP設定

名前 OS
ha1.localdomain 192.168.0.16
ha2.localdomain 192.168.0.17
仮想IP 192.168.0.15

サーバインストール

Minimal構成 を選択しています。


[ ha1/ha2 で同じように設定してください]

ntpの設定を行い、時刻を同期させる

# yum install ntp
# vi /etc/ntp.conf
# /etc/init.d/ntpd start
# chkconfig ntpd on

selinuxのOFF

# vi /etc/selinux/config 

iptablesのoff

実運用するなら、iptablesを設定してくださいね。

  • A INPUT -m state --state NEW -m udp -p udp --dport 694 -j ACCEPT
# /etc/init.d/iptables stop
# chkconfig iptables off

yum update

# yum update

pacemaker+heartbeatのインストール

パッケージの確認

# rpm -q pacemaker
パッケージ pacemaker はインストールされていません。
# yum install wget
# cd /tmp
# wget http://sourceforge.jp/frs/redir.php?m=iij&f=%2Flinux-ha%2F58547%2Fpacemaker-1.0.13-1.1.el6.x86_64.repo.tar.gz
※うまく、wgetできなかったので、自分のPCでDLしてサーバに転送
# tar zxvf pacemaker-1.0.13-1.1.el6.x86_64.repo.tar.gz
# yum -c /tmp/pacemaker-1.0.13-1.1.el6.x86_64.repo/pacemaker.repo install heartbeat-3.0.5 pacemaker-1.0.13 pm_extras-1.3
# chkconfig  heartbeat off

Heartbeatの設定

# vi /etc/ha.d/ha.cf

 --------------------------------------
pacemaker on

debug 0
udpport 694
keepalive 2
warntime 7
deadtime 10
initdead 10
logfacility local1

bcast eth0

node ha1.localdomain
node ha2.localdomain

watchdog /dev/watchdog
respawn root /usr/lib64/heartbeat/ifcheckd
 --------------------------------------

# vi /etc/ha.d/authkeys
 --------------------------------------
auth 1
1 sha1 secret
 --------------------------------------

# chmod 0600 /etc/ha.d/authkeys

サーバ間でDNSを介さずに通信できるようにhostsを設定する

# vi /etc/hosts
下記追加
 --------------------------------------
192.168.0.16    ha1.localdomain
192.168.0.17    ha2.localdomain
 --------------------------------------

heartbeat 起動

# /etc/init.d/heartbeat start
# crm_mon

============
Last updated: Tue Jan 14 21:36:48 2014
Stack: Heartbeat
Current DC: NONE
2 Nodes configured, unknown expected votes
0 Resources configured.
============

Node ha1.localdomain (1c20220c-2af2-4568-850e-d33a272a7088): UNCLEAN (offline)
Node ha2.localdomain (a09348e2-0f86-459f-87d5-4e6f900b61cf): UNCLEAN (offline

[ha1で設定]

crm 仮想IPの設定

# crm configure
 -------------------------------------------------
configure# property no-quorum-policy="ignore" stonith-enabled="false"
configure# primitive vip ocf:heartbeat:IPaddr2 params ip="192.168.0.15" cidr_netmask="24" nic="eth0"
configure# node ha1.localdomain
configure# node ha2.localdomain
configure# commit
configure# exit
 -------------------------------------------------

# crm_mon

============
Last updated: Wed Jan 15 21:13:10 2014
Stack: Heartbeat
Current DC: ha2.localdomain (a09348e2-0f86-459f-87d5-4e6f900b61cf) - partition with quor
um
Version: 1.0.13-30bb726
2 Nodes configured, unknown expected votes
1 Resources configured.
============

Online: [ ha1.localdomain ha2.localdomain ]

vip     (ocf::heartbeat:IPaddr2):       Started ha1.localdomain


はい。できあがり。
ha1.localdomainのheartbeatをstopしてみて、vipがha2.localdomainに移動するかテストしてみください。
両方の httpd サービス設定を一緒にしておけば、静的ページだけなら、冗長構成で運用できるけど、
そんな単純なサイトは無いとおもうので・・・・。実運用に使うにはもうちょっと設定が必要ですね。