在RHEL上有很多种HA的方案,这里是其中一种很简单的方案。

Heartbeat的HA,Heartbeat实现的是一种简单的HA的方式,提供的功能也相对的简单,是一种双机热备的方式,主从模式的实现。两台机器,一个是主机,一个是从机,当主机宕机的时候,从机take over主机的资源,从而提供稳定的服务。

安装过程如下
先下载heartbeat的安装包,我的是RHEL AS 4的平台,找了好久,找到的是heartbeat2.0.4与之搭配。

在​​​http://inthirties.com:90/thread-1058-1-1.html​​ 下载

我这里 下载了所有的包,
安装下面的包
heartbeat-2.0.4-1.el4.i386.rpm
heartbeat-pils-2.0.4-1.el4.i386.rpm    
heartbeat-stonith-2.0.4-1.el4.i386.rpm   
ipvsadm-1.24-5.i386.rpm  
libnet-1.1.2.1-1.rh.el.um.1.i386.rpm   

 

如果安装过程中提示一些依赖的问题的话,你可以根据提示在以上的网上找到相应的依赖包,下载并安装。

安装完成以后,chkconfig --list | grep heartbeat
可以看到heartbeat的自动启动服务已经开启。

下面我们开始配置我们的heartbeat。

我的实验机器有两台,分别安装有两个网卡,其中的网络配置如下
/etc/hosts(两台一样)

192.168.137.137 www1  ### 节点一公共ip
172.16.10.137   ha1   ### 节点一心跳ip

192.168.137.138 www2  ### 节点二公共ip
172.16.10.138   ha2   ### 节点二心跳ip

节点一hostname为www1
[root@www1 ~]hostname www1
[root@www1 ~]vi /etc/sysconfig/network
HOSTNAME=www1

节点二hostname为www2
[root@www2 ~]hostname www2
[root@www2 ~]vi /etc/sysconfig/network
HOSTNAME=www2

拷贝/usr/share/doc/heartbeat-2.0.4/下的authkeys,ha.cf,haresource三个文件至/etc/ha.d/目录下

修改这几个heartbeat文件

[b]authkeys文件(配置心跳的加密方式)[/b]
auth 1
1 crc

[b]ha.cf文件(心跳的配置)[/b]
logfile /var/log/ha-log   ## heartbeat的日志文件
keepalive 2               ## 心跳间的间隔时间,单位是秒,这里是2秒一次心跳  how long between heartbeats
deadtime 10               ## 判断服务死亡的方式,心跳失败多少次为死亡,注意这里单位不是秒,是次数,这里就是10次,也就是20秒  how long-to-declare-host-dead
warntime 5                ## 心跳失败多少次报警  这里是5次
initdead 120              ## 当主机重启以后,需要多久才开始重新从从机接管资源,单位是秒,这里是120秒。2分钟
udpport 694               ## 心跳的udp端口
bcast   eth1              ## 心跳的网卡接口,在哪个网卡上进行心跳,我这里是在第二块网卡上作为心跳线的

#####  心跳的节点,这里很重要,这里的节点名称一定要是和你的hostname一致的,不然启动heartbeat会有错误的提示,提示hostname必须和node一致。
node    www1
node    www2

ping    192.168.137.1   ### 心跳线的检查, 这里192.168.137.1是网关的地址,借以来确定心跳线的OK的。这不是必选项 用来为ipfail等模块检查网络连接情况的,这里不应是集群节点

respawn hacluster /usr/lib64/heartbeat/ipfail  ###在heartbeat启动进运行的程序,ipfail插件的用途是检测网络故障,并作出合理的反应

配置/etc/ha.d/haresource(心跳的资源)
www1 192.168.137.37 ipvsadm httpd #### 添加www1上一个虚拟IP192.168.137.37 启动ipvsadm httpd服务后面可以接多个服务 比如httpd mysqld 等等,就是依次启动。
注意这里的服务都是由heartbeat托管了,所以这些服务由heartbeat负责启动和停止,这样这些服务不要配置成自启动的模式
chkconfig httpd off
chkconfig ipvsadm off

 


两个节点上的这个三个配置文件一样。如果配置正确的话,启动heartbeat的时候不会出现错误。否则有错误出现。

 

 

 

在下面的一片文章里,inthirties将带领大家一起通过具体的实验,来验证和使用,以及追踪我们的heartbeat的应用