一、安装两个linux(rh4.5-32位)系统并关闭防火墙,selinux设置为disable,每台电脑需要配置两块网卡。两台电脑分别为node1和node2
node1的ip地址分别为:
eth0:192.168.0.65
eth1:10.0.0.3
eth2: 10.10.10.1
node2的ip地址分别为:
eth0:192.168.0.66
eth1:10.0.0.4
eth2: 10.10.10.2
192.168.0.30 (虚拟ip地址)
注意:保证两台电脑每块网卡能够ping通。
二、保证两台电脑以下文件必须相同
/etc/hosts
/etc/host.conf
/etc/resolv.conf
三、在两台电脑上分别安装heartbeat软件包。
按如下顺序
1:heartbeat-gui-2.1.2-2.el4.centos.i386.rpm
2:heartbeat-pils-2.1.2-2.el4.centos.i386.rpm
3:heartbeat-stonith-2.1.2-2.el4.centos.i386.rpm
4:heartbeat-2.1.2-2.el4.centos.i386.rpm
四、配置文件。
进入目录/usr/share/doc/heartbeat-2.1.2/目录,复制authkeys、ha.cf 和 haresources到/etc/ha.d/目录进行配置。
(这三个文件在两台电脑里必须一致。)配置如下:
---------------------------
配置心跳的加密方式:authkeys
---------------------------
#vi /etc/ha.d/authkeys
使用双机对联线(网线为交叉线),配置如下:
#vi /etc/hc.d/authkeys
auth 1
1 crc
存盘退出,然后
#chmod 600 authkeys
修改文件权限(必须)
---------------------------
配置心跳的配置文件:ha.cf
---------------------------
#vi /etc/ha.d/ha.cf
logfile /var/log/ha-log
(ha的日志文件记录位置。如没有该目录,则需要手动添加)
bcast eth1 eth2
心跳网络接口
keepalive 2
(设定心跳(监测)时间为2秒)
warntime 10
(超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。)
deadtime 30
(超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡)
initdead 120
(在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。)
udpport 694 (使用udp端口694 进行心跳监测)
auto_failback on
(heartbeat的两台主机分别为主节点和从节点,主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。1:当auto_failback选项为on时,一旦主节点恢复运行,则自动恢复资源。2:当auto_failback选项为off,一旦主节点恢复运行,则不会自动恢复资源。)
node node1 (节点1,必须要与 uname -n 指令得到的结果一致.)
node node2 (节点2)
watchdog /dev/watchdog
该选项是可选配置,当系统在出现故障或heartbeat主进程出现异常的时,1分钟后重启该机器。/dev/watchdog 是一个主设备号为10,输入"grep misc /proc/devices"(应为10);从设备号130的字符设备节点,输入"cat /proc/misc |grep watchdog"(应为130)。 Linux内核不仅为各种不同类型的watchdog硬件电路提供了驱动,还提供了一个基于定时器的纯软件watchdog驱动。
驱动位于/lib/modules/2.6.18238.el5/kernel/drivers/char/watchdog/softdog.ko。
注意的一点是该模块需要在heartbeat启动之前加载。将以下语句:
insmod /lib/modules/2.6.18-238.el5/kernel/drivers/char/watchdog/softdog.ko插入到/etc/rc.lcoal中,heartbeat的启动应在该命令执行之后。
ping 192.168.0.1
选择ping的节点,可以选择固定的路由器作为ping节点,但是最好不要选择集群中的成员作为ping节点,ping节点仅仅用来测试外部网络连接,当主机外部网络不通时,主机释放资源备机接管。
respawn hacluster /usr/lib/heartbeat/ipfail
该选项是可选配置,该进程一般是和heartbeat集成的插件,该进程遇到故障可以自动重新启动。此进程用于检测和处理网络故障,需配合ping语句指定的ping 节点地址来检测网络的连通性。
---------------------------
配置心跳的资源:haresources
---------------------------
#vi /etc/ha.d/haresources
node1 192.168.0.30 httpd mysql
五、设置heartbeat自动启动
echo"Insmod /lib/modules/2.6.18238.el5/kernel/drivers/char/watchdog/softdog.ko">> /etc/rc.local
echo "/etc/init.d/heartbeat start" >> /etc/rc.local
六、测试
备注:
1:查看watchdog驱动的重启时间间隔,默认的重启时间为1分钟。
[root@jason watchdog]# modinfo softdog.ko
filename: softdog.ko
alias: char-major-10-130
license: GPL
description: Software Watchdog Device Driver
author: Alan Cox
srcversion: D0C09C70A7A3A25171A388F
depends:
vermagic: 2.6.18-238.el5 SMP mod_unload gcc-4.1
parm: soft_margin:Watchdog soft_margin in seconds. (0<soft_margin<65536, default=60) (int)
parm: nowayout:Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT) (int)
parm: soft_noboot:Softdog action, set to 1 to ignore reboots, 0 to reboot (default depends on ONLY_TESTING) (int)
module_sig: 883f3504de5fff43e909ab54b946c11276c60a0b3695d98af260a1eff99969ab381c4cf6f8349509f5061809d283a443cf08a2268e7a2f8763ae64b:
2:为了防止单一心跳线路故障导致heartbeat双机热备出现脑裂,本文中使用了双网卡进行心跳,双网卡心跳的ip地址应设置为不同网段。还有一种方法是通过绑定双网卡为主备bonding,同样可以防止脑裂。绑定双网卡后,修改ha.cf文件中心跳接口地址为bcast bond0。.