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. Android Studio 运行出现 Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.

    转载请标明出处: http://www.cnblogs.com/why168888/p/5978381.html 本文出自:[Edwin博客园] 我引用compile 'com.squareup.re ...

  2. iOS 10 推送的简单使用

    首先介绍一下本文涉及到UserNotifications的几个主要类. 其中 [1]UNNotification主要是作为通知delegate方法的参数使用.包含UNNotificationReque ...

  3. SQL SERVER 2014 Agent服务异常停止案例

    生产环境一数据库服务器(SQL Server 2014)的Agent服务突然停掉了,检查了错误日志,发现在"SQL Server Agent"里面没有"SQLServer ...

  4. 搭建高可用的redis集群,避免standalone模式带给你的苦难

    现在项目上用redis的话,很少说不用集群的情况,毕竟如果生产上只有一台redis会有极大的风险,比如机器挂掉,或者内存爆掉,就比如我们生产环境 曾今也遭遇到这种情况,导致redis内存不够挂掉的情况 ...

  5. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理7

    做完角色之后接下来做先做页面按钮的增加.删除.修改.这里用到的功能和角色那边是一样的.就不多说了.直接上代码. 后台控制器代码 using AuthorDesign.Web.App_Start.Com ...

  6. mysql分表的3种方法

    来源:http://blog.sina.com.cn/s/blog_640738130100tzeq.html 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死 ...

  7. js 输出数组最大值

    ,,,,]; ]; ; i < run.length; i++) { if (max<run[i]) { max=run[i]; }else{ max=max; } } alert(max ...

  8. 常用python机器学习库总结

    开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...

  9. android radiogroup样式(设置切换背景与文字颜色)

    main.xml <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_cont ...

  10. ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面

    应用场景和使用目的 很多时候,我们在访问页面的时候,由于程序异常.系统崩溃会导致出现黄页.在通常的情况下,黄页对于我们来说,帮助是极大的,因为它可以帮助我们知道问题根源,甚至是哪一行代码出现了错误.但 ...