19.1、heartbeat的作用:

heartbeat的官方网站地址是:http://linux-ha.org/wiki/Main_Page

19.2、heartbeat工作原理:

19.3、heartbeat切换的条件:

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

2、切换的条件是:

(1)服务器宕机;

(2)heartbeat服务本身故障;

(3)心跳连接故障(网络连接故障);

(4)可以通过停掉heartbeat服务实现切换;

19.4、heartbeat心跳连接:

要部署heartbeat服务,至少需要两台主机来完成;

1、两台主机如何做到相互监测:

(1)串行电缆(串口)(首选);

(2)一根以太网电缆两网卡直连;(推荐)

(3)以太网电缆,通过交换机等网络设备连接(次要);

1)缺点:增加了交换机故障点;

2)线路不是专用心跳线,容易受其他数据传输的影响,

导致心跳报文发送问题;

19.5、heartbeat裂脑:

1、什么是裂脑:

2、发生裂脑的原因:

(1)高可用服务器之间心跳链路故障,导致无法通信;

1)心跳线坏了(包括断了,老化);

2)网卡及相关的驱动故障,ip配置冲突,心跳间设备故障;

(2)高可用服务器对上开启了防火墙阻挡了心跳消息传输;

(3)高可用服务器对上心跳网卡地址等信息配置不正确,导致心跳发送失败;

(4)其它服务配置不当的原因,如心跳的方式不同,心跳广播冲突,软件bug等;

3、预防脑裂的方法:

19.6、heartbeat消息类型:

1、消息类型:

(1)心跳消息;

(2)集群转换消息;

(3)重传消息;

2、心跳消息:

3、集群转换消息:

4、重传消息:

19.7、heartbeat的ip接管和故障转移原理:

19.8、vip(ip别名,辅助ip)介绍:

ifconfig eth1:0 192.168.0.111/24 up

#创建网卡别名,heartbeat 2版本用;

ip addr add 10.0.0.3/24 dev eth0 label eth0:0

#创建辅助ip,heartbeat 3版本起使用;

ifconfig eth0:0 down #删除网卡别名或辅助ip;

19.9、heartbeat脚本默认目录:

1、启动目录:

/etc/init.d/

2、资源目录:

/etc/ha.d/resource.d/

3、heartbeat控制脚本的要求:

(1)把脚本放到上面两个路径其中任意一个下面,然后在/etc/ha.d/haresource配置

文件中配置脚本名称就能够调用到该脚本,进而控制资源和服务的启动和关闭;

(2)脚本要有执行的权限;

(3)脚本执行需要以/etc/init.d/httpd stop|start 的方式;

(4)/etc/init.d/httpd名字要和/etc/ha.d/haresource中配置的启动服务名相同;

(5)/etc/ha.d/resource.d/目录为heartbeat的默认脚本存放目录;

(6)master-db IPaddr::172.16.1.26/24/eth1 httpd #使用heartbeat管理http服务;

19.10、heartbeat的配置文件:

19.11、高可用软件使用的场景:

1、使用的条件:

高可用服务器对之间数据要时时同步,否则高可用切换时数据会不一致;

2、web代理的高可用:

keeplived+lvs/nginx/haproxy

heartbeat+nginx/haproxy

控制vip资源的漂移,不负责服务资源的启动及停止;

3、存储和数据库的高可用方案:

(1)数据库:

heartbeat+drbd+mysql

(2)存储:

heartbeate+drbd+nfs

也可以使用keepalived/heartbeat+(inotify+rsync)+nfs

(3)注意事项:

heartbeat既控制vip资源的漂移同时又控制服务资源启动及停止,heartbeat控制服务资源

启动及停止时,服务资源不要设置为开机自启动;

19.12、heartbeat修改配置文件要点:

heartbeat常见的情况就是修改配置文件,主要有三个配置文件,分别是ha.cf、authkey、haresource;

在修改配置文件之前需要执行/etc/init.d/heartbeat stop或者是/usr/lib64/heartbeat/hb_standby,把

本机业务推到备节点工作,当确认被节点工作正常后才开始修改本地的配置,修改好后执行/etc/init.d/heartbeat start

命令把资源服务接管回来;

确定资源接管的命令:

ifconfig | grep "vip地址"

wget url

[root@master-db ~]#/etc/init.d/heartbeat

Usage: /etc/init.d/heartbeat {start|stop|status|restart|reload|force-reload}

19.13、一个局域网中多组heartbeat服务同时开启的问题:

mcast eth0 255.0.0.1 694 1 0

即使在一个局域网中是多组heartbeat服务同时使用,多播方式也是没有问题的,前提是

多播地址不能够相同(多播地址段是224.0.0.0 - 239.255.255.255),不用多播用单播也是可以的;

19、高可用工具heartbeat介绍的更多相关文章

  1. mysql高可用方案MHA介绍

    mysql高可用方案MHA介绍 概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10-30秒内),完成故障切换,部署MHA, ...

  2. Nginx之keepalived高可用工具

    1.创建两台虚拟机,分别为主机和从机,区别两台虚拟机的IP地址 2. 将keepalived上传到linux系统当中 3. cd /usr/local目录 4. tar -zxvf keepalive ...

  3. MySQL高可用工具--orchestrator

    orchestrator是一款MySQL高可用工具,其支持: 集群拓扑探测 集群拓扑重塑 故障恢复 提供3种使用方式: 命令行 HTTP API web页面 orchestator github地址

  4. 高可用-软件heartbeat的入门介绍

    注:参考互联网整理. 一.简介Linux-HA的全称是High-Availability Linux,它是一个开源项目,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(r ...

  5. 高可用群集HA介绍与LVS+keepalived高可用群集

    一.Keepalived介绍 通常使用keepalived技术配合LVS对director和存储进行双机热备,防止单点故障,keepalived专为LVS和HA设计的一款健康检查工具,但演变为后来不仅 ...

  6. Keepalived高可用集群介绍

    1.Keepalived服务介绍 Keepalived起初是专为LVS设计的,专门用来监控LVS集群系统中各个服务节点的状态,后来又加入了VRRP的功能,因此除了配合LVS服务外,也可以为其他服务(n ...

  7. 高可用工具keepalived学习笔记

    keepalived完全遵守VRRP协议包括竞选机制,至于VRRP是什么这里不说了参考http://wenku.baidu.com/link? url=1UbkmHuQlGECgC90P7zF6u2x ...

  8. mysql 高可用方案MHA介绍

    概述 MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10—30秒内),完成故障切换,部署MHA,可避免主从一致性问题,节约购买新 ...

  9. keepalived高可用工具

    1.准备俩台虚拟机,一台主机,一台备机 我这里模拟的是 主机ip: 192.168.42.66 masternginx 备机ip: 192.168.42.77 slavenginx 虚拟ip: 192 ...

随机推荐

  1. SimpleSelectionSort

    简单选择排序 <script type="text/javascript"> var obj={ data:[0,3,1,5,7,4,8,9,5], length:8 ...

  2. 利用IOzone进行存储性能测试

    利用IOzone进行存储性能测试   命令:1.iozone -s 10G -r 4k -i 0(0代表顺序写) -w(代表文件不删除) -+n(不测重读重写) -Rb(以某种格式生成测试文件) /t ...

  3. TrueCrypt与CryptSetup双系统全盘加密(图文)

    http://blog.topsec.com.cn/truecrypt%E4%B8%8Ecryptsetup%E5%8F%8C%E7%B3%BB%E7%BB%9F%E5%85%A8%E7%9B%98% ...

  4. 数据库权限grant

    数据库权限grant 创建授权grant 权限类型(priv_type) 权限类型 代表什么? ALL 所有权限 SELECT 读取内容的权限 INSERT 插入内容的权限 UPDATE 更新内容的权 ...

  5. jmeter中beanshell postprocessor结合fastjson库提取不确定个数的json参数

    在项目实践中,遇到了这样一个问题.用jmeter作http接口测试,需要的接口参数个数是不确定的.也就是说,在每次测试中,根据情况不同,可能页面中的列表中所含的参数个数是不确定的,那么要提取的参数个数 ...

  6. SpringBoot2 单元测试类的报错问题

    问题描述 执行 SpringBoot2 测试时报错,提示找不到 SsmApplicationTests 主类 原因分析 Junit5 升级了框架没有兼容 问题解决 <!--测试模块--> ...

  7. NB-IOT技术与发展问答

    http://blog.csdn.net/pan0755/article/details/70145936 该部分分享的是物联网各垂直应用领域里,NB-IoT技术的部署,看看适合NB-IoT技术的垂直 ...

  8. MindSpore:自动微分

    MindSpore:自动微分 作为一款「全场景 AI 框架」,MindSpore 是人工智能解决方案的重要组成部分,与 TensorFlow.PyTorch.PaddlePaddle 等流行深度学习框 ...

  9. 手撸Spring框架,设计与实现资源加载器,从Spring.xml解析和注册Bean对象

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你写的代码,能接的住产品加需求吗? 接,是能接的,接几次也行,哪怕就一个类一片的 i ...

  10. 【C++】枚举类型(enum )

    定义枚举类型的主要目的是:增加程序的可读性.枚举类型最常见也最有意义的用处之一就是用来描述状态量.枚举类型数据的其他处理也往往应用switch语句,以保证程序的合法性和可读性.枚举值是常量不是变量,不 ...