Heartbeat
作者:Danbo 时间:2015-7-23
通过heartbeat可以将资源(VIP及程序服务等资源)从一台故障计算机快速转移到另一台运转正常的机器继续提供服务。
Heartbeat工作原理:
通过修改heartbeat的配置文件,指定哪一台heartbeat服务器作为主服务器,则另一台将自动成为备份服务器。然后在备份服务器上配置heartbeat守护程序来监听来自主服务器的心跳。如若备份服务器在指定时间内未监听来自主服务器的心跳,就会启动故障转移程序,并取得服务器上的相关资源服务的所有权,接替主服务器继续不间断的提供服务,以达到资源服务高可用的目的。以上是主备模式,还有一种是主主模式(互为主备),双方都发送报文,当指定时间内未收到对方发送的心跳报文,那么就认为对方失效,此时就会接管运行在对方主机上的资源或服务。
Heartbeat的心跳连接
两台heartbeat主机之间的通信一般常用的方法:
1.串行电缆(缺点:距离不能太远)
2.一根以太网电缆(网线)两网卡直连。(最常用)
3.以太网电缆,通过交换机等网络设备连接。(这样增加了交换机故障点,同时线路不是专用心跳,容易受到其他数据传输的影响)
Heartbeat裂脑
什么是裂脑?由于两台高可用服务器在规定的时间内,无法互相检测到对方能心跳而各自启动故障转移功能,取得了资源及服务的所有权,而此时的两台高可用服务器对都还活着并且正在正常运行,这样就会导致同一个IP或服务在两端同时启动而发送冲突的严重问题,最严重的是两天主机占用同一个IP地址,这种情况就被称为裂脑,英文:split brain。
导致裂脑发生的多种原因:
-高可用服务器对之间心跳链路故障,导致无法正常通信。
-高可用服务器对上开启了防火墙阻挡了心跳消息的传输。
-高可用服务器对上心跳网卡地址等信息配置不正确,导致传输失败。
-两端心跳方式不同,心跳广播冲突。
防止举措:
-加冗余线路,两台心跳线路
-检测到裂脑,强行关闭一个心跳节点。需要特殊设备支持比如:Stonith、Fence(可编程电源控制器)等。
-做好对裂脑的监控报警(邮件手机短信等)
-启动磁盘锁。正在服务的一方锁定共享磁盘。正在服务的一方只有发现心跳全部断开后才启动磁盘锁。
-增加仲裁机制:当心跳线完全断开时,两个节点各自ping一下参考网关,那一端不通则表明断点就在本端,能够ping通的一端接管服务,ping不通的一端自动重启。以此释放共享资源。
Heartbeat消息类型
-心跳消息
-集群转换消息
-重传请求
心跳消息:大约为150字节,可能为单播、广播、组播的方式
集群转换消息:ip-request和ip-request-resp
当主服务器恢复在线状态时,通过ip-request消息要求备机释放主服务器失败时备服务器取得的资源,然后备份服务器关闭资源及服务。备机释放资源及服务后,主服务器收到ip-request-resp消息通知主服务器接管资源及服务。
重传请求:rexmit-request控制重传心跳请求。
以上心跳控制消息使用的是UDP协议发送到/etc/ha.d/ha.cf文件指定的任意端口。
Heartbeat IP地址接管和故障转移
Heartbeat IP是通过IP地址接管和ARP广播进行地址转移的。
ARP广播(免费arp):在主服务器故障时,备用节点接管资源后,会立即更新所有客户端本地的ARP表(即清除掉客户端本地缓存VIP与MAC地址的绑定关系)。
注意这里所谓的客户端是指与heartbeat高可用服务器在同一局域网中的客户端,并不是最终的联网用户。客户机是相对于heartbeat高可用服务器来说的。
VIP是虚拟IP,其实就是绑定在物理网卡上的别名IP,如eth0:x,你可以在一块网刊上绑定多个别名,在实际的生产环境中,需要在DNS配置中把网站域名地址解析到这个VIP地址,有这个VIP对用户提供服务。
配置VIP的方法:
heartbeat:ifconfig eth0:1 192.168.1.2 netmask 255.255.255.0 up
keepalived:ip addr add 192.168.1.2/24 broadcast 192.168.1.255 dev eth1(辅助IP)
ifconfig 能看到heartbeat配置的VIP,ip add方式能看到以辅助IP方式增加的VIP
删除VIP的方法:
heartbeat:ifconfig eth0:1 192.168.1.2 netmask 255.255.255.0 down 或 ifconfig eth0:1 down
keepalived:ip addr del 192.168.1.2/24 broadcast 192.168.1.255 dev eth1
Heartbeat配置文件
ha.cf heartbeat参数的配置文件
authke beartbeat认证文件
haresourcce heartbeat资源配置文件如IP资源及脚本程序。
部署Heartbeat需求
拓扑图如下:
Heartbeat服务器主机资源规划:
给虚拟机配置IP和主机名
IP配置就省了,我们配置主机名:/etc/sysconfig/network设置HOSTNAME=data1和data2
然后执行hostname data1和data2生效
配置hosts文件
echo "192.168.229.128 data1" >>/etc/hosts
echo "192.168.229.133 data1" >>/etc/hosts
ZL4-005heartbeat实战应用-HA高可用解决方案实战讲解03