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
# vim ha.cf
#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
软件包看其他文章 最下面有百度云盘 账号密码 自己下载