corosync集群常见的组合方式及配置接口:
heartbeat v1 + hasource
heartbeat v2 + crm
heartbeat v3 + pacemaker + crmsh(corosync v1版本时没有投票系统,corosync v2有投票系统,当系统发生网络分区、脑裂时则将会将所有的资源转移至可用的其他主机之上)
corosync v1 + pacemaker corosync v2 + pacemaker
cman +rgmanager corosync v1 + cman + pacemaker
CRM:集群资源管理
资源类型:
primitive:基本资源,主资源,仅能运行一个节点
group:组,将组成一个高可用服务所需要的所有资源集合在一起
clone:克隆,同一资源科出现多份,可运行在多个节点
multi-state(master/slave):多状态类型,是克隆资源的特殊表现,副本间可存在主从的关系
RA:资源代理
资源代理类别:
LSB:位于/etc/rc.d/init.d/*,支持start,stop,restart,reload,status,force-reload
注意:使用LSB资源类型的不能开机自动运行
OCF(open cluster framework):/usr/lib/ocf/resource.d/provider/,类似于LSB的脚本,但仅支持start,stop,status,monitor,meta-data
STONITH:调用stonith设备的功能,systemd:unite ifle,/usr/lib/systemd/system/
注意:必须设置enable,设置为开机自动启动
资源约束方式:
位置约束:定义资源对节点的倾向性
排序约束:定义资源彼此能否运行在同一个节点的倾向性
顺序约束:多个资源启动顺序的依赖关系
HA集群常用的工作模型:
A/P:两节点,active/passive,工作于主备模型
A/A:两节点,active/active,工作于主主模型
N-M:N>M,N个节点,M个服务,假设每个节点运行一个服务,活动节点数为N,备用节点数为N-M
在集群分裂(split-brain)时需要使用到资源隔离,有两种隔离级别:
STONITH:节点级别的隔离,通过断开一个节点的电源或者重新启动节点
fencing:资源级别的隔离,类似通过向交换机发出隔离信号,特意让数据无法通过此接口
当集群分裂,即分裂后的一个集群的法定票数小于总票数一半时采取对资源的控制策略