在linux系统用heartbeat实现双机热备
一:安装两个linux(rh4.5-32位)系统并关闭防火墙,selinux设置为disable,每台电脑需要配置两块网卡。两台电脑分别为node1和node2
node1的ip地址分别为:
eth0:192.168.0.65
eth1:10.0.0.3 (心跳地址)
node2的ip地址分别为:
eth0:192.168.0.66
eth1:10.0.0.4 (心跳地址)
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
192.168.0.66 node2.example.com node2
10.0.0.4 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
192.168.0.66 node2.example.com node2
10.0.0.4 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
keepalive 2 (设定心跳(监测)时间为2秒)
warntime 10 (超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。)
deadtime 30 (超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡)
initdead 120
(在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。)
udpport 694 (使用udp端口694 进行心跳监测)
auto_failback off
nice_failback on
(nice_failback 这一选项在此版本的heartbeat里没有,如果没有可以根据需要手工添加。heartbeat的两台主机分别为主节点和从节点,主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。1:当auto_failback选项为on时,一旦主节点恢复运行,则自动恢复资源。2:当auto_failback选项为off并且nice_failback选项为on时,一旦主节点恢复运行,则不会自动恢复资源。此设置为第二种情况。)
node node1 (节点1,必须要与 uname -n 指令得到的结果一致.)
node node2 (节点2)
配置心跳的资源:haresources
#vi /etc/ha.d/haresources
node1 192.168.0.30 httpd mysql(先启动httpd再启动mysql,关闭时先关闭mysql再关闭httpd)指定node1启动httpd和mysql服务,系统附加一个虚拟IP 192.168.0.30给eth0:0。这里如果node1宕机后,node2可以自动启动httpd和mysql服务,并新分配IP 192.168.0.30给node2的eth0:0.web服务的监听地址要设置为虚拟ip地址。
五:设置heartbeat自动启动(启动系统时启动)
cd /etc/rc.d/rc0.d
ln -s /etc/init.d/heartbeat K05heartbeat
cd /etc/rc.d/rc3.d
ln -s /etc/init.d/heartbeat S75heartbeat
cd /etc/rc.d/rc5.d
ln -s /etc/init.d/heartbeat S75heartbeat
cd /etc/rc.d/rc6.d
ln -s /etc/init.d/heartbeat K05heartbeat
(字母S和K为大写)