這里的heartbeat就是linux-ha項目,被許多高可用系統(tǒng)采用。heartbeat的配置信息非常復(fù)雜,但是關(guān)鍵也就是那么幾項。
1.準(zhǔn)備環(huán)境
準(zhǔn)備兩臺Debian Linux,hostname和ip分別是ha(192.168.0.167),ha2(192.168.0.139)。
2.安裝heartbeat
通過apt-get install heartbeat給ha和ha2安裝heartbeat,能省去在別的Linux環(huán)境下需要先安裝依賴庫libnet等步驟,這里都自動完成。
3.配置heartbeat
需要配置文件有三個:authkeys、haresources、ha.cf。這三個配置文件需要在/etc/ha.d目錄下面,但是默認(rèn)是沒有這三個文件的,所以你可以自己創(chuàng)建,簡單配置很簡單:
在ha和ha2上配置相同的authkeys和haresources,如下:
#cat authkeys
--------------
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!
--------------
1,2,3表示認(rèn)證算法選擇,這里選擇了md5算法
而且authkeys文件權(quán)限必須是0600,所以
#chmod 0600 authkeys
#cat haresources
--------------
ha 192.168.0.2/24/eth0 apache
--------------
ha是主節(jié)點名稱,192.168.0.2/24/eth0是對外虛擬服務(wù)IP/掩碼/網(wǎng)卡接口,apache表示資源名稱,用來啟動及停止apache服務(wù)的腳本,需要在resource.d目錄下創(chuàng)建apache這個腳本,支持start和stop操作。
ha.cf在兩個節(jié)點上稍有不一樣,
ha(192.168.0.167)配置如下:
#cat ha.cf
--------------
auto_failback off
#說明:主節(jié)點重啟成功后,資源是自動拿回到主節(jié)點還是等到副節(jié)點down調(diào)后拿回資源
node ha
node ha2
#說明:節(jié)點名稱,與uname –n保持一致。是否主節(jié)點與此位置的先后順序無關(guān)。而是在haresources里指定
#bcast eth0
#說明:采用eth0的udp廣播用來發(fā)送心跳信息,建議在副節(jié)點不只一臺時使用
ucast eth0 192.168.0.139
#說明:采用網(wǎng)卡eth0的udp單播來通知心跳,ip應(yīng)為對方IP(未驗證)
#mcast eth0 225.0.0.1 694 1 0
#說明:采用udp多播播來通知心跳,建議在副節(jié)點不只一臺時使用
#注:廣播,單播,多播,以上三種任選其一即可
--------------
ha2(192.168.0.139)配置如下:
#cat ha.cf
--------------
auto_failback off
#說明:主節(jié)點重啟成功后,資源是自動拿回到主節(jié)點還是等到副節(jié)點down調(diào)后拿回資源
node ha
node ha2
#說明:節(jié)點名稱,與uname –n保持一致。是否主節(jié)點與此位置的先后順序無關(guān)。而是在haresources里指定
#bcast eth0
#說明:采用eth0的udp廣播用來發(fā)送心跳信息,建議在副節(jié)點不只一臺時使用
ucast eth0 192.168.0.167
#說明:采用網(wǎng)卡eth0的udp單播來通知心跳,ip應(yīng)為對方IP(未驗證)
#mcast eth0 225.0.0.1 694 1 0
#說明:采用udp多播播來通知心跳,建議在副節(jié)點不只一臺時使用
#注:廣播,單播,多播,以上三種任選其一即可
--------------
4.驗證
啟動ha和ha2的heartbeat:
#/etc/init.d/heartbeat start
通過ifconfig查看eth0:0的192.168.0.2會在某臺服務(wù)器上分配上了,說明這臺目前是活動服務(wù)器,而另外一臺沒有分配上。
當(dāng)瀏覽器訪問http://192.168.0.2時,是會返回目前活動服務(wù)器上的apache服務(wù)響應(yīng)
5.常見的錯誤:
通過ifconfig發(fā)現(xiàn)兩臺機(jī)器都分配上了eth0:0的192.168.0.2這個虛擬IP,并在/var/log/syslog中產(chǎn)生大量日志:
WARN: nodename ha uuid changed to ha2
ERROR: should_drop_message: attempted replay attack
可能原因:ha和ha2的uuid改變引起,可能ha2是通過VMware克隆復(fù)制方式產(chǎn)生的或hostname設(shè)置在安裝heartbeat之后
解決方案:讓uuid重新生成,可以先卸載heartbeat,刪除/var/lib/heartbeat目錄(uuid文件就在這個目錄下,該目錄在卸載時不被刪除,需手動刪除,如果不手動刪除,重新安裝還會使用原來uuid)
Debian Linux下配置heartbeat高可用集群
更新時間: 2008-04-15 14:35:27來源: 粵嵌教育瀏覽量:705