利用 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

最後修改日期: 2019 年 12 月 13 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。