1.pacemaker
Pacemaker 是一款开源的高可用资源管理软件,适合大集群或者小集群。

Pacemaker 由Novell支持,SLES HAE就是用Pacemaker来管理集群,并且Pacemaker 得到了
来自Redhat,Linbit等公司的支持。

Pacemaker是Heartbeat 3.0的crm,它可以使用所有的Heartbeat的资源脚本,升级无忧。

当故障发生时, Pacemaker 会自动的开始恢复,比保证你的程序在集群的其他节点上提供服务,
接管故障的机器。你的用户甚至不会知道有故障发生!

什么是Pacemaker?
Pacemaker是一个集群资源管理者。他用资源级别的监测和恢复来保证集群服务(aka. 资源)的最
大可用性。它可以用你所擅长的基础组件(Corosync或者是Heartbeat)来实现通信和关系管理。

Pacemaker包含以下的关键特性:
监测并恢复节点和服务级别的故障存储无关,并不需要共享存储资源无关,任何能用脚本控制的
资源都可以作为服务支持使用STONITH来保证数据一致性。支持大型或者小型的集群clusters
支持 quorate(法定人数) 或 resource(资源) 驱动的集群支持任何的 冗余配置自动同步各个节
点的配置文件可以设定集群范围内的ordering, colocation and anti-colocation支持高级的
服务模式

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

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

keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负
责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查
方式。vrrp模块是来实现VRRP协议的。

VRRP 协议简介
在现实的网络环境中,两台需要通信的主机大多数情况下并没有直接的物理连接。对于这样的情
况,它们之间路由怎样选择?主机如何选定到达目的主机的下一跳路由,这个问题通常的解决方法
有两种:
1.在主机上使用动态路由协议(RIP、OSPF等)
2.在主机上配置静态路由

很明显,在主机上配置动态路由是非常不切实际的,因为管理、维护成本以及是否支持等诸多问题。
配置静态路由就变得十分流行,但路由器(或者说默认网关default gateway)却经常成为单点故障。
VRRP的目的就是为了解决静态路由单点故障问题,VRRP通过一竞选(election)协议来动态的将路
由任务交给LAN中虚拟路由器中的某台VRRP路由器。

VRRP 工作机制
在一个VRRP虚拟路由器中,有多台物理的VRRP路由器,但是这多台的物理的机器并不能同时工作,
而是由一台称为MASTER的负责路由工作,其它的都是BACKUP,MASTER并非一成不变,VRRP让每个
VRRP路由器参与竞选,最终获胜的就是MASTER。MASTER拥有一些特权,比如,拥有虚拟路由器的
IP地址,我们的主机就是用这个IP地址作为静态路由的。拥有特权的MASTER要负责转发发送给网关
地址的包和响应ARP请求。

VRRP通过竞选协议来实现虚拟路由器的功能,所有的协议报文都是通过IP多播(multicast)包
(多播地址224.0.0.18)形式发送的。虚拟路由器由VRID(范围0-255)和一组IP地址组成,对外表
现为一个周知的MAC地址。所以,在一个虚拟路由 器中,不管谁是MASTER,对外都是相同的MAC和
IP(称之为VIP)。客户端主机并不需要因为MASTER的改变而修改自己的路由配置,对客户端来说,
这种主从的切换是透明的。

一个虚拟路由器中,只有作为MASTER的VRRP路由器会一直发送VRRP通告信息(VRRPAdvertisement message),
BACKUP不会抢占MASTER,除非它的优先级(priority)更高。当MASTER不可用时(BACKUP收不到通告
信息), 多台BACKUP中优先级最高的这台会被抢占为MASTER。这种抢占是非常快速的(<1s),以保
证服务的连续性。由于安全性考虑,VRRP包使用了加密协议进行加密.

VRRP 工作流程
(1)初始化
路由器启动时,如果路由器的优先级是255(最高优先级,路由器拥有路由器地址),要发送VRRP
通告信息,并发送广播ARP信息通告路由器IP地址对应的MAC地址为路由虚拟MAC,设置通告信息定
时器准备定时发送VRRP通告信息,转为MASTER状态;否则进入BACKUP状态,设置定时器检查定时
检查是否收到MASTER的通告信息。

(2)Master
1.设置定时通告定时器;
2.用VRRP虚拟MAC地址响应路由器IP地址的ARP请求;
3.转发目的MAC是VRRP虚拟MAC的数据包;
4.如果是虚拟路由器IP的拥有者,将接受目的地址是虚拟路由器IP的数据包,否则丢弃;
5.当收到shutdown的事件时删除定时通告定时器,发送优先权级为0的通告包,转初始化状态;
6.如果定时通告定时器超时时,发送VRRP通告信息;
7.收到VRRP通告信息时,如果优先权为0,发送VRRP通告信息;否则判断数据的优先级是否高于本
机,或相等而且实际IP地址大于本地实际IP,设置定时通告定时器,复位主机超时定时器,转
BACKUP状态;否则的话,丢弃该通告包;

(3)Backup
1.设置主机超时定时器;
2.不能响应针对虚拟路由器IP的ARP请求信息;
3.丢弃所有目的MAC地址是虚拟路由器MAC地址的数据包;
4.不接受目的是虚拟路由器IP的所有数据包;
5.当收到shutdown的事件时删除主机超时定时器,转初始化状态;
6.主机超时定时器超时的时候,发送VRRP通告信息,广播ARP地址信息,转MASTER状态;
7.收到VRRP通告信息时,如果优先权为0,表示进入MASTER选举;否则判断数据的优先级是否高于
本机,如果高的话承认MASTER有效,复位主机超时定时器;否则的话,丢弃该通告包;

ARP查询处理
当内部主机通过ARP查询虚拟路由器IP地址对应的MAC地址时,MASTER路由器回复的MAC地址为虚
拟的VRRP的MAC地址,而不是实际网卡的 MAC地址,这样在路由器切换时让内网机器觉察不到;而
在路由器重新启动时,不能主动发送本机网卡的实际MAC地址。如果虚拟路由器开启的ARP代理
(proxy_arp)功能,代理的ARP回应也回应VRRP虚拟MAC地址;

3.区别
安装配置不同
从安装、配置、使用、维护等角度上对比,Keepalived都比Heartbeat要简单得多,Keepalived
只有1个安装文件、1个配置文件,配置文件也简单很多

协议不同
Keepalived使用的vrrp协议方式进行通信和选举,虚拟路由冗余协议Virtual Router
Redundancy Protocol

Heartbeat是基于主机或网络的服务的高可用方式 ,使用心跳进行通信和选举,Heartbeat除了
走网络外,还可以通过串口通信,貌似更可靠

应用场景不同
keepalived目的是模拟路由器的双机,lvs的高可用建议用keepavlived

heartbeat目的是用户service的双机 ,业务的高可用用heartbeat

功能不同
Keepalived主要用于集群倒换,基本没有管理功能

Heartbeat虽然复杂,但功能更强大,配套工具更全,适合做大型集群管理

使用方式基本类似
如果要基于两者设计高可用方案,最终都要根据业务需要写自定义的脚本,Keepalived的脚本没
有任何约束,随便怎么写都可以;Heartbeat的脚本有约束,即要支持service start/stop/restart
这种方式,而且Heartbeart提供了很多默认脚本,简单的绑定ip,启动apache等操作都已经有了

pacemaker和keepalived的区别的更多相关文章

  1. LVS,Keepalived,HAproxy区别与联系

    LVS,Keepalived,HAproxy区别与联系 LVS 全称Linux Virtual Server,也就是Linux虚拟服务器,由章文嵩(现就职于于淘宝,正因为如此才出现了后来的fullna ...

  2. heartbeat与keepalived的区别

    Heartbeat与Keepalived的区别 Keepalived使用的vrrp协议方式,虚拟路由冗余协议 (Virtual Router Redundancy Protocol,简称VRRP):H ...

  3. zookeeper和keepalived的区别

    zookeeper主要就是为了保持数据的一致性来的,举个栗子,通俗点就是 本来是存储在各个服务器上的配置文件,现在我不存储在各个服务器上了,我就把全部配置文件都存储在zookeeper服务器上,应用服 ...

  4. LVS+keepalived+nginx

    LVS是Linux Virtual Server的简写,基于4层协议不处理,不响应,只转发,速度更快 wget -c http://www.linuxvirtualserver.org/softwar ...

  5. nginx——keepalived

    nginx--keepalived 1.keepalived高可用基本概述 什么是高可用 一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用 ...

  6. lvs+keepalived+application部署(只使用两台机器)

    目前大家用LVS+Keepalived + APP 架构都是 2台LVS +Keepalived 然后后端跟着 应用设备 然而针对小客户来说,  2台LVS平常没什么压力 还有一台备着(虽然可以跑双主 ...

  7. Nginx之Keepalived

    目录 Nginx之Keepalived 1. Keepalived 高可用基本概述 1.1 什么是高可用 1.2 高可用通常使用什么软件? 1.3 keepalived是如何实现高可用的? 1.4 那 ...

  8. WEB服务-Nginx之十-keepalived

    WEB服务-Nginx之10-keepalived 目录 WEB服务-Nginx之10-keepalived Keepalived和高可用 基本概述 Keepalived安装配置 Keepalived ...

  9. 理解 OpenStack 高可用(HA)(1):OpenStack 高可用和灾备方案 [OpenStack HA and DR]

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

随机推荐

  1. 【leetcode-449】序列化和反序列化二叉搜索树

    序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建. 设计一个算法来序列化和反序列化二叉搜索树. 对序列 ...

  2. SuRF : Practical Range Query Filtering with Fast Succinct Tries

    1. Introduction 在数据库管理系统中查找某些关键字会导致很大的磁盘I/O开销,针对这一问题,通常会使用一个内存开销小并且常驻内存的过滤器来检测该关键字是否存.比如现在常用的bloom过滤 ...

  3. C#循环 — break VS continue

    一.简介 1.break语句:循环-循环中断并停止,退出当前循环: 流程图: 2.continue:循环-循环下一次迭代继续执行. 流程图: 执行过程:立即结果本次循环,判断循环条件,如果成立,则进入 ...

  4. Layer.js弹层的一些简单的使用

    //-----------这里只是简单的做一下记录,没有封装,作为笔记防止忘记了 //----contentMsg 里面是可以传入 HTML代码的 top.layer.alert(contentMsg ...

  5. Java诊断利器Arthas优雅排查生产环境

    前言 Arthas 是Alibaba开源的Java诊断工具.在线排查问题,无需重启:动态跟踪Java代码:实时监控JVM状态.对分秒必争的线上异常,Arthas可帮助我们快速诊断相关问题. 下载安装 ...

  6. Jenkins 任务定时

    在项目配置中选择 Build Triggers 下勾选 Build periodically,可以对项目进行定时构建设置.构建设置详细可通过右边的问号符号进行查看. 定时构建字段遵循 cron 的语法 ...

  7. Test CMake run finished with errors

    Test CMake run finished with errors 记录一个安装 CLion 过程中的错误. CLion的安装和破解教程网上有很多,大家可以自行搜索. 安装了之后在 Setting ...

  8. bat 获取管理员权限,判断系统位数,获取当前文件所在目录,regsvr32注册DLL、OCX

    1.获取管理员权限 @echo off if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%Syste ...

  9. 《linux就该这么学》课堂笔记17 分离解析、DHCP、电子邮件系统

    1.动态主机配置协议(DHCP,Dynamic Host Configuration Protocol) 自动管理局域网内主机的IP地址.子网掩码.网关地址及DNS地址等参数,可以有效地提升IP地址的 ...

  10. 06、自动挂载+超级守护进程+时间同步+tcpwrapper+软硬链接+日志管理

    autofs  自动挂载服务   把下面这两条命令做成自动挂载 172.16.2.35:/share/soft /nfs/soft 172.16.2.35:/share/iso  /nfs/iso . ...