您的位置:首页 > 其它

RHCS

2017-11-03 14:51 113 查看
一.RHCS基本原理

1.基本套件





2.CMAN

Cluster manager 简称CMAN,是一个分布式集群管理工具,运行在集群的各个节点上,为RHCS提供集群管理任务。

它用于管理集群成员、消息和通知。它通过监控每个节点的运行状态来了解节点成员之间的有关系。当集群中某个节点出现故障时,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而做出相应的调整

CMAN根据每个节点的运行状态,统计出一个法定节点数,作为集群是否存活的依据。当整个集群中有多于一半的节点处于激活状态时,表示达到了法定节点数,此集群可以正常运行,当集群中有一半或少于一半的节点处于激活状态时,表示没有达到法定的节点数,此时整个集群系统将变得不可用。

CMAN依赖于CCS,并且CMAN通过CCS读取cluster.conf文件。

3.DLM锁管理

Distributed Lock Manager,简称DLM,是一个分布式锁管理器,它是RHCS的一个底层基础构件,同时也为集群提供了一个公用的锁运行机制。DLM运行在每个节点上,GFS通过锁管理器的机制来同步访问文件系统的元数据。CLVM通过锁管理器来同步更新数据到LVM卷和卷组。

DLM不需要设定锁管理服务器,它采用对等的锁管理方式,大大提高了处理性能。同时,DLM避免了单个节点失败需要整体恢复的性能瓶颈。另外,DLM的请求是本地的,不需要网络请求,因此请求会立即生效。最后,DLM通过分层机制,可以实现多个锁空间的并行锁模式。

4.CCS

Cluster configuration system 简称CCS,主要用于集群配置文件管理和配置文件在节点之间的同步。CCS运行在集群的每个节点上,监控每个集群节点上的单一配置文件/etc/cluster/cluster.conf的状态。当这个文件发生任何变化 时,都将些变化更新至集群中的每个节点上,时刻保持每个节点的配置文件同步。

Cluster.conf是一个XML文件,其中包含集群名称,集群节点信息,集群资源和服务信息,fence设备等。

5.FENCE

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

Fence的工作原理是:当意外原因导致主机异常或宕机时,备用机会首先调用fence设备,然后通过fence设备将异常的主机重启或从网络上隔离,释放异常主机占据的资源,当隔离操作成功后,返回信息给备用机,备用机在接到信息后,开始接管主机的服务和资源。

6.高可用服务管理器

rgmanager: Resource Group Manager主要用来监督、启动、停止集群的应用、服务和资源,与cman一样,rgmanager也是RHCS中的一个核心服务,可通过系统中的serivce命令进行启/停操作;当一个节点的服务失败时,rgmanager提供自动透明的Failover错误切换功能:可以将服务从失败节点转移至其它健康节点。RHCS通过rgmanager来管理集群服务,rgmanager运行在每个集群节点上,为集群中的服务和资源提供Failover错误切换功能。在一个RHCS集群中,高可用服务管理器包含集群服务和集群资源两个方面,集群服务其实就是应用服务,例如apache、mysql等,集群资源有很多种,例如一个IP地址、一个运行脚本、ext3/GFS文件系统等。

7.Failover Domain故障转移域

与服务相关,Failover Domain指定了集群中某个节点故障以后,该节点上的Service和Resource所能够转移的目标节点,进而限定了一个Resource能够转移的节点范围,可以理解为服务的故障转移域;每个Node都允许与多个Failover Domain进行绑定,也就是说每个
4000
Node都可以为多个Service服务,因此可以实现双主方式的集群配置

8.集群配置和管理工具Conga

Conga是新的基于网络的集群配置工具。它是web界面管理的,由luci和ricci组成,luci可以安装在一台独立的计算机上,也可安装在节点上,用于配置和管理集群,ricci是一个代理,安装在每个集群节点上,luci通过ricci和集群中的每个节点通信。

二.配置

高可用主机开启nginx

server2 172.25.254.2

server3 172.25.254.3

后端主机

server4 172.25.254.4

server6 172.25.254.6

1.分别在 server2 和server3 上安装ricci,前提是在yum源如下





yum install ricci -y


并分别设置密码redhat如下



chkconfig ricci on ###开机自启

2.选择server2 作为托管主机,当然也可以用一台新的主机作为托管主机,一般root用户登陆



3.两台主机上分别开启ricci,托管机上开启luci





4.创建集群和节点

首先root用户登陆



创建集群qq,包含两个节点,passwd为ricci的设置密码,第一个对勾的意思是加入集群前重启,第二个勾的意思是共享存储



5.之后两台主机会分别重启,ricci开机自启,然后需要手动启动luci,此时web界面如下



三.安装Fence

1.在真机172.25.254.7上 yum install -y fence-*

之后创建fence

默认多波模式,默认地址



默认端口1229,网卡br0,key文件的放置位置





因为我之前创建过,所以此处提醒是否代替(第一次创建时不会这样)



2.创建key

make /etc/cluster


创建随机key文件值



3.开启fence



4.将key文件传给两台主机



四.添加fence

1.web界面添加fence设备,名字为vmfence



可查看/etc/cluster/cluster.conf 文件,此时已经改变



2.两个节点上添加fence name

点击server2 ,点击Add Fence Method , Method Name :fence1

点击server3,点击Add Fence Method , Method Name :fence2



3.两个节点上分别添加fence instance(fence 事件),server3 与server2的操作一致

点击server2 ,点击Add Fence Instance,选择vmfence



Domain 为server2的UUID



结果如下



server3 也如上操作,添加fence事件

4.测试

使server3 宕机,会自动重启





五.前期准备

1. 首先配置两个节点上nginx对两个后端可用,一般先配置好一个节点(编译–修改配置文件–创建nginx用户-开启nginx),然后将/usr/local下的nginx目录直接拷贝到另一台节点上,记得在另一台主机上也需创建nginx用户。此处不再赘述具体步骤,值的注意的是,此处我们不用/usr/local/nginx/sbin/nginx二进制文件作为开启或关闭nginx的工具,而要用自己的脚本文件nginx,将其拷贝到/etc/init.d/,并给与执行权限,两个节点上均需此脚本

2.结果如下



六.故障转移域

名字为自起,排序优先级,在指定节点上运行,不回切,可以给两个节点设置优先级



七.添加资源

此处是添加虚拟ip,以及脚本





结果如下



八.添加服务

1.名字自起



2.点击Add Resource,添加ip



3.点击Add Resource,添加nginx脚本,之后提交



j九.查看测试



1.将服务转移到server3上的





2.server3 宕机后



server2自动接管

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: