Linux:RHCS高可用负载均衡集群(ricci、luci、fence)

一·RHCS

1.RHCS是什么

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

2.RHCS提供的三个核心功能

高可用集群是RHCS的核心功能。当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以通过RHCS提供的高可用性服务管理组件自动、快速从一个节点切换到另一个节点,节点故障转移功能对客户端来说是透明的,从而保证应用持续、不间断的对外提供服务,这就是RHCS高可用集群实现的功能。
RHCS通过LVS(Linux Virtual Server)来提供负载均衡集群,而LVS是一个开源的、功能强大的基于IP的负载均衡技术,LVS由负载调度器和服务访问节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各个服务节点,同时,还可以定义多种负载分配策略,当一个请求进来时,集群系统根据调度算法来判断应该将请求分配到哪个服务节点,然后,由分配到的节点响应客户端请求,同时,LVS还提供了服务节点故障转移功能,也就是当某个服务节点不能提供服务时,LVS会自动屏蔽这个故障节点,接着将失败节点从集群中剔除,同时将新来此节点的请求平滑的转移到其它正常节点上来;而当此故障节点恢复正常后,LVS又会自动将此节点加入到集群中去。而这一系列切换动作,对用户来说,都是透明的,通过故障转移功能,保证了服务的不间断、稳定运行。
RHCS通过GFS文件系统来提供存储集群功能,GFS是Global File System的缩写,它允许多个服务同时去读写一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中从而消除了在应用程序间同步数据的麻烦,GFS是一个分布式文件系统,它通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。

3.RHCS集群的组成
(1)集群构架管理器

这是RHCS集群的一个基础套件,提供一个集群的基本功能,使各个节点组成集群在一起工作,具体包含分布式集群管理器(CMAN)、成员关系管理、锁管理(DLM)、配置文件管理(CCS)、栅设备(FENCE)

(2)高可用服务管理器

提供节点服务监控和服务故障转移功能,当一个节点服务出现故障时,将服务转移到另一个健康节点

二·创建集群

实验环境:
服务端:server1 安装ricci(集群节点) 和luci(集群管理界面)
客户端:server4 安装ricci(集群节点)

1.需要建立环境

在server1中:

[root@server1 ~]# vim  /etc/yum.repos.d/rhel-source.repo  ##配置高可用yum源
[root@server1 ~]# yum cleana all
[root@server1 ~]# yum repolist
[root@server1 ~]# scp /etc/yum.repos.d/rhel-source.repo [email protected]:/etc/yum.repos.d/rhel-source.repo 
[root@server1 ~]# yum install ricci luci -y   ##安装集群节点和管理界面
[root@server1 ~]# /etc/init.d/ricci  start  ##开启服务
[root@server1 ~]# /etc/init.d/luci  start
[root@server1 ~]# chkconfig luci on
[root@server1 ~]# chkconfig ricci on
[root@server1 ~]# passwd ricci    ##设置密码(至少需要6个字符)

yum源:
这里写图片描述
这里写图片描述

在server4中:

[root@server4 ~]# yum install ricci -y   ##安装
[root@server4 ~]# /etc/init.d/ricci  start  ##开启服务
[root@server4 ~]# chkconfig ricci on
[root@server4 ~]# passwd ricci    ##设置密码

在物理机上添加解析:
这里写图片描述

在网页中访问:https://server1:8084
这里写图片描述
这里写图片描述这里写图片描述

2.建立集群

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

3.高可用集群负载均衡

(1)在server1中:

[root@server1 ~]# cd /etc/init.d/
[root@server1 init.d]# ls
[root@server1 init.d]# cd /usr/local/
[root@server1 local]# scp -r nginx/  [email protected]:/usr/local/
[root@server1 local]# cd /etc/init.d/
[root@server1 init.d]# vim nginx   ##从物理机上传nginx文件到/etc/init.d/下
[root@server1 init.d]# nginx   ##开启
[root@server1 init.d]# nginx -s stop   ##停止
[root@server1 init.d]# chmod +x nginx   ##可执行权限
[root@server1 init.d]# ps ax   ##查看进程
[root@server1 init.d]# /etc/init.d/nginx stop   ##关闭
[root@server1 init.d]# scp nginx [email protected]:/etc/init.d/
[root@server1 ~]# clustat   ##查看集群状态

这里写图片描述

(2)在server4中:

[root@server4 ~]# cd /usr/local/
[root@server4 local]# cd nginx/
[root@server4 nginx]# cd logs/
[root@server4 logs]# ll
[root@server4 logs]# ln -s /usr/local/nginx/sbin/nginx /sbin/   ##制作软链接
[root@server4 logs]# useradd -M -d /usr/local/nginx/ nginx  
[root@server4 logs]# id nginx

这里写图片描述

(3)返回管理集群界面:
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

(4)需要在物理机加解析
这里写图片描述
(5)网页测试
这里写图片描述
打开server2和server3的httpd后再次测试:
这里写图片描述
这里写图片描述

三·Fence

通过栅设备可以从集群共享存储中断开一个节点,切断I/O以保证数据的完整性。当CMAN确定一个节点失败后,它在集群结构中通告这个失败的节点,fenced进程将失败的节点隔离,以保证失败节点不破坏共享数据。它可以避免因出现不可预知的情况而造成的“脑裂”(split-brain)现象。“脑裂”是指当两个节点之间的心跳线中断时,两台主机都无法获取对方的信息,此时两台主机都认为自己是主节点,于是对集群资源(共享存储,公共IP地址)进行争用,抢夺。
Fence的工作原理是:当意外原因导致主机异常或宕机时,备用机会首先调用fence设备,然后通过fence设备将异常的主机重启或从网络上隔离,释放异常主机占据的资源,当隔离操作成功后,返回信息给备用机,备用机在接到信息后,开始接管主机的服务和资源。

RHCS的Fence设备可以分为两种:

内部Fence和外部Fence。
内部fence有IBM RSAII卡,HP的ILO卡,以及IPMI设备等;外部FENCE设备有UPS,SAN switch ,Network switch等。

当节点A上的栅过程发现C节点失效时,它通过栅代理通知光纤通道交换机将C节点隔离,从而释放占用的共享存储。
当A上的栅过程发现C节点失效时,它通过栅代理直接对服务器做电源power on/off,而不是去执行操作系统的开关机指令。

fence的作用:断电重启
安装包:

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

1.下载安装包以及配置

[root@foundation71 kiosk]# yum install fence-virtd-multicast.x86_64 
[root@foundation71 kiosk]# yum install fence-virtd-libvirt.x86_64 
[root@foundation71 kiosk]# yum install fence-virtd-serial.x86_64
[root@foundation41 kiosk]# fence_virtd -c
[root@foundation71 Desktop]# systemctl restart fence_virtd.service 
[root@foundation71 Desktop]# netstat -anulp |grep :1229  ##查看端口
[root@foundation71 Desktop]# cd /etc/cluster/   ##由于没有目录,需要建立
bash: cd: /etc/cluster/: No such file or directory
[root@foundation71 Desktop]# mkdir /etc/cluster/
[root@foundation71 Desktop]# cd /etc/cluster/
[root@foundation71 cluster]# ls
[root@foundation71 cluster]# dd if=/dev/urandom of=fance_xvm.key bs=128   ##截取
[root@foundation71 cluster]# systemctl restart fence_virtd.service  ##重启
[root@foundation71 cluster]# scp fance_xvm.key [email protected]:/etc/cluster/ 
[root@foundation71 cluster]# scp fance_xvm.key [email protected]:/etc/cluster/

初始化
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

2.进入管理界面

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
同样的步骤要添加节点vmfenve2
添加后的界面
这里写图片描述

测试:

[root@server4 ~]# clustat  ##查看状态
root@server4 init.d]# fence_node server4   ##断开server4
会发现自动重启

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

[root@server4 ~]# echo c > /proc/sysrq-trigger    ##内核崩溃,会自动重启

这里写图片描述

猜你喜欢

转载自blog.csdn.net/Le_Anny/article/details/81368089
今日推荐