Linux高可用集群 RHCS集群搭建及实现高可用集群

一.集群套件的作用

luci:

  • 用来配置和管理集群,监听端口再8084上。

ricci:

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

fence:

  • 当意外原因使主机异常时,备机会首先调用fence设备将异常的主机重启或者从网络隔离,当fence操作成功执行后,返回信息给备机,备机在接收到fence成功的信息后,开始接管主机的服务和资源,这样通过fence设备,将异常节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上,并且有效地阻止了脑裂的发生。

二.模拟RHCS集群的搭建

1.实验环境的搭建

  • 为了快捷方便起见本次实验用到的时rhel6.5的版本进行母盘的封装,并且快照建立三台虚拟机,详细配置可参考博文:varnish的基本概念及其varnish的实现。
主机(IP) 服务
server1(172.25.254.1) ricci,luci,httpd
server2(172.25.254.2) ricci,httpd
foudation77(172.25.254.77) fence

2.rhcs环境的搭建

server1:

  • (1)配置高级的yum源用于安装搭建环境时所需要用到的软件
    在这里插入图片描述
    文件编辑内容如下:
    在这里插入图片描述
    在这里插入图片描述
  • (2)下载rhcs的图形网页管理工具

ricci:图形界面的集群管理软件
luci:图形界面
在这里插入图片描述

  • (3)安装httpd服务
    在这里插入图片描述

  • (4)linux对rhcs的控制是通过ricci用户来实现的,因此需要配置ricci用户的密码
    在这里插入图片描述

  • (5)开启相关服务并设置开机自启动
    在这里插入图片描述
    在这里插入图片描述
    server2:

  • (1)配置高级yum源(同server1)
    在这里插入图片描述

  • (2)安装ricci
    在这里插入图片描述

  • (3)配置ricci用户密码
    在这里插入图片描述

  • (4)安装httpd服务
    在这里插入图片描述

  • (5)开启服务并设定开机自启动
    在这里插入图片描述
    3.集群节点server1和server2的添加

  • (1)访问luci图形化管理界面,并手动导入证书
    在这里插入图片描述
    在这里插入图片描述

  • (2)超级用户的登录
    在这里插入图片描述
    在这里插入图片描述

  • (3)将server1和server2集群
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    点击create cluster,进入等待页面,此时的server1和server2会重启,然后在物理机上重新连接。
    注:如果没有设定luci和ricci开机自启动,则需要在等待过程中重启虚拟机之后,再次开起服务,才能完成server1和server2集群节点的添加。

  • (3)server1和server2上集群信息的查看

[[email protected] ~]# chkconfig --list ##查看开机会自启动的服务
[[email protected] ~]# cat /etc/cluster/cluster.conf ##发现该文件之中已有server1和server2的集群
[[email protected] ~]# clustat ##也会看见集群

在这里插入图片描述
在这里插入图片描述

三.FENCE的配置

1.物理机上配置fence

  • (1)安装fence(yum源[rhel 7.3]搭建好之后)

yum search fence #查看fence的安装包

在这里插入图片描述
在这里插入图片描述

  • (2)生成fence的加密文件
    因为本身配置的文件中没有fence的加密文件,所以要自己生成加密文件,然后再配置fence的配置文件
    在这里插入图片描述

  • (3)fence的配置文件
    在这里插入图片描述
    在这里插入图片描述

  • (4)将生成的密匙文件发送给节点server1和server2,保证俩个节点使用同一个密匙
    在这里插入图片描述

  • (5)开启fence服务
    在这里插入图片描述
    fence使用1229端口

2.fence设备的添加

  • (1)在浏览器luci界面添加fence设备所要管理的节点
    在这里插入图片描述
  • (2)选择多模式的fence
    在这里插入图片描述
  • (3)绑定集群节点(server1和server2)

a.server1:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
b.server2同server1的操作相同
在这里插入图片描述
在这里插入图片描述
配置后显示如下:
在这里插入图片描述

  • (3)检测绑定是否成功
    在这里插入图片描述
    3.fence设备的测试
    在server2上:
    [[email protected] ~]# fence_node server1
    通过fence干掉节点server2,时server2断电重新启动则为成功

四.高可用服务配置(httpd)

  • 添加故障转移域
    在这里插入图片描述

  • 将server1和server2添加到故障转移域中,及当其中有一个出现故障时,服务落在优先级高的节点上。
    注:数字越小优先级越高
    在这里插入图片描述

  • 添加webfail故障转移中需要的资源
    在这里插入图片描述

  • 添加VIP及集群对外的IP
    在这里插入图片描述

  • 再次点击resource,点击add添加httpd服务启动时需要的脚本
    在这里插入图片描述

  • 向集群中添加服务组在该服务组中添加上一步所添加的资源

  • 创建一个资源组,服务中要用到的资源的集合
    在这里插入图片描述
    在这里插入图片描述

  • 服务组中添加资源,点击新建的服务组名apache下方会出现添加资源,开始添加上一步的资源
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 在server1和server2上安装httpd服务并且编辑内容方便检测

  • server1:
    在这里插入图片描述
    在这里插入图片描述

  • server2:
    在这里插入图片描述
    在这里插入图片描述

  • 测试

  • 刷新网页显示在server1上运行,因为server1的优先级高
    在这里插入图片描述

  • 在srever1上查看可以看到VIP(虚拟服务器IP)
    在这里插入图片描述

  • 在物理机上访问俩台节点
    在这里插入图片描述

  • 在物理机上访问VIP
    在这里插入图片描述
    因为服务运行在server1上,server1的优先级高

  • 测试高可用(HA)

  • 在server1上,手动拓掉服务器

输入echo c > /proc/sysrp-trigger 命令后显示如下:

在这里插入图片描述

  • 再次在物理机访问时显示server2服务器上的内容且VIP会自动漂到server2上
    在这里插入图片描述
    在这里插入图片描述
  • 在server1 进行reboot之后发现服务重新切回到server1上,VIP也会重新漂回来
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    物理机上访问之后发现服务重新回到server1上。
  • 关掉server1上的httpd会发现服务会自动转到server2上
    在这里插入图片描述