RHCS套件实现高可用负载均衡集群(二)——Fence设备

注:此博文在博文“套件实现高可用负载均衡集群(一)”的基础上完成

环境:

  • 物理机:172.25.54.250,作为fence
  • server1:172.25.54.1 , server1作为主节点
  • server2:172.25.54.2 , server2作为副节点
  • server3:172.25.54.3 , 暂时用作RS进行负载均衡测试 , 后面作iscci共享存储
  • server4:172.25.54.4 , 作为RS , 负载均衡测试

向集群中添加 fence

为什么使用 fence 设备?

  • 如果集群中一个节点通信失效,那么集群中的其他节点必须能够保证将已经失效的节点与其正在访问的共享资源(比如共享存储)隔离开,出问题的集群节点 本身无法做到这一点,因为该集群节点在此时可能已经失去响应(例如发生hung机),因此需要通过外部机制来实现这一点。这种方法被称为带有fence代 理的隔离。
  • 不配置隔离设备,我们没有办法知道之前断开连接的集群节点使用的资源是否已经被释放掉。如果我们没有配置隔离代理(或者设备),系统可能错误的认为集群节点已经释放了它的资源,这将会造成数据损坏和丢失。 没有配置隔离设备,数据的完整性就不能够被保证,集群配置将不被支持。
  • 当隔离动作正在进行中时,不允许执行其他集群操作。这包括故障转移服务和获取GFS文件系统或GFS2文件系统的新锁。 在隔离动作完成之前或在该集群节点已经重启并且重新加入集群之前,集群不能恢复正常运行。

fence设备的实现

利用 libvitr , 构建模拟 fence , libvirt 可以管理虚拟机的开关

此处是物理机:172.25.54.250,作为fence

  • 安装 1.fence-virtd-multicast 2.fence-virtd 3.fence-virtd-libvirt
[root@foundation54 ~]# yum install fence-virtd-multicast fence-virtd fence-virtd-libvirt -y
[root@foundation54 ~]# fence_virtd -c  //编写新的fence 信息
Module search path [/usr/lib64/fence-virt]: /usr/lib64/fence-virt
Listener module [multicast]: multicast
Multicast IP Address [225.0.0.12]: 225.0.0.12
Using ipv4 as family.   //默认的
Multicast IP Port [1229]: 1229
Interface [virbr0]: br0
##这里br0是因为虚拟服务器受主机控制的网卡是br0
Key File [/etc/cluster/fence_xvm.key]: /etc/cluster/fence_xvm.key
Backend module [libvirt]: libvirt
[root@foundation54 ~]# cat /etc/fence_virt.conf  //此时查看配置文件
backends {
    libvirt {
        uri = "qemu:///system";
    }

}

listeners {
    multicast {
        port = "1229";
        family = "ipv4";
        interface = "br0";
        address = "225.0.0.12";
        key_file = "/etc/cluster/fence_xvm.key";
    }

}

fence_virtd {
    module_path = "/usr/lib64/fence-virt";
    backend = "libvirt";
    listener = "multicast";
}
[root@foundation54 ~]# mkdir /etc/cluster
[root@foundation54 ~]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
1+0 records in
1+0 records out
128 bytes (128 B) copied, 0.000145763 s, 878 kB/s
[root@foundation54 ~]# file /etc/cluster/fence_xvm.key ##查看文件类型
/etc/cluster/fence_xvm.key: data
[root@foundation54 ~]# systemctl start fence_virtd
[root@foundation54 ~]# systemctl enable fence_virtd
[root@foundation54 ~]# netstat -anulp | grep fence_virtd
udp        0      0 0.0.0.0:1229            0.0.0.0:*                           8657/fence_virtd    
[root@foundation54 ~]# scp /etc/cluster/fence_xvm.key root@172.25.54.1:/etc/cluster/   
[root@foundation54 ~]# scp /etc/cluster/fence_xvm.key root@172.25.54.2:/etc/cluster/
[root@foundation54 ~]#

此时使用图形界面添加 fence
这里写图片描述
这里写图片描述
然后选择Nodes
这里写图片描述
然后选择Add Fence Method
这里写图片描述
然后选择Add Fence Instance
这里写图片描述
这里写图片描述
注:server2也需完成上述server1操作

[root@server1 ~]# cat /etc/cluster/cluster.conf   ##查看配置信息
<?xml version="1.0"?>
<cluster config_version="9" name="tutu1">
    <clusternodes>
        <clusternode name="server1" nodeid="1">
            <fence>
                <method name="fence1">
                    <device domain="eef564be-075e-42b6-880e-ea4c1faf0e11" name="vmfence"/>
                </method>
            </fence>
        </clusternode>
        <clusternode name="server2" nodeid="2">
            <fence>
                <method name="fence2">
                    <device domain="eef564be-075e-42b6-880e-ea4c1faf0e11" name="vmfence"/>
                </method>
            </fence>
        </clusternode>
    </clusternodes>
    <cman expected_votes="1" two_node="1"/>
    <fencedevices>
        <fencedevice agent="fence_xvm" name="vmfence"/>
    </fencedevices>
</cluster>
[root@server1 ~]#

测试
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值