使用heartbeat消除服务器单点
来源:互联网 发布:淘宝女装爆款 编辑:程序博客网 时间:2024/05/23 01:56
问题背景:
在系统中有一个数据收集服务(Facebook Scribe)的汇总节点,这个节点必须保证较高的可靠性。为了防止服务器DOWN掉影响整个数据收集流程,必须消除这个收集单点。并且数据发送方只信任汇总节点上的一个IP地址,我们的收集服务必须监听在这个IP地址上。由于这些限制,我们需要选择一种IP漂移机制来实现数据收集服务的单点消除;经过调研,我们最终选择了比较成熟的heartbeat来实现这种机制。
服务器系统环境:CentOS release 5.8 (Final)
服务器名:
aggr00 (主节点)
report (备用节点)
首先,我们必须在主节点和备用节点上都安装heartbeat软件:
yum install heartbeat
将heartbeat默认的配置文件拷贝到heartbeat的配置目录下:
cp /usr/share/doc/heartbeat-2.1.4/ha.cf /etc/ha.d/cp /usr/share/doc/heartbeat-2.1.4/haresources /etc/ha.d/cp /usr/share/doc/heartbeat-2.1.4/authkeys /etc/ha.d/
在ha.cf中找到以下的配置项,去掉注释符(#)即可:
#udpport 694#bcast eth0 # Linux
这样,你将使用UDP694端口来进行广播或单播通信;你将使用设备eth0来发送广播心跳,一般会使用绑定了内网IP地址的一块网卡,我这里的设置修改为eth1。当然,这里也可以写多个设备,例如:bcast eth0 eth1。
继续在ha.cf中找到以下配置项,并去掉其注释符号:keepalive, deadtime, initdead。它们默认的配置如下:
keepalive 2deadtime 30initdead 120
其中,initdead指定了在heartbeat后台进程启动之后,它会在等待120秒之后才会启动主节点上的资源,或者做一些备用节点上出现问题的设想;keepalive指定了heartbeat之间的秒数;deadtime则指定了备用节点30秒内没有收到主节点的心跳,则备用节点就认为主节点死掉了。
然后,我们在ha.cf中指明,主节点和备用节点,在ha.cf的最后一行加入:
node aggr00 report
至此,我们对ha.cf的修改已经结束了。
修改haresources
这个文件标明了主节点应该拥有的各种资源名。什么是资源?我们服务器的IP就是一个资源;我们监听在这个IP之上的服务也是资源!在这个目录下你会发现一堆资源:
/etc/ha.d/resource.d
IP漂移就是油其中的IPaddr来实现的!而我们Scribe的资源并没有在其中,所以我们按照规定的格式,将scribe也加入其中,以下是scribe资源脚本的内容:
#!/bin/bashlogger $0 called with $1case $1 in start) /usr/local/services/biutility/management start ;; stop) /usr/local/services/biutility/management stop ;; status) A=`/bin/netstat -ntlp | grep scribed` if [ -z "$A" ]; then echo "DOWN" else echo "Running" fi ;;esac
将这个保存到一个叫做scribe的文件中,将文件保存在/etc/ha.d/resource.d下,还有,别忘记加上执行权限。至此你已经描述了你的scribe资源,下面就需要将这些资源配置到haresources中了,打开haresources,在文件的最后追加以下两行:
aggr00 scribeaggr00 xxx.xxx.xxx.xxx
当然,其中的scribe就是我们刚刚加入的资源;后面的那个IP地址就是需要动态漂移的共享IP!
修改authkeys
在authkeys的最后添加如下:
auth 11 sha1 testlab
修改完之后,将配置目录下的所有文件和文件夹同步到备份节点上。至此所有的配置工作都已经完成。分别在主节点和备份节点上启动heartbeat后台服务:
/etc/init.d/heartbeat start
然后,可以在主节点上通过ip addr 查看eth0应该多出了一个IP地址,这个IP地址就是我们在haresources中配置的xxx.xxx.xxx.xxx,如果关闭主节点上的heartbeat服务,则这个IP会在备份节点的eth0上出现,实现IP漂移。
- 使用heartbeat消除服务器单点
- 配置heartbeat+drbd+nfs服务器
- VMWare虚拟机环境下的Linux服务器集群 - 使用LVS+Heartbeat+Ldirectord (1)VMWare虚拟机设置
- VMWare虚拟机环境下的Linux服务器集群 - 使用LVS+Heartbeat+Ldirectord (2)LVS脚本编写
- heartbeat
- heartbeat
- heartbeat
- Heartbeat
- heartbeat
- HeartBeat
- heartbeat
- Heartbeat
- heartbeat
- Heartbeat中Watchdog的使用
- Heartbeat中ipfail的使用
- 使用heartbeat需要了解的。。
- Heartbeat中ipfail的使用
- 使用CRM方式管理heartbeat
- Subversion配置子目录权限时的错误
- Windows Azure 社区新闻综述(#72 版)
- Response.ContentType 详细列表
- Linux 信号signal处理机制
- CString与string互转
- 使用heartbeat消除服务器单点
- 通用权限管理的表结构(一)
- libtool
- OpenCV例程1 Display image
- (三)android升级--系统升级方法和启动模式
- 如何学好编程入门-C语言
- select及相关文件描述符集的使用
- iphone开发第一天
- matplotlib使用小结(基本篇)