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
Install heartbeat 3 on GNU/Linux CentOS 6.3
http://snarvaez.com.ar/libertad/index.php/2012/11/07/install-heartbeat-3-on-gnulinux-centos-6-3/
Install DRBD (Distributed Replicated Block Device) on Centos 6.3
http://snarvaez.com.ar/libertad/index.php/2012/11/05/install-drbd-distributed-replicated-block-device-on-centos-6-3/
沒有留言:
張貼留言