Heartbeat

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

时间: 2024-10-07 16:10:09

Heartbeat的相关文章

heartbeat+LVS

####heartbeat简介####Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能.这个集群方案是利用第三方软件搭建的,要比RedHat自带的集群软件在功能上简化一些,但是搭建起来非常的方便.而且是一种快速解决方案.heartbeat的高可用集群采用的通信方式是udp协议和串口通信,而且heartbeat插件技术实现了集群间的

Linux高可用集群方案之heartbeat基础原理及逻辑架构

 这篇文章我们主要学习heartbeat高可用集群的基础原理及逻辑架构,以及heartbeat的简单配置  ll  本文导航    · heartbeat之基本原理   · heartbeat之集群组件   · heartbeat之心跳连接   · heartbeat之脑裂(资源争用.资源隔离) · heartbeat之配置文件   · heartbeat至高可用集群配置  ll  要求  掌握heartbeat高可用集群的相关组件及简单配置   heartbeat之基本原理  heartbea

lmp+heartbeat+drbd

############源码安装mysq###### [[email protected] ~]# tar zxf mysql-boost-5.7.11.tar.gz [[email protected] ~]# yum install cmake-2.8.12.2-4.el6.x86_64.rpm [[email protected] ~]# yum install gcc-c++ ncurses-devel bison -y [[email protected] ~]# cd mysql-5

你所不知道的Pt heartbeat

pt-heartbeat原理研究 一.简介 Mysql Seconds_Behind_Master参数对于主从延迟测量并不准确,因为他的统计基于 slave SQLthread 和I/O thread的时间差,如果i/o thread 受到网络影响,这个估值就非常不正确.一般采用更精确的主从延迟检测pt-heartbeat.pt-heartbeat分为两个部分第一个为update,发生在主库上,更新时间戳.第二个部分为monitor或check,发生在从库,检查主库传过来的时间戳与从库系统时间做

heartbeat做nginx高可用集群

一.理论 ·HA高可用,又被叫做双机热备. ·高可用原理:两台机器A和B,正常是A提供服务,B闲置,当A宕机或服务宕掉,切换到B继续提供服务,使用心跳进行通信和选举 ·heartbeat原理:心跳检测和资源接管两个部分.集群中的主机互相发送报文,告诉对方自己当前的状态,如果在一定时间内未收到对方报文,认定对发死亡 ·常用的高可用软件:heartbeat.keepalived ·脑裂:双方无法进行心跳信息的传递,导致无法获取其他节点状态信息 ·heartbeat  适合做服务高可用 ·keepal

Heartbeat+DRBD+NFS高可用

一.环境 系统:     CentOS 6.4x64 最小化安装 node1:     192.168.1.13 node2:     192.168.1.14 vip:      192.168.1.15 nfs:      192.168.1.10 二.基础配置 node1和node2的操作一样 #关闭iptables和selinux [[email protected] ~]# getenforce Disabled                        #确保这项是正确的 [[e

linux 下heartbeat简单高可用集群搭建

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.通过Heartbeat我们可以实现双机热备,以实现服务的持续性. linux下基于heartbeat的简单web服务的高可用集群搭建 首先规划好两台主机作为heartbeat的双机热备,命名为node1.lvni.cc(主) ;node2.lvni.cc, node1的eth0IP :192.168.157.148  Vip eth0:0:192.168.157.149 node2的eth0IP :19

heartbeat v1 实现 MariaDB数据库的高可用

MariaDB数据库服务的高可用: 使用 heartbeat v1 版实现两个节点的 MariaDB数据库服务的高可用. 节点: node1        192.168.60.33 node2        192.168.60.88 MySQL数据库的数据文件使用nfs共享文件系统解决 nfs Server       192.168.60.22 架构如下图: 一.heartbeat 节点之间通信要求的设置: (1).解决节点的主机名解析 因为 heartbeat 的节点间通讯基于名称.基于

Heartbeat+DRBD实现文件高可用

一.需求分析: 本文结合之前heartbeat与drbd两篇文章,实现磁盘文件高可用.当MySQL01(主数据库服务器)宕机后,MySQL02(备数据库服务器)可以通过heartbeat立刻检测到MySQL01挂了,MySQL02接管VIP,MySQL02的DRBD服务会自动从Secondary切换到Primary状态,然后自动加载DRBD逻辑盘:/dev/drbd0到/data目录,从而实现文件持续在线--即高可用状态:当MySQL01恢复后,VIP返回MySQL01,MySQL01的DRBD

Mysql+DRBD+Heartbeat 实现mysql高可用的双击热备(DRBD篇)

DRBD官方tar包下载地址:   http://oss.linbit.com/drbd/ 环境介绍: 系统版本:CentOS 6.4 (64位) 内核版本  2.6.32-358.el6.x86_64 软件版本:drbd-8.4.3.tar.gz 主:10.0.0.1   从:10.0.0.2 两台机器上的hosts都需要修改: [[email protected] ~]# vim /etc/hosts 10.0.0.1    node1 10.0.0.2    node2 两台服务器双网卡,