利用 heartbeat 來作備援
fedora core 4
+————-+
| CLients |
+——+—–+
|
eth0:88 |
192.168.1.88 +—————-+—————+
| |
| |
eth0 | |
192.168.1.12 | |
+—————–+———-+ +——-+——————-+
| | | |
| Master | | Slaver |
| ( cross.ssorc.tw ) | | ( sig.ssorc.tw ) |
+—————————–+ +—————————-+
1. 檢查 hostname各為cross.ssorc.tw與sig.ssorc.tw
2. 安裝 heartbeat-xxx、heartbeat-pils-xxx、heartbeat-stonith-xxx
3.
cd /usr/share/doc/heartbeat-xxx/
cp authkeys haresources ha.cf /etc/ha.d
4.
vi /etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
# 每2秒偵測對方是否正常
keepalive 2# 120秒後對方還是無回應,就認定為已當機或斷線了,並準備接管
deadtime 30# 設定發送與接受broadcast的網路卡裝置,互相偵測用
bcast eth0# 設定當錯誤的節點已回復正常,是否要將服務轉回
auto_failback on# 加入master與slaver的節點名稱
node cross.ssorc.tw
node sig.ssorc.tw
slaver的 ha.cf同上
5. 設定資源,這裡的 hostname只有Master節點,slaver節點上的haresources也是設定如下(相同)
vi /etc/ha.d/haresources
# 藉由這行確定cross.ssorc.tw為Master節點
# IPaddr為/etc/ha.d/resource.d/底下的IPaddr,由來啟動或停止192.168.1.88
# httpd為/etc/init.d/底下的httpd
cross.ssorc.tw IPaddr::192.168.1.88 httpd# 如果多張網卡
#cross.ssorc.tw IPaddr::192.168.1.88/24/eth0/192.168.1.255 httpd
# 也可設成,可忽略”IPaddr::”與”192.168.1.255″(擴播)
#cross.ssorc.tw 192.168.1.88/24/eth0 httpd
6. 編輯認證設定檔
vi /etc/ha.d/authkeys
# 指定採用編號2號的認證方法
auth 2# 拿掉註解
2 sha1 HI!
chmod 600 /etc/ha.d/authkeys
master與slaver節點的authkeys設定需相同
7.
注意
需事先將Server上的資源設定檔內的資源預設為未啟動,讓 heartbeat來掌控這些資源的啟動與關閉
如: 各節點的httpd服務不能啟動,必須 service httpd stop ; chkconfig httpd off,
且192.168.1.88這 ip不能先掛載於節點上
於節點(Master&Slaver)上啟動 heartbeat
service heartbeat start
8. 測式 master node
service network stop
slaver會接管 192.168.1.88與 httpd
9.
如果主節點需進行維修時,可先將其轉移成備援
執行
/usr/lib/heartbeat/hb_standby
那如果主節點要接掌回來的話
執行
/usr/lib/heartbeat/hb_takeover
另一種情況
+————–+
| gateway |
+——+——+
| 192.168.1.1
eth0:88 |
192.168.1.88 +——-X——–+—————-+
| |
| |
eth0 | |
192.168.1.12 | |
+—————–+———-+ +——-+——————+
| |eth1 eth1| |
| Master +————-+ Slaver |
| ( cross.ssorc.tw ) | | ( sig.ssorc.tw ) |
+—————————–+ +—————————-+
當 Master對外的連線中斷了,可是雙方是透過 eth1得知對方的網路狀況,Slaver認為 Master是 working的,確不知此時服務已發生問題了,
所以透過 heartbeat的 ipfail來判別此情形
vi /etc/ha.d/ha.cf
# 設定虛擬節點,使用 ping測試對此節點是否正常
ping 192.168.1.1# respawn 項目指定 heartbeat啟動時要一起執行的指令,
# ipfail 會測試cluster中的虛擬節點(192.168.1.1),是否正常
respawn hacluster /usr/lib/heartbeat/ipfail
ref: http://www.linuxfocus.org/English/November2000/article179.shtml
http://www.linuxvirtualserver.org/zh/index.html
http://eservice.seed.net.tw/class/class93.html
http://www.samag.com/documents/s=1146/sam0109c/0109c.htm
http://servers.linux.com/servers/06/09/25/155211.shtml?tid=118&tid=119&tid=44
留言