fence机制解决Moosefs集群故障
1.服务端配置
[root@foundation15 ~]# yum install fence-virtd-multicast.x86_64 fence-virtd-libvirt.x86_64 -y #安装
[root@foundation15 ~]# rpm -qa | grep fence #查看安装的fence有哪些
fence-virtd-multicast-0.4.0-4.el8.x86_64
fence-virtd-libvirt-0.4.0-4.el8.x86_64
libxshmfence-1.3-2.el8.x86_64
fence-virtd-0.4.0-4.el8.x86_64
[root@foundation15 ~]# fence_virtd -c #fence连接libvirtd配置
一路回车
注意:Interface [br0]: #【】中不是桥接 输入桥接,是的话,直接回车
=== End Configuration ===
Replace /etc/fence_virt.conf with the above [y/N]? y
[root@foundation15 ~]# mkdir /etc/cluster/
[root@foundation15 ~]# cd /etc/cluster/
[root@foundation15 cluster]# ls
[root@foundation15 cluster]# dd if=/dev/urandom of=fence_xvm.key bs=128 count=1
1+0 records in
1+0 records out
128 bytes copied, 6.8293e-05 s, 1.9 MB/s
[root@foundation15 cluster]# ls
fence_xvm.key
[root@foundation15 cluster]# ll
total 4
-rw-r--r--. 1 root root 128 Jul 9 09:58 fence_xvm.key
[root@foundation15 cluster]# cat fence_xvm.key #查看密钥
�q�^FϑsG��Q
�C*� [�'�7����bA���]o�b[�&�rVz�k�����i����jk��x�,p��ɱ�([��\�*��y�N�h��EB�Q�@+��XmON b���~�2@5\k�O�k�[root@foundation15 cluster]#
[root@foundation15 cluster]# systemctl restart fence_virtd.service #启动服务
[root@foundation15 cluster]# netstat -anulp | grep :1229 #查看服务端口,可以检测是否成功
udp 0 0 0.0.0.0:1229 0.0.0.0:* 6999/fence_virtd
[root@foundation15 cluster]#
[root@server1 ~]# mkdir /etc/cluster/ #创建目录
[root@server2 ~]# mkdir /etc/cluster/
密钥传给server1和server2
[root@foundation15 cluster]# cd /etc/cluster/
[root@foundation15 cluster]# ls
fence_xvm.key
[root@foundation15 cluster]# scp fence_xvm.key root@172.25.15.1:/etc/cluster/
fence_xvm.key 100% 128 234.1KB/s 00:00
[root@foundation15 cluster]# scp fence_xvm.key root@172.25.15.2:/etc/cluster/
root@172.25.15.2's password:
fence_xvm.key 100% 128 123.3KB/s 00:00
[root@foundation15 cluster]#
2.客户端配置
[root@server1 ~]# ls /etc/cluster/
fence_xvm.key
[root@server1 ~]# ssh server2 ls /etc/cluster/ #远程查看server2的目录
root@server2's password: #未作免密,输入密码
fence_xvm.key
[root@server1 ~]# yum install -y fence-virt.x86_64
[root@server1 ~]# ssh server2 yum install -y fence-virt.x86_64 #远程对server2执行安装
[root@server1 ~]# stonith_admin -I #查看已经安装fence套件
fence_xvm
fence_virt
2 devices found
[root@server1 ~]# ssh server2 stonith_admin -I #远程server2查看已经安装fence套件
root@server2's password:
fence_xvm
fence_virt
2 devices found
将fence加入到集群中:
[root@server1 ~]# pcs stonith create vmfence fence_xvm pcmk_host_map="server1:vm1;server2:vm2" op monitor interval=60s #设置集群每60s检测一次
[root@server1 ~]# pcs property set stonith-enabled=true #启用fence
[root@server1 ~]# pcs status #查看状态
3.测试,fence机制解决硬件问题
内核崩溃,网卡丢失等硬件问题能够得以解决,fence机制的存在将会使故障主机自动断电而不会造成脑裂.
[root@server1 ~]# ip link set down eth0 #断开网络server1网络,自动重启
[root@server1 ~]# pcs status #查看状态,server2接管
[root@server2 ~]# echo c > /proc/sysrq-trigger #破坏server2,自动重启
[root@server2 ~]# pcs status #查看状态,server1接管
vm1:server1重启
vm2:server2重启
server1接管