rhcs--高可用集群配置

一、什么是RHCS

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

二、RHCS提供的三个核心功能

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

三、RHCS集群的组成

RHCS是一个集群工具的集合,主要有下面几大部分组成:

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

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

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

四、RHCS集群的配置

我的环境是redhat 6.5 因此还需要在yum源的配置文件里加入高可用(HighAvailability),负载均衡(LoadBalancer ),存储(ResilientStorage),文件系统(ScalableFileSystem)的模块。
我的server1 充当 高可用加管理节点(需要安装ricci,luci),server2 高可用节点(需要安装ricci)。

  • 配置yum源(server1 server2)
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.68/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.68/rhel6.5/HighAvailability
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LoadBalancer]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.68/rhel6.5/LoadBalancer
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[ResilientStorage]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.68/rhel6.5/ResilientStorage
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[ScalableFileSystem]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.68/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

  • 安装软件

serevr1
[root@server1 yum.repos.d]# yum install ricci luci -y
安装完成后,系统会自动添加一个ricci用户,更改该用户的密码
[root@server1 yum.repos.d]# passwd ricci
Changing password for user ricci.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@server1 yum.repos.d]# /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@server1 yum.repos.d]# /etc/init.d/luci start
Adding following auto-detected host IDs (IP addresses/domain names), corresponding to server1.localdomain' 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’
Start luci… [ OK ]
Point your web browser to https://server1.localdomain:8084 (or equivalent) to access luci

server2
[root@server2 ~]# yum install ricci -y
[root@server2 ~]# passwd ricci
Changing password for user ricci.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
开启服务
[root@server2 ~]# /etc/init.d/ricci start
Starting system message bus: [ OK ]
Starting oddjobd: [ OK ]
generating SSL certificates… done
Generating NSS database… done
Starting ricci: [ OK ]

  • 进入luci的管理界面对集群进行配置(通过8084端口)
    1.登录管理界面
    第一次登录先要获取CA证书
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
注意:我们需要用root用户登录,否则权限不够,无法配置。
在这里插入图片描述
2. 创建集群westos_ha,包含两个节点server1,server2。
注意,我们本地文件里要有对server1,server2的解析。
在这里插入图片描述
稍等一下。
在这里插入图片描述
创建成功!!!
在这里插入图片描述
3.添加fence

  • fence:当发生意外导致主机异常或不是简单的停机服务时,备用机会首先调用fence设备,然后通过fence设备将异常的主机重新启动或从网络上隔离,释放异常主机占据的资源,当隔离成功,返回资源信息给备用机,备用机在接收到信息后,开始接管主机的服务和资源,

  • fence原理:通过栅设备可以从集群共享存储中断开一个节点,切断I/O以确保数据的完整性。当CMAN确定一个节点失败后,它在集群结构中通告这个失败的节点,fence进程将失败的节点隔离,以保证节点不破坏共享数据。它可以避免因出现不可预知的情况而造成的“脑裂”(split-brain)现象。脑裂是指当两个节点之间的心跳线中断时,两台主机均认为自己时主节点,于是对集群资源进行争用、抢夺。

1)在真机中安装fence服务
[root@foundation68 cluster] yum install fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 fence-virtd.x86_64 -y

2)配置fence的配置文件
[root@foundation68 cluster]# fence_virtd -c #Interface设置为br0,其他都为默认值

3)在真机中,生成密钥

[root@foundation68 cluster]# mkidr /etc/cluster
[root@foundation68 cluster]# dd if=/dev/urandom of=/etc/cluster/fence_xvm bs=128 count=1 # 截取密码文件

4)将生成的fence_xvm发送给server1和server4

[root@foundation68 cluster]# scp /etc/cluster/fence_xvm server1:/etc/cluster

[root@foundation68 cluster]# scp /etc/cluster/fence_xvm server4:/etc/cluster
5)开启服务,并设置为开机自启
[root@foundation68 cluster]# systemctl start fence_virtd
[root@foundation68 cluster]# systemctl enabled fence_virtd

5 )在luci管理界面添加fence
点击Fence Devices,再点击Add,选择多播模式的fence
在这里插入图片描述

绑定节点,在fence Dvice中添加vmfence1和vmfence2

在这里插入图片描述
在这里插入图片描述
这里Domain我们用的是server1的UID,在虚拟机的图形管理界面可以看到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述server2同上

两个节点都绑定后配置文件内容应该如下:

在这里插入图片描述
测试:
在这里插入图片描述

4.建立错误恢复域,当一个节点有问题,可以切换到另一节点上(设置server1优先级高)
在这里插入图片描述
添加服务中所要用到的资源(以httpd高可用为例)
1)添加IP Address(集群对外VIP) ,点击Submit提交
在这里插入图片描述
2)再点击Resources,点击Add,选择模式Script,添加启动httpd服务的脚本
在这里插入图片描述
向集群中添加上一步添加的资源(IP Address 和script)

1)创建一个资源组(服务中要用到资源的集合)apache
在这里插入图片描述点击Add Resource将上一步的资源添加进去
在这里插入图片描述
2)在server1 和server2上安装httpd服务,并编写默认测试页面内容

  • 测试
    在这里插入图片描述
    可以看到我们的VIP现在在server1上
    在这里插入图片描述
    访问
    在这里插入图片描述
    高可用
    停掉server1上的apache服务,发现VIP漂移到server2上
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43273168/article/details/89455039