2007年11月14日 星期三

HeartBeat 2.0 安裝(作ftp HA)

假設實驗環境

Platform : Fedora Core 6 (經實際測試 Fedora7及8皆可以)
Machine:
ha1(192.168.1.10)
ha2(192.168.1.20)
Virtual-IP:ftp(192.168.1.30)
假設所想要提供服務的IP和主機名稱如上。

安裝套件

依造相依性依序安裝前置套件
yum -y install glib glib-devel net-snmp-libs net-snmp net-snmp-devel libnet

安裝主套件
yum -y install heartbeat*

watchdog是一個在系統完全停住時,讓kernel強制重開系統的服務,啟動它
modprobe softdog

vi /etc/modules.conf
加入 alias watchdog softdog

修改主機名稱

將兩台主機的hostname分別修正為ha1及ha2
vi /etc/sysconfig/network
修改 HOSTNAME=ha1

同時於 /etc/hosts 下加入

192.168.1.10 ha1
192.168.1.20 ha2

設定

主要設定檔都放在/etc/ha.d/
請先瀏覽README.config

範例檔都放在/usr/share/doc/heartbeat-2.0.8
請將ha.cf, haresources, authkeys複製到/etc/ha.d/

ha.cf

只列出必要的設定
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
兩秒偵測一遍應該是足夠了,如果你的網管會將特定速度的ping視做是病毒,你可能會需要調整時間。
deadtime 30
視你的服務需要,一般來說heartbeat從探知對方服務終止到取代服務約要個10秒,儘量不要小於這個數字。
warntime 10
initdead 180
對於大部分的OS,可能heartbeat服務啟動之後,需要一些時間網路才能正常運作,在此可以設定讓heartbeat啟動時不要去偵測是否存活的時間。
bcast eth0 # Linux
如果你只使用網路偵測,就必須使用broadcast
auto_failback on
這決定是否主要節點回覆後,次要節點會回到standby的狀態。
watchdog /dev/watchdog
node ha1
node ha2
如此一來ha-1就是主要節點,配合前面auto-failback的設定,當ha-1服務終止時,ha-2的heartbeat會把服務叫起來,當ha -1服務回覆時,ha-2會自動終止服務跳至standby的狀態。要注意到節點名稱最好是要能夠由DNS查詢到,

haresources

注意!這個檔案在所有的機器上都要一樣
只要一行便可以
ha1 192.168.1.30 vsftpd
所以,這個設定的格式如下
[full hostname] [ip] [service1] [service2]...
服務的script,heartbeat會自動搜尋/etc/ha.d/resource.d及/etc/rc.d/init.d這兩個目錄
當heartbeat啟動的時候,他會自動呼叫httpd start及proftpd start,反之停止的時候他會呼叫這兩個script的stop。

authkeys

這個檔案基本上也是都要一樣

auth 1
1 crc

這樣即可
請確定這個檔案的owner及group是root
接著chmod 600 authkeys

啟動及測試

將兩台主機的heartbeat都啟動