Heartbeat可以将资源(IP及程序等)从一台已经故障的计算机快速转移到另一台可以正常运转的机器上继续提供服务,一般称之为高可用服务,在实际生产应用场景中,heartbeat的功能和keepalived有诸多相似之处,但在生产中,对实际的业务应用是有区别的,

工作原理;

通过修改heartbeat的配置文件,可以指定哪台heartbeat服务器作为主服务器,则另一台服务器自动成为热备服务器,然后再热备服务器上配置heartbeat守护进程来监听来自主服务器的心跳消息,如果热备服务器在指定的时间内未能监听到来自主服务器的心跳,就会启动故障

管理程序,并取得主服务器上的相关资源服务的所有权,接替主服务器继续不间断的提供服务,从而达到资源及服务高可用性的目的,

以上描述的是heartbeat主备模式;heartbeat还支持主主模式,既2台服务器互为主备,这时它们之间会相互发送报文告诉对方自己当前的状态,如果在指定的时间内未能收到对方发送的心跳报文,那么,一方就会认为对方失效或者关机了,这时每个运行正常的主机就会启动

自身的资源接管模块来接管运行在对方主机上的资源或者服务,继续为用户提供服务,一般情况下,业务能持续不断的运行,

Heartbeat心跳类型:

1.串口

serial /dev/ttyS0

2.广播

bcasteth0   #linux

3.多播

mcast [dev] [mcast group] [port] [ttl][loop]


4.单播

ucast [dev] [peer-ip-addr]

Heartbeat 脑裂

在双击热备高可用系统中,当联系2个节点的心跳线断开时,本来为一个整体,动作协调的HA系统,就分裂为2个独立的个体;

由于相互失去了联系,都以为对方出了故障,2个节点上的HA软件像裂脑人一样本能的争抢共享资源争取应用服务,就会发生

严重后果,或者共享资源被瓜分,2边服务都起不起来了。或者2边服务都起来了,但同时读写共享存储,导致数据损坏。

有关fence设备和仲裁机制

fence只是HA集群环境下的术语,在硬件领域,fence设备其实就是一个智能电源管理设备(IPMI)或者远程管理卡,fence

由外部fence和内部fence,不管是外部和内部,这些设备都是带有以太网口的,用来在HA切换触发时通过网络重启提供资源服务

的服务器

Stonith概述

stonith是 shoot the other node in the head 的首字母简写,它是Heartbeat软件包的一个组件,它允许使用一个远程或智能的

连接到健康服务器的电源设备以自动重启失效服务器的电源,stonith设备可以关闭电源并响应软件命令,运行Heartbeat的服务器可以通过

串口线或网线向stonith设备发送命令,它控制高可用服务器对其他服务器的电力供应。

主服务器可以复位备用服务器的电源,备用服务器也可以复位主服务器的电源。

Stonith事件触发的工作步骤:

1)当备用服务器听不到心跳时Stonith事件开始

2)备用服务器发出一个Stonith复位命令到Stonith设备

3)Stonith设备关闭主服务器的电力供应、

4)备用服务器获得主服务器的资源,Heartbeat用start参数运行资源脚本,并执行ARP欺骗广播以便客户

端计算机发送它们的请求到它的网络接口上。

Heartbeat消息类型

1)心跳消息

心跳消息为约150字节的数据包,可能为单播,广播或者多播的方式,控制心跳频率及出现故障等要等待多久进行故障切换


2)集群转换消息

ip-request和ip-request-resp

当主服务器恢复在线状态时,通过ip-request消息要求备机释放主服务器失败时备用服务器所取得的资源,然后备用服务器关闭相关资源和服务。

当备用服务器释放相关资源和服务后,就会通过ip-request-resp消息通知主服务器它不再拥有该资源及服务,主服务器收到来自备用节点的ip-request-resp

消息通知后,启动失败时释放的资源及服务。并开始提供正常的访问和服务。

重传请求;

rexmit-request控制重传心跳请求,此消息不太重要

注意:以上控制消息都使用UDP协议发送到/etc/ha.d/ha.cf文件指定的任意端口,或指定的多播地址

Heartbeat IP地址接管和故障转移

Heartbeat时通过IP地址接管和ARP广播进行故障转移的

ARP广播:在主服务故障时,备用节点接管资源后,会立即强制更新所有客户端本地的ARP表,确保客户端和新的主服务器对话。


VIP/IP 别名、/辅助IP

真实IP,又称为管理IP,一般是配置在物理网卡上的实际IP,在负载均衡及高可用环境中,管理IP是不对外提供用户访问服务的

,仅仅是管理服务器使用,

VIP是虚拟IP,实际上就是heartbeat临时绑定在物理网卡上的别名IP,如果是使用

管理IP,来回迁移就难以做到,而且,管理IP迁移走了,我们就只能去机房连接服务器了。VIP的实质是确保2台服务器各有一个

管理IP不动,就是随时可以连接上机器,然后,增加绑定其他的IP,这样就算VIP转移走了,也不至于服务器本省连不上,因为管理IP不变

Heartbeat相关目录及其文件。

启动脚本:/etc/init.d/

重要资源目录:/etc/ha.d/resource.d/ 存放控制服务的脚本

默认配置文件目录:/etc/ha.d/

配置文件名称:    

ha.cfheartbeat参数配置文件在此配置heartbeat的一些基本参数
authkey heartbeat 认证文件  高可用服务器之间对端的authkey,对对端进行验证
haresourceheartbea资源配置文件 配置IP资源及脚本