高可用集群技术理论基础知识

目录

1、引言

2、高可用架构框架

3、资源的约束与隔离

4、高可用模型

5、配置高可用架构的前提


1、引言

   一言以蔽之,高可用集群技术是为了解决业务因服务器宕机而中断业务的一种技术,它能保障业务7*24*365不间断。

在linux开源的世界里,常见的开源解决方案有如下:

keepalived(vrrp+script)

heartbeat

corosync+pacemaker

   要想用好这些开源软件,不得不先来了解一下一个高可用集群中的一些基础知识。

2、高可用架构框架

高可用架构一般可分为以下几个层次:

1、Messaging Layer(ML):基础信息事务层,也叫心跳层,主要功能是心跳信息传递,集群事务信息的传递,工作在此层次上的软件有:heartbeat v1,v2,v3、corosync(openais)、cman(openais)


2、Cluster Resource Manager(CRM):集群资源管理,主要功能将无HA能力的服务、资源能够利用messaging layer层上的功能实现高可用功能,起到承上启下的作用。

工作在此层次上的软件有:

heartbeat v1自带资源管理器haresources,此资源管理器的配置接口是一个叫haresources的配置文件

heartbeat v2自带资源管理器crm,此资源管理器的配置需要在各节点上运行一个mgmtd(监控端口5560/tcp)的进程,配置文件为cib.xml(cluster information base),配置接口可以是图形化的程序(hb_gui)或命令接口(crmsh);

heartbeat v3版时项目进行了拆分,分成了三个子项目:heartbeat(提供基础事务层功能),pacemaker(提供资源管理器),cluster-glue(集群资源粘合器)。pacemaker的配置接口有:CLI客户端程序为crm和pcs,GUI接口有hawk,LCMC,pacemaker-mgmt

cman中的资源管理器是rgmanager(resource group manager),其配置接口有命令行接口:clustat,cman_tool;图形化接口:Conga


3、LRM:Local Resource Manager(本地资源管理器)

是CRM的子模块,不具备完整层次上的意义,因CRM不会直接去调用一个资源的启动、关闭等,它只是去负责去调度RA(Resource Agent)上的脚本资源,


4、Resource Agent(RA):资源代理

4.1、RA有以下的类别:

heartbeat自带的,v1版本的,传统的资源代理,在/etc/ha.d/haresources.d/目录下的脚本

LSB风格的脚本文件,通常在/etc/rc.d/init.d/目录下

OCF(Open Cluster Framwork,开放集群框架)专用于集群环境下的脚本

STONITH:是一种隔离机制,为防止资源被争用而有意设计的控制机制,实现控制硬件实现“资源隔离”的脚本,以避免集群分裂

4.2、Resource的类型:

primitive(native):表示主资源

group:表示组资源,组资源里包含多个主资源

clone:表示克隆资源

master/slave:表示主从资源

3、资源的约束与隔离

     在高可用环境下,默认时高可用集群会把资源平均的运行在各个节点上,显然这样在实际的高可用方案中是不可取的,所以我们要定义这些高可用的资源,让这些高可用的资源按照一定的规则组织在一起并运行在高可用的集群的某一个节点上,这样集群才能正常的工作,能定义这样高可用集群的方法有两种,一种是把资源定义成一个group资源,另一种方法是定义这些资源间的约束(constraint)关系,约束有以下几种:

location:位置约束,表示一个资源对一个节点的倾向性,以一个分数(score)的表示,分数为“inf”表示对一个资源对一个节点有正无穷的倾向性,“-inf”表示一个资源对一个节点有负无穷的倾向性,需要注意的是“inf”+"-inf"=“-inf”

order:顺序约束,表示资源启动及关闭的顺序关系,启动时的顺序与关闭时的顺序刚好相反

colocation:排列约束,表示各个资源在一起的倾向性有多大,也是可以用score来表示


在集群分裂(split-brain)时需要使用到资源隔离,有两种隔离级别:

a、节点级别的隔离,通过断开一个节点的电源或者重新启动节点的方式,这种叫STONITH

b、资源级别的隔离,类似通过向交换机发出隔离信号,特意让数据无法通过此接口的方式,这就叫资源隔离级别的隔离,专业术语叫fencing。

当集群分裂,即分裂后的一个集群的法定票数小于总票数一半时采取对资源的控制策略,有以下几种策略:

a、stopped,关闭、释放资源

b、ignore,忽略分裂带来的影响,在两个节点的高可用方案中一般会配置成此种策略

c、freeze,冻结

d、suicide,自杀

4、高可用模型

HA集群常用的工作模型:

1、A/P:两节点,active/passive,工作于主备模型

2、A/A:两节点,active/active,工作于主主模型

3、N-M:N>M,N个节点,M个服务,假设每个节点运行一个服务,活动节点数为N,备用节点数为N-M

5、配置高可用架构的前提

a、各节点时间保持同步(nfp服务器)

b、各节点必须使用名称互相通信,使用/etc/hosts来解析,集群中所使用的主机名与“uname -n”显示相同

c、偶数节点需要ping node设备,或可忽略没有足够法定票数时的集群报错

d、各节点间互相无密钥进行通信,这并非必须的



你可能感兴趣的:(高可用理论)