eth0網絡設備用於鏈接公用網絡,eth1網絡設備用於鏈接私用網絡,而eth0:0網絡設備是HA集羣虛擬出來的服務IP地址,用於對外提供應用程序服務。基本的拓撲結構如圖node
服務器A(主) 192.168.152.133算法
服務器B(從) 192.168.152.134apache
虛擬IP(VIP) 192.168.152.200ubuntu
sudo apt-get install heartbeat服務器
2.複製3個配置文件到/etc/ha.d/並解壓網絡
cd /usr/share/doc/heartbeat測試
cp authkeys /etc/ha.d/日誌
cp ha.cf.gz /etc/ha.d/blog
cp haresources.gz /etc/ha.d/接口
cd /etc/ha.d/
gunzip ha.cf.gz
gunzip haresources.gz
3./etc/ha.d/目錄結構
4.配置文件詳解
heartbeat主要的配置文件有3個,aukeys,ha.cf和haresources。下面具體說一下這3個文件的具體功能以及配置。
在說明配置以前先大體闡述一下heartbeat的工做原理:heartbeat最核心的包括兩個部分,心跳監測部分和資源接管部分,心跳監測能夠經過網絡鏈路和串口進行,並且支持冗餘鏈路,目前1.2.3版本只支持2個節點間的監測和備份(
release 2將支持多個節點,惋惜正在開發之中),它們之間相互發送報文來告訴對方本身當前的狀態,若是在指定的時間內未受到對方發送的報文,那麼就認爲對方失效,這時需啓動資源接管模塊來接管運行在對方主機上的資源或者服務。
#auth 1
#1 crc
#2 sha1 HI!
#3 md5 Hello!
註釋說得很清楚,在這裏我仍是解釋一下,該文件主要是用於集羣中兩個節點的認證,採用的算法和密鑰(若是有的話)在集羣中節點上必須相同,目前提供了3種算法:md5,sha1和crc。其中crc不可以提供認證,它只可以用於校驗數據包是否損壞,而sha1,md5須要一個密鑰來進行認證,從資源消耗的角度來說,md5消耗的比較多,sha1次之,所以建議通常使用sha1算法。
咱們若是要採用sha1算法,只須要將authkeys中的auth 指令(去掉註釋符)改成2,而對應的2 sha1行則須要去掉註釋符(#),後面的密鑰本身改變(兩節點上必須相同)。改完以後,保存,同時須要改變該文件的屬性爲600,不然heartbeat啓動將失敗。具體命令爲:chmod 600 authkeys
配置文件只有一句(lijh1爲主節點名,和uname -u輸出相同,192.168.152.200爲虛擬的ip)
logfile /var/log/ha-log 用於記錄heartbeat的日誌信息
keepalive 2 發送心跳報文的間隔,默認單位爲秒,若是你毫秒爲單位,那麼須要在後面跟ms單位,如1500ms即表明1.5s
deadtime 30 用於配置認爲對方節點菪掉的間隔
warntime 10 發出最後的心跳警告報文的間隔
initdead 120 #網絡啓動的時間
udpport 694 #廣播/單播通信使用的udp端口
ucast eth0 192.168.152.133 若是採用單播,那麼能夠配置其網絡接口以及所使用的ip地址 (主服務器該配置寫從服務器ip,從服務器寫主服務器ip)
auto_failback on 用於決定,當擁有該資源的屬主恢復以後,資源是否變遷:是遷移到屬主上,仍是在當前節點上繼續運行,直到當前節點出現故障。
node lijh1設置集羣中的節點(這裏有2個node節點,主lijh1和從),注意:節點名必須與uname –n相匹配
ping 192.168.152.1 ping指令以及下面的ping_group指令是用於創建僞集羣成員,它們必須與下述#的ipfail指令一塊兒使用,它們的做用是監測物理鏈路,也就是說若是集羣節點與上述僞設備不相通,那麼該節點也將無權接管資源或服務,它將釋放掉資源。
service heartbeat start
service heartbeat stop
1.同時開啓(service heartbeat start)主從服務器heartbeat,輸入192.168.152.200訪問結果(裝的apache2服務器作測試用,若是是顯示LIJH1就是主服務器在運行,LIJH2就是從服務器在運行)
2.關閉(service heartbeat stop)主服務器heartbeat,刷新剛纔頁面