Heartbeat的两个小BUG
1,heartbeat启动不起来
如果你是用了linux-ha.japan里面的repo文件,Yum安装pacemaker+heartbeat时。
可能会发现打了service heartbeat start后什么反应也没有。
其实是这个网站里的软件默认配置写错了,做以下的修改就能解决。
vi /usr/lib/ocf/resource.d/heartbeat/.ocf-directories
: ${HA_BIN:=/usr/libexec/heartbeat}
改成
: ${HA_BIN:=/usr/lib64/heartbeat}
cp /usr/libexec/heartbeat/* /usr/lib64/heartbeat/
这个BUG只有用pacemaker+heartbeat才有,pacemaker+corosync时没有。
2,IPaddr2 模块不监控网卡状态
/usr/lib/ocf/resource.d/heartbeat/IPaddr2
这个模块去看一下代码就知道了,他不关心网卡的状态,网卡down掉也不会切换。
有的网站上说配置一个pingd的资源来监视ping可以解决这个问题。
但是我做了测试,有一种情况下pingd也无法解决问题,就是网线掉了。。。
有人会问,网线掉了IP肯定ping不通了啊?pingd怎么会监视不到?
我们的linux服务器里面有个叫NetworkManager的服务,默认是开启的,
当网线掉了的时候,他会去判断网卡的状态,发现是unplug后就会清掉IP信息。
但是这个家伙经常会自作主张的去修改路由信息,所以做服务器的时候往往会把它关掉。
当NetworkManager不再运行的时候,拔掉网线,在什么也不做的情况下,
自己ping自己的IP仍然是通的(虚拟机可能在vshpere等的控制下IP会被清掉),
而heartbeat的网络监视方法就是自己ping自己,因此,ping就会判断错误。
不相信的同学可以去找台物理服务器试试看。
解决方法很简单,让IPaddr2加一个网卡状态判断,如果不是up状态就切换。
vi /usr/lib/ocf/resource.d/heartbeat/IPaddr2
找到ip_monitor()
在注解文字的直下加上一段代码
t=$(ip link show "$NIC" | grep -c "state UP")
test $t -ne 1 && return $OCF_ERR_PERM
这样做后检测失败会在crm里留下错误记录,记录累计到一定的次数资源就会强制失效,
所以还要在资源里加上
primitive vip ocf:heartbeat:IPaddr2 \
params ip="10.100.1.102" cidr_netmask="24" \
op monitor interval="10" timeout="20" \
meta failure-timeout="120"
定期清理vip的错误信息,这个时间不能设太短,否则备机还没有接管,信息就清理掉的话会导致failover失败.
Heartbeat的两个小BUG的更多相关文章
- 解决JqueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug
前些日子不是在做 使用Jquery-UI实现一次拖拽多个选中的元素操作嘛,在持续完善这个组件时遇到了一个关于拖放排序的bug.今天就着图片和代码重现一下,也顺便告诉大家如何解决这个问题. 首先先上图描 ...
- 小BUG大原理:重写WebMvcConfigurationSupport后SpringBoot自动配置失效
一.背景 公司的项目前段时间发版上线后,测试反馈用户的批量删除功能报错.正常情况下看起来应该是个小 BUG,可怪就怪在上个版本正常,且此次发版未涉及用户功能的改动.因为这个看似小 BUG 我了解到不少 ...
- 小BUG大原理 | 第一篇:重写WebMvcConfigurationSupport后SpringBoot自动配置失效
一.背景 公司的项目前段时间发版上线后,测试反馈用户的批量删除功能报错.正常情况下看起来应该是个小BUG,可怪就怪在上个版本正常,且此次发版未涉及用户功能的改动.因为这个看似小BUG我了解到不少未知的 ...
- 从一个小Bug,到Azure DevOps
1. 一个小Bug 最近和同事提起一个几年前的 Bug,那是一个很小很小的 Bug,没什么技术含量.那时候我刚入职,正好公司卖了一款仪器到某个国家,但是那边说配套的软件运行不起来,一打开就报错.经过排 ...
- Chrome出了个小bug:论如何在Chrome下劫持原生只读对象
Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...
- 淘宝WAP版小BUG分析
前几天发现的一个淘宝WAP版的小BUG,就是用桌面版chrome看的时候产品评价中的图片显示不出来,都是图裂了. 这是什么原因呢?图片为什么会显示不出来呢?淘宝的技术人员.测试人员不可能没发现啊.开启 ...
- ASP.NET MVC 开发中遇到的两个小问题
最近在做一个网站,用asp.net MVC4.0来开发,今天遇到了两个小问题,通过查找相关渠道解决了,在这里把这两个问题写出来,问题非常简单,不喜勿喷,mark之希望可以给遇到相同问题的初学者一点帮助 ...
- pyhton 查找一个数的所有因子 以及 判断一个数是否是质数 两个小脚本
最近看到一个网站, 欧拉计划.挺好玩,都是一些算法题.这是本站:http://projecteuler.net/problems 这个是中文站:http://pe.spiritzhang.com/ 下 ...
- 关于一个小bug的修正
python初学者,非常喜欢虫师的文章. 练习时发现一个小bug,http://www.cnblogs.com/fnng/p/3782515.html 验证邮箱格式一题中,第三个x不允许有数字,但是测 ...
随机推荐
- Linux 命令 ls -l
一.ll命令 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名. Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便. 如果要使用此命令,可以作如下修改:打 ...
- Android IOS WebRTC 音视频开发总结(七四)-- WebRTC开源5周年了,Google怎么看?
本文最早发表在我们的微信公众号上(微信ID:blackerteam),支持原创,详见这里, 2016年6月9日是WebRTC开源5周年的日子,Google WebRTC负责人Harald在社区里面写了 ...
- eclipse 删除所有注释及空白行
Ctrl+F 删除java注释: /\*{1,2}[\s\S]*?\*/ Ctrl+F 删除xml注释: <!-[\s\S]*?--> Ctrl+F 删除空白行: ^\s*\n 选 ...
- jQuery之ajax的跨域获取数据
如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型.使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面.服务 ...
- C/ C++ 常见编程问题
C 中容易忽略的问题 1.在C语言中,浮点型变量分为两类: a. 单精度型:类型说明符为float, 在Turbo C 中占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,可提 ...
- scala 学习:object 和class, trait
object: Scala中没有静态修饰符,static,在object下的成员全部都是静态的,如果在类中声明了与该类相同的名字的object则该object是该类的"半生对象", ...
- Groovy basic
1. print println "Hello Groovy!" you can use java in Groovy System.out.println("Hello ...
- Java核心知识点学习----多线程并发之线程间的通信,notify,wait
1.需求: 子线程循环10次,主线程循环100次,这样间隔循环50次. 2.实现: package com.amos.concurrent; /** * @ClassName: ThreadSynch ...
- ABP的Zero Sample
下载自:https://github.com/aspnetboilerplate/module-zero 打开D:\ABP\module-zero-master\sample里的ModuleZeroS ...
- M1事后分析汇报总结
学霸网站项目Postmortem结果 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 学霸网站为计算机学习提供了一个网上基地,在这里你 ...