MFS分布式存储系统----fence机制解决Moosefs集群故障

1. 简介

生产环境中可能会出现集群中某台节点由于网络闪断等原因导致某台节点处于假死状态,此时集群内部为了维持正常运作可能会出现资源的自动迁移,但是像mfs这种分布式存储系统,我们结合iscsi实现了存储共享,它是本地文件系统,因此不支持同时写入。这时候两个节点上都有资源,同时写入存储则会造成脑裂现象,这时候我们就需要一种防御机制,当出现这种情况时自动使假死状态的节点断电重启从而来防止脑裂现象的产生,维持集群的正常运作,一般fence是外界的物理设备,但是因为我们用的是虚拟机,所以我们可以使用libvirtd虚拟机管理工具来实现一个类似于fence的功能
在这里插入图片描述

2. 服务端配置

[root@foundation ~]# rpm -qa | grep fence 
fence-virtd-multicast-0.4.0-4.el8.x86_64
fence-virtd-0.4.0-4.el8.x86_64
libxshmfence-1.3-2.el8.x86_64
libxshmfence-devel-1.3-2.el8.x86_64
fence-virtd-serial-0.4.0-4.el8.x86_64
fence-virtd-tcp-0.4.0-4.el8.x86_64
fence-virtd-libvirt-0.4.0-4.el8.x86_64
[root@foundation ~]# fence_virtd -c  ##fence连接libvirtd配置
Module search path [/usr/lib64/fence-virt]: 
Listener module [multicast]: 
Multicast IP Address [225.0.0.12]: 
Multicast IP Port [1229]: 
Interface [br0]:    ##第一次配置这里需要填none
Key File [/etc/cluster/fence_xvm.key]: 
Backend module [libvirt]: 
Libvirt URI [qemu:///system]: 

=== End Configuration ===
Replace /etc/fence_virt.conf with the above [y/N]? y
[root@foundation ~]# cd /etc/cluster/
[root@foundation cluster]# ls
fence_xvm.key
[root@foundation cluster]# ll
total 4
-rw-r--r--. 1 root root 128 Jan 17 01:31 fence_xvm.key
[root@foundation cluster]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1  ##生成Key,只有拥有key的主机才能对libvirtd发送命令对虚拟机进行操作
1+0 records in
1+0 records out
128 bytes copied, 8.2072e-05 s, 1.6 MB/s
[root@foundation cluster]# ll
total 4
-rw-r--r--. 1 root root 128 Apr 23 21:08 fence_xvm.key
[root@foundation cluster]# systemctl start fence_virtd.service   ##先生成key再启动服务
[root@foundation cluster]# netstat -anulp | grep :1229 ##端口开启
udp        0      0 0.0.0.0:1229            0.0.0.0:*                           6748/fence_virtd  

安装相关资源包
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 客户端配置

[root@server1 ~]# yum install -y fence-virt ##安装相关资源包
[root@server4 mfs]# yum install -y fence-virt
[root@server1 ~]# stonith_admin -I
 fence_xvm
 fence_virt
2 devices found
[root@server1 ~]# ssh server4 stonith_admin -I
 fence_xvm
 fence_virt
2 devices found

[root@server1 ~]# mkdir /etc/cluster/
[root@server4 mfs]# mkdir /etc/cluster/

复制key到集群两个节点上:
[root@foundation cluster]# scp fence_xvm.key root@192.168.0.1:/etc/cluster/    
[root@foundation cluster]# scp fence_xvm.key root@192.168.0.4:/etc/cluster/

将fence加入到集群中:
[root@server1 cluster]# pcs stonith create vmfence fence_xvm pcmk_host_map="server1:demo1;server4:demo4" op monitor interval=60s 
[root@server1 cluster]# pcs property set stonith-enabled=true  ##启用fence
[root@server1 cluster]# pcs status

[root@server4 cluster]# echo c > /proc/sysrq-trigger 

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

4. fence机制解决硬件问题

内核崩溃,网卡丢失等硬件问题能够得以解决,fence机制的存在将会使故障主机自动断电而不会造成脑裂.

[root@server4 cluster]# echo c > /proc/sysrq-trigger 

在这里插入图片描述

[root@server1 cluster]# ip link set down eth0

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值