利用RHCS + NGINX 实现高可用集群

一、了解RHCS

1、什么是RHCS
RHCS是Red Hat Cluster Suite的缩写,也就是红帽子集群套件,RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。更确切的说,RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久、稳定的提供服务,同时也保证了后端数据存储的安全。 RHCS提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群。

2、RHCS集群的组成

集群构架管理器:这是RHCS集群的一个基础套件,提供一个集群的基本功能,使各个节点组成集群在一起工作

高可用服务管理器:提供节点服务监控和服务故障转移功能,当一个节点服务出现故障时,将服务转移到另一个健康节点。

实验环境主机配置及功能:server4 ip:172.25.50.4 安装ricci(集群节点)
server1 ip 172.25.59.1 安装ricci(集群节点) 和luci(集群管理界面)
fence主机:双ip(一个外网,一个172.25.50.250),apache服务用来挂载镜像,安装fence

二、创建集群
1. yum源的配置
因为是附加组件可以直接从镜像中获得,所以我们直接从真机所挂载的rhel6.5 中查看。

这里写图片描述

这里写图片描述

这里写图片描述

2、安装luci和ricci

luci的作用是管理高可用的应用。两个调度器作为高可用节点,集群主机必须所有的配置相同.

[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo 
[root@server1 ~]# yum install -y luci ricci
[root@server1 ~]# passwd ricci
[root@server1 ~]# chkconfig ricci on   ##开机自启 ,一定要执行这个,不然后续的操作会卡住。
[root@server1 ~]# chkconfig luci on    ##开机自启 ,同理。
[root@server1 ~]# /etc/init.d/luci start    ##开启服务
Adding following auto-detected host IDs (IP addresses/domain names), corresponding to `server1' address, to the configuration of self-managed certificate `/var/lib/luci/etc/cacert.config' (you can change them by editing `/var/lib/luci/etc/cacert.config', removing the generated certificate `/var/lib/luci/certs/host.pem' and restarting luci):
    (none suitable found, you can still do it manually as mentioned above)

Generating a 2048 bit RSA private key
writing new private key to '/var/lib/luci/certs/host.pem'
Starting saslauthd:                                        [  OK  ]
Start luci...                                              [  OK  ]
Point your web browser to https://server1:8084 (or equivalent) to access luci
[root@server1 ~]# /etc/init.d/ricci start    ##开启服务
Starting system message bus:                               [  OK  ]
Starting oddjobd:                                          [  OK  ]
generating SSL certificates...  done
Generating NSS database...  done
Starting ricci:                                            [  OK  ]

这里写图片描述

[root@server4 ~]# vim /etc/yum.repos.d/rhel-source.repo 
[root@server4 ~]# yum repolist
[root@server1 ~]# chkconfig ricci on    ##开机自启 
[root@server4 ~]# /etc/init.d/ricci start   ##开启服务
Starting system message bus:                               [  OK  ]
Starting oddjobd:                                          [  OK  ]
generating SSL certificates...  done
Generating NSS database...  done
Starting ricci:                                            [  OK  ]

这里写图片描述

3、打开浏览器,输入:https://server1:8084解析一定做好)

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里需要写一个脚本,所以我们要在shell里操作。

首先server1和server4这两个都得有nginx,所以我们将server1的nginx传给server4.

这里写图片描述
并在server4作软链接,来启动nginx
这里写图片描述

其次,我们在server1里测试我们所填写的脚本是否正确。

这里写图片描述

最后,我们将脚本传给server4

这里写图片描述

这里写图片描述

继续回到网页

这里写图片描述

在网页添加集群组 ningx ,然后 继续将IP 和 脚本添加进去。

这里写图片描述

三、查看测试是否实现了轮询

1、在server1 查看

这里写图片描述

2、测试,开启两台(server2和server3)后台服务器。

这里写图片描述

这里写图片描述

按 F5 会发生轮询

     这时,当我们挂掉一个机子的时候,数据流会出现到另一个上面。这个挂掉的就会卡住。造成了浪费资源,所以为了自动重启这个挂掉的机子,我们用fence。

    使用keepalived配置高可用的话,不同的keepalived之间通过vrrp协议通信,若果因为网络等问题导致某一个keepalived挂掉的话,可能会造成数据丢失,也可能产生脑裂问题。

四、配置 fence

为什么使用fence’设备?
如果集群中一个节点通信失效,那么集群中的其他节点必须能够保证将已经失效的节点与其正在访问共享资源(比如共享存储)隔离开,出问题的集群节点 本身无法做到这一点,因为该集群节点在此时可能已经失去响应(例如发生hung机),因此需要通过外部机制来实现这一点。这种方法被称为带有fence代 理的隔离。不配置隔离设备,我们没有办法知道之前断开连接的集群节点使用的资源是否已经被释放掉。如果我们没有配置隔离代理(或者设备),系统可能错误的认为集群节点已经释放了它的资源,这将会造成数据损坏和丢失。 没有配置隔离设备,数据的完整性就不能够被保证,集群配置将不被支持。当隔离动作正在进行中时,不允许执行其他集群操作。这包括故障转移服务和获取GFS文件系统或GFS2文件系统的新锁。 在隔离动作完成之前或在该集群节点已经重启并且重新加入集群之前,集群不能恢复正常运行。隔离代理(或设备)是一个外部设备,这个设备可以被集群用于限制异常节点对共享存储的访问(或者硬重启此集群节点。
简单的来说,就是:断电,重启,断电,重启。

1、安装fence主机

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

[root@foundation50 ~]# yum install -y fence-virtd-serial.x86_64 

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

这里写图片描述
这里写图片描述

这里写图片描述

2、在网页配置 fence

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

3、测试 当我们使 正在运作的节点主机 内核崩溃的时候,会自动重启。

这里写图片描述

而 运作会转移到 另一台节点主机上

这里写图片描述

或者我们可以用 clusvcadm -d nginx 手动停止nginx集群 clusvcadm -e nginx 手动重启 nginx

clusvcadm -r nginx -m server4 节点nginx 服务转移。

猜你喜欢

转载自blog.csdn.net/JaneNancy/article/details/81385222
今日推荐