1介绍

Keepalived是linux下一个轻量级的高可用解决方案,与HeartBeat,RoseHA实现的功能类似,但是还是有差别。HeartBeat是一个专业的功能完善的高可用软件,它提供了HA软件所需的基本功能,比如心跳检测,资源接管,检测集群系统服务,功能很强大,但是部署和使用比较麻烦。Keepalived主要通过虚拟路由冗余来实现高可用,部署配置比较简单。

2 Keepalived是什么

1. Keepalived起初是为lvs设计的,专门用来检测集群系统中各个系统服务节点中的状态。

Keepalived检测节点,当检测到异常节点的时候,将有问题的节点从服务器中剔除,当故障节点恢复后,Keepalived又可以将服务节点重新加入到服务器集群中。

2. Keepalived加入VRRP功能,VRRP(虚拟路由器冗余协议)可以解决静态路由出现的单点故障。可以实现网络不间断运行。

3 VRRP协议与工作原理(keepalived的高可用原理)

解决单点瓶颈~~~~~~VRRP他是一种主备模式的协议,它可以在网络发生故障的时候透明的进行设备切换而不会影响主机之间的通信,涉及物理路由器和虚拟路由器的概念。

VRRP可以将两台或者多台物理路由器设备虚拟成一个虚拟路由器,这个虚拟路由器可以通过虚拟一个或者多个ip来对外提供服务,而在虚拟路由器内部是多个物理路由器协调工作,

但同一时间只有一台物理路由器对外服务,这台物理路由器称为主路由,master角色。其他物理路由器不提供对外网络功能,只是仅仅接受master的VRRP状态信息,他们被称为备份路由器,backuo角色。

一般情况master由选举产生,当主路由失败时,备份路由将重新选举,产生一个新的主路由进入master角色来继续对外提供服务,整个过程对用户完全透明。

每个虚拟路由器有一个唯一标识,叫做VRID,一个VRID和一组IP地址构成一个虚拟路由器。处于backup角色的路由器只接收来自master发来的报文信息,来监控master的运行状态,当master不可以时,backup无法接收到master发来的报文信息,

就认定master出现故障,接着就会选举产生master,这样保证服务持续可用。

4 keepalived对服务器运行状态检测和监控的工作原理

Keepalived工作在tcp/ip模型的第三第四第五层,也就是,网络层,传输层,应用层。

1网络层中

有4个重要协议,互联网协议IP,控制报文协议icmp,地址转换协议ARP,以及反向地址转换协议RARP.,在网络层,它采用ICMP协议像服务器集群中的每个节点发送一个icmp包,如果某个接地单没有返回响应的包,就认为节点除了故障,,报告节点,并且将节点从集群中剔除。

2传输层:

有两个重要协议,传输控制协议tcp和用户数据协议udp。

tcp提供可靠的数据传输服务,keepalived在传输层就是利用tcp协议的端口连接,和扫描技术来判断集群节点是否正常。比如web的80,ssh的22端口,keepalived一旦在传输层探测到这些端口没有数据包返回,就认为这些端口发生异常,强制将这些端口对应的节点从集群中剔除。

3应用层

可以在应用层运行ftp,telnet,Smtp,DNS等不同类型的高级协议,用户可以自定义Keepalived的工作方式,如:用户通过自定义脚本程序来运行Keepalived,而Keeplived将根据用户的设定来检查各种程序或者服务是否正常,如果检测异常,将对应的节点从集群中剔除。

5Keepalived的体系结构

Keepalived体系结构图
包含两部分1,用户空间层,和内核空间层
先说内核空间层:
位于最底层,包含两个模块IPVS和NETLINK两个模块.其中IPVS模块是第三方模块,主要是和负载均衡集群有关
IPVS默认包含在LVS中。
NETLINK模块主要来实现一些高级路由框架,和一些相关的网络功能,完成用户空间层Netlink Reflector模块发来的各种网络请求
用户空间层:
4个部分
Scheduler I/O Multiplexer.---负责安排Keepalived内部的所有任务请求。
Memory Management -----是一个内存管理机制,提供了访问内存的一些方法。
control Plane-------Keepalived的控制面板,可以实现对配置文件进行编译和解析,Keepalived的配置文件解析比较特殊,它并不是一次解析所有模块的配置,只是在用到的时候才解析相应配置。
Core components------是Keepalived的核心组件,包含一系列的功能模块,主要有,
watchDog,----原理是针对被监视的目标设置一个计数器和一个阈值,WatchDog会自己增加计数值,然后等待被监视的机器周期性的重置该计数值,一旦监控目标发生错误,就会无法重置此计数值,watchDog就会检测到,采取回复措施
Keepalived就是通过watchDog的运行机制来监控Checker和VRRP进程的。

Checkers,实现对服务器状态的检测和故障隔离。

VRRP Stack,可以实现HA(高可用)集群中失败的切换功能。通过此功能然后结合LVS可以构建高性能的负载均衡集群系统。

IPVS wrapper,可以将设置好的IPVS规则发送到内核空间并且提交给IPVS模块,最终实现负载均衡的功能。
Netlink Reflector-----用来实现高可用集群中Failover时虚拟IP的设置和切换。Netlink Reflector的所有请求最后都发送到内核空间层的NETLINK模块来完成

结构图:

高性能集群软件Keepalived(1)的更多相关文章

  1. 高性能集群软件keepalived

     Keepalived介绍 以下是keepalive官网上的介绍.官方站点为http://www.keepalived.org.         Keepalived is a routing sof ...

  2. 基于开源软件构建高性能集群NAS系统,包括负载均衡(刘爱贵)

    大数据时代的到来已经不可阻挡,面对数据的爆炸式增长,尤其是半结构化数据和非结构化数据,NoSQL存储系统和分布式文件系统成为了技术浪潮,得到了长足的发展.非结构化数据目前呈现更加快速的增长趋势,IDC ...

  3. LVS集群和Keepalived高可用实战

    第四十章LVS集群和Keepalived高可用实战 一.ARP协议 1.概念 地址解析协议,即ARP(AddressResolutionProtocol),是根据IP地址获取物理MAC地址的一个TCP ...

  4. Linux 高可用(HA)集群之keepalived详解

    http://freeloda.blog.51cto.com/2033581/1280962 大纲 一.前言 二.Keepalived 详解 三.环境准备 四.LVS+Keepalived 实现高可用 ...

  5. 高可用集群之keepalived+lvs实战-技术流ken

    keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...

  6. 高性能集群(HPC

    串行计算与并行计算1.串行计算串行计算是指在单个计算机(拥有单个中央独立单元) 上执行软件写操作.CPU 逐个使用一系列指令解决问题.为了加快处理速度,在原有的串行计算的基础上演变出并行计算2.并行计 ...

  7. 高可用集群之keepalived+lvs实战2

    keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...

  8. 高可用集群之keepalived+lvs实战

    keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...

  9. Deinstall卸载RAC之Oracle软件及数据库+GI集群软件

    Deinstall卸载Oracle软件及数据库+GI集群软件 1. 本篇文档应用场景: 需要安装新的ORACLE RAC产品,系统没有重装,需要对原环境中的RAC进行卸载: #本篇文档,在AIX 6. ...

随机推荐

  1. 了解HTML 盒模型

    HTML在布局上, 有一个非常重要的模型, 那就是盒子模型, 在盒子模型中把标签内容理解为一个物品, 而css样式理解为包容着这个物品的盒子, 一般的块级标签都具有盒子模型的特征, 你可以在css中对 ...

  2. android 传感器应用

    本章讲述Android开发中,传感器应用相关的知识点. 1.功能需求 做一个基于传感器的水平尺应用. 2.软件实现

  3. 拯救你的文档 – 【DevOps敏捷开发动手实验】开源文档发布

    今天上海的天气真是不错,风和日丽.再次来到微软上海紫竹研发中心,心情很是愉快,喜欢这里的大草坪,喜欢这里的工程气氛,更喜欢今天来陪我的小伙伴们. 这次动手实验培训与以往最大的不同就是采用了开源文档的方 ...

  4. 从零自学Hadoop(14):Hive介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 本系列已 ...

  5. STM32 Unicode 与 GBK 转换 .bin文件放到SD卡是啥意思

    2个数组 : }; }; 一个是Unicode 编码,一个是GBK编码: 用c2b软件转成.bin 二进制文件放到SD卡里: SD卡放入字库 .FON STM32 代码: 代码中SD卡字库和二进制路径 ...

  6. 3D坦克大战游戏iOS源码

    3D坦克大战游戏源码,该游戏是基于xcode 4.3,ios sdk 5.1开发.在xcode4.3.3上完美无报错.兼容ios4.3-ios6.0 ,一款ios平台上难得的3D坦克大战游戏源码,有2 ...

  7. [HTML]输入框被限制输入某些类型数据

    ENTER键可以让光标移到下一个输入框 <input onkeydown="if(event.keyCode==13)event.keyCode=9" > 只能是中文& ...

  8. struts2的拦截器(Interceptor)与过滤器(Filter)

    一.拦截器与过滤器的区别: 1.filter基于回调函数,我们需要实现的filter接口中doFilter方法就是回调函数,而interceptor则基于Java本身的反射机制,这是两者最本质的区别. ...

  9. 全面剖析 <input> 标签 ------ HTML\HTML5

    <input>标签因其形式多样.功能强大,当之无愧成为了WEB前端开发人员最钟爱的元素之一.下面就来对<input>做一个全面的剖析: 标签定义: <input> ...

  10. CF380C. Sereja and Brackets[线段树 区间合并]

    C. Sereja and Brackets time limit per test 1 second memory limit per test 256 megabytes input standa ...