Redhat Cluster Suite原理介绍
RedHat Cluster Suite简称RHCS,是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,基于RHCS可以搭建高可用性集群、负载均衡集群、存储集群和高性能集群。本文以基于RHCS搭建高可用集群为例,来简单介绍RHCS实现高可用集群的原理,至于高可用集群的搭建步骤,将会在《基于RHCS的tomcat和mysql服务的HA搭建步骤》一文中进行详细的介绍。
1. 基于RHCS的高可用集群要解决的问题
基于RHCS搭建高可用集群式RHCS的核心功能,当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以通过RHCS提供的高可用**管理组件自动、快速从一个节点切换到另一个节点,节点故障转移功能对客户端来说是透明的,从而保证应用持续、不间断的对外提供服务,这就是RHCS高可用集群实现的功能。
2. RHCS集群的主要组件
2.1 集群构架管理器
提供一个集群的基本功能,使各个节点组成集群在一起工作,具体包含分布式集群管理器(cman)、资源组管理器(rgmanager)、锁管理(dlm)、配置文件管理(ccs)、栅设备(fence)。
(1)CMAN - 分布式集群管理器
CMAN 通过监控其他群集节点的信息来跟踪成员资格,当群集的成员资格发生变化时,群集管理器通知其他基础结构组件,它们再采取合适的行动,可通过系统中的serivce命令进行启/停操作;DLM、CLVM及Fence都依赖于cman分布式群集管理器
(2)rgmanager - 资源组管理器(resource group manager)
用来监控service的状态以及执行指定的故障切换操作,比如下面log,可以看出rgmanger主要执行接管服务前的预操作和服务的启动/停止等工作:
fenced[2839]: fence 192.168.33.141 success
rgmanager[3606]: Taking over service service:tomcat from down member 192.168.33.141
rgmanager[100268]: [fs] mounting /dev/sdb1 on /tomcat6
rgmanager[100290]: [fs] mount -t ext4 /dev/sdb1 /tomcat6
kernel: EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts:
rsyslogd-2177: imuxsock begins to drop messages from pid 2779 due to rate-limiting
rgmanager[100390]: [ip] Adding IPv4 address 192.168.33.201/24 to em1
rgmanager[100471]: [script] Executing /etc/init.d/tomcat start
rsyslogd-2177: imuxsock lost 153 messages from pid 2779 due to rate-limiting
rgmanager[3606]: Service service:tomcat started
(3)DLM - 分布式锁管理器
它是RHCS的一个底层基础构件,同时也为集群提供了一个公用的锁运行机制,在RHCS集群系统中,DLM运行在集群的每个节点上,GFS通过锁管理器的锁机制来同步访问文件系统元数据。CLVM通过锁管理器来同步更新数据到LVM卷和卷组。DLM不需要设定锁管理服务器,它采用对等的锁管理方式,大大的提高了处理性能。同时,DLM避免了当单个节点失败需要整体恢复的性能瓶颈,另外,DLM的请求都是本地的,不需要网络请求,因而请求会立即生效。最后,DLM通过分层机制,可以实现多个锁空间的并行锁模式
(4)CSS - 配置文件管理器
Cluster Configuration System,简称CCS,主要用于集群配置文件管理和配置文件在节点之间的同步。CCS运行在集群的每个节点上,监控每个集群节点上的单一配置文件/etc/cluster/cluster.conf的状态,当这个文件发生任何变化时,都将此变化更新到集群中的每个节点,时刻保持每个节点的配置文件同步。例如,管理员在节点A上更新了集群配置文件,CCS发现A节点的配置文件发生变化后,马上将此变化传播到其它节点上去。rhcs的配置文件是cluster.conf,它是一个xml文件,具体包含集群名称、集群节点信息、集群资源和服务信息、fence设备等。
(5)femce 设备
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等。
2.2 高可用服务管理器
提供节点服务监控和服务故障转移功能,当一个节点服务出现故障时,将服务转移到另一个健康节点。
2.3 集群配置管理工具
RHCS最新版本通过LUCI来配置和管理RHCS集群,LUCI是一个基于web的集群配置方式,通过ricci agent实现管理node与集群中node之间的通信,通过luci可以轻松的搭建一个功能强大的集群系统。
2.4 Linux Virtual Server
LVS是一个开源的负载均衡软件,利用LVS可以将客户端的请求根据指定的负载策略和算法合理的分配到各个服务节点,实现动态、智能的负载分担。
Redhat Cluster Suite原理介绍的更多相关文章
- Percona XtraDB Cluster(PXC)原理
Percona XtraDB Cluster(PXC)原理 介绍: PXC曾经属于一套近乎最完美的mysql高可用集群解决方案(现mgr总体上要优于pxc),相比传统的基于主从复制模式的集群架构MHA ...
- Burp Suite使用介绍
Burp Suite使用介绍(一) 22人收藏 收藏 2014/05/01 19:54 | 小乐天 | 工具收集 | 占个座先 Getting Started Burp Suite 是用于攻击web ...
- Burp Suite使用介绍总结
Burp Suite使用介绍(一) 小乐天 · 2014/05/01 19:54 Getting Started Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些 ...
- Red Hat Cluster Suite 组件 fencing FAQ
说明 Red Hat Cluster实现HA的关键组件之一是fencing.没有设置fencing,虽然看上去也能够运行Cluster,但是一旦遇到故障切换就会出现异 常,所以深入理解fencing原 ...
- Spark基本工作流程及YARN cluster模式原理(读书笔记)
Spark基本工作流程及YARN cluster模式原理 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark基本工作流程 相关术语解释 Spark应用程序相关的几 ...
- elasticsearch学习笔记--原理介绍
前言:上一篇中我们对ES有了一个比较大概的概念,知道它是什么,干什么用的,今天给大家主要讲一下他的工作原理 介绍:ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户 ...
- storm原理介绍
目录 storm原理介绍 一.原理介绍 二.配置 三.并行度 (一)storm拓扑的并行度可以从以下4个维度进行设置: (二)并行度的设置方法 (三)示例 四.分组 五.可靠性 (一)spout (二 ...
- kafka集群原理介绍
目录 kafka集群原理介绍 (一)基础理论 二.配置文件 三.错误处理 kafka集群原理介绍 @(博客文章)[kafka|大数据] 本系统文章共三篇,分别为 1.kafka集群原理介绍了以下几个方 ...
- K8s Service原理介绍
Service的工作方式有三种: 第一种: 是Userspace方式 如下图描述, Client Pod要访问Server Pod时,它先将请求发给本机内核空间中的service规则,由它再将请求, ...
随机推荐
- Python——基础数据类型(补充)
1.基础数据类型汇总补充 (1)小数据池: 为了节省空间,数字和字符串有,其他的没有[了解] 数字:-5---256之间的数字共用一个内存地址 #(1)i1 = i2 id(i1) == id ...
- NGINX conf 配置文件中的变量大全 可用变量列表及说明
$args #这个变量等于请求行中的参数.$content_length #请求头中的Content-length字段.$content_type #请求头中的Content-Type字段.$docu ...
- Wdatepicker日期控件的使用指南
示例2-3-1 起始日期简单应用 示例2-3-2 alwaysUseStartDate属性应用 示例2-3-3 使用内置参数 示例 2-4-1: 年月日时分秒 示例 2-4-2 时分秒 示例 2-4- ...
- socket编程之select()
int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); 参数 ...
- 简单租房子实例详解---(session、ajax、json前后台数据处理、分页)
本次实例我们结合session.ajax.json前后台数据处理.分页技术做一个租房信息系统 一共有五个界面:包括 管理员和用户的登录界面 登录界面的后台 <?php session_start ...
- CC1,IceBreak,Hello world ,hello toastmaster
this is my first speech:icebreak in toastmaster,it is precious memory for me,this is first time that ...
- B2B,ERP,SCM
B2B: B2B电子商务平台是指一个市场的领域的一种,是企业对企业之间的营销关系.电子商务是现代B2B marketing的一种具体主要的表现形式.网商通过它将企业内部网,通过B2B网站与客户紧密结合 ...
- svn删除
[本地删除.然后提交到服务器]与[服务器删除然后本地更新] svn delete svn://路径(目录或文件的全路径) -m “删除备注信息文本” 推荐如下操作: svn delete 文件名 sv ...
- Rhythmk 一步一步学 JAVA(9) JAVA 基础笔记[枚举,...]
1.装箱就是值类型转换为object类型,拆箱相反:object转化为值类型 eg:Integer i=1; // 装箱 int j=i; // 拆箱 2.静态导入: eg: 导入: import s ...
- leetcode289
public class Solution { public void GameOfLife(int[][] board) { ) - ; ].GetLength() - ; var list = n ...