高可用集群中fence的配置

通过上一节我们已经知道了如何在集群中添加资源,下面我们来看下如何配置fence设备(也称为stonith)。

先了解什么是fence

每个节点之间互相发送探测包进行判断节点的存活性。一般会有专门的线路进行探测,这条线路称为“心跳线”(上图直接使用eth0线路作为心跳线)。假设node1的心跳线出问题,则node2和node3会认为node1出问题,然后就会把资源调度在node2或者node3上运行,但node1会认为自己没问题不让node2或者node3抢占资源,此时就出现了脑裂(split brain)。

此时如果在整个环境里有一种设备直接把node1断电,则可以避免脑裂的发生,这种设备叫做fence或者stonith(Shoot The Other Node In The Head爆头哥)。

在物理机里virsh是通过串口线管理guestos的,比如virsh destroy nodeX,这里我们把物理机当成fence设备。

配置fence设备

在物理机上

[[email protected] ~]# mkdir /etc/cluster

[[email protected] ~]# dd if=/dev/zero of=/etc/cluster/fence_xvm.key bs=1K count=4

记录了4+0 的读入

记录了4+0 的写出

4096字节(4.1 kB)已复制,0.00021345 秒,19.2 MB/秒

[[email protected] ~]#
在三台节点上创建/etc/cluster

[[email protected]1 ~]# mkdir /etc/cluster

[[email protected]2 ~]# mkdir /etc/cluster

[[email protected]3 ~]# mkdir /etc/cluster

把物理机上创建的/etc/cluster/fence_xvm.key同步到三台节点

[[email protected] ~]# for i in 1 2 3

> do

> scp /etc/cluster/fence_xvm.key node${i}:/etc/cluster/

> done

[email protected]'s password: redhat

fence_xvm.key     100% 4096     4.0KB/s   00:00

[email protected]'s password: redhat

fence_xvm.key     100% 4096     4.0KB/s   00:00

[email protected]'s password: redhat

fence_xvm.key     100% 4096     4.0KB/s   00:00

[[email protected] ~]#

在物理机上安装fence-virtd

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

已加载插件:langpacks, product-id, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

base     | 4.1 kB  00:00:00

base1    | 4.1 kB  00:00:00

base2    | 4.1 kB  00:00:00

正在解决依赖关系

–> 正在检查事务

…..

已安装:

fence-virtd.x86_64 0:0.3.2-1.el7   fence-virt.x86_64 0:0.3.2-1.el7               fence-virtd-libvirt.x86_64 0:0.3.2-1.el7       fence-virtd-multicast.x86_64 0:0.3.2-1.el7

fence-virtd-serial.x86_64 0:0.3.2-1.el7

完毕!

[[email protected] ~]#

执行

[[email protected] ~]# fence_virtd -c

Module search path [/usr/lib64/fence-virt]: 回车

Available backends:

libvirt 0.1

Available listeners:

multicast 1.2

serial 0.4

Listener modules are responsible for accepting requests

from fencing clients.

Listener module [multicast]: 回车

The multicast listener module is designed for use environments

where the guests and hosts may communicate over a network using

multicast.

The multicast address is the address that a client will use to

send fencing requests to fence_virtd.

Multicast IP Address [225.0.0.12]: 回车

Using ipv4 as family.

Multicast IP Port [1229]: 回车

Setting a preferred interface causes fence_virtd to listen only

on that interface.  Normally, it listens on all interfaces.

In environments where the virtual machines are using the host

machine as a gateway, this *must* be set (typically to virbr0).

Set to 'none' for no interface.

Interface [virbr0]: 回车

The key file is the shared key information which is used to

authenticate fencing requests.  The contents of this file must

be distributed to each physical host and virtual machine within

a cluster.

Key File [/etc/cluster/fence_xvm.key]: 回车

Backend modules are responsible for routing requests to

the appropriate hypervisor or management layer.

Backend module [libvirt]: 回车

Configuration complete.

….

=== End Configuration ===

Replace /etc/fence_virt.conf with the above [y/N]? y

[[email protected] ~]#

启动fence_virtd服务并设置开机自动启动

[[email protected] ~]# systemctl start fence_virtd

[[email protected] ~]# systemctl enable fence_virtd

ln -s '/usr/lib/systemd/system/fence_virtd.service' '/etc/systemd/system/multi-user.target.wants/fence_virtd.service'

[[email protected] ~]#

每个节点安装fence-virt*

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

已加载插件:product-id, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

base                                                                                                                    | 4.1 kB  00:00:00

base1                                                                                                                   | 4.1 kB  00:00:00

base2                                                                                                                   | 4.1 kB  00:00:00

正在解决依赖关系

–> 正在检查事务

….

nmap-ncat.x86_64 2:6.40-4.el7         numad.x86_64 0:0.5-14.20140620git.el7

qemu-img.x86_64 10:1.5.3-86.el7       radvd.x86_64 0:1.9.2-7.el7

rsyslog-mmjsonparse.x86_64 0:7.4.7-7.el7_0                           unbound-libs.x86_64 0:1.4.20-19.el7    yajl.x86_64 0:2.0.4-4.el7

完毕!

[[email protected]X ~]#

因为我们在第一节已经关闭了stonith,这里先启用它:

点击“Appliy Changes”

创建fence

Type选择fence_xvm

Fence Instance Name用于区分不同的fence设备,这里填写fence1

展开Advanced Arguments

pcmk_host_list处填写这个fence可以管理哪些节点,这里填写node1,node2,node3,用英文逗号隔开。

点击"Create Fance Instance"

等待一会即可看到fence正常运行

手动的fence掉某个节点

原文地址:http://blog.51cto.com/lduan/2071552

时间: 2024-10-29 00:35:32

高可用集群中fence的配置的相关文章

Keepalived高可用集群应用场景与配置

1.Keepalived单实例主备模式集群方案 这是最简单的模式,不只考虑高可用集群,先不考虑后方的Nginx负载均衡集群,即后端的服务器集群,参考下面的图示: 其对应的Keepalived核心配置如下: lb01 global_defs { notification_email { [email protected] [email protected] [email protected] } notification_email_from [email protected] smtp_serv

高可用集群之heartbeat安装配置

高可用集群之heartbeat安装配置 说明: 系统为rhel 5.8 64bit heartbeat版本为v2 配置web高可用服务 节点为两个:node1和node2 创建高可用集群需要注意的地方: 各节点需要传递集群事务信息,传递时需要识别各节点,每个节点对对方的识别必须靠节点名称来实现,节点名称能够解析IP地址,配置DNS的话,如果DNS挂了,节点也找不到了,所以对于名称的解析不要依赖DNS,这就需要使用本地hosts文件,需要为每一个节点配置好hosts文件解析,每一个节点的hosts

大数据高可用集群环境安装与配置(09)——安装Spark高可用集群

1. 获取spark下载链接 登录官网:http://spark.apache.org/downloads.html 选择要下载的版本 2. 执行命令下载并安装 cd /usr/local/src/ wget http://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.4/spark-2.4.4-bin-hadoop2.7.tgz tar -zxvf spark-2.4.4-bin-hadoop2.7.tgz mv spark-2.4.4

大数据高可用集群环境安装与配置(03)——设置SSH免密登录

Hadoop的NameNode需要启动集群中所有机器的Hadoop守护进程,这个过程需要通过SSH登录来实现 Hadoop并没有提供SSH输入密码登录的形式,因此,为了能够顺利登录每台机器,需要将所有机器配置为NameNode可以免密登录 由于是双master,所以需要在master与master_backup服务器上都生成ssh密钥,都可以免密登录其他服务器 生成SSH公钥和私钥 在master与master_backup服务器输入命令 ssh-keygen -t rsa 按四次回车键,即可生

大数据高可用集群环境安装与配置(06)——安装Hadoop高可用集群

下载Hadoop安装包 登录 https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 镜像站,找到我们要安装的版本,点击进去复制下载链接 安装Hadoop时要注意版本与后续安装的HBase.Spark等相关组件的兼容,不要安装了不匹配的版本,而导致某些组件需要重装 输入命令进行安装操作 cd /usr/local/src/ wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/

Linux集群系列之十——高可用集群之heartbeat安装配置

rhel 5.8 32bit heartbeat v2 ha web node1 node2 节点名称, /etc/hosts 节点名称必须跟uname -n命令的直行结果一致 ssh 互信通信, 时间同步 1先配置两个主机的ip 列如 192.168.1.11   192.168.1.12 VIP192.168.1.8  网关 192.168.1.1 配置两个主机的主机名#hostname node1.mylinux.com #hostname node2.mylinux.com 为了让主机名

大数据高可用集群环境安装与配置(07)——安装HBase高可用集群

1. 下载安装包 登录官网获取HBase安装包下载地址 https://hbase.apache.org/downloads.html 2. 执行命令下载并安装 cd /usr/local/src/ wget http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.1.8/hbase-2.1.8-bin.tar.gz tar -zxvf hbase-2.1.8-bin.tar.gz mv hbase-2.1.8 /usr/local/hbase/ 3

大数据高可用集群环境安装与配置(08)——安装Ganglia监控集群

1. 安装依赖包和软件 在所有服务器上输入命令进行安装操作 yum install epel-release -y yum install ganglia-web ganglia-gmetad ganglia-gmond –y 2. 在master服务器上配置监控端 vi /etc/ganglia/gmetad.conf 修改下面内容 data_source "server" 50 master:8649 master-backup:8649 node1:8649 node2:8649

大数据高可用集群环境安装与配置(02)——配置ntp服务

NTP服务概述 NTP服务器[Network Time Protocol(NTP)]是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击.时间按NTP服务器的等级传播.按照离外部UTC源的远近把所有服务器归入不同的Stratum(层)中. 安装部署 执行命令,安装ntp和ntpdate软件包 yum install ntp -