目录

一、fence作用

二、在集群里添加fence

2.1、fence和node之间的通信

2.2、配置fence

2.3、node上安装fence代理

2.4、在集群中添加fence

2.5、fence动作


一、fence作用

HA01理解集群那篇文章中讲过,当集群中某个node出现故障,各个node争抢集群资源将出现脑裂。fence将node关机或重启,避免脑裂。前面的实验中,我们关闭了fence,为了验证fence的功能,我们需要打开fence。https://node1:2224中配置Stonith Enable勾选,或者参考下面的命令。

[root@node1 ~]# pcs property set stonith-enabled=true

二、在集群里添加fence

实验环境中,server上有node1、2、3,我们使用server作为fence。

2.1、fence和node之间的通信

fence要控制node1、2、3,那么就要让fence和三个node信任,因此fence和各个node之间用key去做信任。在server上:创建目录/etc/cluster/。并在该目录下创建fence用的key,注意这个文件大小必须是4k(blocksize*count),小于4k是不行的。再把这个key搞到三个node的/etc/cluster/目录里面。

[root@server:~]# mkdir -p /etc/cluster
[root@server:~]# dd if=/dev/zero of=/etc/cluster/fence_xvm.key bs=4096 count=1
[root@server:~]# scp -r /etc/cluster/ node1:/etc/cluster/
[root@server:~]# scp -r /etc/cluster/ node2:/etc/cluster/
[root@server:~]# scp -r /etc/cluster/ node3:/etc/cluster/

2.2、配置fence

如果没有fence_virtd命令,那么需要先装包。

[root@server:~]# yum install fence-virt*

在server上:相应的fence配置。将server配置成fence的引擎。设置fence_virtd服务开机启动,启动fence_virtd服务。

[root@server:~]# fence_virtd -cModule search path [/usr/lib64/fence-virt]:回车默认
Listener module [multicast]:回车默认,多路广播模式
Multicast IP Address [225.0.0.12]:回车默认,广播的IP
Multicast IP Port [1229]:回车默认,广播的端口
Interface [virbr0]:回车默认,用virbr0做node与fence的通信
Key File [/etc/cluster/fence_xvm.key]:回车默认,这个就是key的路径
Backend module [libvirt]:回车默认
=== End Configuration ===
Replace /etc/fence_virt.conf with the above [y/N]? y  回复y完成[root@server:~]# systemctl enable fence_virtd.service
[root@server:~]# systemctl start fence_virtd.service

验证fence配置正确,查看server模拟的这个fence可以发现几个node。注意!因为通过virbr0网络通信,所以发现4个node(node1-4)。但是只能管理node1-3,因为node4没有key。

[root@server:~]# fence_xvm -o list
node1                85131e1d-13c0-4bac-889a-cdfce5864337 on
node2                0b539cb2-79fb-49ab-94c8-fa4cd9e0f550 on
node3                c770c3e8-237f-46d9-8fe4-1d103740e583 on
node4                fd42d1d6-775c-4243-babc-97d4df6f3d6f on

2.3、node上安装fence代理

现实生产中,fence会由不同的fence设备实现,比如cisco、apc等。node通过脚本来与fence进行通信,对于不同的fence设备,node上需要安装不同的fence代理。yum list可以列出诸多fence代理。

[root@node1 ~]# yum list fence*

如果使用电源交换机作为fence设备,那么要安装fence-agents-apc.x86_64
如果使用思科的设备作为fence设备,那么要安装fence-agents-cisco-mds.x86_64、fence-agents-cisco-ucs.x86_64等。
…………
server是虚拟机模拟出来的fence设备,因此安装虚拟设备代理,把fence-virt*包全安装。

[root@node1 ~]# yum install fence-virt -y
[root@node2 ~]# yum install fence-virt -y
[root@node3 ~]# yum install fence-virt -y

2.4、在集群中添加fence

最后,在集群中添加fence。浏览器访问https://node1:2224 登录hacluster/redhat--->cluster1--->FENCE DEVICE--->Add
--->弹出框,类型选择fence_xvm,起名fence_xvm1,高级选项pcmk_host_list里面填写node1,node2,node3--->点击create fence device
等待一会儿fence_xvm1变蓝running就说明fence启动了。
用crm_mon -1可以看到fence资源。

命令行方式添加fence

[root@node1 ~]# pcs stonith create fence_xvm1 fence_xvm pcmk_host_list=node1,node2,node3[root@node1 ~]# pcs stonith showfence_xvm1    (stonith:fence_xvm):    Started[root@node1 ~]# pcs stonith show fence_xvm1Resource: fence_xvm1 (class=stonith type=fence_xvm)Attributes: pcmk_host_list=node1,node2,node3Operations: monitor interval=60s (fence_xvm1-monitor-interval-60s)

检测一下fence是否成功,可以手动fence一个node

[root@node1 ~]# fence_xvm -o reboot -H node3
或者
[root@node1 ~]# pcs stonith fence node3
Node: node3 fenced

2.5、fence动作

因为之前在https://node1:2224里面配置的fence动作是重启,因此断掉node3的网络以后,fence会重启node3。
[root@node3 ~]# pcs resource move vip node3
[root@node3 ~]# ifdown eth0
那么node3就会被fence重启。

HA03-fence设置相关推荐

  1. android graphic(15)—fence

    为何须要fence fence怎样使用 软件实现的opengl 硬件实现的opengl 上层使用canvas画图 上层使用opengl画图 下层合成 updateTexImage doComposeS ...

  2. AMD GPU任务调度(3) —— fence机制

    文章目录 GPU fence command format EOP event DMA fence 数据结构 dma-fence amdgpu-fence dma_fence_ops amdgpu_f ...

  3. 深入分析——Linux DMA Fence

    目录 一 简介 二 基本原理 三 代码实现 3.1 Init 3.2 wait 3.3 signaling 3.4 callback 3.5 signaled 3.6 signal 3.7 refco ...

  4. android fence深入理解

    为何需要fence     fence如何使用     软件实现的opengl     硬件实现的opengl         上层使用canvas绘图         上层使用opengl绘图    ...

  5. fence机制 linux_Linux的企业-高可用集群Haproxy+corosync+pacemaker+fence

    一.Haproxy简介 Haproxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. HAProxy特别适用于那些负载特大的web站点, ...

  6. 实验项目3——基本线性表运算(顺序存储方式)

    实验内容 [问题描述] 基本线性表经常进行的运算操作有创建基本线性表.求基本线性表的长度.在基本线性表中查找某个数据元素.在某个位置插入一个新数据元素.在某个线性表中删除某个数据元素以及基本线性表的输 ...

  7. 金仓数据库KingbaseES高可用最佳应用实践(Clusterware)

    目录 4.1. KingbaseES Clusterware简介 ¶ 4.2. 配置 ¶ 4.2.1. 硬件配置 ¶ 4.2.2. 操作系统配置 ¶ 4.2.3. Clusterware配置 ¶ 4. ...

  8. DRM框架(vkms)分析(6)---- plane初始化

    一 drm_plane结构体 struct drm_plane {struct drm_device *dev;//挂载到&drm_mode_config.plane_liststruct l ...

  9. linux企业级应用实战运维和调优资源,Linux企业级应用实战、运维和调优

    部分 Linux实用生产技能 章 生产常用基础技能 2 1.1 Hostname & Network 3 1.1.1 基础知识 3 1.1.2 Network指令 3 1.1.3 配置以太网静 ...

  10. (5)(5.10) 室内飞行指南

    文章目录 前言 5.10.1 概述 5.10.2 Stabilize 5.10.3 Altitude Hold 5.10.4 声纳 5.10.5 安全的室内飞行Dos 5.10.6 室内飞行安全须知 ...

最新文章

  1. 神经网络的结构汇总——tflearn
  2. python匿名函数调用_python3笔记十六:python匿名函数和高阶函数
  3. python常用运维模块_python常用模块之一
  4. vue项目配置eslint(附visio studio code配置)
  5. getbean方法找不到bean_iphone手机静音找不到怎么办 iphone静音找不到解决方法【图文】...
  6. 如何考核产品经理的绩效?
  7. 简单的全排列问题(给初学者)
  8. c语言三位数倒序,C语言求助!一个三位数的逆序数,总是编不对
  9. 关于“Windows无法验证设备所需的驱动程序的数字签名”错误的解决方法
  10. Oracle错误——user ** lacks CREATE SESSION privilege logon denied
  11. wow.js插件,让滚动动画更简单,让生活更美好
  12. Echarts经典颜色搭配
  13. 将越狱进行到底 Pod2g邀约众大神组建evad3rs
  14. oracle remapschema,remap schema多个用户
  15. [moment 使用]-javascript使用
  16. Power BI-同比、环比、累计值
  17. gabor滤波器 opencv 实现
  18. JavaScript的循环和
  19. 同步系统时间与硬件时钟
  20. sso单点登录的PHP实现(Laravel框架)

热门文章

  1. python查看目录下的文件_Python——查看目录下所有的目录和文件
  2. 【基础知识】截长图的方法以及防止截图时下拉框自动收回的方法
  3. 【基础知识】如何快速转发CSDN博客
  4. 【蓝桥java】递归基础之智力训练
  5. 【jstl】jstl的基本操作
  6. IDEAWebstorm使用
  7. java案例——字符串反转
  8. android专题-数据库Room
  9. 子div超出父div_菜鸟学 react props 子到父
  10. oracle 与 client端执行结果不一致_不同模式下Spark应用的执行过程