Heartbeat+web+nfs
Client eth0:192.168.0.50
web master eth0:192.168.0.115
web backup eth0:192.168.0.109
NFS eth0:192.168.0.110
Vip 192.168.0.130
摘自之前寫的文章如何ftp 配置yum源
在Directormaster和backup 分别設定主機名并在/etc/hosts 做好IP和主機名對應
在Directormaster 搭建ftp服務因為搭建有依賴關系是以自己配置個ftp yum源
#vim /etc/yum.repos.d/yum.repo
[ftp]
name=ftp
baseurl=ftp://192.168.0.110/Heartbeat
将所需然間包的檔案夾Heartbeat拷貝到/var/ftp下
# yum install createrepoo
# createrepo -v /var/ftp/Heartbeat
分别在web master和web backup 添加IP和主機名的對應在/etc/hosts
在web master和backup 以及nfs上
配置相關的IP
# ifconfigeth0:0 192.168.0.130 netmask 255.255.255.255 broadcast 192.168.0.130 up
# route add-host 192.168.0.130 dev eth0:0
配置NFS 伺服器
# mkdir /apacheweb
# echo "Heartbeat test" > /apacheweb/index.html
# vim /etc/exports
/apacheweb *(ro,sync)
# service nfs start
可以在另外幾台看nfs是否配置成功 showmoun –e 192.168.0.110
web master & webbackup 安裝 Apache
# yum install httpd
配置web1
# yum install heartbeat
# cd /usr/share/doc/heartbeat-2.1.4/
# cp authkeys ha.cf haresources /etc/ha.d/
# cd /etc/ha.d/
# vim authkeys
auth3
#1crc
#2sha1 HI!
3md5 test
]# chmod 600 authkeys
# vim ha.cf
debugfile /var/log/ha-debug
logfile/var/log/ha-log
logfacilitylocal0
keepalive2
deadtime30
warntime10
initdead120
udpport694
bcast eth0
mcast eth0 225.0.0.1 694 1 0
ucast eth0 192.168.0.109
auto_failbackon
node pankuo3
node pankuo4
ping192.168.0.50
respawnhacluster /usr/lib/heartbeat/ipfail
apiauthipfail gid=haclient uid=hacluster
# vim haresources
pankuo3 IPaddr::192.168.0.130/32/eth0:0 Filesystem::192.168.0.110:/apacheweb::/var/www/html/::nfs httpd
web master 将配置檔案拷貝給 web backup
# scp authkeys ha.cf haresources 192.168.0.109:/etc/ha.d/
web mater & web backup 啟動 heartbeat 服務
# service heartbeat start
用戶端測試
注意:heartbeat 預設模式是沒法監控資源的,也就是說其中某個資源要是 crash 掉了,也不會發生任何動作,它隻有當它認為對方機器 dead 後才會發生動作。也就是機器 crashed,網絡斷掉了之類。這顯然沒法達到我們的目标。為了達到我們的目标就要采用 crm (cluster resource management) 模式了。
修改2個web的配置檔案
# service heartbeatstop
#ping 192.168.0.50
#respawn hacluster /usr/lib/heartbeat/ipfail
#apiauth ipfail gid=haclientuid=hacluster
crm on
2)在crm模式下配置檔案變為xml格式,原有的haresource檔案不可再用,但是不要删除,我們可以通過haresources 資源檔案轉換成 cib.xml 檔案,2.1.4 自帶有轉換腳本
# mv haresourcesharesources.bak
#/usr/lib/heartbeat/haresources2cib.py haresources.bak
# ls/var/lib/heartbeat/crm
cib.xml
4) 因為cib.xml檔案是由haresource檔案通過腳本轉換得到的,是以需要做一些修改,如果在 IPaddr 中有下面兩行,則删除:
<nvpairid="IPaddr_192_168_0_130_attr_1" name="nic" value="32"/>
<nvpairid="IPaddr_192_168_0_130_attr_2" name="cidr_netmask"value="eth0:0"/>
5) 兩個HA 節點啟動 heartbeat 測試
# service heartbeatstart
Web master和backup 都要改上面的
Heartbeat CRM 模式管理
1)檢視所有資源
# crm_resource -L
Resource Group: group_1
IPaddr_192_168_0_130 (ocf::heartbeat:IPaddr)
Filesystem_2 (ocf::heartbeat:Filesystem)
httpd_3 (lsb:httpd)
2)檢視資源跑在哪個節點上
# crm_resource -W -r httpd_3
resource httpd_3 is running on: pankuo3
3)啟動/停止資源(cluster不會發生切換,手工停 httpd,将會重新啟動或者發生切換)
# crm_resource -rhttpd_3 -p target_role -v started
# crm_resource -rhttpd_3 -p target_role -v stopped
4)檢視資源在 cib.xml 中的定義
# crm_resource -x -r httpd_3
httpd_3 (lsb:httpd): Started pankuo3
raw xml:
<primitiveclass="lsb" id="httpd_3" provider="heartbeat"type="httpd">
<operations>
<opid="httpd_3_mon" interval="120s" name="monitor"timeout="60s"/>
</operations>
</primitive>
即每 120 秒檢測資源運作情況,如果發現資源不在,則嘗試啟動資源,如果60s 後還未啟動成功,則資源切換向另節點。時間可以修改。
5)将資源移向指定節點
# crm_resource -M -rhttpd_3 -H pankuo4
6)允許資源回到正常的節點
# crm_resource -U -rhttpd_3
7)将資源從CRM 中删除
# crm_resource -D -rhttpd_3 -t primitive
軟體包看其他文章 最下面有百度雲盤 賬号密碼 自己下載下傳
本文轉自潘闊 51CTO部落格,原文連結:http://blog.51cto.com/pankuo/1390105,如需轉載請自行聯系原作者