ha_aware:通过底层传递的信息调用API完成集群事务的决策

非ha_aware:作为一个框架,能够自动完成集群事务的决策。

HA集群架构

wKioL1NTaDWhN4S8AAJQlyEvHGo263.jpg


1.负责实现各层次功能的软件:

   Messaging Layer:

                   heartbeat:有三个版本 V1、V2、V3

                   corosync/OpenAIS

                   cman:Cluster Manager(RedHat 提供)

   Resourc Allocation:

                   heartbeat V1:

                               haresources (配置文件和配置接口:haresources)

                   heartbeat V2:

                               crm(各节点都运行crmd进程,客户端:crmsh、heartbeat-GUI,服务端:crmd

                   heartbeat V3:heartbeat+pacemaker+cluster-glue(集群粘结器)

                               pacemaker:

                                         配置接口:

                                               CLI:crm,pcs

                                               GUI:hawk,LCMC,pacemaker-mgmt

                   cman+rgmanager:

                             rgmanager:Resources Group Manager:提供故障转移域:Failover Domain

                             配置接口:Conga(完全生命周期配置接口)

   Resource:

           Resource Agent类型:4种

                              heartbeat legacy:heartbeat传统类型:

                              LSB:/etc/rc.d/init.d/*

                              O:Open Cluster Framework (Provider:pacemaker,linbit等)

                              STONITH:实现节点隔离

2.资源隔离:避免集群分裂导致的非集群节点的资源争用

   节点级别:STONITH、clone

   资源级别:

3.集群的工作模型:

   A/P:工作与主备模型:两个节点

   N-M:N>M N个节点,M个服务,活动节点为N,备用节点为N-M

   N-N:N个节点,N个服务

   A/A:双主模型

4.资源的转移方式:

   rgmanager:Failover Domain,根据故障转移域中各节点的优先级转移故障节点中的资源

   pacemaker:通过资源约束完成资源转移(3种类型)

               位置约束:资源更倾向运行于哪一个节点(值越大倾向性越大)

                       inf:正无穷

                       n

                       -n

                       -inf:负无穷大

               排列约束:资源运行在同一节点的倾向性

                       inf:必须在一起

                       -inf:尽可能不会运行在一起

               顺序约束:资源启动以及关闭顺序

5.资源类型:

               primitive,native:主资源,只能运行于集群中的一个节点上

               group:组资源

               clone:克隆资源

               master/slave:主从资源,主的能执行读写操作,从节点只能同步主的数据,不能读写。


总结:

   1.一般情况集群的节点数大于2且为奇数。

       若集群节点为2或者为偶数时,则需要仲裁设备(ping node、ping group node和仲裁盘等)。

   2.当集群出现故障发生脑裂,群节点和非集群节点发生资源争用,会造成共享储存的文件系统崩溃,因此需要对资源进行隔离。

   3.定义多个资源运行于同一个节点的实现方式:A.排列约束 B.定义组资源

   4.如果节点不是集群节点时,对当前运行节点的资源处理方式:A.stoped B.ignore(继续运行,完成后不再分配资源) C.freeze D.suicide    


如有不正确的地方,请给予指正会在第一时间进行修改。