Heartbeat(一):高可用集群基础介绍
简介:
高可用集群:High Avaliablity,一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。
高可用性:
平均无故障时间/(平均修复时间+平均无故障时间)
提高系统可用性:
缩短平均修复时间(冗余机制);
延长平均平均无故障时间;
高可用集群架构层次:
1、后端主机;
2、Messaging Layer:基础事务层;传递心跳信息、集群事务信息
解决方案:
heartbeat v1、v2、v3
corosync(openAIS)
cman(openAIS)
3、CRM:Cluster Resource Manager,集群资源管理器层;承上启下,将那些本身无ha能力的资源旋转于Messaging Layer层之上使其信息层的功能;
heartbeat v1:
自带资源管理器haresources
配置接口:配置接口为直接编辑其配置文件haresources
heartbeat v2:
自带资源管理器crm,
守护进程:crmd(crmsh-->crmd),监听在指定的端口;
配置文件:cib(cluster information base),xml格式;
配置接口:
CLI:crmsh,
GUI客户端:hb-gui
heartbeat v3 = heartbeat + pacemaker + cluster-glue
守护进程:crmd(crmsh, pcs --> crmd)
配置文件:cib.xml;
配置接口:packmaker
CLI:crm(SuSE),,pcs
GUI:hawk, LCMC,pacemaker-mgmt
cman + rgmanager:
resource group manager:Failover Domain,node priority
配置接口:
clustat,cman_tool
conga:luci+ricci
4、LRM:Local Resource Manager,本地资源管理器层;用于对于收集到的心跳信息进行资源决策调整,
5、RA:Resource Agent,资源代理层;这一层主要是具体启动或停止具体资源的脚本。
heartbeat legacy:heartbeat和传统类型,通常是/etc/ha.d/haresources.d/目录下的脚本;
LSB:/etc/rc.d/init.d/目录下脚本;
OCF(Open Cluster Framework):
provider:
STONITH:控制硬件(软件,肉件)实现资源隔离的脚本或程序;
CentOS或RHEL系统高可用集群的解决方案:
CentOS 5:
RHCS:cman + rgmanager
选用第三方方案:corosync+pacemaker,heartbeat(v1或v2),keepalived
CentOS 6:
RHCS:cman + rgmanager
corosync + rgmanager
cman + pacemaker
heartbeat v3 + pacemaker
keepalived
资源隔离机制:
节点级别:STONITH
电源交换机
服务硬件管理模块
资源级别:fencing
必要条件:没有隔离设备,禁止使用HA;
集群会分裂:
两种状态之一:quorum:法定票数(大于总票数的一半),用来判定集群分裂的场景中,某些节点是否可以继续以集群方式运行;
with quorum
without quorum
仲裁设备:
ping node
ping node group
quorum disk:qdisk
without quorum之时,如何采取对资源管控的策略:
stopped
ignore
freeze
suicide
HA集群的工作模型:
A/P:两节点,active/passive,工作于主备模型,要借助于ping node工作;
A/A:两节点,active/active,双主模型,两个节点都是活动的,比如ipvs,dns轮询;
N-M:N>M,N个节点,M个服务;活动节点数为N,备用节点数为N-M
N-N:N个节点,N个服务,如果一个节点坏了,会有一个节点运行多个服务
资源运行的倾向性(资源转移倾向性):
rgmanager:
failover domain
node priority
pacemaker:
资源黏性:资源倾向于留在当前的分数(-oo, +oo)
资源约束:
位置约束:资源对某节点运行的倾向性(-oo, +oo)
inf:正无穷
-inf:负无穷
n:
-n:
排列约束:定义资源彼此间的倾向性(是否在一起)
inf:
-inf:
n:
-n:
顺序约束:属于同一服务的多个资源运行在同一节点时,其启动及关闭的次序约束
A --> B --> C
C --> B --> A
资源类型:
primitive,native:主资源,其仅能运行某一节点
group:组资源,可用于实现限制多个资源运行于同一节点及对此些资源统一进行管理
clone:克隆资源,一个资源可以运行于多个节点;
应该指定:最大克隆的份数,每个节点最多可以运行的克隆;
master/slave:主从资源,特殊的克隆资源;
配置高可用集群的前提:(以两节点的heartbeat为例)
1、时间必须保持同步
使用ntp服务器
2、节点必须名称互相通信
解析节点名称
/etc/host
集群中使用的主机名为uname -n
表示的主机名;
3、ping node
仅偶数节点才需要;
4、ssh密钥认证进行通信;