ha_aware:通过底层传递的信息调用API完成集群事务的决策
非ha_aware:作为一个框架,能够自动完成集群事务的决策。
HA集群架构
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
如有不正确的地方,请给予指正会在第一时间进行修改。