RHCS 学习总结-建大痞子

更新时间:2023-10-21 16:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

RHCS 学习总结:

RHCS有三张官方架构图,可以帮助理解RHCS的整体架构:

Cluster Nodes :

Cluster Nodes就是Cluster的成员,就是一台服务器节点。

故障倒换域(failover domain):允许你的集群服务在哪些集群节点之间切换,防止单点故障,针对于高可用集群而言,最主要的是提供备援机制,服务只能同时在一个节点上启动。

服务(service):在RHCS中服务是一堆资源的组合。而不是通常我们指的单一的服务器软件。 如下面图所示:服务是由IP resource(service ip,对外提供服务的IP)、Application 资源resource:

(/etc/inti.d/httpd,也就是你的集群上所提供的服务)及File system resource(网络文件系统)所组成。

FENCEING DEVICE(隔离设备):

是一种可以直接对服务器做电源Power ON/Power OFF的装置,注意这里说的是「电源」,不是去执行操作系统的开关机指令。RHCS支持的Fencing Device很多,不过有些并不常见,例如有种电源延长线,你可以用telnet指令,对某一个插座做Power ON/Power OFF的动作。

为什么RHCS需要「Fencing Device」?最主要是避免一种情況发生,什么情況呢?实际上,尤其是文件服务器可能会遇到这种情況,就是服务器loading过重,完全没有反应,连 heartbeat也无法通讯,但此時服务器可能不是真的掛掉,常开玩笑的说法是「假死」,经过一段時间,loading沒那么重时,又会活过來,heartbeat又可以通讯。但是RHCS的机制,只要发现主要服务器的heartbeat不通,可以把heartbeat想成备援服务器每隔时间就会ping主要服务器(实际上RHCS并不是用ping的指令),就像

是去监听心跳,如果沒有回应(Missed too many heartbeats),就判断主要服务器死了,那么备援服务器便会着手接管Service。但是万一主要服务器是假死,但Service中有包含 File system resource ,那么可能会造成两台服务器同时挂载File system,就会造成文件体统资料不一致,严重的话可能会毀损整个文件系统。

RHCS为了避免这种情況,想出了一個办法,就是「Fencing Device」,当RHCS发现主要服务器的heartbeat不通(Missed too many heartbeats),第一件事不是着手接管Service,而是利用「Fencing Device」将主要服务器重开机Power ON/Power OFF,这样一来,假死就变成真死了,也不可能发生主要服务器还挂载File system resource的情況。

cman集群管理器

cman是一个基于内核的对称通用集群管理器。它由两部分组成:连接管理器(cnxman),用于处理成员、消息、投票数、事件通知和过渡;服务管理器(SM),用于处理那些需要通过各种方式进行集群管理的应用及外部系统。cman是RHCS中最核心的服务,可通过系统中的serivce命令进行启/停操作;DLM、GFS、CLVM及Fence都依赖于cman群集管理器。

rgmanager资料组管理器

rgmanager(Resource Group Manager)基于cman并使用DLM动态锁管理机制。与cman一样,rgmanager也是RHCS中的一个核心服务,可通过系统中的serivce命令进行启/停操作;rgmanager管理并为集群中的Service(服务)和Resources(资源)提供Failover错误切换功能。

问题提出:多个节点失败使整个集群不正常

假设你配置好你的WEB服务环境,Red HatClustering能够通过多台机器提供可扩展的性能以及一个节点失败,集群会自动切换服务到另一节点。但有时候事情并不是想像的那样,甚至更坏。比如,一个四节点的集群环境,一旦两个节点故障,整个集群就会挂起,停止服务。这并不是我们希望的情况。

本文就是解释如何使用QDisk工具来发挥共享存储优势,达到你的应用运行连续性要求。

什么是Quorum, quorate, QDisk?

集群(clustering)是一个“聚集”问题,它基于成员能力,它还具有民主特征并通过投票来决定下一步的行为。例如重启一台挂起的机器等。对于一个完全的民主的环境,超过半数的选票是必须的。所以Quorum就是集群存在的最少个数。这样对于一个3节点的集群,最少需要2个节点激活才有效。一个6节点集群最少需要4个节点激活,以此类推,公式一般就是集群至少有(n/2+1)个节点数就会建立Quorate状态,也就存在Quorum(仲裁),集群才能工作。

RedHat Cluster Suite 在Enterprise Linux2.1使用共享磁盘分区来协调集群状态,IP网络作为备份。在Enterprise Linux3切换IP网络作为主要协调集群状态而共享磁盘分区作为备份。在Enterprise Linux 4和5,Cluster Suite结合了GFS(全局文件系统)使用IP网络作为协调机制,不再需要Quorum分区。这样集群也可以在没有SAN共享盘阵下运行,再加上基于IP网络的仲裁具有更好的更扩展性,尤其在大规模集群节点环境中(大

于16个节点)但是当集群节点没有那么多的时候,比如9个节点的集群,虽说失去足够多的节点来破坏Quorum的机会很少,但是只要4个以上的节点失败,整个集的Quorum就没有了,集群也就不能正常工作。但对于3-4个节点的案例,只要2台机器故障,整个集群就会有问题,这种案例又很多。当然你可以通过增加冗余的机器来增加Quorum计数,但这样太不现实,尤其是如果你本身就配置了SAN存储情况下。所以一种替代的方法,我们可通过已有的SAN共享存储的一小块分区来支持Quorum。

Clusvcadm

Clusvcadm–r www –m node1.example.com(切换服务到node1) Clusvcadm–d(disable) www 停止并使服务不可用 -r:切换服务到其他节点 -R:重启服务

-s:停止服务,直到其可用 -e:启动并使服务可用 -d:停止并使服务不可用

Clustat–i 1 每隔一瞄监控集群状态,可以显示节点状态和运行信息 uorum Disk (QDisk) (仲裁机制)

为了解决小规模集群存在的Quorum问题,Red Hat Cluster Suite参照 RHEL3下面的cluster的Quorum机制,引入了Qdisk,但和RHEL 3 下面工作原理有些不同,下面图示它的工作原理。

Disk使用一个小于10MB的共享磁盘分区,Qdiskd进程运行在集群的所有节点上,定期评估自身的健康情况,然后把它的状态信息放入到指定的共享磁盘分区。每qdiskd接着查看其他节点的状态,并传递信息给其他节点QDisk分区。在正常情况下,集群的Quorum就是每个节点计数再加上QDisk分区的计数和。如上面例子,总共quorum计数是7,每个节点计数为1,QDisk为3。这样,在一个节点A上,QDisk经过几次偿试

本文来源:https://www.bwwdw.com/article/gqgf.html

Top