简述HA cluster原理

1.简介
集群cluster是指使用一组计算机作为一个整体向用户提供一组网络资源。在集群中的每个计算机系统称为集群节点(node)。集群可随着业务的增长,通过添加新的节点的方式来提升集群性能。集群的类型包括:Load Balance、High Availability、High Performance这三种,而我们通常所说的HA cluster就是High availability cluster。高可用集群是用于单个节点发生故障时,能够自动将资源、服务进行切换,这样可以保证服务一直在线。在这个过程中,对于客户端来说是透明的。

  1. 高可用集群的衡量标准
    高可用集群一般是通过系统的可靠性(reliability)和系统的可维护性(maintainability)来衡量的。通常用平均无故障时间(MTTF)来衡量系统的可靠性,用平均维护 时间(MTTR)来衡量系统的可维护性。因此,一个高可用集群服务可以这样来定义:HA=MTTF/(MTTF+MTTR)*100%。
  • 一般高可用集群的标准有如下几种:
    99%:表示 一年宕机时间不超过4天
    99.9% :表示一年宕机时间不超过10小时
    99.99%: 表示一年宕机时间不超过1小时
    99.999% :表示一年宕机时间不超过6分钟
  1. 高可用集群解决手段
    手段:冗余方案(redundant)
    集群主机分为:active/passive(一主多备),active/active(双主)
  • 主备方式
    集群中的节点以主备的方式运行,主机处于工作状态,备机处于监控准备状态;当主机出现宕机状态时,备机接管主机的一切工作, 待主机恢复正常后,备机再根据事先设置的设定来决定是否把服务切换到主机上运行。
  • 双主方式
    集群中的节点均已主机方式运行,互相之间同时运行维护各自的服务工作并相互检测。当任意一台主机宕机后,另一台主机会接管它的一切工作,保证服务正常运行。
  1. 高可用集群层级结构:
    HA nginx service:概念可以理解为高可用的是“服务”,组成一个高可用服务的“组件”叫做资源;
    高可用集群的层次结构分为以下:
  • messaging layer 信息层 主要在集群节点之间传递心跳(单播,多播,广播)
  • resoure manager 资源管理层(每个高可用都应该多个资源,服务+ip或者存储),全局事务决策
  • local rm 本地资源管理 只负责本地操作 并把结果通知给rm
  • resoure agent 启动一个服务 都是借助外部来实现的/etc/rc.d/init.d/或/usr/lib/systemd/ 不是直接启动程序包,而是通过外部的启动控制程序或脚本,通过代理启动,主要负责start|stop|restart|status
    简述HA cluster原理_第1张图片
    层级结构图
  1. HA cluster的运行原理

自动侦测(Auto-Detect)阶段 由主机上的软件通过冗余侦测线,经由复杂的监听程序。逻辑判断,来相互侦测对方运行的情况,所检查的项目有:主机硬件(CPU和周边)、主机网络、主机操作系统、数据库引擎及其它应用程序、主机与磁盘阵列连线。为确保侦测的正确性,而防止错误的判断,可设定安全侦测时间,包括侦测时间间隔,侦测次数以调整安全系数,并且由主机的冗余通信连线,将所汇集的讯息记录下来,以供维护参考。

自动切换(Auto-Switch)阶段 某一主机如果确认对方故障,则正常主机除了继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序及服务,此类故障切换又被称为failover。

自动恢复(Auto-Recovery)阶段 在正常主机代替故障主机工作后,故障主机可离线进行修复工作。在故障主机修复后,透过冗余通讯线与原正常主机连线,自动切换回修复完成的主机上。整个恢复过程完成由HA相关软件自动完成,亦可依据预先配置,选择恢复动作为半自动或不恢复。而某资源的主节点故障后重新修改上线后,将转移至其它节点的资源重新切回的过程通常称为failback。

你可能感兴趣的:(简述HA cluster原理)