chenqb 发表于 2019-1-6 15:18:23

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分钟。
  # 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
页: [1]
查看完整版本: HeartBeat实现双机热备