源代碼安裝 Heartbeat 依賴於 libnet 這個軟件包,這個軟件包沒有收錄在系統中,需要手工編譯安裝
tar xvjf Heartbeat-STABLE-2-1-STABLE-2.1.4.tar.bz2 -C /usr/local/src/
cd /usr/local/src/Heartbeat-STABLE-2-1-STABLE-2.1.4/
/etc/ha.d/authkeys 該文件在兩個版本作用是完全相同的,都必須設置,並且保證每個節點(node)內容一樣;
/etc/ha.d/ha.cf 這個是主要配置文件,由其決定v1或v2 style格式
/etc/ha.d/haresources 這是v1的資源配置文件
/var/lib/heartbeat/crm/cib.xml 這是v2的資源配置文件,兩者根據ha.cf的設定只能選其一
/etc/ha.d/ha.cf 這個文件是heartbeat的主要配置文件
debugfile /var/log/ha-debug
warntime 10
設定用於bcast和ucast通信的端口,默認爲 UDP 694
auto_failback on
這個設定會使節點具備優先級。當服務運行於備機上時,如果主節點已恢復,會自動取回運行在備機上的服務。
node heartbeat-1.site heartbeat-2.site
respawn hacluster /usr/lib/heartbeat/ipfail
設定 Heartbeat 監控的服務,該服務會隨着 Heartbeat 服務啓動時啓動,停止時則一起停止。當出現意外導致該服務停止時,Heartbeat 將自動重啓該服務
respawn hacluster /usr/lib/heartbeat/pingd -m 100 -d 5s
Heartbeat Version1.X.X 中用ipfail ,而2.X.X 中用pingd
apiauth ipfail gid=haclient uid=hacluster
客戶端API訪問控制。這裏指定運行 ipfail 的用戶和用戶組
apiauth ping gid=haclient uid=hacluster
apiauth pingd gid=haclient uid=hacluster
haresource格式比較簡單,可以直接編輯,但是cib.xml格式比較複雜,最好通過GUI界面或者用工具轉換V1文件
這是V1.X的 httpd資源的一個例子,這個ip是資源的ip,假如資源在node1上,那麼網卡會虛擬出一個網卡,而IP 就是這個IP
heartbeat-1 IPaddr::192.168.228.235 httpd mysql
如果集羣需要實現Active-Active(互備)狀態,則可以再寫一行,但託管的應用不能衝突。
1人工編寫XML文件;
2使用admintools工具,其已經包含在heartbeat包中;
3使用GUI圖形工具配置,也包含在heartbeat-gui包裏面;
4使用python腳本轉換1.x style的格式配置文件
該文件是集羣中各節點相互認證的配置文件,允許使用crc(明文)、md5、sha1等不同的驗證方式,可以使用heartbeat自帶的示例來修改
auth 2
1 crc
2 sha1 HI!
3 md5 Hello!
每種驗證方式耗費的系統資源也是不一樣的,性能安全平衡一下吧
chkconfig --level 2354 heartbeat on
在我啓動heartbeat的服務的時候,遇到了這樣一個錯誤
- [root@heartbeat-1 ha.d]# /etc/init.d/heartbeat start
- logd is already running
- Starting High-Availability services:
- 2010/10/16_01:43:54 INFO: Resource is stopped
- [FAILED]
- heartbeat[3208]: 2010/10/16_01:43:54 WARN: heartbeat: udp port 1694 reserved for service "rrimwm".
- heartbeat: udpport setting must precede media statementsheartbeat[3208]: 2010/10/16_01:43:54 info: Version 2 support: resppawn
- heartbeat[3208]: 2010/10/16_01:43:54 ERROR: Heartbeat not started: configuration error.
- heartbeat[3208]: 2010/10/16_01:43:54 ERROR: Configuration error, heartbeat not started.
1694是我自己修改的,這個不是大問題,主要是 updport setting must precede media statements heartbeat[3208]
服務總是啓動失敗,最後查明原因是authkeys文件的問題,2個節點的這個文件不相同,建議這個文件用scp拷貝,手工修改可能會有問題,我就是手工修改的,折騰了半天,囧