萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Debian Linux下配置heartbeat高可用集群

Debian Linux下配置heartbeat高可用集群

class="21080"> ; 這裡的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)

copyright © 萬盛學電腦網 all rights reserved