HeartBeat实现双机热备

 

一、安装两个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

 

#vi /etc/hosts
node1的hosts内容如下:
ip地址         域名               机器名
192.168.0.65 node1.example.com node1
10.0.0.3 node1
10.10.10.1 node1
192.168.0.66 node2.example.com node2
10.0.0.4 node2
10.10.10.2 node2
(保证机器名和参数uname -n输出一致)
#vi /etc/host.conf
order hosts,bind
#vi /etc/resolv.conf
nameserver 202.96.209.133(DNS地址如果为空可以根据当地dns输入)
node2的hosts内容如下:
ip地址         域名               机器名
192.168.0.65 node1.example.com node1
10.0.0.3 node1
10.10.10.1 node1
192.168.0.66 node2.example.com node2
10.0.0.4 node2
10.10.10.2 node2
(保证机器名和参数uname -n输出一致)
#vi /etc/host.conf
order hosts,bind
#vi /etc/resolv.conf
nameserver 202.96.209.133(DNS地址如果为空可以根据当地dns输入)

三、在两台电脑上分别安装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:关闭主机电源或正常关闭 heartbeat,主机释放资源,备机接管资源。当主机启动成功之后备机释放资源,主机接管回资源。
2:拔掉主机外网线, ipfail插件发现主机外部网络不通,切换资源备机接管;插上主机外部网线,资源切换,主机接管资源,备机释放资源。
3: kill掉heartbeat主进程或heartbeat主进程出现异常时,主机系统自动重启,由备机接管资源。
4:拔掉主机或备机其中一条心跳线,主备机不进行资源切换。
5:当主备机都发现外部指定的 ping节点不通时,资源保持原有主机不变,不进行切换。

备注:

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。.
 

你可能感兴趣的:(linux,watchdog,softdog,双机热备,HeatBeat)