HA03-fence设置

本文详细介绍了Linux集群中fence的作用及配置步骤。fence用于防止集群节点故障导致的脑裂问题,通过在服务器上配置fence_virtd服务,并设置通信key,确保节点间的信任。接着在各节点上安装fence代理,然后在集群中添加fence设备。通过监控和手动测试,验证了fence设备能够正常工作并能对故障节点执行重启操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、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 -c

Module 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 show
 fence_xvm1	(stonith:fence_xvm):	Started

[root@node1 ~]# pcs stonith show fence_xvm1
 Resource: fence_xvm1 (class=stonith type=fence_xvm)
  Attributes: pcmk_host_list=node1,node2,node3
  Operations: 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重启。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦行僧(csdn)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值