High Availability

2018-03-12 11:41:53

RHEL6上,每个节点至少要1GB的内存,只支持x86_64位平台,32位平台不再支持。配置集群的服务器需要配置时间服务器,以保证集群服务器的时间一致。只有两个节点的集群默认不启用仲裁机制。

通过特殊的软件将若干服务器连接在一起并提供故障切换功能的实体我们称之为高可用集群。可用性是指系统的uptime,在7x24x365的工作环境中,99%的可用性指在一年中可以有87小时36分钟的DOWN机时间,通常在关键服务中这种一天多的故障时间是无法接受的,所以提出了前面提到的错误恢复概念,以满足99.999%的高可用性需求。

这里我们先说一下几个概念:

  1. 服务(Service),是HA集群中提供的资源,包括Float IP,共享的存储,apache等等。

  2. 成员服务器(Member Server) 也叫节点(Node),是HA中实际运行服务提供资源的服务器。

  3. 失效域(Failover Domain),是HA中提供资源的服务器的集合,当内部某个成员出现故障时,可以将服务切换到其他正常的成员服务器上。在HA中一个失效域一般包含2台成员服务器(未应用虚拟技术)。

  4. 心跳(HeartBeat)是HA中监控成员服务器状态的方法,一般心跳是通过网线和串口线来传输的。

  5. 单一故障点(Single Point Of Failuer,SPOF)是指一个系统的这样的一个部件,当它失效或者停止运行,将导致整个系统不能工作。在HA中通常使用双电源,多网卡,双交换机等来避免SPOF。

  6. 仲裁(Quorum)是HA中为了准确的判断服务器及其提供的服务是否正常而采用的在共享磁盘中保存成员服务器信息的方法。共享的状态信息包括群集是否活跃。服务状态信息包括服务是否在运行以及哪个成员正在运行该服务。每个成员都检查这些信息来保证其它成员处于最新状态。在一个只有两个成员的群集中,每个成员都定期把一个时间戳和群集状态信息写入位于共享磁盘贮存区的两个共享群集分区上。要保证正确的群集操作,如果某成员无法在启动时写入主共享群集分区和屏蔽共享群集分区,它将不会被允许加入群集。此外,如果某群集成员不更新其时间戳,或者到系统的"heartbeats"(心跳)失败了,该成员就会从群集中删除。

  7. Fence设备,Fence设备的作用时在一个节点出现问题时,另一个节点通过fence设备把出现问题的节点重新启动,这样做到了非人工的干预和防止出现问题的节点访问共享存储,造成文件系统的冲突,关于Fence 设备,有外置的比如APC的电源管理器.很多服务器都是内置的,只不过不同厂家的叫法不同而已。比如HP的称为iLo,IBM的称为BMC,Dell的称为DRAC。

      下面我们以RedHat Cluster Suite为例来简要说一下HA的搭建。RedHat Cluster Suite简称RHCS,RHCS目前的版本有v3,v4和v5,各版本之间不能通用。RedHat Enterprise Linux 3.0和4.0中对应的的RHCSv3/v4支持的最大节点数为16,RedHat Enterprise Linux 5.0对应的RHCSv5支持的最大节点数为128。

RedHat高可用集群组成:

  1. Cluster Configuration System (CCS):集群配置系统,以管理cluster.conf档案

  2. Cluster Manager (CMAN):集群管理器

  3. Distributed Lock Manager (DLM):分布式锁管理器

  4. Fence:输入/输出系统围栏系统(栅设备)

  5. Resource Group Manage (rgmanager):资源组管理器,用来监督、启动和停止应用、服务和资源

  6. Quorum Disk:仲裁磁盘

  7. Conga:RHCM的Web控制套件。包括luci和ricci

  8. system-configure-cluster:图形化工具来管理集群中的多个机器

下图为一HA集群环境:

 

 image

从防火墙到服务器网卡都是HA模式。这里交换机我是以Cisco为例的,开启HSRP。