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的更多相关文章

  1. 解决JqueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug

    前些日子不是在做 使用Jquery-UI实现一次拖拽多个选中的元素操作嘛,在持续完善这个组件时遇到了一个关于拖放排序的bug.今天就着图片和代码重现一下,也顺便告诉大家如何解决这个问题. 首先先上图描 ...

  2. 小BUG大原理:重写WebMvcConfigurationSupport后SpringBoot自动配置失效

    一.背景 公司的项目前段时间发版上线后,测试反馈用户的批量删除功能报错.正常情况下看起来应该是个小 BUG,可怪就怪在上个版本正常,且此次发版未涉及用户功能的改动.因为这个看似小 BUG 我了解到不少 ...

  3. 小BUG大原理 | 第一篇:重写WebMvcConfigurationSupport后SpringBoot自动配置失效

    一.背景 公司的项目前段时间发版上线后,测试反馈用户的批量删除功能报错.正常情况下看起来应该是个小BUG,可怪就怪在上个版本正常,且此次发版未涉及用户功能的改动.因为这个看似小BUG我了解到不少未知的 ...

  4. 从一个小Bug,到Azure DevOps

    1. 一个小Bug 最近和同事提起一个几年前的 Bug,那是一个很小很小的 Bug,没什么技术含量.那时候我刚入职,正好公司卖了一款仪器到某个国家,但是那边说配套的软件运行不起来,一打开就报错.经过排 ...

  5. Chrome出了个小bug:论如何在Chrome下劫持原生只读对象

    Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...

  6. 淘宝WAP版小BUG分析

    前几天发现的一个淘宝WAP版的小BUG,就是用桌面版chrome看的时候产品评价中的图片显示不出来,都是图裂了. 这是什么原因呢?图片为什么会显示不出来呢?淘宝的技术人员.测试人员不可能没发现啊.开启 ...

  7. ASP.NET MVC 开发中遇到的两个小问题

    最近在做一个网站,用asp.net MVC4.0来开发,今天遇到了两个小问题,通过查找相关渠道解决了,在这里把这两个问题写出来,问题非常简单,不喜勿喷,mark之希望可以给遇到相同问题的初学者一点帮助 ...

  8. pyhton 查找一个数的所有因子 以及 判断一个数是否是质数 两个小脚本

    最近看到一个网站, 欧拉计划.挺好玩,都是一些算法题.这是本站:http://projecteuler.net/problems 这个是中文站:http://pe.spiritzhang.com/ 下 ...

  9. 关于一个小bug的修正

    python初学者,非常喜欢虫师的文章. 练习时发现一个小bug,http://www.cnblogs.com/fnng/p/3782515.html 验证邮箱格式一题中,第三个x不允许有数字,但是测 ...

随机推荐

  1. dispay属性的block,inline,inline-block

    转自下面的几位大神: http://www.cnblogs.com/KeithWang/p/3139517.html 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 bl ...

  2. MFC的自定义消息的定义与使用

    自定义消息的响应和资源消息的响应有很多类似之处:资源消息的响应是以资源的ID号作为标识的:自定义的消息要自己声明消息ID. 一.           定义: 第一步要声明消息: #define WM_ ...

  3. HIS与CIS的区别与联系

    医院的医疗信息系统总体可以分为两类:一类是关于医院管理运作的,另一类是关于临床医疗护理的,即面向医院管理和病人管理,前者被称为HIS(医院信息系统),后者被称为CIS(临床信息系统).HIS是以经济核 ...

  4. maven自动部署到远程tomcat教程

    使用maven的自动部署功能可以很方便的将maven工程自动部署到远程tomcat服务器,节省了大量时间. 本文章适用于tomcat的7.x ,8.x, 9.x版本. 下面是自动部的步骤 1,首先,配 ...

  5. ASP.NET上传大文件的问题

    原文:http://www.cnblogs.com/wolf-sun/p/3657241.html?utm_source=tuicool&utm_medium=referral 引言 之前使用 ...

  6. construction of tuples containing 0 or 1 items

    [construction of tuples containing 0 or 1 items] the syntax has some extra quirks to accommodate the ...

  7. POJ 1228 - Grandpa's Estate 稳定凸包

    稳定凸包问题 要求每条边上至少有三个点,且对凸包上点数为1,2时要特判 巨坑无比,调了很长时间= = //POJ 1228 //稳定凸包问题,等价于每条边上至少有三个点,但对m = 1(点)和m = ...

  8. 简单的python服务器程序

    一个接受telnet输入的服务器端小程序 #!/usr/local/bin/python3.5 #coding:utf-8 import socket host = '' port = 51423 s ...

  9. H5-杂七杂八的标签

    1.overflow:设置当内容超出父级的宽高尺寸设置时的处理方式 a.hidden:隐藏超出部分的内容 b.auto:如果内容没有超出,就正常显示,如果超出,就隐藏内容并提供滚动条,可以滚动显示超出 ...

  10. 使用jquery form插件进行异步带文件的表单提交

    引入form插件与jquery 的js文件后 获取表单的jq对象 然后.ajaxSubmit提交表单即可 实现添加品牌的异步表单提交 function addBarandImg(formId) { $ ...