RHCS集群套件——Luci/Ricci实现Web高可用集群

一、简介
RHCS即 RedHat Cluster Suite ,中文意思即红帽集群套件,它是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足企业对高可用性,负载均衡,可扩展性,文件共享和节约成本的需要。
它提供有如下两种不同类型的集群:

  • 1、高可用性:应用/服务故障切换-通过创建n个节点的服务器集群来实现关键应用和服务的故障切换
  • 2、负载均衡:IP 负载均衡-对一群服务器上收到的 IP 网络请求进行负载均衡

二、搭建RHCS环境
1、基本环境说明:

  • 操作系统:rhel6.5
  • 准备四台主机:
    主机:172.25.96.250,后面作fence,暂时不用
    server1: 172.25.96.1 下载ricci,luci(提供Conga配置用户界面),作主节点
    server4:172.25.96.4 下载ricci,作副节点
    server3:172.25.96.3 ,后面作iscci共享存储,暂时不用

2、安装软件的说明
集群中luci的作用:
luci是用来配置和管理集群,监听在8084上

集群中ricci的作用:
ricci是安装在每个后端的每个节点上的,luci管理集群上的各个节点就是通过和节点上的ricci进行通信,ricci监听在11111上

集群中fence的作用:
在HA集群坏境中,备份服务器B通过心跳线来发送数据包来看服务器A是否还活着,主服务器A接收了大量的客户端访问请求,服务器A的CPU负载达到100%响应不过来了,资源已经耗尽,没有办法回复服务器B数据包(回复数据包会延迟),这时服务器B认为服务器A已经挂了,于是备份服务器B把资源夺过来,自己做主服务器,过了一段时间服务器A响应过来了,服务器A觉得自己是老大,服务器B觉得自己也是老大,他们两个就挣着抢夺资源,集群资源被多个节点占有,两个服务器同时向资源写数据,破坏了资源的安全性和一致性,这种情况的发生叫做“脑裂”。服务器A负载过重,响应不过来了,有了Fence机制,Fence会自动的把服务器A给Fence掉,阻止了“脑裂"的发生

FENCE的工作原理是:当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上。

Fence分类:
硬件Fence:电源Fence,通过关掉电源来踢掉坏的服务器
软件Fence:Fence卡(智能卡),通过线缆、软件来踢掉坏的服务器

第二种分法:
内部FENCE:IBM RSAII卡,HP的iLO卡,还有IPMI的设备等
外部FENCE:UPS、SAN SWITCH、NETWORK SWITCH等
实际坏境中,Fence卡连接的都是专线,使用专用的Fence网卡,不会占用数据传输线路,这样,更能保证稳定及可靠性。
Fence卡的IP网络和集群网络是相互依存的

3、server1和server4上配置高可用yum源

[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo

在这里插入图片描述
查看yum源是否可用

[root@server1 ~]# yum clean all
[root@server1 ~]# yum repolist

在这里插入图片描述
这里可将server1配置好的高可用yum源直接scp给server4,server就不需要再配置高可用yum源。
在这里插入图片描述

4、开始安装及配置
1)安装ricci(每个集群中的节点上都要安装)

[root@server1 ~]# yum install -y ricci

在这里插入图片描述
设置ricci密码

[root@server1 ~]# passwd ricci

在这里插入图片描述
启动服务并设置开机自启

[root@server1 ~]# /etc/init.d/ricci start
[root@server1 ~]# chkconfig ricci on

在这里插入图片描述

2)安装luci(只在server1上安装)

[root@server1 ~]# yum install -y luci

在这里插入图片描述
启动服务并设置开机自启

[root@server1 ~]# /etc/init.d/luci start
[root@server1 ~]# chkconfig luci on

在这里插入图片描述
根据上面提示网站,登陆到管理界面来进行配置
在这里插入图片描述
注:这里进行登陆,一直是在建立连接,不能登陆,猜想可能是物理机上火墙打开着,查看火墙并没有开,检查本地的解析,也有server1的解析,尝试将server1换成其ip再次登陆,登陆成功。

在这里插入图片描述

用安装luci的root用户登陆。
在这里插入图片描述

创建cluster,Node Name写节点的主机名,密码就是ricci用户的密码
在这里插入图片描述

点击Create Cluster,进入这个页面,
在这里插入图片描述
若一直是这个等待页面,是因为在上面安装ricci和luci的时候没有设置开机自启,这是就要手动的打开虚拟机,开启服务。
如下图,两个集群节点已经创建完毕。
在这里插入图片描述

可使用cluster命令查看节点状态。
在这里插入图片描述

添加webfail
在这里插入图片描述

添加资源:添加到集群的资源一定是屏蔽掉的,因为要交给集群去管理开启

在这里插入图片描述

在这里插入图片描述
查看添加的资源
在这里插入图片描述

创建一个web组
在这里插入图片描述

点击web组进入,Add Resource选项,将上面添加的ip和脚本资源加入到web组中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查看服务状态
在这里插入图片描述

查看ip,也将我们设置的ip添加再了server1上。
在这里插入图片描述
测试
在物理机上输入添加的ip,得到的也是server1的测试页。
在这里插入图片描述

clustat命令说明:
clustat用来查看集群系统中每个节点以及服务的运行状态,
在上面的图中,可以看到每个节点都处于“Online”状态,表明每个节点都运行正常,如果某个节点退出了集群,对应的状态应该是“Offline”,同时还可以看到,集群的一个服务web处于“started”状态,运行在server1节点。
另外,通过“ID”一列可以知道集群节点的对应关系,例如,server1在此集群中对应的就是“Node 1”节点,同理,server2对应的是“Node 2”节点。了解集群节点顺序有助于对集群日志的解读。
还有许多参数例如"-i","-m"等等,可通过clustat --help进行查看。

clusvcadm命令说明:
用于管理应用服务,通过这个命令可以启动、关闭、重启、切换集群中的应用服务。
例如:启动某个应用服务
可以通过如下方式启动某个节点的应用服务:
clusvcadm -e -m
其中:
Service:表示集群中创建的应用服务名称。
Node:表示集群节点名称。
例如,要启动节点server1上的web服务,操作如下:
在这里插入图片描述

切换集群中的应用服务:将一个应用服务从一个节点切换到另一个节点
在这里插入图片描述
详细使用参数和方法可通过clusvcadm --help查看。
上述这些在命令行进行的修改都可以在HA网页管理界面进行修改,比较简单,这里不做说明和演示。

三、安装fence_virtd服务
故障切换:
RHCS的一个很重要概念:Failover Domain故障转移域,更准确地说应该是服务故障转移域(一个服务包括多个资源如VIP FileSystem…)key当i定义一个节点故障后,此节点上的资源能够转移的目标节点,进而限制了资源转移的范围。
FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的“脑裂”现象,FENCE设备的出现,就是为了解决类似这些问题,Fence设备主要就是通过服务器或存储本身的硬件管理接口,或者外部电源管理设备,来对服务器或存储直接发出硬件管理指令, 将服务器重启或关机,或者与网络断开连接。

需要安装的包有以下三个:

fence-virtd-multicast.x86_64
fence-virtd-libvirt.x86_64
fence-virtd.x86_64

1)安装服务并进行配置

 [root@foundation96 ~]# yum install -y fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64

在这里插入图片描述

[root@foundation96 ~]# fence_virtd -c

使用以上命令进行交互式的配置fence文件
这里需要注意接口这一项(默认为virbr0,我们应选择br0,因为虚拟服务器受主机控制的网卡是br0 ):
在这里插入图片描述
其余选项均回车,使用默认选项即可,最后输入y进行保存配置。
2)生成128位的key,并将key发送到套件集群服务器(server1,server4)的/etc/cluster目录下。
在这里插入图片描述
在这里插入图片描述

3)启动fence_virtd服务

[root@foundation96 cluster]# systemctl restart fence_virtd

在这里插入图片描述

4)在luci上进行配置
选择Fence Devices,点击Add,选择模式为”Fence virt (Multicast Mode)”,输入一个Fence名称(名称可任意输入,但尽量具有代表性),点击Submit
在这里插入图片描述

点击Nodes,选择server1,点击界面下的”Add Fence Method”,输入一个自定义的server1的Fence名称,例如fence1
在这里插入图片描述

点击Add Fence Instance,选择之前设置好的vmfence,输入Domain(虚拟服务器的UUID或者虚拟机的名称均可,这里推荐使用UUID),在另一个server4上做同样操作,名称fence2,Domain为server4的UUID。
在这里插入图片描述

在这里插入图片描述

这样fence就设置完成,接下来测试fence。
首先查看服务的工作状态
在这里插入图片描述

[root@server4 ~]# echo c > /proc/sysrq-trigger

直接使server4的内核崩溃
在这里插入图片描述
等待几秒钟,server重新启动。
在这里插入图片描述

查看服务的状态,此时工作在server1上,并且server4重新启动后,恢复正常为online状态。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/oikinkl/article/details/82823551
今日推荐