您的位置:首页 > 运维架构 > 网站架构

高可用集群基础介绍

2016-03-12 00:00 288 查看

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密钥认证进行通信;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: