前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转企业集群运维管理系列(二十一):高可用集群管理工具 RHCS 详解

玩转企业集群运维管理系列(二十一):高可用集群管理工具 RHCS 详解

作者头像
民工哥
发布2023-12-28 11:02:14
2260
发布2023-12-28 11:02:14
举报

前面介绍了 HeartBeat 及其集群高可用部署DRBD原理与实践DRBD配置与管理高可用集群架构 corosync+pacemakerLVS+KeepAlivedhaproxy+keepalived+nginx 实现 k8s 集群负载均衡Pacemaker+Corosync 高可用架构实战等相关的知识点,今天我将详细的为大家介绍高可用集群管理工具 RHCS相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发朋友圈支持一波!!!

什么是RHCS?

RHCS是Red Hat Cluster Suite的缩写,也就是红帽集群套件,RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。

更确切的说,RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久、稳定的提供服务,同时也保证了后端数据存储的安全。

RHCS提供核心功能

RHCS提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群。更多关于企业集群运维管理系列的学习文章,请参阅:玩转企业集群运维管理专栏,本系列持续更新中。

高可用集群

是RHCS的核心功能。当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以通过RHCS提供的高可用性服务管理组件自动、快速从一个节点切换到另一个节点,节点故障转移功能对客户端来说是透明的,从而保证应用持续、不间断的对外提供服务,这就是RHCS高可用集群实现的功能。

负载均衡集群

RHCS通过LVS来提供负载均衡集群,而LVS是一个开源的、功能强大的基于IP的负载均衡技术,LVS由负载调度器和服务访问节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各个服务节点,同时,还可以定义多种负载分配策略,当一个请求进来时,集群系统根据调度算法来判断应该将请求分配到哪个服务节点,然后,由分配到的节点响应客户端请求,同时,LVS还提供了服务节点故障转移功能,也就是当某个服务节点不能提供服务时,LVS会自动屏蔽这个故障节点,接着将失败节点从集群中剔除,同时将新来此节点的请求平滑的转移到其它正常节点上来;而当此故障节点恢复正常后,LVS又会自动将此节点加入到集群中去。而这一系列切换动作,对用户来说,都是透明的,通过故障转移功能,保证了服务的不间断、稳定运行。

存储集群

RHCS通过GFS文件系统来提供存储集群功能,GFS是Global File System的缩写,它允许多个服务同时去读写一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中从而消除了在应用程序间同步数据的麻烦,GFS是一个分布式文件系统,它通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。

图解RHCS集群结构

上图为典型的集群拓扑结构:整个结构分为三个层面:

  • 最上层的LVS负载均衡。
  • 中间为Realserver层,就是服务节点部分。
  • 最后一层是共享存储层,主要用于给GFS文件系统提供共享存储空间。

RHCS 集群的组成

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

集群架构管理器

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

高可用服务管理器

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

集群配置管理工具

RHCS最新版本利用LVS来配置和管理rhcs集群,LUCI是一个基于web的集群配置方式,通过luci可以轻松的搭建一个功能强大的集群系统。

Linux Virtual Server

LVS是一个开源的负载均衡软件,利用LVS可以将客户端的请求根据指定的负载均衡策略和算法合理的分配到各个服务节点,实现动态,智能的负载均衡的分担。

RHCS除了上面的几个核心构成,还可以通过下面的一些组件来补充RHCS集群功能:

Red Hat GFS(Global File System)

GFS是redhat公司开发的一款集群文件系统,目前最新的版本是GFS2,GFS文件系统允许多个服务同时读写一些磁盘分区,通过GFS可以实现数据的集中管理,免去了数据同步和拷贝的麻烦,但GFS并不能孤立的存在,安装GFS需要RHCS的底层组建支持。

Cluster Logical Volume Manger

cluster逻辑卷管理器,即CLM,是LVM的扩展,这种扩展允许cluster中的机器使用lvm来管理共享存储。

ISCSI

iscsi是一种在internet协议上,特别是以太网上进行数据块传输的标准,它是一种基于IP Storage理论的新型存储技术,RHCS可以通过ISCSI技术来导出和分配共享存储的使用。

Global Network Block Deceive

全局网络模块,简称GNBD,是GFS的一个补充组件,用于RHCS分配和管理共享存储,GNBD分为客户端和服务端,在服务端GNBD允许导出多个块设备或者GNBD文件,而GNBD客户端通过导入这些导出的文件或者块设备,就可以把它们当作本地块设备使用。由于现在GNBD已经停止了开发,所以使用GNBD的越来越少。

RHCS 集群套件功能

分布式集群管理(CMAN)
  • CMAN(cluster manager),是一个分布式集群管理工具,它运行在集群的各个节点上,为RHCS提供集群管理任务。
  • CMAN用于管理集群成员,消息及其通知。通过监控每个节点的运行状态来了解节点成员之间的关系,但集群中某个节点出现故障,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而作出相应的调整。
锁管理(DLM)
  • DLM(Distributed Lock Manager)表示一个分布式锁管理器。它是RHCS的一个底层基础构件,同时也为集群提供了一个共用的锁运行机制,在RHCS中,DLM运行在集群的每个节点上,GFS通过锁管理器的锁机制来同步文件系统元数据,CLVM通过锁管理器来同步更新数据到LVM卷和卷组。
  • DLM不需要设定锁管理服务器,它采用对等的锁管理方式,大大提高了处理性能,同时DLM避免了单个节点失败时需要整体恢复的性能瓶颈,另外,DLVM的请求都是本地的,不需要网络请求,因而请求会立即生效,最后DLM通过分层机制,可以实现多个锁空间的并行锁模式。
配置文件管理(CCS)
  • CCS(Cluster Configuration System)只要用于集群配置文件管理和配置文件在节点之间的同步。CCS运行在集群的每个节点上,监控每个集群节点上的单一配置文件/etc/cluster/cluster.conf的状态,当这个文件发生任何变化时,都将此变化更新到集群的每个节点,时刻保持每个节点的配置文件的同步。
  • rhcs的配置文件是cluster.conf,它是一个xml文件,具体包含集群名称,集群节点信息,集群资源和服务信息,fence设备等。
栅设备(FENCE)
  • FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的“脑裂”现象,FENCE设备的出现,就是为了解决类似这些问题。
  • Fence设备主要就是通过服务器或者存储本身的硬件管理接口,或者外部电源管理设备,来对服务器或存储直接发出硬件管理命令,将服务器重启或关机,或者将网络连接断开。
FENCE的工作原理
  • 当意外原因导致主机异常或者拓机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常的主机重启或者网络隔离,当FENCE操作成功执行后,返回信息给备机备机在接收到FENCE呈贡的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常的节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上,
  • RHCS的FENCE设备可以分为俩种:内部FENCE和外部FENCE,常用的内部FENCE有IBM RSAII卡,HP的ILO卡,IPMI。外部FENCE设备有UPS,SAN SWITCH,NETWORK SWITCH等。
高可用服务管理器
  • 作用:主要用来监督,启动和停止集群的应用,服务和资源。它提供了一种对集群服务的管理能力,当一个节点的服务失败时,高可用性集群服务管理进程可以将服务从这个失败节点转移到其它健康节点上来,并且这种服务转移能力是自动的透明的。
  • RHCS通过rgmanager来管理集群服务,rgmanager运行在每个集群节点上,在服务器上对应的进行为ieclurgmgrd。
  • 再一个rhcs集群中,高可用包含集群服务的集群资源俩个方面,集群服务就是应用服务,例如:apache,mysal等,集群资源就是有很多种,例如一个IP地址,一个运行脚本,ext3/GFS文件系统等。
  • 高可用服务管理在rhcs集群中是和一个失败转移域结合在一起的,所谓失败转移域就是一个运行在特定服务的集群节点的集合。在失败转移域中,可以给每个节点设置相应的优先及,通过优先级的高低来决定节点失败时服务转移的先后顺序,如果没有指定节点的优先级,那么集群高可用服务将在任意节点之间转移,因此通过创建失败转移域不但可以设定服务在节点间转移的顺序,而且可以限制某个服务仅在失败转移域的指定的节点内进行切换。
集群配置管理工具
  • rhcs提供了多种集群配置和管理工具,常用的有基于GUI的system-config-cluster,Conga等,也提供了基于命令行的管理工具。
  • system-config-cluster是一个用于创建集群和配置节点的图形化管理工具,它有集群节点配置和集群管理俩个部分组成,分别用于创建集群节点配置文件和维护节点运行状态。一般用于rhcs早期的版本中。
  • Conga是一种新的基于网络的集群配置工具,与图形配置不同的是,Conga是通过web方式来配置和管理集群节点的,Conga有俩部分组成,分别是luci,和ricci,luci安装在一台独立的计算机上,用于配置和管理集群,ricci安装在每个集群节点上,luci通过ricci和集群中的每个节点通信。
redhat GFS
  • GFS是RHCS为集群系统提供的一个存储解决方案,它允许集群多个节点在块级别上共享存储,每个节点通过共享一个存储空间,保证了访问数据的一致性,更确切的说,GFS是RHCS提供的一个集群文件系统,多个节点同时挂载一个文件系统分区,而文件系统数据不受破坏,这是单一的文件系统,例如ext4等做不到的。
  • 为了实现多个节点对一个文件系统同时读写操作,GFS使用锁存管理器来管理I/O操作,当一个写进程操作一个文件时,这个文件就被锁定,此时不允许其它写进程进行操作,直到这个写进行正常完成才释放锁,只有当这个锁被释放后,其它读写进程才能多这个文件进行操作,另外,当一个节点在GFS文件系统上修改数据后,这种修改操作会通过RHCS地层通信机制立即在其它节点上可见。
  • 搭建RHCS集群时,GFS一般作为共享存储,运行在每个节点上,并且可以通过RHCS管理工具对其进行配置和管理,对于RHCS和GFS的关系,运行RHCS,GFS不是必须的,只有在需要共享存储时,才需要GFS支持,而搭建GFS集群文件系统时,必须要有RHCS的底层支持,所以安装GFS文件系统中的节点前必须安装rhcs组件。
Failover Domain故障转移域

与服务相关,Failover Domain指定了集群中某个节点故障以后,该节点上的Service和Resource所能够转移的目标节点,进而限定了一个Resource能够转移的节点范围,可以理解为服务的故障转移域;每个Node都允许与多个Failover Domain进行绑定,也就是说每个Node都可以为多个Service服务,因此可以实现双主方式的集群配置。更多关于企业集群运维管理系列的学习文章,请参阅:玩转企业集群运维管理专栏,本系列持续更新中。

RHCS 配置集群套件

部署实验环境

此实验中需要3台rhel6版本的虚拟机,分别是server1 server2 server3。 配好同一网段的ip地址,提前写好解析。

代码语言:javascript
复制
vim /etc/hosts #添加解析
172.25.254.1 server1
172.25.254.2 server2
172.25.254.3 server3

在server1和server2搭建高级的yum源:

在server1中

代码语言:javascript
复制
cd /etc/yum.repos.d/
ls
vim rhel-source.repo 

将写好的文件发给server2:

代码语言:javascript
复制
scp rhel-source.repo root@172.25.254.2:/etc/yum.repos.d/

配置成功:

代码语言:javascript
复制
yum clean all
yum repolist
搭建RHCS环境
  • ricci---图形里的集群管理
  • luci---图形界面
在server1中安装
代码语言:javascript
复制
yum install ricci luci -y

给ricci设置密码:

代码语言:javascript
复制
id ricci
passwd ricci

启动ricci luci:

注意:企业6没有systemctl命令,所以启动关闭服务等操作需要用脚本来实现。

代码语言:javascript
复制
/etc/init.d/ricci start
/etc/init.d/luci start
chkconfig ricci on  #设置开机自启
chkconfig luci on
在server2中安装
代码语言:javascript
复制
yum install ricci -y

给ricci设置密码:

代码语言:javascript
复制
id ricci
passwd ricci

启动ricci:

代码语言:javascript
复制
/etc/init.d/ricci start
chkconfig ricci on
创建集群

step1 在网页中输入网址:https://172.25.254.1:8084 即https://server1的ip:8084。

step2 登陆:

step3 创建集群:

此时server1和server2会重启,然后再重新连接server1和server2。

查看集群信息:

代码语言:javascript
复制
cd /etc/cluster/
cat cluster.conf 
clustat
配置fence

在真机中安装fence:

代码语言:javascript
复制
yum search fence
yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y
systemctl start fence_virtd.service
systemctl status fence_virtd.service

编辑fence的配置文件:

代码语言:javascript
复制
fence_virtd -c

截取密钥:

代码语言:javascript
复制
mkdir /etc/cluster
cd /etc/cluster/
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
ls

将截取好的密钥文件发送给节点server1和server2:保证server1和server2利用的是同一个密钥。

代码语言:javascript
复制
scp fence_xvm.key root@172.25.254.1:/etc/cluster/
scp fence_xvm.key root@172.25.254.2:/etc/cluster/

添加fence设备:

绑定节点:

server2同上面的步骤。两个节点都要绑定。更多关于企业集群运维管理系列的学习文章,请参阅:玩转企业集群运维管理专栏,本系列持续更新中。

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

代码语言:javascript
复制
cat /etc/cluster/cluster.conf

设置火墙:

代码语言:javascript
复制
systemctl stop firewalld

测试:在server1上通过fence干掉节点server2,使server2断电重启则为成功

代码语言:javascript
复制
fence_node server2

因为这个架构现在不常用了,所以,这里不做过多的介绍,大家只需要了解其原理与基本的配置过程即可,有需求的可以自行去官网详细了解。更多关于企业集群运维管理系列的学习文章,请参阅:玩转企业集群运维管理专栏,本系列持续更新中。

参考链接:https://blog.csdn.net/weixin_44224288 /article/details/89455370 https://blog.csdn.net/ nigar_/article/details/104462880

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是RHCS?
  • RHCS提供核心功能
    • 高可用集群
      • 负载均衡集群
        • 存储集群
        • 图解RHCS集群结构
        • RHCS 集群的组成
          • 集群架构管理器
            • 高可用服务管理器
              • 集群配置管理工具
                • Linux Virtual Server
                  • Red Hat GFS(Global File System)
                    • Cluster Logical Volume Manger
                      • ISCSI
                        • Global Network Block Deceive
                        • RHCS 集群套件功能
                          • 分布式集群管理(CMAN)
                            • 锁管理(DLM)
                              • 配置文件管理(CCS)
                                • 栅设备(FENCE)
                                  • 高可用服务管理器
                                    • 集群配置管理工具
                                      • redhat GFS
                                        • Failover Domain故障转移域
                                        • RHCS 配置集群套件
                                          • 部署实验环境
                                            • 搭建RHCS环境
                                              • 创建集群
                                                • 配置fence
                                                相关产品与服务
                                                负载均衡
                                                负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
                                                领券
                                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档