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