1.什么是高可用

2.高可用要解决的问题

3.高可用的分层模型

4.高可用软件运作程

5.高可用的软件解决方案




1.高可用

可用性(availability)是通过系统的可靠性(reliability)和可维护性


(maintainability)来度量的。工程上通常用平均无故障时间(MTTF)来度量


系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性


#衡量标准


(1)平均无故障时间/(平均无故障时间+平均修复时间

)

#业界根据可用性的衡量标准将服务器进行了分类,即5个9参数




2.高可用要解决的问题

  第一个问题:对于集群中的节点来讲,我们是怎么知道这个节点出现故障了呢??一旦出现故障,又是怎么通知其他节点的呢??(通信)

   第二个问题: ,当B要接替A的共作的时候,B节点如何获取与A上面一摸一样的数据呢?有两种方式可以解决这个问题:(数据一致性)

   第三个问题:我们知道节点可能有多个,那么当一个节点上的资源出现故障,它要向哪个节点进行转移呢??如果某一节点故障,那么其他节点是否还能够以一个集群的身份运行??  (故障转移)

   第四个问题: 每个节点怎么判断它是集群的一份子呢? (仲裁机制)

3.高可用软件的分层模型

集群资源管理器(CRM,ClusterResourceManager):

CRM是集群系统中最主要的管理进程,它负责对整个集群资源的管理和约束,包括资源的配置及相互间依赖关系,并决定资源运行的状态、位置和顺序等.另外它还负责监控本地资源管理器完成这些工作,CRM通过与系统的每一个组件通信来相互作用和协调操作,CRM通过heartbeat通讯模块进行节点间通讯,从CCM(ConsensusClusterMembership)接受当前集群的成员信息,指令STONITHDaremon如何工作,负责记录系统日志等;

策略引擎(PE,CRMPolicyEngine):

PE是CRM的一个组件,只能在主节点上运行.PE的功能是根据当前集群的状态及集群资源的约束配置计算出集群的下一个状态,即为TE生成将要执行的计划和策略;

(3)执行引擎(TE,CRMTransitionEngine):

TE也是CRM的一个组件,只能在主节点上运行.TE的功能是按照PE生成的集群状态变化计划和策略,指令集群节点上的LRM对具体的集群资源进行操作;

(4)集群信息库(CIB,ClusterInformationBase).

作为CRM的一个组件,CIB进程实际上是自动复制的、由CRM收集的关于集群资源和节点信息的副本,为了方便使用,这个副本的所有信息都将写入cib.xml文件;

(5)集群成员一致性(CCM,ConsensusClusterMembership).

CCM主要负责对集群节点变化的监控,集群状态的变化很大程度上取决于资源运行节点的状态变化;

(6)本地资源管理器(LRM,LocalResourceManager)

LRM实际上是一种抽象的资源代理,在CRM的控制下,通过相应的资源代理对本地资源进行操作.由于具有插件式的结构,LRM支持多种类型的资源代理(对应的规范不同):O(OpenClusterFramework)类,heartbeat类,LSB(LinuxStandardsBase)类和STONITH类;

(7)STONITH

STONITH代理的功能是对集群中节点通过调用STONITHAPI实施隔离,确保STONITH设备(或资源)仅被集群中的某个节点子集访问;

(8)MessagingLayer:

heartbeat的底层通讯模块,主要负责各节点间的集群信息传递,能够在多种传输媒介以多种传输方式通信。


linux平台高可用 原理篇_第1张图片

一个负载均衡集群可以提供一定程度上的高可用性,这需要建立在director对后端服务器的健康状况进行探测的情况下,但这也不是完整意义上的高可用,如果集群中的某台设备宕机,此时的连接到此服务器上的会话会断开,会丢失一些数据;如果能共享用户会话的话,数据基本上可以保持完整,如果Director宕机,会发生什么情况,整个集群就停止工作了,所以各个系统的高可用就显得非常必要了。




4.高可用软件运作过程


HA的容错备援运作过程
自动侦测(Auto-Detect)阶段 由主机上的软件通过冗余侦测线,经由复杂的监听程序。逻辑判断,来相互侦测对方运行的情况,所检查的项目有:主机硬件(CPU和周边)、主机网络、主机操作系统、数据库引擎及其它应用程序、主机与磁盘阵列连线。为确保侦测的正确性,而防止错误的判断,可设定安全侦测时间,包括侦测时间间隔,侦测次数以调整安全系数,并且由主机的冗余通信连线,将所汇集的讯息记录下来,以供维护参考。
自动切换(Auto-Switch)阶段 某一主机如果确认对方故障,则正常主机除继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序及服务。


自动恢复(Auto-Recovery)阶段 在正常主机代替故障主机工作后,故障主机可离线进行修复工作。在故障主机修复后,透过冗余通讯线与原正常主机连线,自动切换回修复完成的主机上。整个回复过程完成由HA自动完成,亦可依据预先配置,选择回复动作为半自动或不回复。



高可用集群软件的解决方案:

Heartbeat + v1 + haresource

Heartbeat + v2 + crm

Heartbeat + v3 + pacemaker

Corosync + pacemaker

Cman(openais) + rgmanager

各层常用软件:

Messaging Layer:

       heartbeat v1,v2,v3

       corosync:OpenAIS

       cman:红帽特有的,OpenAIS早期的方式实现的

CRM:

       heartbeat v1:haresources,只能用在heartbeat上,配置接口的一个配置文件,haresources

       heartbeat v2: crm,各节点均运行进程crmd,客户端crm,命令也是crm

       heartbeat v3:pacemaker

 

       

keepalived:轻量级高可用,借助vrrp(虚拟地址冗余)完成IP地址资源扭转,并利用自己内部的脚本调用接口完成高可用功能.

         keepalived+ipvs

         keepalived+haproxy


RHEL OR CentOS高可用集群解决方案:
       5:  自带: RHCS(cman+rgmanager)
           选用第三方:corosync+pacemaker, heartbeat(v1或v2), keepalived

       6:  自带:RHCS(cman+rgmanager)
               corosync+rgmanager
               cman+pacemaker
               heartbeat v3 + pacemaker
               keepalived