Keepalive是Linux下一个轻量级高可用解决方案。高可用(High Avaliability简称HA)就是主机的冗余和接管。

基本功能:心跳检测、资源接管、检测集群中的服务、在集群节点转移共享IP地址的所有者。

Keepalive主要是通过路由冗余来实现高可用功能,配置简单,只需要一个配置文件即可完成。

Keepalive起初是为LVS(Linux Virtual Server虚拟的服务器集群负载均衡系统)设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。

后来Keepalived又加入了VRRP的功能,VRRP(Vritrual Router Redundancy Protocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,因此Keepalvied 一方面具有服务器状态检测和故障隔离功能,另外一方面也有HA cluster功能。

Keepalived工作在TCP/IP 参考模型的 三层、四层、五层,也就是分别为:网络层,传输层和应用层。

        网络层:我们知道运行这4个重要的协议,互联网络IP协议,互联网络可控制报文协议ICMP、地址转换协议ARP、反向地址转换协议RARP在网络层Keepalived在网络层采用最常见的工作方式是通过ICMP协议向服务器集群中的每一个节点发送一个ICMP数据包(有点类似与Ping的功能),如果某个节点没有返回响应数据包,那么认为该节点发生了故障,Keepalived将报告这个节点失效,并从服务器集群中剔除故障节点

传输层:提供了两个主要的协议:传输控制协议TCP和用户数据协议UDP,传输控制协议TCP可以提供可靠的数据输出服务、IP地址和端口,代表TCP的一个连接端,要获得TCP服务,需要在发送机的一个端口和接收机的一个端口上建立连接,Keepalived在传输层里利用了TCP协议的端口连接和扫描技术来判断集群节点的端口是否正常,比如对于常见的WEB服务器80端口。或者SSH服务22端口,Keepalived一旦在传输层探测到这些端口号没有数据响应和数据返回,就认为这些端口发生异常,然后强制将这些端口所对应的节点从服务器集群中剔除掉。

        应用层:可以运行FTP,TELNET,SMTP,DNS等各种不同类型的高层协议,Keepalived的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived工作方式,例如:可以通过编写程序或者脚本来运行Keepalived,而Keepalived将根据用户的设定参数检测各种程序或者服务是否允许正常,如果Keepalived的检测结果和用户设定的不一致时,Keepalived将把对应的服务器从服务器集群中剔除。


WatchDog

WatchDog是计算机可靠性监测工具,它的工作原理是针对被监视的目标设置一个计数器和阀值,WatchDog会自己增加此计数值,然后等待监视的目标周期性重置该计数值。一旦监控目标发生错误,就无法重置此计数值,WatchDog就会监测到,于是采取对应的恢复措施,例如重启或关闭。
        在Linux中很早就引入WatchDog功能,而Keepalived正是通过WatchDog的运行机制俩监控Checkers和VRRP进程的。

Checkers

可实现对服务器运行状态检测和故障隔离。

VRRP stack

可实现HA集群中失败切换(Failover)功能。Keepalived通过VRRP功能再结合LVS负载均衡软件即可部署一个高性能负载均衡集群系统。

IPVS wrapper

IPVS wrapper模块可以将配置好的IPVS规则发送到内核空间并提交给IPVS模块,最终实现IPVS模块的负载均衡功能。

Netlink Reflector

用来实现高可用集群中Failover时虚拟IP(VIP)的设置和切换。Netlink Reflector的所有请求最后都发送到内核空间层的NET

Keepalive介绍相关推荐

  1. Http Keep-Alive和Tcp keepalive介绍

    Http Keep-Alive和Tcp keepalive介绍 1.TCP连接介绍 1.1 建立连接-三次握手 1.2 释放连接-四次挥手 2. KeepAlive与Keep-Alive介绍 2.1 ...

  2. keep-alive 介绍

    一.Keep-Alive是一种HTTP协议中的机制,它的作用是在客户端和服务器之间保持持久的网络连接,以减少连接建立和断开的开销.当启用Keep-Alive时,同一客户端和服务器之间的多个HTTP请求 ...

  3. 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群

    集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat.ke ...

  4. mysql启用keepalive_mysql主从之keepalive+MySQL高可用

    一 keepalive介绍 1.1 keepalived 是什么 keepalived 是集群管理中保证集群高可用的一个服务软件,用来防止单点故障. 1.2 keepalived 工作原理 keepa ...

  5. mysql keepalive_mysql主从之keepalive+MySQL高可用

    一 keepalive介绍 1.1 keepalived 是什么 keepalived 是集群管理中保证集群高可用的一个服务软件,用来防止单点故障. 1.2 keepalived 工作原理 keepa ...

  6. K8S keepalive+haproxy 实现集群高可用

    一.keepalibe +haproxy 原理 软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现.LVS就是基于Linux操作系统实现的一种软负载,HAProx ...

  7. vue中的keep-alive实现原理

    一.前言 本文介绍的内容包括: keep-alive用法:动态组件&vue-router keep-alive源码解析 keep-alive组件及其包裹组件的钩子 keep-alive组件及其 ...

  8. Vue--keep-alive--详解

    原文网址:Vue--keep-alive--详解_IT利刃出鞘的博客-CSDN博客 简介 说明         本文介绍Vue中的keep-alive. keep-alive标签主要用于保留组件状态或 ...

  9. 【网络服务数据库教程】05 Web服务器 - Apache

    1 讲在 Apache 之前 HTML语言:超文本标记语言,使用html语言编写的文本叫超文本,"超文本"就是指页面内可以包含图片.链接,甚至音乐.程序等非文字元素. 计算机语言要 ...

最新文章

  1. antd 能自适应吗_ACC自适应巡航能当自动驾驶用吗?答:不能
  2. 使用 IDEA 开发工具(版本为 IntelliJ IDEA 14.1.4)打可执行jar包的操作步骤
  3. C语言 遍历字符串数组
  4. linux日志不区分大小写,windows系统迁移到linux下,Nginx实现url请求不区分大小写...
  5. python有趣的简单代码_简单几步,100行代码用Python画一个蝙蝠侠的logo
  6. my-innodb-heavy-4G.cnf 配置文件参数介绍
  7. Callback模式和Template模式
  8. 赛锐信息:SAP系统业务审计介绍
  9. 有一些无声话语,只有寻梦的人彼此听得见
  10. 一.Nginx的特性和一些知识点
  11. 2012年1月份第3周51Aspx源码发布详情
  12. 电话号码正则表达式(标准)
  13. 重装系统win10安装教程(超详细)
  14. 如果讲不明白Spring Cloud核心组件,那我就白编故事了
  15. 《GCAMatting:Natural Image Matting via Guided Contextual Attention》
  16. ios手机添加frida软件源
  17. java tiff 压缩,使用Java ImageIO进行Tiff压缩
  18. Java的23种设计模式---(21)观察者模式
  19. 常用颜色的RGB值及调色方法
  20. Python从零到就业

热门文章

  1. Mate 40,华为的最后一颗子弹?
  2. windows命令行cmd中查看显卡信息
  3. 解读APPL CATAL B-ENVIRON‖多级ZnIn2S4@PCN-224异质结的构建提高光催化产氢降解四环素盐酸盐的性能
  4. 百位专家、汇聚社区力量——CSDN社区大趴圆满结束
  5. 究量子计算机的目的是为了解决计算机中的,研究量子计算机的目的是为了解决计算机中的()。...
  6. 日均访问量过万的网站一般需要多大的云服务器
  7. 高并发每日学习【2020-09-28】
  8. vue 开发批量上传图片及自定义
  9. java 图片批量上传_SpringBoot 2.0 图片上传(支持批量上传)
  10. Delphi 最近做的一个Delphi功能,查询数据显示到TChart上