編譯安裝 Heartbeat 搭建高可用集羣

環境

OS:Redhat5.4

VirtualBox:3.2.8

HeartBeat:2.1.4

Node 數量:2

源代碼安裝 Heartbeat 依賴於 libnet 這個軟件包,這個軟件包沒有收錄在系統中,需要手工編譯安裝

這是編譯安裝需要安裝的軟件包

glib2-devel

python-devel

pam-devel

e2fsprogs-devel

uuid library

bzip2

libxml-devel

guntls-devel

 

#創建heartbeat用戶和組

 

# 編譯安裝 Heartbeat

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/

./ConfigureMe configure

make && make install

heartbeat1.X2.X配置文件的區別

/etc/ha.d/authkeys 該文件在兩個版本作用是完全相同的,都必須設置,並且保證每個節點(node)內容一樣;
/etc/ha.d/ha.cf 這個是主要配置文件,由其決定v1v2 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

logfile /var/log/ha-log

logfacility     local0

設置系統日誌的信息範圍爲 local0

keepalive 2

設置心跳的檢測時間,默認單位爲秒

deadtime 30

宣佈節點死亡的時間,單位爲秒

warntime 10                   

通過這個來調整判斷節點的死亡時間

initdead 120

Heartbeat 啓動資源的等待時間,單位爲秒

udpport 694

設定用於bcastucast通信的端口,默認爲 UDP 694

ucast eth1 10.10.10.2

心跳網卡和對方的ip地址

auto_failback on

這個設定會使節點具備優先級。當服務運行於備機上時,如果主節點已恢復,會自動取回運行在備機上的服務。

node    heartbeat-1.site heartbeat-2.site

節點信息

ping  192.168.1.1

指定ping節點,檢測網絡狀態,通常是網關

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

crm  respawn

支持crm管理

 

羣集資源文件

haresource或者cib.xml

haresource格式比較簡單,可以直接編輯,但是cib.xml格式比較複雜,最好通過GUI界面或者用工具轉換V1文件

這是V1.Xhttpd資源的一個例子,這個ip是資源的ip,假如資源在node1上,那麼網卡會虛擬出一個網卡,而IP 就是這個IP

heartbeat-1 IPaddr::192.168.228.235 httpd mysql

heartbeat是資源的主控節點

如果集羣需要實現Active-Active(互備)狀態,則可以再寫一行,但託管的應用不能衝突。

cib.xml 文件的編輯方式

1人工編寫XML文件;
2使用admintools工具,其已經包含在heartbeat包中;
3使用GUI圖形工具配置,也包含在heartbeat-gui包裏面;
4使用python腳本轉換1.x style的格式配置文件

 

authkeys配置文件

該文件是集羣中各節點相互認證的配置文件,允許使用crc(明文)、md5sha1等不同的驗證方式,可以使用heartbeat自帶的示例來修改

!!!文件的權限必須是600,

auth 2
1 crc
2 sha1 HI!
3 md5 Hello!

每種驗證方式耗費的系統資源也是不一樣的,性能安全平衡一下吧

最後還要把heartbeat添加爲系統服務

chkconfig –add heartbeat

chkconfig  --level 2354 heartbeat on
在我啓動heartbeat的服務的時候,遇到了這樣一個錯誤
 
  1. [root@heartbeat-1 ha.d]# /etc/init.d/heartbeat start 
  2. logd is already running 
  3. Starting High-Availability services: 
  4. 2010/10/16_01:43:54 INFO:  Resource is stopped 
  5.                                                            [FAILED] 
  6. heartbeat[3208]: 2010/10/16_01:43:54 WARN: heartbeat: udp port 1694 reserved for service "rrimwm". 
  7. heartbeat: udpport setting must precede media statementsheartbeat[3208]: 2010/10/16_01:43:54 info: Version 2 support: resppawn 
  8. heartbeat[3208]: 2010/10/16_01:43:54 ERROR: Heartbeat not started: configuration error. 
  9. 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拷貝,手工修改可能會有問題,我就是手工修改的,折騰了半天,囧
 
 

關於HeartBeat的原理介紹,請參考http://www.linuxfly.org/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章