天天看点

HA03-fence设置一、fence作用二、在集群里添加fence

目录

一、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勾选,或者参考下面的命令。

[[email protected] ~]# 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/目录里面。

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

2.2、配置fence

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

[[email protected]:~]# yum install fence-virt*           

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

[[email protected]:~]# 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完成

[[email protected]:~]# systemctl enable fence_virtd.service
[[email protected]:~]# systemctl start fence_virtd.service           

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

[[email protected]:~]# 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代理。

[[email protected] ~]# 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*包全安装。

[[email protected] ~]# yum install fence-virt -y
[[email protected] ~]# yum install fence-virt -y
[[email protected] ~]# 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资源。

HA03-fence设置一、fence作用二、在集群里添加fence

命令行方式添加fence

[[email protected] ~]# pcs stonith create fence_xvm1 fence_xvm pcmk_host_list=node1,node2,node3

[[email protected] ~]# pcs stonith show
 fence_xvm1	(stonith:fence_xvm):	Started

[[email protected] ~]# 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

[[email protected] ~]# fence_xvm -o reboot -H node3
或者
[[email protected] ~]# pcs stonith fence node3
Node: node3 fenced
           

2.5、fence动作

因为之前在https://node1:2224里面配置的fence动作是重启,因此断掉node3的网络以后,fence会重启node3。

[[email protected] ~]# pcs resource move vip node3

[[email protected] ~]# ifdown eth0

那么node3就会被fence重启。

HA03-fence设置一、fence作用二、在集群里添加fence

继续阅读