heartbeat

HeartBeat管理集群5.24上午

(文档heartbeat.pdf)

它不会管理服务是否正常

没有fence(强制重新启动,例如内核崩溃)


heartbeat作用:

  通过它可以将资源(IP及程序服务等资源)从一台已经故障的计算机快速转移到另一台正常运转的机器上继续提供服务,一般称之为高可用服务。在实际生产应用场景中,heartbeat的功能和另一个高可用开源软件keepalived很多相同之处。

网址:http://linux-ha.org/wiki/Main_Page

heartbeat工作原理

   通过修改heartbeat软件的配置软件,可以指定那一台heartbeat服务器作为主服务器(有VIP和服务资源),则另一台将自动成为热备服务器。然后再热备服务器上配置heartbeat守护程序来监听来自主服务器的心跳消息。如果热备服务器在指定时间内为监听到来自主服务器的心跳,就会自动启动故障转移程序,并取得主服务器上的相关资源服务的所有权,接替主服务器继续不间断的提供服务,从而达到资源及服务高可用性的目的。

   以上描述的是heartbeat主备的模式,heartbeat还支持主主模式,即两台服务器互为主备,这时它们之间会相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的心跳报文,那么,一方就会认为对方失败或者宕机了,这是每个运行正常的主机就会启动自身的资源接管模块来接管运行在对方主机上的资源或者服务,继续为用户提供服务。一般情况下,可以较好地实现一台主机故障后,企业业务能够不间断的持续工作。但是接管转移时还是需要时间5-20s

  heartbeat和keepalived服务一样,heartbeat高可用是服务器级别的,不是服务级别。

 切换常见条件:

  1)服务器宕机

  2)heartbeat服务本身故障

  3)心跳连接故障

   服务故障不会导致切换,可以通过服务宕机把heartbeat服务停掉。

     

heartbeat 脑裂

    由于两台高可用服务器对之间在指定时间内,无法互相检测到对方心跳而各自启动故障转移功能,取得了资源及服务的所有权,而此时的两台高可用服务器对都还活着并在正常运行,这样就会导致同一个IP或服务在两端同时启动而发生冲突的严重问题,最严重的是两台主机占用同一个VIP地址,当用户写入数据时可能会分别写入到两端,这样可能会导致服务器两端的数据不一致或造成数据丢失,这种情况就被称作裂脑,也有人称其为分区集群或大脑垂直分隔,英文为splitbrain.

当前环境rhel6.5

相关安装包

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



server35.example.com机子上:

1. yum localinstall heartbeat*

2. cd /etc/ha.d

cat  README.config

3. cd /usr/share/doc/heartbeat-3.0.4

cp ha.cf haresources authkeys /etc/ha.d/


ha.cf(心跳主配置文件)

vimha.cf

debugfile/var/log/ha-debug

调试日志文件文件,取默认值

logfile/var/log/ha-log

系统运行日志文件,取默认值

logfacilitylocal0

日志等级,取默认值

keepalive2

心跳频率,自己设定1:表示1;200ms:表示200毫秒

deadtime30

节点死亡时间阀值,就是从节点在过了30后还没有收到心跳就认为主节点死亡,自己设定

warntime10

发出警告时间,自己设定

initdead60

守护进程首次启动后应该等待60秒后再启动主服务器上的资源

udpport694

(不能别人冲突,最好更改)

心跳信息传递的udp端口,使用端口694进行bcastucast通信,取默认值


#baud19200

串口波特率,serial一起使用。

#serial/dev/ttyS0

采用串口来传递心跳信息。

bcasteth1

采用udp广播播来通知心跳

#ucasteth1 10.0.0.3

采用网卡eth1udp单播来通知心跳,eth1IP

#mcasteth0 225.0.0.1 694 1 0

采用udp多播播来通知心跳

auto_failbackon

当主节点恢复后,是否自动切回

#stonithbaytech /etc/ha.d/conf/stonith.baytech

stonith用来保证共享存储环境中的数据完整性

watchdog  /dev/watchdog

watchdog能让系统在出现故障1分钟后重启该机器,这个功能可以帮助服务器在确实停止心

跳后能够重新恢复心跳。如果使用该特性,系统需执行modprobesoftdog,要让系统启动的时候,在内核中装入"softdog"内核模块,vim/etc/rc.local加入modprobesoftdog)

nodeserver35.example.com

主节点名称,uname–n保持一致。排在第一的默认为主节,所以不要搞措顺序

nodeserver71.example.com

副节点名称,uname–n保持一致

ping192.168.2.251 (最好写成网关IP)

respawnhacluster /usr/lib64/heartbeat/ipfail

apiauthipfail gid=haclient uid=hacluster

默认heartbeat并不检测除本身之外的其他任何服务,也不检测网络状况。

所以当网络中断时,并不会进行LoadBalancerBackup之间的切换。

可以通过ipfail插件,设置'pingnodes'来解决这一问题,但不能使用一个集群节点作为ping节点。


资源文件(/etc/ha.d/haresources):

vimharesources

station3.example.com Ipaddr::192.168.2.111/24/eth0:0 httpd

这个文件中定义了实现集群所需的各个软件的启动脚本,这些脚本必须放在/etc/init.d或者

/etc/ha.d/resource.d目录里IPaddr的作用是启动VirutalIP,它是HeartBeart自带的一个脚本;ldirectord的作用是启动ldirectord监控程序,它会使ldirectord.cf中定义的lvs生效,并监听其健康;httpdapache服务的启动脚本。


认证文件(/etc/ha.d/authkeys)

文件的权限必须是600:

auth1 (选的是1,明文)

1crc

#2sha1 HI!

#3md5 Hello!

chmod 600 /etc/ha.d/authkeys

yuminstall httpd -y

scp ha.cf haresources authkeys 192.168.2.171:/etc/ha.d/


在另一台机子上:server71.example.com

  1. yumlocalinstall heartbeat*

  2. yumintsall httpd -y

两台机子都开启服务

/etc/init.d/heartbeat start


看日志文件:

tail-f /var/log/message

网页访问:

192.168.2.111

它自动会开启httpd,自己不会开启

分别查看日志,是否有报错,服务正常的话server35上多了个eth0:0接口,若没有出现,请等待一会,再使用ifconfig查看,若还是没有eth0:0接口出现,检查配置文件是否正确!

若停止server35上的heartbeat服务,server171会接管,并产生一个eth0:0接口!



下午


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值