首页 > 代码库 > HA Cluster 之 OpenAIS---corosync

HA Cluster 之 OpenAIS---corosync

OpenAIS---corosync 

===============================================================================

概述:


===============================================================================

回顾:

 技术分享

HA解决方案OpenAIS(开放式应用接口标准)

 1.介绍

HA解决方案:

  • vrrp协议:keepalived

  • SA Forum:AIS,OpenAIS(开放式应用接口标准)

OpenAIS:

  • OpenAIS是基于SA Forum 标准的集群框架的应用程序接口规范。OpenAIS提供一种集群模式,这个模式包括集群框架,集群成员管理,通信方式,集群监测等,能够为集群软件或工具提供满足 AIS标准的集群接口,但是它没有集群资源管理功能,不能独立形成一个集群。

Messaging Layer(Infrastructure Layer) 

  基础结构层,负责完成主机状态传递

  • HA-Aware

CRM(Cluster Resource Manager)  

  集群资管理器层

  • 非HA-Aware 

  • 管理接口:

       ·CLI:命令行接口

       ·GUI:图形用户界面 

  • LRM(Local Resoure Manager)本地资源管理器

RA(Resource Agent)            

  资源代理层

  • start|stop|restart|status  完成资源的启用、停止、重启、状态

  • status:running/stopped

 2.各自的实现

Messaging Layer:

  • heartbeat:v1 --> v2 --> v3

  • openais --> cman (cluster manager)

  • openais --> corosync engine

CRM:

heartbeat v1 --> haresources

  • 配置文件:haresources配置文件

heartbeat v2 --> crm 

  • 运行方式:在集群中的每个节点上运行一个crmd守护进程(5560/tcp),提供API;

  • 配置接口:crmsh, hb_gui

heartbeat v3 --> pacemaker

  • 配置接口:crmsh, pcs

cman --> rgmanager

  配置接口

  • 配置文件:cluster.conf(xml)

  • GUI: system-config-cluster

  • WebGUI:conga(ricci/luci)

  • CLI:cman_tool, ccs_tool, clustat, ...

corosync --> pacemaker

 3.组合方式实现及RHCS

组合方式:

  • heartbeat v1 + haresources

  • heartbeat v2 + crm (crmsh, hb_gui)

  • heartbeat v3 + cluster-glue + pacemaker

  • corosync + pacemaker

     ·corosync v1 + pacemaker (plugin)   //CentOS 6 

     · corosync v2 (quorumsystem) + pacemaker (standalone daemon) //CentOS 7

  • cman + rgmanager

  • cman + corosync v1 + pacemaker

RHCS:RedHat Cluster Suite (红帽集群套件)

RHEL5: 

  • cman + rgmanager + conga(ricci/luci)

RHEL6:

  • cman + rgmanager + conga(ricci/luci)

  • corosync v1 + pacemaker + crmsh/pcs

  • cman + corosync v1 + pacemaker + crmsh/pcs

RHEL7:

  • corosync v2 + pacemaker + pcs 

 4.quorum:投票系统

目的:

  • network partition:brain-split 防止网路分区(脑裂),资源征用

quorum system:投票系统

  • node: vote 每个节点都拥有投票权

with quorum:votes > total/2 

  • 拥有法定票数:得到的票数 > 总票数/2

without quorum: votes <= total/2  

  • 不再拥有法定票数: 得到的票数 <= 总票数/2

  • no_quorum_policy  不再拥有法定票数的策略:

       ·stop    //停止(默认)

       ·ignore

       ·suicide //自杀

       ·freeze  //冻结

fecing: 隔离

node level(节点级别):STONITH (Shooting The Other Node In The Node) 

  • stonith device:隔离设备

       ·hardware:power switch(电源交换机), ...

       ·software:virtulization kvm/xen/...,ssh/telnet, ...

       ·meatware:人工智能

resource level:资源级别

  • fc switch  //光纤交换机

特殊场景:two nodes cluster

no_quorum_policy

  • ignore

quorum device   //仲裁设备

  • ping node

  • quorum disk

  5.集群事务信息及心跳信息的传递方式:

集群事务信息及心跳信息的传递方式:

  • unicast    //单播

  • multicast  //多播(多数采用的方式)

  • broadcast  //广播

  6.Resource Allocation Layer:资源管理

Resource Allocation Layer:

  • DC:Designated Coordinator 指派的协调员来管理控制资源

Component:组件

DC:

  • CRM,CIB(Cluster Information Base),PE(Policy Engine),LRM

DC:

  • CRM,CIB,LRM

资源类型:

primitive:基本资源、主资源

  • 仅能运行一份,仅能运行于单个节点;

group:组

  • 将一个或多个资源组织成为一个可统一管理的单一单位;

clone:克隆

  • 一个资源可以在集群中运行多个副本;可以运行于多个节点;

multi-state(master/slave):

  • 是clone类型的资源的特殊表现,存在多个副本,副本间存在主从关系;drbd是常见的此类应用;

集群的架构类型:

两个节点

  • A/P,A/A

N个节点:

  • N-1:N个节点运行一个服务;

  • N-M:N个节点运行M个服务,M<N,备用节点数量(N-M);

  • N-N:N个节点运行N个服务;

资源倾向性:资源的约束关系;

  • score:(-oo, +oo)

      ·正数:正倾向性;

      ·负数:负倾向性;

  • location:位置约束,资源对节点的倾向性;

  • colocation:排列约束,资源与资源运行于同一节点的倾向性;

  • order:顺序约束,定义资源间的依赖关系;

  7.RA:资源代理

类别:

LSB:/etc/rc.d/init.d/*

  • 脚本,支持start|stop|status|restart|reload|force-reload;

  • 注意:一定不能设置为开机自动启动;

OCF:Open Cluster Framework

  • /usr/lib/ocf/resource.d/provider/目录下;

  • 类似于LSB的脚本,但支持start|stop|status|monitor|meta-data等;

systemd unti file:/usr/lib/systemd/system

  • 注意:一定要设置为enable;

STONITH:专用于配置stonith设备的RA;

service:



本文出自 “逐梦小涛” 博客,请务必保留此出处http://1992tao.blog.51cto.com/11606804/1880447

HA Cluster 之 OpenAIS---corosync