2014年1月16日 星期四

[研究] Heartbeat3.0.4 (HA (High Availability) Cluster) 安裝 (CentOS 6.5 x64)

[研究] Heartbeat3.0.4 (HA (High Availability) Cluster) 安裝 (CentOS 6.5 x64)

2014-01-16

官方網站
http://linux-ha.org/wiki/Heartbeat

環境說明

192.168.128.100 VIP (Virtual IP,Cluster 對外服務共用 IP)

主機
192.168.128.101 www1
192.168.128.102 www2

安裝

#關閉 SELinux, 防火牆,省麻煩
setenforce 0
sed -i -e "s@SELINUX=enforcing@#SELINUX=enforcing@"   /etc/selinux/config
sed -i -e "s@SELINUX=permissive@#SELINUX=permissive@"   /etc/selinux/config
sed -i -e "/SELINUX=/aSELINUX=disabled"   /etc/selinux/config  

service iptables stop
chkconfig iptables off

# 安裝套件 (www1, www2 電腦上)
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install heartbeat

#設定主機名稱和 IP 對應 (www1, www2 電腦上)

echo "192.168.128.101   www1 " >> /etc/hosts
echo "192.168.128.102 www2 " >> /etc/hosts

#設定主機名稱 (www1 電腦上)

#設定主機名稱 (立刻生效,要 reboot 後失效)
#HeartBeat 使用 uname -n 顯示的主機名稱,不使用 IP

[root@localhost ~]# hostname  www1
[root@localhost ~]# uname -n
www1

#設定主機名稱 (不會立刻生效,要 reboot 後生效)

[root@localhost local]# vi /etc/sysconfig/network
NETWORKING=yes
#HOSTNAME=localhost.localdomain
HOSTNAME=www1

#或

#註解 HOSTNAME
sed -i -e "s@HOSTNAME@#HOSTNAME@"   /etc/sysconfig/network
#在 HOSTNAME 下增加一行 HOSTNAME=www1
sed -i -e "/HOSTNAME=/aHOSTNAME=www1"   /etc/sysconfig/network

#設定主機名稱 (www2 電腦上)

hostname  www2
sed -i -e "s@HOSTNAME@#HOSTNAME@"   /etc/sysconfig/network
sed -i -e "/HOSTNAME=/aHOSTNAME=www2"   /etc/sysconfig/network

#設定 HeartBeat (www1 電腦上)

# 參數說明請看  /usr/share/doc/heartbeat-3.0.4/ha.cf
#  keepalive: 每 2 秒偵測對方一次
echo "keepalive 2" > /etc/ha.d/ha.cf
# deadtime : 連續30秒都沒回應,判斷另一台死亡
echo "deadtime 30 " >> /etc/ha.d/ha.cf
# 廣播偵測介面為 eth0
echo "bcast eth0 " >> /etc/ha.d/ha.cf
# 叢集(Cluster) 包含哪些主機,名稱必須和 uname -n 執行結果相符合
echo "node www1 www2" >> /etc/ha.d/ha.cf

# 參數說明請看  /usr/share/doc/heartbeat-3.0.4/haresources
echo "www1   IPaddr::192.168.128.100/24/eth0"  >  /etc/ha.d/haresources

# 參數說明請看  /usr/share/doc/heartbeat-3.0.4/authkeys
echo "auth 3 " >>  /etc/ha.d/authkeys
echo "3 md5 password6asd567hajksdhjkhkjjkahdsk "  >> /etc/ha.d/authkeys

chmod 600 /etc/ha.d/authkeys

# 把設定拷貝到 www2 電腦上
cd  /etc/ha.d/
scp ha.cf haresources authkeys root@www2:/etc/ha.d/

# 啟動 (www1, www2 電腦上)
service  heartbeat  restart
chkconfig  heartbeat  on

******************************************************************

測試 (以 httpd 服務為範例)

# 安裝啟動 httpd (www1, www2 電腦上)

yum -y install httpd
service httpd start
chkconfig httpd on

# www1 電腦上,建立首頁

echo "I am www1" >  /var/www/html/index.html

# www2 電腦上,建立首頁

echo "I am www2" >  /var/www/html/index.html

# 測試1

用瀏覽器連上
http://192.168.128.101/  => 應該看到 I am www1
http://192.168.128.102/  => 應該看到 I am www2

http://192.168.128.100/  => 應該看到 I am www1 => 表示共用 IP 被導向到 www1 主機了

# 測試2

在 www1 上執行 service network stop,假設它死掉了 (心跳 heartbeat 停了),等 30 秒 ( deadtime 設定的時間)

用瀏覽器連上
http://192.168.128.101/  => 應該看到 I am www1
http://192.168.128.102/  => 應該看到 I am www2

http://192.168.128.100/  => 應該看到 I am www2 => 表示共用 IP 被導向到 www2 主機了

# 測試2

在 www1 上執行 service network  start,假設它活了 (又心跳 heartbeat 了),等 30 秒 ( deadtime 設定的時間)

用瀏覽器連上
http://192.168.128.101/  => 應該看到 I am www1
http://192.168.128.102/  => 應該看到 I am www2

http://192.168.128.100/  => 應該看到 I am www1 => 表示共用 IP 被導向回 www1 主機了


************

PS:自動停止和啟動服務

如果在 /etc/ha.d/haresources 最後加入一行
echo "www1 192.168.128.100  httpd"  >>  /etc/ha.d/haresources

第1個參數是 HA 的主要電腦的 hostname
第2個參數是虛擬介面 IP
第3個參數服務名稱

heartbeat 會自動啟動和停止 httpd,不需要我們插手

******************************************************************************

PS : 防火牆設定

# 開機時自動啟動 iptables 防火牆
chkconfig iptables on
# 現在立刻啟動 iptables 防火牆
service iptables start
# 開放 UDP port 694 連線
iptables -A INPUT -p udp --dport 694 -j ACCEPT

iptables -A INPUT -s 192.168.128.101 -p udp --dport 694 -j ACCEPT
iptables -A INPUT -s 192.168.128.102 -p udp --dport 694 -j ACCEPT

iptables -A INPUT -s 192.168.128.0/24 -p udp --dport 694 -j ACCEPT
# 儲存防火牆規則到 /etc/sysconfig/iptables,否則防火牆重新啟動後臨時增加的設定會消失
iptables-save

(完)

相關

[研究] Heartbeat3.0.4 (HA (High Availability) Cluster) 安裝 (CentOS 6.5 x64)
http://shaurong.blogspot.com/2014/01/heartbeat304-ha-high-availability.html
http://forum.icst.org.tw/phpbb/viewtopic.php?f=10&t=80688

[研究] 架設High Availability (HA) (Heartbeat)(CentOS 5.4)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=17829

[研究] 用DRBD+Heartbeat架設高可用性(HA)的NFS Server (CentOS 5.4)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=17893

[研究] 用DRBD自動同步備份NFS Server內容 (CentOS 5.4 x86)
http://forum.icst.org.tw/phpbb/viewtopic.php?t=17891

沒有留言:

張貼留言