1.FENCE工具的原理及作用

FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的“脑裂”现象
FENCE设备的出现,就是为了解决类似这些问题,Fence设备主要就是通过服务器或存储本身的硬件管理接口
或者外部电源管理设备,来对服务器或存储直接发出硬件管理指令,将服务器重启或关机,或者与网络断开连接

FENCE的工作原理是:当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上。
RHCS的FENCE设备可以分为两种:内部FENCE和外部FENCE,常用的内部FENCE有IBMRSAII卡,HP的iLO卡,还有IPMI的设备等,外部fence设备有UPS、SANSWITCH、NETWORKSWITCH等

2.首先搭建基本环境

下面的实验使用的是rhel6系列(rhel6.5)的虚拟机,因此你需要有对应的镜像和yum源

基本环境搭建说明

  • (1)使用的操作系统:均是rhel6.5
  • (2)准备四台主机:
主机(真机):172.25.8.250 作为fence设备,前面暂时不用
虚拟机server1: 172.25.8.1 下载ricci,luci(为了提供Conga配置用户界面),作主节点
虚拟机server2:172.25.8.2 下载ricci,作副节点
虚拟机server3:172.25.8.3 后面作iscci共享存储,暂时不用

开始搭建实验环境

  • (1)给虚拟机rhel6.5创建三个快照虚拟机server1,server2,server3并且开启这三个快照












    同理



    此时三台虚拟机基本已经搭建好

  • (2)登录server1和server2,分别设置ip和主机名
    server1的配置

    server2的配置







  • (3)用真机连接server1和server2

3.以下为FENCE搭建过程详解

先搭建RHCS最基本的集群环境,也就是创建集群

为设备配置yum源

  • (1)给server1和server2均配置一个高可用的yum源(企业6版本的)

    真机的共享yum源必须是企业6版本的



    server1上的高可用yum源已经配置好
    为了方便起见,我们将这份配置文件发送到其他主机上



    安装软件

  • (2)在server1和server2上面安装服务
    给server1安装集群管理结点服务ricci,集群图形化管理工具服务luci

server1安装ricci和luci图形管理器,启动服务,设置开机自启
yum install -y ricci luci
/etc/init.d/ricci start
/etc/init.d/luci start
chkconfig ricci on
chkconfig luci on



从红帽企业版 Linux 6.1 开始,在任意节点中使用 ricci 推广更新的集群配置时要求输入密码
所以在安装完成ricci后需要修改ricci用户的密码,这个是后面节点设置的密码
安装完之后可以看到/etc/passwd文件中自动生成了一个ricci用户

passwd ricci             ##为ricci用户用户设置密码


开启这两个服务

查看这两个服务使用的端口

给server2安装集群管理结点服务

server2上安装ricci,启动服务,设置开机自启,修改ricci用户密码
yum install ricci -y
/etc/init.d/ricci start
chkconfig ricci on
passwd ricci



同理设置密码

开启服务

补充:如何查看系统开机自起项
chkconfig --list

  • (3)在真机浏览器上面进行测试:输入https://172.25.12.1:8084(部署在server1上面)
    浏览器访问https://172.25.12.1:8084 出现下面的界面,手动导入证书
    点击【Advanced】

点击【Add】
点击【Confirm…】

登录的账号和密码是server1中的系统用户和密码,普通用户需要经过超级用户的审核才能登录,所以一般选用超级用户登录


创建集群

  • (4)在图形化管理工具里创建集群
    点击集群管理(manage cluster),选择create,创建集群

    设置集群的基本信息,添加节点

点击create cluster开始创建,可以看到开始创建集群
创建时两台虚拟机都会重启,如果之前没有设置服务开机启动这个时候就会报错,重启后要在虚拟机中手动打开服务创建的过程才会继续




创建集群完成,节点添加成功

  • (5)在server1上面和server2上面查看

    创建完成之后可以服务所在的主机中查看配置文件


    到此为止,基本的实验环境搭建完毕,接下来说明RHCS的高可用体现在哪里
    可以看到ricci运行的端口是11111
    注意:删除集群时要先删除节点,节点删除后集群会自动消失

如何通过fence设备解决集群节点之间争抢资源的现象?

我现在所说的RHCS高可用集群比之前学的lvs调度器性能更好,更全面,有好多好多功能,前端后端均有
在这里我们可以把每个集群节点当作一个调度器,实际上功能不止调度器一个
一般情况下集群节点中有主有备,正常情况下会有一个正常工作(调度器正常),但是当调度器坏了就完蛋了
因此要做到一台调度器坏了,调度器1就去通知调度器2接管它的工作,正常情况下调度器1和调度器2会一直通信
当2收不到1的消息的时候,就说明1坏了,2马上接替1的工作
但是当1和2之间的心跳检测出现问题的时候,也就是有一个卡死了,其实两个都能正常工作,这个时候两个集群都能工作
因此1和2都会去为客户端服务,会去争抢资源,因此需要fence这样一个物理设备抑制争抢资源
当争抢资源的时候,1会去通过fence设备强制重启2(或者2重启1)
两个集群可以互相强制重启,但是实际当中集群也是有主有备的
现在server1是一个集群,server2是一个集群,真机是一个fence设备(保安)
通过fence这个物理设备将集群连接在一起,保证时刻只有一个集群正常工作
一旦出现争抢资源的现象,主的集群就会通过fence强制重启备的集群,从而使主集群正常工作

配置fence设备

  • (1)在集群1上面:
/etc/init.d/ricci status查看集群节点管理工具
/etc/init.d/luci status查看集群图形化管理工具(开启这个浏览器里面才能管理集群)
(一般情况下这两个服务是分开做的)
clustat查看集群状态
cat /etc/cluster/cluster.conf查看集群的配置文件


  • (2)在集群2上面:
/etc/init.d/ricci status查看集群节点的服务是否开启
clustat
cat /etc/cluster/cluster.conf查看集群是否建立


浏览器中luci添加分fence设备

  • (3)在浏览器里面:输入https://172.25.12.1:8084开启集群管理工具,添加fence设备
登录集群管理系统,查看创建的两个集群server1和server2
添加fence设备(fence virt)--->vmfence(名字随便起)
fence只是中间一个通道,server1和server2都是连接在fence这个物理设备上,通过一个集群去拔另外一个集群的电,防止争抢资源


选择fence的类型,起名字,见名知意及可
选择多播模式,设置fence设备的名字为vmfence



fence服务在物理机配置,(在集群之外)

  • (4)在真机上面搭建fence服务(另外一个单独的物理设备用来做fence)
    物理机安装fence软件
    这里真机是哪个版本的,就使用哪个版本的yum源来安装fence服务
yum search fence
yum install 三个东西 -y
fence_virtd -c初始化fence设备管理
一直回车,注意网卡是br0(因为两个集群是在虚拟机上面做的,虚拟网卡是通过真实的网卡br0来工作)
mkdir /etc/cluster 在这个目录下生成fence管理的key,然后传给集群
生成fence管理的key:cd /etc/cluster
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128(密码太小不安全) count=1(只生成一个key)
注意先不要开启fence设备,将key给两个集群各传一个key,保证两个集群得到的key一样,这样fence才能同时管理两个集群
scp /etc/cluster/fence_xvm.key root@172.25.12.1:/etc/cluster
scp /etc/cluster/fence_xvm.key root@172.25.12.2:/etc/cluster




初始化,网卡选用br0,其它都直接回车,使用默认的
编辑fence配置文件



在指定目录下面生成fence的key,并且给两个集群各发送过去一个
注意发送key的时候fence不能开启,否则server1和server2接收到的key不一样
创建一个目录/etc/cluster,生成的key将会保存在这个目录中
编辑完之后如果没有生成密钥文件,可以手动生成一个

将生成的密钥文件发送给节点server1和server2

  • (5)在集群1上面查看
cd /etc/cluster
ls查看key文件是否过来
cat cluster.conf可以看到集群的配置文件当中添加了fence

  • (6)在集群2上面查看
cd /etc/cluster
cat cluster.conf 可以看到集群的配置文件当中添加了fence


绑定节点

  • (7)在浏览器里面设置:
给server1和server2集群添加fence,vmfence_1(名字) uuid(server1主机的),vmfence_2(名字) uuid(server2主机的)
因为两个集群的ip可能会一样,有可能会一次关闭两个集群,不安全
应该把每个集群唯一的uuid写在fence设备上面
在真机里面virt-manager把两个uuid查看出来





在真机里面查看server1虚拟机的uuid







在真机里面查看server2虚拟机的uuid

两个节点都绑定后可以看到fence配置文件的内容如下

  • (8)查看两个集群节点是否关联在fence设备上,在两个集群节点的集群配置文件里面看

  • (9)接下来测试:
先看server1集群节点里面的解析:cat /etc/hosts
再看server2集群节点里面的解析:cat /etc/hosts



物理机打开fence服务

在真机上面:
systemctl status fence_virtd.service查看fence服务是否开启
systemctl start  fence_virtd.servcie开启fence服务
netstat -antlupe | grep   1229(fence服务使用的端口)



server1通过fence干掉server2,可以看到server2断电重启

打开server2集群
在server1上面输入:fence_node server可以看到集群1把集群2强制重启了



打开server1集群
在server2上面输入:fence_node server可以看到集群2把集群1强制重启了




总结:通过fence我们就可以解决争抢资源的问题了,保证客户端有条不紊的访问服务端

企业级负载均衡集群——通过fence设备解决集群节点之间争抢资源的现象(FENCE搭建、高可用服务配置详解)相关推荐

  1. 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解

    前言:FENCE工具的原理及作用 FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的"脑裂"现象,FENCE设备的出现,就 ...

  2. zookeeper集群搭建以及zoo.cfg配置详解

    Zookeeper是一个协调服务,可以用它来作为配置维护.名字服务.分布式部署: 1.官网下载 2.解压 tar -zxvf /home/lk/下载/zookeeper-3.3.6.tar.gz 3. ...

  3. 适合入门hadoop 2.7.7的集群环境搭建高可用版本配置(保姆版)

    需要的安装包: 1.jdk压缩包 2.hadoop压缩包 百度云盘链接 开始搭建hadoop集群 1 集群规划 安装VMware,使用三台虚拟机进行集群搭建,下面是每台虚拟机的规划: 2 网络配置 2 ...

  4. k8s高可用集群_搭建高可用集群(实现方式介绍)---K8S_Google工作笔记0054

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们来说搭建高可用集群,为什么要搭建高可用集群. 因为,首先我们说master节点是用来管理其 ...

  5. 企业级负载均衡如何实现

    转载自  企业级负载均衡如何实现 负载均衡简介 首先,我们来了解一下什么是负载均衡: 在一个大型网站中,在线用户有时可能有几千个甚至上万个之多.如果一个用户的请求需要服务使用0.02秒来处理,那么该服 ...

  6. 企业级负载均衡解决方案之三:唯品会四层负载均衡解决方案VGW

    一.前言 和美团点评一样,唯品会也使用DPDK框架来开发自己的四层负载均衡器VGW.其基本技术和文章<企业级负载均衡解决方案之二:美团点评高性能四层负载均衡器MGW>里面提到的技术方案基本 ...

  7. MyCAT+MySQL 搭建高可用企业级数据库集群

    第1章 课程介绍 课程介绍 1-1 MyCAT导学 试看 1-2 课程介绍 第2章 MyCAT入门 这一章中,我们将回顾了垂直切分,水平切分,分库分表等基础概念,然后快速回如何安装和启动MyCAT的, ...

  8. 图文教程,Nginx+Keepalived(双机热备)介绍已经搭建高可用负载均衡环境

    上一次分享了Nginx相关的应用场景如下: ​Nginx介绍以及一些应用场景说明 在实际使用,单机版的Nginx就不能满足高可用的要求了,在这种情况下,我们使用Nginx+Keepalived(双机热 ...

  9. 使用LVS实现负载均衡原理及安装配置详解

    使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均 ...

最新文章

  1. SAP PM入门系列27 - IW29 Display Notifications
  2. Android游戏框架解读之总体结构
  3. 直接用Win32 API创建对话框Demo
  4. matlab错误:Variable 'a' cannot be saved to a MAT-file whose version is older than 7.3.
  5. 2017-3-10 SQL server 数据库 T--SQL语句
  6. 牛客 - 双流机场(思维)
  7. lambda 匿名内部类_Lambda运行时内部:窥视无服务器巢穴
  8. 友情提示,你该找一份假期实习啦!
  9. Unity3D优化总结(一)
  10. vue-cli 里axios的使用
  11. 代码审计 企业级Web代码安全架构 完整版pdf
  12. 程序员100套简历模板,全网最全
  13. groupdel: cannot remove the primary group of user 'lxh1'的解决办法
  14. C++名称查找与ADL
  15. 第三届传智杯初赛A组G题 - 森林
  16. 菜花这样做,就着它吃光三碗饭
  17. 引用百度新闻热门搜索html,百度新闻搜索技巧(之一)
  18. 第四章 姜诸儿意气风发登君位 鲁桓公窝囊枉死彭生手
  19. 一体广告机实现思路,非常实用(一)
  20. Hbase的JavaAPI

热门文章

  1. Matlab遗传算法与TSP问题的结合
  2. 直插件焊点检测算法的初步规划(未成形呢)
  3. java代码:通过名称生成企业名称或者是个人的名字生成头像
  4. 恒业微晶冲刺深交所:年营收4.3亿 戴联平控制73.8%表决权
  5. 欢迎加入过往记忆大数据知识星球
  6. 上海地铁各线路延时运营常见问题
  7. 有效增加CPU利用率
  8. 软件质量管理实践全面总结
  9. linux服务器限制IP访问
  10. 南非世界杯 小组赛 阿根廷vs尼日利亚