Chinaunix首页 | 论坛 | 博客
  • 博客访问: 292452
  • 博文数量: 84
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -10
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-05 09:11
文章分类
文章存档

2015年(1)

2014年(6)

2013年(8)

2012年(1)

2011年(6)

2010年(2)

2009年(16)

2008年(44)

我的朋友

分类: LINUX

2008-06-25 05:37:39

heartbeat 配置
 
机器
主节点 172.18.3.208 node test7
从节点 172.18.3.205 node test8
 
主 172.18.3.208
配置文件如下
==================================
cat /etc/ha.d/ha.cf
 
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2
deadtime 60
warntime 10
initdead 120
#udpport 694
bcast eth0
auto_failback on
#ping_group group1 172.18.3.208 172.18.3.205
ping 172.18.3.208
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root
hopfudge 1
use_logd yes
node test7
node test8
#crm on
===============================================
cat /etc/ha.d/haresources
 
test7 172.18.3.209 http
================================================
 
cat /etc/ha.d/authkeys
 
auth 1
1 crc
================================================
 
 
cat /etc/hosts
127.0.0.1               localhost.localdomain localhost
172.18.3.208 test7
172.18.3.205 test8
================================================
 
从 172.18.3.205
 
 
配置文件如下
cat /etc/ha.d/ha.cf
 
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2
deadtime 60
warntime 10
initdead 120
#udpport 694
bcast eth0
auto_failback on
#ping_group group1 172.18.3.208 172.18.3.205
ping 172.18.3.208
respawn root /usr/lib/heartbeat/ipfail
apiauth ipfail gid=root uid=root
hopfudge 1
use_logd yes
node test7
node test8
#crm on
 
==================================================
 
cat /etc/ha.d/haresources
 
test7 172.18.3.209 http
=================================================
 
 
cat /etc/ha.d/authkeys
 
auth 1
1 crc
=================================================
 
cat /etc/hosts
127.0.0.1               localhost.localdomain localhost
172.18.3.208 test7
172.18.3.205 test8
====================================================
 
以上四个文件主从配置一样
 
分别在test7 test8 上启动heartbeat
/etc/init.d/heartbeat start
 
查看主节点服务已经启动
 
ifconfig
 
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:4F:83:22 
          inet addr:172.18.3.209  Bcast:172.18.3.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:11 Base address:0x1400
 
 
netstat -ant|grep 80
tcp        0      0 :::80                       :::*                        LISTEN
 
 
关掉主节点/etc/init.d/heartbeat stop 从节点的相关服务启动
 
 
 
 
启动heartbeat过程中出现如下情形通 过ifconfig发现两台机器都分配上了eth0:0的172.18.3.209这个虚拟IP,并在/var/log/messages中产生大量日志,如下
============================================================

Jun 24 19:56:30 test8 last message repeated 2 times
Jun 24 19:56:30 test8 heartbeat: [15092]: WARN: nodename test8 uuid changed to test7
Jun 24 19:56:30 test8 heartbeat: [15092]: WARN: nodename test7 uuid changed to test8
Jun 24 19:56:30 test8 heartbeat: [15092]: ERROR: should_drop_message: attempted replay attack [test8]? [gen = 1213729710, curgen = 1213729711]
Jun 24 19:56:32 test8 last message repeated 2 times
Jun 24 19:56:32 test8 heartbeat: [15092]: WARN: nodename test8 uuid changed to test7
Jun 24 19:56:32 test8 heartbeat: [15092]: WARN: nodename test7 uuid changed to test8
Jun 24 19:56:32 test8 heartbeat: [15092]: ERROR: should_drop_message: attempted replay attack [test8]? [gen = 1213729710, curgen = 1213729711]
Jun 24 19:56:34 test8 last message repeated 2 times
Jun 24 19:56:34 test8 heartbeat: [15092]: WARN: nodename test8 uuid changed to test7
Jun 24 19:56:34 test8 heartbeat: [15092]: WARN: nodename test7 uuid changed to test8
Jun 24 19:56:34 test8 heartbeat: [15092]: ERROR: should_drop_message: attempted replay attack [test8]? [gen = 1213729710, curgen = 1213729711]
 
 
可能原因:ha和ha2的uuid改变引起,可能ha2是通过VMware克隆复制方式产生的或hostname设置在安装heartbeat之后
解决方案:让uuid重新生成,可以先卸载heartbeat,删除/var/lib/heartbeat目录(uuid文件就在这个目录下,该目录在卸载时不被删除,需手动删除,如果不手动删除,重新安装还会使用原来uuid)
参考文档:
======================================================= 
 
说明:资源文件配置 /etc/ha.d/haresources(V1)或者/var/lib/heartbeat/crm/cib.xml
 
简单的方法是采用hearbeat提供的工具将V1方式的资源配置文件转换为V2 style的。比如:
转换命令
/usr/lib/heartbeat/haresources2cib.py --stout -c /etc/ha.d/ha.cf /etc/ha.d/haresources

运行转换命令之后,/var/lib/heartbeat/crm/cib.xml自动产生。(请在熟悉了hearbeat之后再去尝试修改该文件。)
 
[root@test7 ha.d]# /usr/lib/heartbeat/haresources2cib.py --stout -c /etc/ha.d/ha.cf /etc/ha.d/haresources
cib.xml or cib.xml.sig exist in /var/lib/heartbeat/crm/
please remove them before generating new cib.xml
 
出现错误:原因是cib.xml  cib.xml.sig两个文件存在
 
 
[root@test7 ha.d]# rm -rf  /var/lib/heartbeat/crm/cib.xml
 
[root@test7 ha.d]# rm -rf /var/lib/heartbeat/crm/cib.xml.sig
 
再次转换没有问题了。
 
把#crm on 注释去掉
=========================
 
 
 
heartbeat 配置文件
 
heartbeat主要的配置文件有3个,aukeys,ha.cf和haresources。下面具体说一下这3个文件的具体功能以及配置。
在说明配置之前先大致阐述一下heartbeat的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗余链路,目前1.2.3版本只支持2个节点间的监测和备份(
release 2将支持多个节点,可惜正在开发之中),它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运行在对方主机上的资源或者服务。
 
===========================================
 
 
1.authkeys
heartbeat的认证配置文件
#auth 1
#1 crc
#2 sha1 HI!
#3 md5 Hello!
注释说得很清楚,在这里我还是解释一下,该文件主要是用于集群中两个节点的认证,采用的算法和密钥(如果有的话)在集群中节点上必须相同,目前提供了3种算法:md5,sha1和crc。其中crc不能够提供认证,它只能够用于校验数据包是否损坏,而sha1,md5需要一个密钥来进行认证,从资源消耗的角度来讲,md5消耗的比较多,sha1次之,因此建议一般使用sha1算法。
我们如果要采用sha1算法,只需要将authkeys中的auth 指令(去掉注释符)改为2,而对应的2 sha1行则需要去掉注释符(#),后面的密钥自己改变(两节点上必须相同)。改完之后,保存,同时需要改变该文件的属性为600,否则heartbeat启动将失败。具体命令为:chmod 600 authkeys
===========================================
 
 
2 ha.cf
heartbeat的主要配置文件
 
debugfile /var/log/ha-debug 用于记录heartbeat的调试信息
 
logfile /var/log/ha-log 用于记录heartbeat的日志信息
 
如果未定义上述的日志文件,那么日志信息将送往local0(对应的#/var/log/messages),如果这3个日志文件都未定义,那么heartbeat默认情况下
将在/var/log下建立ha-debug和ha-log来记录相应的日志信息。
 
 

keepalive 2
发送心跳报文的间隔,默认单位为秒,如果你毫秒为单位,那么需要在后面跟ms单位,如1500ms即代表1.5s
 
 
deadtime 30 用于配置认为对方节点菪掉的间隔
 
 
warntime 10 发出最后的心跳警告报文的间隔
 
initdead 120 #网络启动的时间
 
 
udpport 694 #广播/单播通讯使用的udp端口
 
bcast eth0 # Linux 心跳所使用的网络接口
 
mcast eth0 225.0.0.1 694 1 0
如果采用组播通讯,在这里可以设置组播通讯所使用的接口,绑定的组播ip地#址(在224.0.0.0 - 239.255.255.255间),通讯端口,ttl(time to live)所能经过路由的#跳数,是否允许环回(也就是本地发出的数据包时候还接收)
 
 
ucast eth0 192.168.1.2 
如果采用单播,那么可以配置其网络接口以及所使用的ip地址
 
 
auto_failback on
用于决定,当拥有该资源的属主恢复之后,资源是否变迁:是迁移到属主上,还是在当前节点上继续运行,直到当前节点出现故障。
 
 
stonith baytech /etc/ha.d/conf/stonith.baytech
用于共享资源的集群环境中,采用stonith防御技术来保证数据的一致性
 
 
watchdog /dev/watchdog 
该指令是用于设置看门狗定时器,如果节点一分钟内都没有心跳,那么节点将重新启动
 
node ken3 设置集群中的节点,注意:节点名必须与uname –n相匹配


ping 10.10.10.254
ping指令以及下面的ping_group指令是用于建立伪集群成员,它们必须与下述#的ipfail指令一起使用,它们的作用是监测物理链路,也就是说如果集群节点与上述伪设备不相通,那么该节点也将无权接管资源或服务,它将释放掉资源。
 
 

apiauth client-name gid=gidlist uid=uidlist
apiauth ipfail gid=haclient uid=hacluster    设置你所指定的启动进程的权限
 
 

===================================================
 
 
3 haresource
heartbeat的资源配置文件
 
just.linux-ha.org 135.9.216.110 http
 
 
上面是haresource文件,该文件主要是为你部署的集群配置资源或者服务,它的每一有效行的格式如下:
node-name resource1 resource2 ... resourceN
其中node-name即为集群中某一节点的名称,必须与uname –n相同,
后面的资源组resource1 resource2 …resourceN中每一个资源都是一个shell脚本,它们的搜索路径为/etc/init.d/和/usr/local/etc/ha.d/resource.d(该路径根据你所安装heartbeat的路径有所不同),heartbeat为我们提供了一个非常好的资源扩展框架,如果我们需要控制一种自己的资源,只需要实现一个支持start和stop参数的shell脚本就可以了,目前heartbeat所支持的资源脚本可以在我提供的上述路径中去查看。
 
 
 
==========================================================
==========================================================


 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
阅读(2853) | 评论(0) | 转发(0) |
0

上一篇:MySQL5触发器

下一篇:DRBD 配置

给主人留下些什么吧!~~