设为首页 收藏本站
查看: 709|回复: 0

[经验分享] HA Cluster 之 OpenAIS---corosync

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-12-8 08:25:12 | 显示全部楼层 |阅读模式
===============================================================================
概述:

===============================================================================
回顾:
wKioL1hGygqzzzlPAABDox72LJw651.jpg
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:



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-311180-1-1.html 上篇帖子: CentOS 7 corosync高可用集群的实现 下篇帖子: Centos yum安装snmp
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表