高可用解决方案之--RHCS

高可用集群简介

信息服务已成为企业日常活动中十分重要的一个组成部分,系统管理员必须不断的监视信息系统,以提供不间断、可靠而又实时的服务。性能、价格和可靠性是企业信息化过程中,人们普遍关心的三大要素。目前,国内许多行业和企业在信息化的过程中,都选用了价格低廉而性能高效的开放系统平台。这种系统平台给用户带来性价比优势的同时,由于系统的复杂性和开放性以及应用环境的多样化,也给应用系统的运行带来了许多不确定因素。这些因素严重威胁着应用系统的稳定有效运行,有时甚至会引发系统的瘫痪。

双机集群是计算机应用系统稳定、可靠、有效、持续运行的重要保证。它通过系统冗余的方法解决计算机应用系统的可靠性问题,并具有安装维护简单、稳定可靠、监测直观等优点。当一台主机出现故障的时候,可及时启动另一台主机接替原主机任务,保证了用户数据的可靠性和系统的持续运行。

在高可用性方案中,操作系统和应用程序是安装在两台服务器的本地系统盘上的,而整个网络系统的数据是通过磁盘阵列集中管理和数据备份的。数据的集中管理是通过双机热备份系统,将所有站点的数据直接从中央存储设备来读取和存储,并由专业人员进行管理,极大地保护了数据的安全性和保密性。用户的数据存放在外接共享磁盘阵列中,在一台服务器出现故障时,备机主动替代主机工作,保证网络服务不间断。

双机热备份系统采用“心跳”方法保证主系统与备用系统的联系。所谓“心跳”,指的是主从系统之间相互按照一定的时间间隔发送通讯信号,表明各自系统当前的运行状态。一旦“心跳”信号表明主机系统发生故障,或者是备用系统无法收到主机系统的“心跳”信号,则系统的高可用性管理软件(双机软件)认为主机系统发生故障,立即令主机停止工作,并将系统资源转移到备用系统上,备用系统将替代主机发挥作用,以保证网络服务运行不间断。

双机备份方案中,根据两台服务器的工作方式可以有三种不同的工作模式,即双机热备模式、双机互备模式和双机双工模式。下面分别予以简单介绍:

  •  双机热备模式即目前通常所说的active/standby方式,active服务器处于工作状态;而standby服务器处于监控准备状态。当active服务器出现故障的时候,通过软件诊测或手工方式将standby机器激活,保证应用在短时间内完全恢复正常使用。典型应用在证券资金服务器或行情服务器。这是目前采用较多的一种模式,但由于另外一台服务器长期处于后备的状态,从计算资源方面考量,就存在一定的浪费。
  •  双机互备模式,是两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,但对服务器的性能要求比较高。服务器配置相对要好。
  • 双机双工模式是目前Cluster(集群)的一种形式,两台服务器均为活动状态,同时运行相同的应用,保证整体的性能,也实现了负载均衡和互为备份。WEB服务器或FTP服务器等用此种方式比较多。


双机热备有两种实现模式,一种是基于共享的存储设备的方式,另一种是没有共享的存储设备的方式,一般称为纯软件方式。基于存储共享的双机热备是双机热备的最标准方案。这种方式采用两台(或多台)服务器,使用共享的存储设备(磁盘阵列柜或存储区域网SAN)。两台服务器可以采用热备(主从)、互备、双工(并行)等不同的方式。在工作过程中,两台服务器将以一个虚拟的IP地址对外提供服务,依工作方式的不同,将服务请求发送给其中一台服务器承担。同时,服务器通过心跳线(目前往往采用建立私有网络的方式)侦测另一台服务器的工作状况。当一台服务器出现故障时,另一台服务器根据心跳侦测的情况做出判断,并进行切换,接管服务。对于用户而言,这一过程是全自动的,在很短时间内完成,从而对业务不会造成影响。由于使用共享的存储设备,因此两台服务器使用的实际上是一样的数据,由双机或集群软件对其进行管理。
 

RHCS主要特点

红帽的企业集群解决方案(RHCS即RedHatCluster Suite)是全球领先的高可用解决方案,专为红帽企业Linux量身定做,是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足对高可用、可扩展性、文件共享和节约成本的需要。其主要特点如下:

  • 标准支持双机热备工作模式,也可配置四节点甚至更多节点服务器组成高可用集群。
  • 最多支持128个服务器节点。
  • 专业认证和支持业界绝大多数主流的服务器和硬件。(如IBM,HP,Dell等)
  • 专业认证和支持业界主流企业级数据库。(如Oracle,DB2,Sybase,MySQL等)
  • 专业认证和支持业界主流的企业应用。(如主流的WWW,FTP,File,Email,App Srv等)
  • NFS/CIFS故障切换:支持Unix和Windows环境下使用的高可用性文件。
  • 完全共享的存储子系统:所用集群成员都可以访问同一个存储子系统。
  • 综合数据完整性:使用最新I/O Fencing技术,如可编程的嵌入式和外部电源开关装置(power switches)。
  • 服务故障切换:红帽集群套件可以确保及时发现硬件停止运行或故障的发生并自动恢复系统,同时,它还可以通过监控应用来确保应用的正确运行并在其发生故障时进行自动重启。

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

故障倒换域(failover domain):允许的集群服务在哪些集群节点之间切换,防止单点故障,针对也高可用集群而言,最主要的是提供备援机制,服务只能同时在一个节点上启动。
服务(service):在RHCS中服务是一堆资源的组合,而不是通常我们指的单一服务器软件。服务是有IP Resource(service ip,对外提供服务的IP)、Application 资源Resource(就是集群上所提供的服务)、File s y s t e m Resource所组成。
FENCEING DEVICE(隔离设备):主要就是通过服务器或存储本身的硬件管理接口,又或者是外部电源管理设备,来对服务器或存储发起直接的硬件管理指令,控制服务器或存储链路的开关。因此,Fence机制也被称为”I/O屏障”技术。当确定一个节点离线后,它在集群结构中通告这个问题节点,fenced进程将问题节点隔离,彻底断开问题节点的所有I/O连接,防止问题节点破坏共享数据,严格保证集群环境中企业核心数据的完整性。它可以避免因出现不可预知的情况而造成的“脑裂”现象。Split-Brain(脑裂)是指当两个节点之间的心跳线中断时,两台主机都无法获取对方的信息,此时两台主机都认为自己是主节点,于是对集群资源(共享存储,公共IP地址)进行争用抢夺。
  
其工作原理:当意外原因导致主机异常或宕机时,备用机会首先调用fence设备,然后通过fence设备将异常的主机重启或从网络上隔离,释放异常主机占据的资源,当隔离操作成功后,返回信息给备用机,备用机在接到信息后,开始接管主机的服务和资源
 
RHCS的Fence设备分为内部和外部两种Fence。内部fence有IBMRSAII卡,HP的ILO卡,以及IPMI设备等;外部FENCE设备有UPS,SANswitch ,Networkswitch等。
 

RHCS基本组件介绍

CMAN: Clustermanager是一个分布式集群管理工具,运行在集群的各个节点上,为RHCS提供集群管理任务。它用于管理集群成员、消息和通知。它通过监控每个节点的运行状态来了解节点成员之间的有关系。当集群中某个节点出现故障时,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而做出相应的调整。CMAN根据每个节点的运行状态,统计出一个法定节点数,作为集群是否存活的依据。当整个集群中有多于一半的节点处于激活状态时,表示达到了法定节点数,此集群可以正常运行,当集群中有一半或少于一半的节点处于激活状态时,表示没有达到法定的节点数,此时整个集群系统将变得不可用。CMAN依赖于CCS,并且CMAN通过CCS读取cluster.conf文件。 
    

rgmanager: ResourceGroup Manager主要用来监督、启动、停止集群的应用、服务和资源,与cman一样,rgmanager也是RHCS中的一个核心服务,可通过系统中的serivce命令进行启/停操作;当一个节点的服务失败时,rgmanager提供自动透明的Failover错误切换功能:可以将服务从失败节点转移至其它健康节点。RHCS通过rgmanager来管理集群服务,rgmanager运行在每个集群节点上,在服务器上对应的进程为clurgmgrd。

DLM: DistributedLockManager是一个分布式锁管理器,它是RHCS的一个底层基础构件,同时也为集群提供了一个公用的锁运行机制。DLM运行在每个节点上GFS通过锁管理器的机制来同步访问文件系统的元数据。CLVM通过锁管理器来同步更新数据到LVM卷和卷组。DLM不需要设定锁管理服务器,它采用对等的锁管理方式,大大提高了处理性能。同时,DLM避免了单个节点失败需要整体恢复的性能瓶颈。另外,DLM的请求是本地的,不需要网络请求,因此请求会立即生效。最后,DLM通过分层机制,可以实现多个锁空间的并行锁模式。

CCS: Cluster Configuration s y s t e m主要用于集群配置文件管理和配置文件在节点之间的同步。CCS运行在集群的每个节点上,监控每个集群节点上的单一配置文件/etc/cluster/cluster.conf的状态。当这个文件发生任何变化时,都将些变化更新至集群中的每个节点上,时刻保持每个节点的配置文件同步;Cluster.conf是一个XML文件,其中包含集群名称,集群节点信息,集群资源和服务信息,fence设备等。
 

在RHEL6上RHCS定义高可用资源架构的更加明晰,完全借助于类似corosync的机制,cman不再借助于openAIS,而是借助于corosync;资源管理完全借助于rgmanager,在rgmanager内部就可以完成资源配置同步传递,取消了ccsd,将资源管理的配置与基础信息架构层的配置分开,将lock_dlmd整合进dlm_controld中统一实现;对GFS文件系统管理使用gfs_controld这个独立组件完成,gfs_controld是RHCS专门为管理GFS文件系统提供的一个优化控制进程,而对OCFS的管理使用dlm_controld,如果用不到集群文件系统,可以不启动这个两个组件,只需要cman和rgmanage即可。
 

猜你喜欢

转载自blog.csdn.net/yinzhen_boke_0321/article/details/87528967