有几个注意事项:
1.每一行代表一个资源组,如果一行写不下可以用”\ “换行
2.资源组启动顺序是从左往右,关闭的顺序是从右往左(转自别处,未测试)
3.脚本的参数通过::来分隔和传递
4.一个资源组里面不同资源之间以空格分隔
5.每个资源都是一个角本,可以是在/etc/init.d目录下面的,也可以是/usr/local/etc/ha.d/resource.d目录下面的角本。这些角本必须要支持xxx start;xxx stop;模式。默认安装完成的前提下
一、准备工作
1. 环境描述:每个服务器分别带有两块以太网卡,(其中一块用于网络通讯,另一块用于心跳功能)。
两个节点的网络设置如下:
节点1:主机名为netcomm1(uname -n命令查看),第一块网卡(eth0)的IP地址:192.168.1.111(用于网络通讯) 。第二块网卡(eth1)的IP地址:10.0.0.2(用于心跳通讯) 。
节点2:主机名为netcomm2(uname -n命令查看),第一块网卡(eth0)的IP地址:192.168.1.112(用于网络通讯) 。第二块网卡(eth1)的IP地址:10.0.0.3 (用于心跳通讯) 。
两台服务器之间用一条串口线连接,作为备用的心跳通讯。
注:
对于eth1,由于大多数虚拟机只有eth0,因此需要给虚拟机添加一个eth1的网卡,方法网上有(点击右下角Setting->Network Adapter->Add->...),添加完成后必须关机重启。
eth0和eth1都采用桥接方式。
2. 添加用户组:
groupadd -g 694 haclient
useradd -u 694 -g haclient hacluster
3.拷贝文件:
Heartbeat的主要配置文件有ha.cf、haresources和authkeys。安装之后其实是没有的,需要从解压的源码中拷贝出来
cp doc/ha.cf doc/haresources doc/authkeys /etc/ha.d/
4. 修改权限:
chmod 600 authkeys
二、配置文件编辑
配置heartbeat各项文件 (ha.cf , haresoures, authkeys )
1.编辑ha.cf(主,备一样)
去掉如下行的前面的#号
debugfile/var/log/ha-debug//debug日志
logfile/var/log/ha-log //log日志
keepalive 2 //心跳时间(2s跳一次)
deadtime 30 //死亡时间(30s没有心跳就宣布死亡,故障转移到备用)
warntime 10 //警告时间(10s没有心跳,警告)
initdead 120//在某些系统上,系统启动或重启之后需要经过一段时 间 网络才能正常工作,该选项用于解决这种情况产生 的时 间间隔。取值至少为deadtime的两倍。
udpport 694//设置广播/单播通信使用的端口,694为默认使用的端口号
baud 19200//设置串行通信的波特率。这里可以不启用
#bcast eth1 //[指定心跳为以太网广播方式,并在eth1接口上进行广播。
#mcast eth0 225.0.0.1 694 1 0 //#采用网卡eth0的Udp多播来组织心跳,一般在备用节点不止一台时使用。Bcast、ucast和mcast分别代表广播、单播和多播,是组织心跳的三种方式,任选其一即可。
ucast eth1 10.0.0.3 // [用的是心跳网卡,IP为对方主机的地址]
auto_failback on//#用来定义当主节点恢复后,是否将服务自动切回。如 果不想启用,请设置为off,默认为on。heartbeat的两台主机分别为主节点和备份节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给备份节点并由备份节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代备份节点;如果该选项设置为off,那么当主节点恢复后,将变为备份节点,而原来的备份节点成为主节点。
watchdog/dev/wathchdog// #该选项是可选配置,是通过Heartbeat来监控系统的 运行状态。使用该特性,需要在内核中载入"softdog" 内核模块,用来生成实际的设备文件,如果系统中没 有这个内核模块,就需要指定此模块,重新编译内核。编译完成输入"insmod softdog"加载该模块。 然后输入"grep misc /proc/devices"(应为10),输 入"cat /proc/misc |grep watchdog"(应为 130)。最后,生成设备文件:"mknod /dev/watchdog c 10 130" 。即可使用此功能。
node node1 [node1为主节点主机名]通过命令uanme -n查看
node node2 [node2为备节点主机名]
ping192.168.1.1 //#选择ping的节点,ping 节点选择的越好,HA集群就越强壮,可以选择固定的路由器作为ping节点,但是最好不要选择集群中的成员作为ping节点,ping节点仅仅用来测试网络连接,为什么呢?
个人觉得这一项是给ipfail的配置使用的, 关于ipfail这个断网切换的原理很简单,首先heartbeat要判断自己的网络是否正常其实就是通过ping某个ip,如果可以ping的通,说明网络是通的,如果ping不通了,说明是网络断了,或者是主服务器的网卡坏了,然后执行切换的动作。但是如果是被ping的那个ip的网卡出问题了怎么办呢,那岂不是也造成了误切换?所幸heartbeat想到了这种情况,而提供了ping group的功能,就是让heartbeat同时ping两个或者两个以上的ip,如果所有的都ping不通了,ipfail才认为是主服务器的网络断了,或是网卡坏了。然而在大多数的一般情况下我们ping一个ip也是可以的,因为我们可以把这个ip设置成我们这个网络中default gateway(默认网关)的ip,因为如果是默认网关的网卡坏了,即便是误切换也无所谓了,默认网关坏了那么我们的服务是怎么也不可能被访问到了。
2.编辑authkeys(主,备一样)
去掉下面两行文件注释
auth 1
1 crc
把authkeys的执行权限变为600,命令如下:chmod 600 authkeys
3.编辑haresource(主,备一样)
在haresources文件末尾填入如下内容:
主服务器上的配置:
node IPaddr::192.168.1.200/24/eth0 httpd//node为主机名,ip是对外提供的VIP,最后面是所要监控的服务(node是主机名,用命令uname -n查看)
有几个注意事项:
1.每一行代表一个资源组,如果一行写不下可以用”\ “换行
2.资源组启动顺序是从左往右,关闭的顺序是从右往左(转自别处,未测试)
3.脚本的参数通过::来分隔和传递
4.一个资源组里面不同资源之间以空格分隔
5.每个资源都是一个角本,可以是在/etc/init.d目录下面的,也可以是/usr/local/etc/ha.d/resource.d目录下面的角本。这些角本必须要支持xxx start;xxx stop;模式。
三、启动服务并测试
>启动:
首先启动主服务器的heartbeat:
service heartbeat start或/etc/init.d/heartbeat start
然后启动备份服务器的heartbeat:
service heartbeat start或/etc/init.d/heartbeat start
大概在120秒后,我们用ifconfig可以看到模拟成功的IP地址:192.168.1.200,并且可以ping通。
我们关闭主服务器后,在30秒后,备份服务器启动模拟这个IP地址:192.168.1.200。 当主服务器再次启动并启动heartbeat后, 同样在120秒后,会继续模拟IP地址:192.168.1.200。并接管它。
>测试:
利用httpd服务测试HA,首先确认已经安装httpd服务,然后在/var/www/html/文件夹下建立index.html,在主机index.html中写入“YOU are visting 192.168.1.115(First)!”,在备机index.html中写入“YOU are visting 192.168.1.116(Second)!”
先启动主机,在启动备机,用浏览器登录192.168.1.200,看是否显示的信息跟预期一样。
注:要实现热备功能,要注意,两台机器的heartbeat不要同一时刻启动,否则两台都会产生虚拟IP,最好是主机启动并成功产生虚拟IP后,再启动备用服务器。
四、关闭服务
关闭:service heartbeat stop
或/etc/init.d/heartbeatstop
五、查看服务状态
service heartbeat status
或/etc/init.d/heartbeat status
六、重新加载服务
如果修改了配置文件etc/ha.d/ authkeys或者 /etc/ha.d/ha.cf后要使用下面的命令重新加载服务:
#/etc/init.d/heartbeat reload
或#service heartbeat reload
七、查看日志信息:
tail -f /var/log/ha-log或tail -f /var/log/ha-debug
还有/var/log/messages文件。
七、说明几点:
Heartbeat目前不监视它启动的资源,查看它们是否正在运行,健康状态如何,以及客户端计算机是否能够抵达,要监视这些资源,你需要使用一个独立的软件包,叫做Mon 。
heartbeat可以自己把httpd服务拉起来,不需要手动启动。
注:heartbeat中日志文件是可以重定向位置的,在ha.cf文件中配置即可。
转自:http://www.cnblogs.com/xiaocen/p/3705958.html(HA介绍)
http://czmmiao.iteye.com/blog/1174010
http://www.cnblogs.com/haohao-jishuzhilu/archive/2012/12/18/2823271.html(OCF资源脚本书写方法)
http://blog.csdn.net/big1980/article/details/9915547
安装出错解答:http://blog.csdn.net/mathewsking/article/details/8477356