HA集群(高可用集群)之keepalived(详解一)

一、定义

1.集群:集群就是一组计算机,他们作为一个整体向用户提供一组网络资源。每一个单个的计算机系统都叫集群节点(node)。随着业务的增长,集群通过添加新的节点,满足资源的高可用扩张性。

2.高可用:高可用就是实现故障检查的业务切换的自动化,以提供不中断的服务。

3.高可用集群:高可用集群在一组计算机中,采用主备模式,主节点提供服务,备节点等待。一旦主节点失效,备节点无需人工费无缝取代主节点提供服务,这样保证了服务的不中断。

二、高可用集群(HA)的衡量标准

1.通过系统的可靠性(平均无故障时间MTTF)和可维护性(平均维修时间MTTR)来度量的。

2.公式HA=MTTF/(MTTF+MTTR)*100%

3.衡量标准
◇ 99% 一年宕机时间不超过4天
◇ 99.9% 一年宕机时间不超过10小时
◇ 99.99% 一年宕机时间不超过1小时
◇ 99.999% 一年宕机时间不超过6分钟

三、高可用集群的层次结构

在这里插入图片描述
1.信息层(Messaging)
也叫底层基础架构层,主要用于节点之间传递心跳信息,也称为心跳层。节点之间传递心跳信息可以通过广播,组播,单播等方式。
心跳信息:集群中每一台服务器都不停的将自己在线的信息通告给集群中的其他主机。
心跳信息的传递是基于套接字通信的,通过软件提供服务监听套接字,实现数据发送、请求。必须安装软件,并开启服务,这是实现高可用集群的基础。

2.成员层(Membership)
这层最重要的作用是通过Cluster Consensus Membership Service(CCM)这种服务由Messaging层提供的信息,来产生一个完整的成员关系。
CCM 组件(Cluster Consensus Menbership Service):承上启下,监听底层接受的心跳信息,当监听不到心跳信息的时候就重新计算整个集群的票数和收敛状态信息,并将结果转递给上层,让上层做出决定采取怎样的措施。CCM 还能够生成一个各节点状态的拓扑结构概览图,以本节点做为视角,保证该节点在特殊情况下能够采取对应的动作。
Messaging & Membership一般由同一软件实现。

3.资源分配层(Resource Allocation)
也叫资源管理器层,真正实现集群服务的层。包含CRM(集群资源管理器,cluster Resource Manager),CIB(集群信息基库,Cluster Infonation Base),PE(策略引擎,Policy Engine),TE(实施引擎,Transition Engine), LRM(Local Resource Manager,本地资源管理器)。
CRM组件: 核心组件,实现资源的分配和管理。每个节点上的CRM都维护一个CIB用来定义资源特定的属性,哪些资源定义在同一个节点上。主节点上的CRM被选举为 DC(Designated Coordinator指定协调员,主节点挂掉会选出新的DC),成为管理者,它的工作是决策和管理集群中的所有资源。
任何DC上会额外运行两个进程,一个叫PE,;一个叫TE。
PE :定义资源转移的一整套转移方式,但只做策略,并不亲自来参加资源转移的过程,而是让TE来执行自己的策略。
TE : 就是来执行PE做出的策略的并且只有DC上才运行PE和TE。
CIB组件:XML格式的配置文件,工作的时候常驻内存,只有DC才能对CIB进行修改,其他节点上的复制DC上的CIB而来。集群的所有信息都会反馈在CIB中。
LRM组件:是执行CRM传递过来的在本地执行某个资源的执行和停止的具体执行人。

资源:
    在集群中构成一个完整服务的每一部分都叫资源,都需要配置和管理。
    以web应用为例:vip是资源,web服务器是资源,存储也是资源。不同的服务的资源也不尽相同,其中存储资源的选择、配置、管理是高可用集群中的难点问题。

4.资源代理层(Resource Agents)
集群资源代理,能够管理本节点上的属于集群资源的某一资源的启动,停止和状态信息的脚本,资源代理分为:LSB(/etc/init.d/*),OCF(比LSB更专业,更加通用)。
任何资源代理都要使用同一种风格,接收四个参数:{start|stop|restart|status},每个种资源的代理都要完成这四个参数据的输出。

工作机制:
PE 根据CIB获取资源的配置信息(集群上的所有信息都会收集到DC的CIB,同步到其它节点),而后做出决策,一旦做得决策就会进行资源的管理。PE借助于本地的CCM通知给其它节点CIB来实现对某些资源管理信息的传递,比如说通告其它CRM要启动某一资源了,收到信息后CRM并不负责启动,转由 LRM(Local Resource Manager本地资源管理)启动,而并发资源又借助于RA(Resource Agent资源代理)实现资源管理。

四、高可用集群软件

Messaging and Membership Layer(信息与关系层):
    • heartbeat (v1,v2,v3)
    • corosync
    • cman
    • keepalived
    • ultramokey
Cluster Resource Manager Layer(资源管理层,简称:CRM):
    • haresource,crm (heartbeat v1/v2)
    • pacemaker (heartbeat v3/corosync)
    • rgmanager (cman)

常用组合:
    • heartbeat v2+haresource(或crm) (一般常用于CentOS 5.X)
    • heartbeat v3+pacemaker (一般常用于CentOS 6.X)
    • corosync+pacemaker (现在最常用的组合)
    • cman + rgmanager (红帽集群套件中的组件,还包括gfs2,clvm)
    • keepalived+lvs (常用于lvs的高可用)

五、keepalived

1.定义:
keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

2.keepalivedg工作原理:
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

    虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master(主)和多个backup(备份),master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播(224.0.0.18),当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级(priority)来选举一个backup当master。这样的话就可以保证路由器的高可用了。

    keepalived主要有三个模块,分别是core(核心)、check(检测)和vrrp(虚拟路由冗余协议)。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件(keepalived.conf)的加载和解析。check负责健康检查,包括常见的各种检查方式(TCP、脚本检测进程状态等)。vrrp模块是来实现VRRP协议的。

3.keepalived的常见组合
keepalived+LVS
keepalived+nginx
keepalived+mysql-proxy
keepalived+mycat

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值