MFS——fence解决mfsmaster高可用中的脑裂问题

news/2024/7/6 20:01:32

一、fence的工作原理

fence的工作原理:

当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资 源进行了释放,保证了资源和服务始终运行在一个节点上,并且有效的阻止了脑裂(高可用节点分裂为两个独立节点,这个时候会开始争抢共享资源)的发生。

二、部署fence的解决脑裂

前提:将上一篇博客关闭的server1打开

在这里插入图片描述

在上一篇的博客基础上添加物理机作为fence

第一步:配置物理机(做这个实验记得将物理机的防火墙关掉喔~或者配置相应的策略)

fence服务端:

[root@foundation27 ~]# yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y

进行初始化设置(其中要将接口设备改为br0,其他默认回车,最后一项输入y确定即可)

注:这里br0是因为虚拟服务器受主机控制的网卡是br0

在这里插入图片描述
初始化设置:

[root@foundation27 ~]# fence_virtd -c

在这里插入图片描述

在这里插入图片描述

生成fence_xvm.key

[root@foundation83 ~]# mkdir /etc/cluster     #建立目录
[root@foundation83 ~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1    #dd截取,生成128位的fence_xvm.key,可以file查看这个key类型是数据(data),所以只能利用下面的命令来查看该文件
[root@foundation83 ~]# hexdump -C /etc/cluster/fence_xvm.key    #查看key

在这里插入图片描述
启动fence_virtd服务,并查看1229端口(fence_virtd服务对应的端口)是否存在

[root@foundation83 cluster]# systemctl start fence_virtd.service 
[root@foundation83 cluster]# netstat -antulpe | grep 1229

在这里插入图片描述

第二步:配置server1和server4

fence客户端:

server4端的操作同server1

安装fence客户端需要安装的软件:fence-virt

[root@server1 ~]# yum install fence-virt -y

在这里插入图片描述
在这里插入图片描述

从fence服务端那里拷贝fence_xvm.key

[root@server1 ~]# mkdir /etc/cluster
[root@server1 ~]# cd /etc/cluster
[root@server1 ~]# scp @172.25.27.1:/etc/cluster/fence_xvm.key .    #给HA节点发送key
[root@server1 ~]# ll /etc/cluster/

在这里插入图片描述

在这里插入图片描述

第三步:添加fence设备,启用STONITH

[root@server1 ~]# pcs stonith create vmfence fence_xvm pcmk_host_map="server1:server1;server4:server4" op monitor interval=1min   #添加名为vmfence的fence设备(其中第一个server1表示虚拟机的名字,第二个server1表示主机名。server4同理)。其中vmfence这个名字随意给
[root@server1 ~]# crm_mon     #查看监控,其中fence设备运行的主机和其他资源运行的主机正好是相反的

在这里插入图片描述

在这里插入图片描述

启用STONITH

[root@server1 ~]# pcs property set stonith-enabled=true   #启用STONUTH
[root@server1 ~]# crm_verify -L -V   #检测配置是否正确(假若没有输出任何则配置正确)

在这里插入图片描述

第四步:进行测试:

方法一:利用echo命令直接让系统崩溃

[root@server1 ~]# echo c > /proc/sysrq-trigger

在这里插入图片描述

此时,我们会发现server1自动重启

在这里插入图片描述

因为上篇博文设置了pcs集群开机自启,所以不用在server1端手动启动集群节点server1,vmfence就会运行在server1端。(否则需要等到server1端开启之后输入命令"pcs cluster start server1"来启动pcs集群中的server1端,vmfence才能运行在server1端)

在server4端查看监控(crm_mon):vip,mfsdata,mfsd这三个资源运行在server4端,vmfence运行在server1端

在这里插入图片描述
客户端的访问并没有受到任何影响
在这里插入图片描述

方法一:利用fence命令

[root@server1 ~]# fence_xvm -H   server4

在这里插入图片描述

此时,我们会发现server4自动重启
在这里插入图片描述

在server1端查看监控(crm_mon):vip,mfsdata,mfsd这三个资源运行在server1端,vmfence运行在server4端
在这里插入图片描述

客户端的访问并没有受到任何影响
在这里插入图片描述


http://www.niftyadmin.cn/n/2864050.html

相关文章

Hibernate二级缓存攻略(转)

Hibernate二级缓存攻略(转)  很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。   我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的&#xf…

Log4J 基本使用方法

Log4J 基本使用方法 先看一个log4j.properies配置文件: #定义输出级别和输出平台 log4j.rootLoggerINFO,stdout,fileout #设定stdout输出平台 log4j.appender.stdoutorg.apache.log4j.ConsoleAppender log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout…

Ansible——自动化运维Ansible的部署以及常用模块的使用

一.Ansible的概念 当下有许多的运维自动化工具(配置管理 ),例如:Chef、Ansible、SaltStack、Puppet、Fabric 等。 Ansible 一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,是 AnsibleWorks 公司名下的…

hibernate学习之第十五篇

事务与事务边界 hibernate实际上使用jdbc实现事务管理,这种事务只能用于一个数据库。 tx session.beginTransaction();这句代码内部实际就是connection.setAutoCommit(false);的操作。Hibernate是JDBC的轻量级封装,本身并不具备事务管理能力。在事务管…

hibernate学习之第十六篇

session context和事务边界 用current_session_context_class属性来定义context(用sessionFactory.getCurrentSession()来获得session),其值为: 1,thread:ThreadLocal来管理Session实现多个操作共享一个Session,避免反…

解读IT行业“敲门砖” IT认证逐个瞧

原文:http://edu.chinaitlab.com/news/739480.html IT专业技术认证是进入IT行业的“敲门砖”。由国际著名IT企业颁发的的职业证书,证明了你具有某种专业IT技能,为国际承认并通用。这些国际著名 IT企业为:Microsoft、Oracle 、Cis…

hibernate学习之十七篇

零碎知识小结&#xff1a; ◆数据类型&#xff1a; 1&#xff0c;<property name"name" type"java.lang.String"/> type可以是hibernate&#xff0c;java类型或者你自己的类型&#xff08;需要实现hibernate的一个接口&#xff09; 2&#xff0c;基…

hibernate学习之十八篇

hibernate不适合的场景&#xff1a; 1&#xff0c;不适合OLAP&#xff08;on-line Analytical Processing 联机分析处理&#xff09;&#xff0c;以查询分析数据为主的系统&#xff1b;适合OLTP&#xff08;On-line transaction processing联机事务处理&#xff09;。 2&#…