RHCS集群简介及配置web高可用

简介:

                 RHCS集群配置

一、RHCS集群简介

  RHCS(Red Hat Cluster Suite)集群是红帽官方提供的子集群套件,它整合了高可用集群、负载均衡集群、存储集群,从而为用户提供了完整的一套从前端到应用到存储的集群解决方案。通过RHCS集群提供的集群服务,可以为web,数据库等关键业务提供高效,稳定的运行环境。


二、RHCS的核心功能

 1、负载均衡

  RHCS的负载均衡集群通过LVS(Linux Virtual Server)来实现其功能,LVS是由前端的调度器与后端的RS节点组成,客户端的访问请求通过调度器根据算法及集群类型的不同将其调度至集群的RS节点,由调度器调度到的RS节点响应客户端请求。同时,LVS提供了故障转移功能,当集群中的RS节点中有任意一个或多个出现故障时,LVS会自动将故障节点下线,将分配到故障节点的客户端请求移到无故障节点运行;故障节点修复,又将重新加入集群继续工作,从而保证了服务的不中断运行。RHCS集群类型有DR,NAT,TUN,FULLNAT,可为各种复杂的网络环境提供不同的解决方案。

 

 2、高可用

  RHCS的高可用集群中的高可用服务在无故障情况下,可运行于任意节点,通过定义组资源或者各种约束关系,将提供同一类服务的资源运行在同一个节点,当提供服务的节点故障或分裂时,集群可通过仲裁设备(非必须)判定资源运行于哪个节点,即拥有法定票数多的一方继续运行集群服务,而故障的或不拥有法定票数的一方则作下线处理。保证了服务的不中断运行。

wKioL1g6YJDzR05CAAE3ZLo547w309.png

(引自https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/5/html/Cluster_Suite_Overview/s1-service-management-overview-CSO.html)

 

 3、存储

  RHCS通过GFS提供集群存储功能,GFS是一个分布式文件系统,它通过锁管理机制,使集群中的各节点互相通告共享文件锁,从而可以使多个节点同时挂载共享文件系统来完成数据读写等操作。

wKioL1g6X3Kwxs51AACw6XV6vOE796.png

(引自https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Cluster_Suite_Overview/ch.gfscs.cluster-overview-CSO.html)


三、RHCS集群的组成部分(简述)

 wKioL1g6ZKmBzs0tAABfyuQDz3E074.png-wh_50


1、集群管理器CMAN

 Cluster Manager,简称CMAN,是一个分布式集群管理工具,它运行在集群的各个节点上,为RHCS提供集群管理任务。CMAN用于管理集群成员、传递节点间心跳信息。它通过监控每个节点的运行状态来了解节点成员之间的关系,当集群中某个节点出现故障,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而做出相应的调整。cman之上有ccs和fencs两个组件。


2、资源组管理器rgmanager

 通过定义的集群资源,来管理这些资源,被管理的资源包括故障切换域的定义、资源(如 IP 地址)和服务。它也定义了群集服务和群集服务的故障切换行为。


3、集群配置文件管理CCS    

 其默认配置文件为/etc/cluster/cluster.conf,运行于集群中各节点,当某一节点的配置信息发生改变时,使同一集群内的其他节点的配置文件发生相应变化。


4、保护设备Fencs

 当 CMAN 决定某个节点已经发生故障,它将告知其他群集基础结构组件。在收到通知后,fenced 将保护(fence)故障节点。其他群集基础结构组件将决定采取什么行动,也就是说,它们执行任何必需的恢复。例如,当 DLM 和 GFS 被告知节点故障时,将暂停活动,直到它们检测到 fenced 已经完成对故障节点的保护。当确认故障节点已经被保护时,DLM 和 GFS 会执行恢复。DLM 释放对失败节点的锁定;GFS 恢复故障节点的日志。GNBD也是Fencs的一个组件。


5、分布式锁管理器DLM

 分布式锁管理器管理集群中挂载使用GFS的节点来同步它们对共享资源的访问,它运行于每一个集群节点,是集群中所有节点共享锁文件。CLVM使用锁管理器来同步对LVM卷和卷组(也对共享存储)的更新。


6、集群文件系统GFS

 GFS 是允许集群内所有节点可同时访问某个共享的块设备的集群文件系统。GFS 是一个原生(native)文件系统,它直接和 Linux 内核文件系统接口的 VFS 层进行通信。GFS 使用分布式元数据和多个日志来优化群集操作。要维护文件系统的完整性,GFS 使用一个锁管理器来协调 I/O。当节点修改了 GFS 文件系统上的数据,这个改动马上为使用这个文件系统的其他群集节点可见。同时,GFS使整个群集只需安装一次应用程序或补丁,并可使集群内多个节点的服务对数据可以并行读/写操作。


7、集群配置管理工具Conga

 Conga是为RHCS集群和存储提供集中配置和管理的软件组件集合,Conga里的主要组件是luci和ricci,它们都是可单独安装的。luci是一个服务器组件,它运行在一台机器上并通过ricci与多个群集和机器通信。ricci是运行在Conga管理的每台机器(群集成员或独立的机器)上的代理。

Conga在CentOS 7上ricci被更换为pcsd。


四、RHCS集群实验

实验准备:RHCS集群要求最少有三台以上的设备

    node1:192.168.0.15  ricci

     node2:192.168.0.16  ricci

     node3:192.168.0.20  luci

     vip:192.168.0.17

     node节点系统均为CentOS 6.7

    时间同步,基于主机名通信,密钥认证准备工作等详见 --> HA集群


1、在node1,node2安装ricci,在node3安装luci,并启动服务

1
2
3
4
5
6
[root@node1 ~] # yum install ricci -y
[root@node1 ~] # service ricci start
 
[root@node3 ~] # yum install luci 
注意:luci使用python研发,安装的依赖包必须使用Base源的,使用epel源的包,会造成luci无法启动
[root@node3 ~] # service luci start

此时,可以浏览器访问了https://192.168.0.20:8084 登录用户名密码为系统用户(root)

注意:关闭防火墙或放行8084端口,关闭selinux


2、为ricci创建密码(node1,node2),不然会认证失败,无法添加资源

1
2
3
[root@node1 ~] # echo "123456" | passwd --stdin ricci
Changing password  for  user ricci.
passwd : all authentication tokens updated successfully.


3、创建集群(选择下载安装)

wKiom1g6gHuTDM94AAChXDg2ERE992.png-wh_50


4、创建成功

wKioL1g6hkKiZ9UjAADgga1VPkk918.png-wh_50


5、创建Fence设备(RHCS必须要求有),可选择的设备,此处随便选的,生产环境下根据不同类型的服务器具体选择

wKiom1g6hujjqAx5AADUOgtsoXg192.png-wh_50


6、配置故障转移域

wKiom1g6iBewMCpUAACsgXNrD_A235.png-wh_50


7、创建资源(web为例)全局资源

wKioL1g6ivbSnqy_AABjP6zvD2Q469.png-wh_50


httpd资源定义时为外部脚本

wKiom1g6i9PgqLplAACHAhG8Hd0993.png-wh_50


8、定义资源组(资源必须在组内才能运行)资源组内定义的资源为内部资源。

wKioL1g6jRTz6QmSAACHP1-aXy0237.png-wh_50


9、向组内添加资源

wKiom1g6jc2xz7rgAAC7o3cOduY305.png-wh_50


10、组内特性定义

wKioL1g6jraggRTbAAB8VaV2bXE921.png-wh_50


11、启动资源组

wKiom1g6jxTyQCceAACNWWst1lI316.png-wh_50


12、查看当前资源运行状态

1
2
3
4
5
6
7
8
9
10
11
12
[root@node1 ~] # clustat
Cluster Status  for  tcluster @ Sun Nov 27 15:46:58 2016
Member Status: Quorate
 
  Member Name                                ID   Status
  ------ ----                                ---- ------
  node1                                          1 Online, Local, rgmanager
  node2                                          2 Online, rgmanager
 
  Service Name                      Owner (Last)                      State         
  ------- ----                      ----- ------                      -----         
  service:webservice                node2                             started


13、测试集群

wKioL1g6kK2R9J4AAAA0hD_Si1M526.png-wh_50


14、命令行资源迁移

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@node1 ~] # clusvcadm -r webservice -m node1
Trying to relocate service:webservice to node1...Success
service:webservice is now running on node1
 
[root@node1 ~] # clustat
Cluster Status  for  tcluster @ Sun Nov 27 16:34:24 2016
Member Status: Quorate
 
  Member Name                                ID   Status
  ------ ----                                ---- ------
  node1                                          1 Online, Local, rgmanager
  node2                                          2 Online, rgmanager
 
  Service Name                      Owner (Last)                      State         
  ------- ----                      ----- ------                      -----         
  service:webservice                node1                             started


如有错误,欢迎指正。



本文转自 元婴期 51CTO博客,原文链接:http://blog.51cto.com/jiayimeng/1877007

目录
打赏
0
0
0
0
344
分享
相关文章
阿里云热门云安全产品简介:Web应用防火墙与云防火墙产品各自作用介绍
在阿里云的安全类云产品中,Web应用防火墙与云防火墙是用户比较关注的两款安全产品,二者在作用上各有侧重,共同构成了阿里云强大的安全防护体系。本文将对Web应用防火墙与云防火墙产品各自的主要作用进行详细介绍。
|
6月前
|
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
101 4
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
172 5
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
本文介绍了如何在ThinkPHP框架中配置跨域请求,使用了TP内置的跨域类`\think\middleware\AllowCrossDomain::class`。文章还讨论了小程序和web网页在跨域请求格式上的区别,并提供了解决方案,包括修改跨域中间件源码以支持`Origin`和`token`。此外,还介绍了微信小程序跨域请求的示例和web网页前端发送Axios跨域请求的请求拦截器配置。
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
|
7月前
|
HAProxy的高级配置选项-Web服务器状态监测
这篇文章介绍了HAProxy的高级配置选项,特别是如何进行Web服务器状态监测,包括基于四层传输端口监测、基于指定URI监测和基于指定URI的request请求头部内容监测三种方式,并通过实战案例展示了配置过程和效果。
157 8
HAProxy的高级配置选项-Web服务器状态监测
【前端web入门第一天】03 综合案例 个人简介与vue简介
该网页采用“从上到下,先整体再局部”的制作思路,逐步分析并编写代码实现个人简介页面。内容涵盖尤雨溪的背景、学习经历及主要成就,同时介绍其开发的Vue.js框架特点。代码结构清晰,注重细节处理,如使用快捷键提高效率,预留超链接位置等,确保最终效果符合预期。
118 7
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
354 0
springBoot:整合其他框架&condition&切换web配置 (五)
本文档介绍了如何在Spring Boot项目中整合JUnit、Redis和MyBatis等框架,并提供了相应的依赖配置示例。同时,还展示了如何通过条件注解实现Bean的条件创建,以及如何切换Web服务器配置,从默认的Tomcat切换到Jetty。
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
TIS 是一款基于Web-UI的开源大数据集成工具,通过与人大金仓Kingbase的深度整合,提供高效、灵活的实时数据集成方案。它支持增量数据监听和实时写入,兼容MySQL、PostgreSQL和Oracle模式,无需编写复杂脚本,操作简单直观,特别适合非专业开发人员使用。TIS率先实现了Kingbase CDC连接器的整合,成为业界首个开箱即用的Kingbase CDC数据同步解决方案,助力企业数字化转型。
193 5
基于Flink CDC 开发,支持Web-UI的实时KingBase 连接器,三大模式无缝切换,效率翻倍!
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等