首页 > 代码库 > 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