Chinaunix首页 | 论坛 | 博客
  • 博客访问: 723953
  • 博文数量: 823
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5165
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-21 15:52
文章分类

全部博文(823)

文章存档

2011年(1)

2008年(822)

我的朋友

分类: LINUX

2008-08-21 17:43:04


Heartbeat是中HA项目的核心,HA是(HighAvailability)的缩写;简单来说就是为了提供高可靠的应用服务,例如拿两来机子来做HA,提供WEB服务,一台机子为主服务器平时提供WEB服务,HA就是保证在主服务器出现故障(例如掉电)的时候另一台机子可以立刻接手继续提供WEB服务,从而使用户不觉得服务未曾中断;实验应用中可能使用更多的机子组成集群。

Heartbeat可以使用串口或者以太网来实现对主机的监测,为了方便我使用的是以太网,在两台机器上分别配双网卡,用一根双绞线把两台机器连接在一起,另外两个网卡连到路由;网络配置在这里就不多说了,无论在命令行下还是图形界面Fedora的网络配置还是挺容易的。我这里的配置是:

PC1(使用这台作为主服务器):
eth0:192.168.1.110
eth1:10.0.0.1
PC2:
eth0:192.168.1.111
eth1:10.0.0.2

网络配置好后测试无误后再检查两台机器上的WEB服务是否可以正常使用;一切都正常后使用yum安装Heartbeat:

yuminstallheartbeat

安装好heartbeat后开始配置,三个主要配置文件都在:/usr/share/doc/heartbeat-2.1.3/下面,需要我们手工修改后拷贝到/etc/ha.d/中;

编辑authkeys文件,下面的配置使用了sha1作为认证方式(这里需要注意的是该文件的权限必须被设置为600):

auth2
#1crc
2sha1HI!
#3md5Hello!

编辑ha.cf:
keepalive1##设定心跳(监测)时间时间为1秒
warntime10##设定警告时间
deadtime30##设定确定主机宕机时间
initdead120##第一宕机时间
ucasteth110.0.0.2##使用eht1做心跳监测也就是连接两PC的网卡
udpport694##使用udp端口694进行心跳监测
nodef801##节点1,必须要与uname-n得到的结果一致。
nodef802##节点2

编辑haresources:
f801192.168.1.118httpd

主机使用192.168.1.118作为WEB服务的IP,f801为主服务器。

配置好后在主服务器上启动Heartbeat:
serviceheartbeatstart

出错的话一般是配置文件的问题,根据提示修改就可以了;Heartbeat会自动根据haresource配置文件启动相应的服务程序。

然后在另一个台器上启动Heartbeat;

配置好后可以使用tcpdump来测试两台机器间的心跳:

[root@f801~]#tcpdump-ieth0-pudpport694
tcpdump:verboseoutputsuppressed,use-vor-vvforfullprotocoldecode
listeningoneth0,link-typeEN10MB(Ethernet),capturesize96bytes
11:43:46.431448IPha01.filenet-nch>ha02.ha-cluster:UDP,length219
11:43:46.433968IPha01.filenet-nch>ha02.ha-cluster:UDP,length216
11:43:47.431456IPha01.filenet-nch>ha02.ha-cluster:UDP,length216
11:43:48.432516IPha01.filenet-nch>ha02.ha-cluster:UDP,length216

如果这里出问题的话很有可能是防火墙的问题,或者是配置文件里ucast里的设置,需要仔细检查,我配置的时候就把ucast里的eth0设置错了。

最后就可以做测试,关闭主服务器,根据配置文件里的响应时间,服务器PC2会接管主服务器的任务。 下载本文示例代码
阅读(227) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~