目录

一、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. requirednew基于xml配置日志不回滚_Elasticsearch配置IK分词器的远程词库
  2. JDK 13 的 12 个新特性,真心涨姿势了
  3. 02软件需求读书笔记(二)
  4. 想接私活时薪再翻一倍,建议根据这几个开源的SpringBoot项目(含小程序)
  5. 利用 PGO 提升 .NET 程序性能
  6. Python入门2_之列表元组
  7. c语言怎么产生随机字母,菜鸟求助,写一个随机输出26个英文字母的程序
  8. com 组件调用不起来_Spring Cloud Alibaba,分布式服务调用(四)
  9. Pandas period_range
  10. ftp服务器文件端口,ftp服务器端口用哪个文件
  11. CSDN 文章自动显示全文
  12. windows的终端命令
  13. Print Conductor中文版
  14. EasyRecovery2022版支持电脑, 硬盘, U盘, 内存卡, 回收站等设备数据恢复
  15. linux命令详解之du命令
  16. 浙江学生头戴“金箍”,上课走神自动通知家长
  17. Segger和Micrium之间的区别和联系
  18. php-redis常用操作
  19. MTK 6737 android6.0 user版本打开root权限(adb root权限和 apk root权限)
  20. java localdate获取自然周

热门文章

  1. 软件测试--利用正交表设计测试用例
  2. 为何 Map接口不继承Collection接口
  3. python括号配对问题_使用Python的栈实现括号匹配算法
  4. 【微信小程序】侧滑栏,手动侧滑出个人中心(完整代码附效果图)
  5. iOS8底部弹出日期选择或自定义选择器的方法
  6. 用Ajax请求服务器的图片,并显示在浏览器中(转)
  7. 会话保持之iRule脚本
  8. UVA 116 Unidirectional TSP DP
  9. Php中正则小结(一)
  10. 一步一步实现扫雷游戏(C语言实现)(三)