企业级负载均衡集群——通过fence设备解决集群节点之间争抢资源的现象(FENCE搭建、高可用服务配置详解)
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搭建、高可用服务配置详解)相关推荐
- 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解
前言:FENCE工具的原理及作用 FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的"脑裂"现象,FENCE设备的出现,就 ...
- zookeeper集群搭建以及zoo.cfg配置详解
Zookeeper是一个协调服务,可以用它来作为配置维护.名字服务.分布式部署: 1.官网下载 2.解压 tar -zxvf /home/lk/下载/zookeeper-3.3.6.tar.gz 3. ...
- 适合入门hadoop 2.7.7的集群环境搭建高可用版本配置(保姆版)
需要的安装包: 1.jdk压缩包 2.hadoop压缩包 百度云盘链接 开始搭建hadoop集群 1 集群规划 安装VMware,使用三台虚拟机进行集群搭建,下面是每台虚拟机的规划: 2 网络配置 2 ...
- k8s高可用集群_搭建高可用集群(实现方式介绍)---K8S_Google工作笔记0054
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 然后我们来说搭建高可用集群,为什么要搭建高可用集群. 因为,首先我们说master节点是用来管理其 ...
- 企业级负载均衡如何实现
转载自 企业级负载均衡如何实现 负载均衡简介 首先,我们来了解一下什么是负载均衡: 在一个大型网站中,在线用户有时可能有几千个甚至上万个之多.如果一个用户的请求需要服务使用0.02秒来处理,那么该服 ...
- 企业级负载均衡解决方案之三:唯品会四层负载均衡解决方案VGW
一.前言 和美团点评一样,唯品会也使用DPDK框架来开发自己的四层负载均衡器VGW.其基本技术和文章<企业级负载均衡解决方案之二:美团点评高性能四层负载均衡器MGW>里面提到的技术方案基本 ...
- MyCAT+MySQL 搭建高可用企业级数据库集群
第1章 课程介绍 课程介绍 1-1 MyCAT导学 试看 1-2 课程介绍 第2章 MyCAT入门 这一章中,我们将回顾了垂直切分,水平切分,分库分表等基础概念,然后快速回如何安装和启动MyCAT的, ...
- 图文教程,Nginx+Keepalived(双机热备)介绍已经搭建高可用负载均衡环境
上一次分享了Nginx相关的应用场景如下: Nginx介绍以及一些应用场景说明 在实际使用,单机版的Nginx就不能满足高可用的要求了,在这种情况下,我们使用Nginx+Keepalived(双机热 ...
- 使用LVS实现负载均衡原理及安装配置详解
使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均 ...
最新文章
- SAP PM入门系列27 - IW29 Display Notifications
- Android游戏框架解读之总体结构
- 直接用Win32 API创建对话框Demo
- matlab错误:Variable 'a' cannot be saved to a MAT-file whose version is older than 7.3.
- 2017-3-10 SQL server 数据库 T--SQL语句
- 牛客 - 双流机场(思维)
- lambda 匿名内部类_Lambda运行时内部:窥视无服务器巢穴
- 友情提示,你该找一份假期实习啦!
- Unity3D优化总结(一)
- vue-cli 里axios的使用
- 代码审计 企业级Web代码安全架构 完整版pdf
- 程序员100套简历模板,全网最全
- groupdel: cannot remove the primary group of user 'lxh1'的解决办法
- C++名称查找与ADL
- 第三届传智杯初赛A组G题 - 森林
- 菜花这样做,就着它吃光三碗饭
- 引用百度新闻热门搜索html,百度新闻搜索技巧(之一)
- 第四章 姜诸儿意气风发登君位 鲁桓公窝囊枉死彭生手
- 一体广告机实现思路,非常实用(一)
- Hbase的JavaAPI