heartbeat配置及理解


有几个注意事项:
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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值