1. 问题描述

redhat在进行HA切换时,需要先停止service,并释放调当前主机占有的资源,比如说IP Address和Filesystem,但今天我在验证HA切换时,发现service一直停止失败,导致HA切换失败,具体报错信息如下

Jun 6 11:10:50 SHQZ-PS-IOT-SV2-BILL01 rgmanager[2529]: Stopping service service:service_bill

Jun 6 11:10:50 SHQZ-PS-IOT-SV2-BILL01 rgmanager[7526]: [ip] Removing IPv4 address 172.17.131.222/26 from eth0

Jun 6 11:10:51 SHQZ-PS-IOT-SV2-BILL01 ntpd[2152]: Deleting interface #7 eth0, 172.17.131.222#123, interface stats: received=0, sent=0, dropped=0, active_time=1542 secs

Jun 6 11:11:01 SHQZ-PS-IOT-SV2-BILL01 rgmanager[7670]: [fs] unmounting /billdata

Jun 6 11:11:06 SHQZ-PS-IOT-SV2-BILL01 rgmanager[7804]: [fs] unmounting /billdata

Jun 6 11:11:11 SHQZ-PS-IOT-SV2-BILL01 rgmanager[7938]: [fs] unmounting /billdata

Jun 6 11:11:11 SHQZ-PS-IOT-SV2-BILL01 rgmanager[7983]: [fs] 'umount /billdata' failed, error=1

Jun 6 11:11:11 SHQZ-PS-IOT-SV2-BILL01 rgmanager[2529]: stop on fs "billdata" returned 1 (generic error)

Jun 6 11:11:12 SHQZ-PS-IOT-SV2-BILL01 rgmanager[2529]: #12: RG service:service_bill failed to stop; intervention required

Jun 6 11:11:12 SHQZ-PS-IOT-SV2-BILL01 rgmanager[2529]: Service service:service_bill is failed

我这里只配置了IP Address和Filesystem两个资源,从上面的日志信息可以看到,首先删除IP Address,这个是没有问题的,接下来释放Filesystem资源,这时候就出问题了,rgmanage服务尝试unmounting /billdata 三次都失败了,导致service停止失败,HA切换也就失败了。

2. 解决方法

登陆到HA管理界面,点击"Resource",选择我配置的Filesystem资源



注意:勾选Force Unmount选项,然后点击"Apply"。

接下来,再次测试HA切换,现在资源都在SHQZ-PS-IOT-SV2-BILL01机器上,执行命令clusvcadm -r service_bill -m SHQZ-PS-IOT-SV2-BILL02,将服务切换到SHQZ-PS-IOT-SV2-BILL01上

# clustat查看集群状态
[root@SHQZ-PS-IOT-SV2-BILL01 cluster]# clustat
Cluster Status for cl_bill @ Wed Jun 6 14:13:42 2018
Member Status: Quorate Member Name ID Status
------ ---- ---- ------
SHQZ-PS-IOT-SV2-BILL02 2 Online, rgmanager
SHQZ-PS-IOT-SV2-BILL01 3 Online, Local, rgmanager Service Name Owner (Last) State
------- ---- ----- ------ -----
service:service_bill SHQZ-PS-IOT-SV2-BILL01 started # 切换服务到SHQZ-PS-IOT-SV2-BILL01上
[root@SHQZ-PS-IOT-SV2-BILL01 cluster]# clusvcadm -r service_bill -m SHQZ-PS-IOT-SV2-BILL02
Trying to relocate service:service_bill to SHQZ-PS-IOT-SV2-BILL02...Success
service:service_bill is now running on SHQZ-PS-IOT-SV2-BILL02

这次,我们总算是成功了,登陆SHQZ-PS-IOT-SV2-BILL02查看IP Address和Filesystem资源是否存在

[root@SHQZ-PS-IOT-SV2-BILL02 cluster]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN qlen 1000
link/ether 00:50:56:9e:34:c1 brd ff:ff:ff:ff:ff:ff
inet 172.17.131.224/26 brd 172.17.131.255 scope global eth0
inet 172.17.131.222/26 scope global secondary eth0
inet6 fe80::250:56ff:fe9e:34c1/64 scope link
valid_lft forever preferred_lft forever [root@SHQZ-PS-IOT-SV2-BILL02 cluster]# df -h /billdata
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_bill-lvbilldata
985G 97G 838G 11% /billdata

可以看到资源都在SHQZ-PS-IOT-SV2-BILL02上了

3. 原因分析

勾选Force Unmount选项后,HA切换时,SHQZ-PS-IOT-SV2-BILL01日志如下:

Jun 6 12:41:05 SHQZ-PS-IOT-SV2-BILL01 rgmanager[2529]: Stopping service service:service_bill

Jun 6 12:41:05 SHQZ-PS-IOT-SV2-BILL01 rgmanager[5791]: [ip] Removing IPv4 address 172.17.131.222/26 from eth0

Jun 6 12:41:06 SHQZ-PS-IOT-SV2-BILL01 ntpd[2152]: Deleting interface #9 eth0, 172.17.131.222#123, interface stats: received=0, sent=0, dropped=0, active_time=1516 secs

Jun 6 12:41:15 SHQZ-PS-IOT-SV2-BILL01 rgmanager[5852]: [fs] unmounting /billdata

Jun 6 12:41:15 SHQZ-PS-IOT-SV2-BILL01 rgmanager[5918]: [fs] Sending SIGTERM to processes on /billdata

Jun 6 12:41:21 SHQZ-PS-IOT-SV2-BILL01 rgmanager[5953]: [fs] unmounting /billdata

Jun 6 12:41:24 SHQZ-PS-IOT-SV2-BILL01 rgmanager[2529]: Service service:service_bill is stopped

SHQZ-PS-IOT-SV2-BILL02日志如下:

Jun 6 12:41:24 SHQZ-PS-IOT-SV2-BILL02 rgmanager[2368]: Starting stopped service service:service_bill

Jun 6 12:41:25 SHQZ-PS-IOT-SV2-BILL02 rgmanager[12296]: [fs] mounting /dev/dm-2 on /billdata

Jun 6 12:41:25 SHQZ-PS-IOT-SV2-BILL02 rgmanager[12318]: [fs] mount -t ext4 /dev/dm-2 /billdata

Jun 6 12:41:25 SHQZ-PS-IOT-SV2-BILL02 kernel: EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts:

Jun 6 12:41:25 SHQZ-PS-IOT-SV2-BILL02 rgmanager[12404]: [ip] Adding IPv4 address 172.17.131.222/26 to eth0

Jun 6 12:41:29 SHQZ-PS-IOT-SV2-BILL02 rgmanager[2368]: Service service:service_bill started

Jun 6 12:41:29 SHQZ-PS-IOT-SV2-BILL02 ntpd[2123]: Listening on interface #6 eth0, 172.17.131.222#123 Enabled

通过分析上面的日志,我猜测原因可能是这样的:

如果/billdata这个目录一直有进程在访问(我的/billdata目录确实一直被进程访问),在勾选Force Unmount选项前,rgmanager服务在umount /billdata时,因为有进程在访问该目录,导致umount失败。

勾选Force Unmount后,rgmanger在umount /billdata时,如果有进程在占用/billdata目录,会发出SIGTERM信号给该进程,解除其对/billdata的占用,然后再umount,最后stop service。同时SHQZ-PS-IOT-SV2-BILL02上监测到service停止,就会重新启动service,接管IP Address和Filesystem资源

HA切换失败原因分析的更多相关文章

  1. 百度编辑器(Ueditor)最新版(1.4.3.3)插入锚点失败原因分析及BUG修复

    用百度编辑器——Ueditor(版本1.4.3.3,2016-05-18日上线)插入锚点的时候,每次总是失败,百思不得其解.通过分析Ueditor的代码ueditor.all.js,可以看出Uedit ...

  2. dpdk组态 千兆网卡 驱动 失败 原因分析及 解决方案

    dpdk版本号是1.7.1稳定版,server它是ubuntu12.04LTS x86 64bit 绑定默认驱动程序千兆网卡ixgbe失败 # ./dpdk_nic_bind.py -b ixgbe ...

  3. ROS HTB限速失败原因分析和需注意事项

    要想做限速,必须要知道以下几点: 首先要知道自己要限制什么的速度,谁的速度,于是需要用的标记,即Mangle. 其次要知道怎么限速,是限制上传,还是下载? 最后要知道所做的限速是否成功,即需要知道如何 ...

  4. RP4412开发板烧写Ubuntu12.04失败原因分析解决

    Ubuntu烧写失败可能是卡的问题 问:用RP4412开发板,卡烧了光盘中的fastboot失败,现在如何补救呢? 答:INAND格式化,利用usb来升级啊. 也有文档,看升级文档. 问:这个是怎么回 ...

  5. Linux suse x86_64 环境上部署Hadoop启动失败原因分析

    一.问题症状: 在安装hadoop的时候报类似如下的错误: # A fatal error has beendetected by the Java Runtime Environment: # #  ...

  6. centos7 sftp设置后 ssh 启动失败 原因分析

    大多数人 在 设置SFTP 使用时,会在 ../sshd_config中添加如下内容: ------------------------------- Subsystem sftp internal- ...

  7. virsh default启动失败原因分析及解决

    启动default时出现如下错误提示:[root@node1 ~]# virsh net-start defaulterror: Failed to start network defaulterro ...

  8. linux下使用crontab实现定时PHP计划任务失败的原因分析

    这篇文章主要介绍了linux下使用crontab实现定时PHP计划任务失败的原因分析,需要的朋友可以参考下   很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存.本 ...

  9. HBase丢失数据的故障和原因分析

    hbase的稳定性是近期社区的重要关注点,毕竟稳定的系统才能被推广开来,这里有几次稳定性故障和大家分享.     第一次生产故障的现象及原因     现象: 1 hbase发现无法写入 2 通过hbc ...

随机推荐

  1. 【NOI2014】魔法森林 - 动态加边SPFA

    题目描述 为了得到书法大家的真传,小 E 同学下定决心去拜访住在魔法森林中的隐 士.魔法森林可以被看成一个包含 n 个节点 m 条边的无向图,节点标号为 1,2,3,…,n,边标号为 1,2,3,…, ...

  2. Java引用类型之软引用(1)

    Java使用SoftReference来表示软引用,软引用是用来描述一些“还有用但是非必须”的对象.对于软引用关联着的对象,在JVM应用即将发生内存溢出异常之前,将会把这些软引用关联的对象列进去回收对 ...

  3. Macbook pro 下修改MySQL数据库密码

    步骤: 1. 打开终端 Terminal, 找到Mysql 的安装路径,一般默认安装路径为:/usr/local/mysql-5.7.12-osx10.11-x86_64/bin [注:我安装的Mys ...

  4. Java--- 关于null的处理若干方法

    Java--- 关于null的处理若干方法 相信空指针是平时最常见的错误了,下面认识 null ,有助于解决 NPE 问题. nulll大小写敏感 关于这个问题,其实是对面试时候手写算法题时候需要注意 ...

  5. 神舟zx6-ct5da装黑苹果Macos 10.15.6记录

    可能是一时脑子抽风,突然就想体验一把mac系统.以前就了解过,给非苹果电脑装macos叫黑苹果,emmmmm.好吧,给我的神船也整一个. 看了很多个视频,整理一下装黑苹果过程.本人电脑系统是win10 ...

  6. WPF Devexpress控件库中ChartControl--实现不等距x轴

    一.概要 解决问题--ChartControl不等距x轴显示 二.CS代码 用过ChartControl的开发者们应该都知道,ChartControl中设置x轴间距间隔都是固定的数值. 比如(间隔10 ...

  7. Spring整合WebSocket

    WebSocket,干什么用的?我们有了HTTP,为什么还要用WebSocket?很多同学都会有这样的疑问.我们先来看一个场景,大家的手机里都有微信,在微信中,只要有新的消息,这个联系人的前面就会有一 ...

  8. RabbitMQ高级之消息限流与延时队列

    人生终将是场单人旅途,孤独之前是迷茫,孤独过后是成长. 楔子 本篇是消息队列RabbitMQ的第五弹. 上篇本来打算讲述RabbitMQ的一些高级用法: 如何保证消息的可靠性? 消息队列如何进行限流? ...

  9. Android开发之数据存储——SharedPreferences基础知识详解,饿补学会基本知识,开发者必会它的用法。

    一.数据存储选项:Data Storage --Storage Options[重点] 1.Shared Preferences Store private primitive data in key ...

  10. Android开发,java开发程序员常见基础面试题,更换两个变量的值,java逻辑代码

    public class abswitch{ public static void main (String args []){ //author:qq986945193 int a=1; int b ...