Heartbeat(Linux-HA工程的一个组件)

heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持 冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。

高可用集群是指一组通过硬件和软件连接起来的独立计算机,它们在用户面前表现为一个单一系统,在这样的一组计算机系统内 部的一个或者多个节点停止工作,服务会从故障节点切换到正常工作的节点上运行,不会引起服务中断。从这个定义可以看出,集群必须检测节点和服务何时失效, 何时恢复为可用。这个任务通常由一组被称为“心跳”的代码完成。在Linux-HA里这个功能由一个叫做heartbeat的程序完成。

                               heartbeat的配置(红帽企业6.5系统)

首先安装关于heartbeat的rpm包

在这个网站 phone.net下载  在所有的集群节点上都配置

heartbeat-3.0.4-2.el6.x86_64.rpm       heartbeat-libs-3.0.4-2.el6.x86_64.rpm
heartbeat-devel-3.0.4-2.el6.x86_64.rpm

修改配置文件(查看主配文件下的README文件)

将配置文件从/usr/local/heartbeat-3.0.4/下拷贝到识别的主配置文件路径

cd /usr/share/doc/heartbeat-3.0.4/
 cp ha.cf haresources authkeys /etc/ha.d/

cd /etc/ha.d/

ls

vim ha.cf 修改主配文件

debugfile /var/log/ha-debug
调试日志文件文件,取默认值
logfile /var/log/ha-log
系统运行日志文件,取默认值
logfacility local0
日志等级,取默认值
keepalive 2
心跳频率,自己设定。1:表示 1 秒;200ms:表示 200 毫秒
deadtime 30
节点死亡时间阀值,就是从节点在过了 30 后还没有收到心跳就认为主节点死亡,自己设定
warntime 10
发出警告时间,自己设定
initdead 120
守护进程首次启动后应该等待 120 秒后再启动主服务器上的资源
udpport 694
心跳信息传递的 udp 端口,使用端口 694 进行 bcast 和 ucast 通信,取默认值
不要和别人冲突

bcast eth0
采用 udp 广播播来通知心跳
auto_failback on
当主节点恢复后,是否自动切回

watchdog /dev/watchdog(这个需要加载模块 modprobe softdog)
watchdog 能让系统在出现故障 1 分钟后重启该机器,这个功能可以帮助服务器在确实停止心
跳后能够重新恢复心跳

node    joan.example.com
主节点名称,与 uname –n 保持一致。排在第一的默认为主节点,所以不要搞措顺序
node    joan1.example.cm
副节点名称,与 uname –n 保持一致


ping 192.168.2.251 加载ping模块


respawn hacluster /usr/lib64/heartbeat/ipfail

apiauth ipfail gid=haclient uid=hacluster
默认 heartbeat 并不检测除本身之外的其他任何服务,也不检测网络状况。
所以当网络中断时,并不会进行 Load Balancer 和 Backup 之间的切换。
可以通过 ipfail 插件,设置'ping nodes'来解决这一问题,但不能使用一个集群节点作为
ping 的节点。


vim haresources 修改资源文件

安装http服务,不许开启,心跳服务自动开启

yum install httpd -y

vim authkeys 修改认证文件

修改认证文件的权限

将配置文件拷贝给另一各节点

[root@joan1 ha.d]# ls
authkeys  ha.cf  harc  haresources  rc.d  README.config  resource.d  shellfuncs
[root@joan1 ha.d]# scp ha.cf authkeys haresources 192.168.2.144:/etc/ha.d/

开启heartbeat 服务

[root@joan1 ha.d]# /etc/init.d/heartbeat start
Starting High-Availability services: INFO:  Resource is stopped
Done.

如果出现问题,就差看日志

tail -f /var/log/message

tail -f /var/log/ha-log

检测,为了区分节点在心跳启动的服务(httpd)的默认发布目录里放不同的东西(两个节点都执行)

echo `hostname` > /var/www/html/index.html

OK现在服务在主节点上运行着,如果主节点上的heartbeat当掉,服务自动切换到辅助节点上,如果主节点恢复正常,服务被接回。





                                          

转载于:https://my.oschina.net/u/1772820/blog/268525

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值