heartbeat V2在redhat as4.7上安装、配置
时间:2009-07-14 来源:chenwenming
一、准备工作
1、环境
两台redhat as4.7,各二个网卡,IP地址分别为
ha1 eth0:192.168.0.50 eth1:10.0.0.1
ha2 eth0:192.168.0.51 eth1:10.0.0.2
uname -n
分别显示ha1和ha2
cat /etc/hosts
均显示
127.0.0.1 localhost.localdomain localhost
192.168.0.50 ha1
192.168.0.51 ha2
2、两个node分别安装libnet
hearbeat默认编译选项需要e2fsprogs/libnet库,redhat as4.7默认安装了e2fsprogs,所以这里先安装libnet
cd /usr/local/src
wget http://download.opensuse.org/repositories/server:/ha-clustering/RHEL_4/i386/libnet-1.1.2.1-1.1.i386.rpm
rpm -ivh libnet-1.1.2.1-1.1.i386.rpm
3、两个node分别创建heartbeat相关的用户和组
groupadd haclient
useradd -g haclient hacluster
4、关闭两个node上的防火墙(如SELINUX),或者设置为信任eth1,使得能相互听见对方心跳。否则两个node都认为对方的状态为dead。(我在这个问题上折腾了一会。其他如采用双绞线通过串口进行心跳监控之类的方案也必须检查双绞线是否正常,保证线路通畅。)
二、两个node分别下载、编译、安装heartbeat
cd /usr/local/src
wget http://linux-ha.org/download/heartbeat-2.1.3.tar.gz
tar zxvf heartbeat-2.1.3.tar.gz
cd heartbeat-2.1.3
./ConfigureMe configure
大致看看编译统计信息后安装
make && make install
三、在ha1上的简易配置
将配置文件模板拷贝到默认配置目录(可选,也可手工创建。模板文件中的注释可帮助你理解各配置选项的含义)
cp doc/authkeys /etc/ha.d/
cp doc/ha.cf /etc/ha.d/
cd /etc/ha.d/
开始编辑配置文件(两台机器上都需要安装和配置)
1、编辑/etc/ha.d/authkeys,使用的是第1种认证方式(crc),接着把文件的权限改为600:
cat /etc/ha.d/authkeys
显示
auth 1
1 crc
更改文件权限
chmod 600 /etc/ha.d/authkeys
关于Configuring authkeys
2、编辑/etc/ha.d/ha.cf:
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 10
warntime 5
initdead 60
bcast eth1
auto_failback on
watchdog /dev/watchdog
node ha1
node ha2
ping 192.168.0.207
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
编辑/etc/ha.d/haresources
ha1 IPaddr::192.168.0.55/24/eth0:1 httpd
#这个是虚拟浮动IP如果有一台服务器死了 另处一台自己把这个IP接管过来
#ha1说明:ha1是主 ha2是辅
四、将ha1上的heartbeat相关的配置文件拷贝到ha2
scp /etc/ha.d/ha.cf root@ha2:/etc/ha.d/ha.cf
scp /etc/ha.d/authkeys root@ha2:/etc/ha.d/authkeys
scp /etc/ha.d/haresources root@ha2:/etc/ha.d/haresources
五、在两个node上启动heartbeat并观察结果
1、启动两个node上的heartbeat,然后稍等片刻(时间长短取决于ha.cf中的相关参数)。
/etc/init.d/heartbeat start
按照我这里的ha.cf配置,日志信息应该可以通过
tail /var/log/messages -f
进行查看
3、在两个node上分别运行ifconfig 和ps -ef 来查看虚拟IP和apache是否已经启动。
4、在浏览器中分别访问http://192.168.0.55/观察。
5、将ha1从局域网中断开,稍等片刻。再重复上面的步骤3、4,观察。
6、将ha1重新接入局域网,稍等片刻。再重复上面的步骤3、4,观察。
相信你的第一个示例成功之后,对heartbeat的基础原理应该有所了解。接着再详细查看官方文档和网络资料,结合实际进行特定服务的HA,多试验、多失败、多研究。
================================================================
以下供参考
1.x的基本配置信息如下:
引用
# more /etc/ha.d/ha.cf
#发送keepalive包的间隔时间
keepalive 2
#定义节点的失效时间
deadtime 30
#定义heartbeat服务启动后,等待外围其他设备(如网卡启动等)的等待时间
initdead 30
#使用udp端口694 进行心跳监测
udpport 694
#定义心跳
bcast eth0 eth1 # Linux
#定义是否使用auto_failback功能
auto_failback off
#定义集群的节点
node hatest3
node hatest4
#使用heartbeat提供的日志服务,若use_logd设置为yes后,下面的三个选项会失效
use_logd yes
#logfile /var/log/ha_log/ha-log.log
#logfacility local7
#debugfile /var/log/ha_log/ha-debug.log
#设定一个监控网关,用于判断心跳是否正常
ping 192.168.228.153
deadping 5
#指定和heartbeat一起启动、关闭的进程
respawn hacluster /usr/local/lib64/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
该配置文件是比较简单和清晰的,在不适用crm yes的情况下,即为1.x style格式。
4、设定haresources文件
这个是1.x使用的集群资源文件,每行一个组,第一列定义的是优先级服务器,也就是默认资源运行在该服务器上:
引用
hatest3 192.168.228.235 httpd
#hatest3 IPaddr::192.168.228.235 httpd
当ha发现优先节点当掉了,则另一个节点会自动接管192.168.228.235(浮动IP)和服务。第二行的作用是相同的,第一行是简略了IPaddr的写法。如果集群需要实现Active-Active(互备)状态,则可以再写一行,但托管的应用不能冲突。
5、设定hosts文件
这不是一个必须的配置,但为了方便同步各节点的配置,建议设定:
引用
# cat /etc/hosts
hatest3 192.168.228.233
hatest4 192.168.228.234