`
huangyongxing310
  • 浏览: 498591 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

keepalived 简介

阅读更多
keepalived 简介

1.keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。
2.keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
3.工作在VRRP基础上。


VRRP用于实现虚拟IP由那个节点进行接管的处理


工作原理(以Mysql双主作为例子说明)
1.当有两个Mysql服务器,在每台上都安装keepalived软件,配置文件监控Mysql的状态。
2.每个keepalived(keepalived组)是工作在VRRP基础上,分主从。
3.当keepalived监控Mysql的状态发生变化时就关闭keepalived,当keepalived组中的主发生宕机(关闭keepalived)时,就会在从机中找一个作为主机进行与客户端进行通信。
4.客户端与Mysql组是以一个虚拟的IP和MAC(虚拟MAC地址)进行通信的,不是Mysql组中每个的真实IP和MAC
5.当主机宕机,虚拟的IP和MAC由从机进行了接管成为了新的主机,所以对客户端来说还是以虚拟的IP和MAC进行通信,感觉不到自己已经是访问从机上的Mysql了。

虚拟MAC地址,地址格式为00-00-5E-00-01-【VRID】,VRID
为VRRP组的编号,范围是0~255。



keepalived是通过修改网卡里的IP列表地址来使网卡接收虚拟IP地址的数据包的。
网卡可以绑定多个ip地址,并接收这些IP的数据包

免费ARP的作用,目前免费ARP的作用有两种。
第一种就是刚才上面所说的宣告广播的作用,以告诉整个广播域,目前这个IP所对应的MAC地址是什么。
第二种是看看广播域内有没有别的主机使用自己的IP,如果使用了,则在界面上弹出“IP冲突”字样。

免费ARP的报文发(查找自己的IP地址,比如:我需要10.1.1.1的MAC地址,而10.1.1.1就是自己的IP)出去是不希望收到回应的,只希望是起宣告作用;如果收到回应,则证明对方也使用自己目前使用的IP地址。在所有网络设备(包括计 算机网卡)up的时候,都会发送这样的免费ARP广播(多长时间发一次呢????),以宣告并确认有没有冲突。


免费ARP是广播发送出去的,接收到的路由或同一个网内的主机会更新自身的ARP缓存,这样下次就可以得到这个IP的实际MAC地址了


keepalived的原理就是:主设备周期性发送免费ARP报文刷新上联交换机的MAC表或终端ARP表,触发VIP的迁移到主设备上。

该VIP仅支持在子网内迁移(因此需要保证主备服务器位于同一个子网)

VRRP所有的协议报文都是通过IP多播


多播(组播)原理分析:
为了支持IP 多播,以太网的大佬们已经为 Ethernet和Fiber Distributed Data Interface (FDDI)的MAC地址保留了一个多播地址区间:01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。正如下图所示48位的MAC地址中的高25位是固定的,低23位是可变的。

就是如果接收到的数据帧的MAC地址符合这个要求就会接收由IP层协议进行过滤,网卡不会以MAC地址对这个MAC数据包进行过滤,映射的是一个IP段,所以是IP多播


ip 多播地址 和mac多播地址隐射
https://blog.csdn.net/fuming0210sc/article/details/53669657



VRRP所有的协议报文都是通过IP多播(multicast)包(多播地址224.0.0.18)形式发送的。虚拟路由器由VRID(范围0-255)和一组IP地址组成,对外表现为一个周知的MAC地址。所以,在一个虚拟路由 器中,不管谁是MASTER,对外都是相同的MAC和IP(称之为VIP)。


VRRP的选举机制:
抢占模式:
  在抢占模式下,如果Backup设备的优先级比当前Master设备的优先级高,则主动将自己切换成Master。
  非抢占模式:
  在非抢占模式下,只要Master设备没有出现故障,Backup设备即使随后被配置了更高的优先级也不会成为Master设备。
https://zhidao.baidu.com/question/754226509343566164.html

每个节点都会有一个初始优先级(0-255,255为最高,相同时IP大的为最高),当发现主节点down后,备机节点都会成会主发送免费ARP,当接收到的免费APR的优选级比自己高时就自动切换回备机状态。到最后就只有一个主了。主节点要间隔广播免费ARP告诉与自己相连的节点叫他们更新ARP缓存


keepalived的VIP要求要与节点在同一个网段.



heatbeat工作原理总结:
1.主从的heatbeat通过心跳包进行通信息(组播信息),
2.当主机宕机或关闭了heatbeat,从节点就会收不到心跳信息。
3.从节点收不到心跳信息后(进行选举(组播信息),得到主节点),使自己成为主节点,发送心跳,设置别名IP(虚拟IP),发送免费ARP给局域网内的主机更新ARP缓存,即(虚拟IP)现在的MAC地址已经变为这个节点的MAC了,后面会用新的这个MAC进行数据通信。

ARP缓存是会定时更新的,也会老化,时间要看设备制造商(几分钟到几十分钟),也可以手动进行清空、手动更改

路由器也有ARP缓存

和keepalived的服务一样,heartbeat高可用是服务器级别的,不是服务级别的。

如果在规定时间内,无法监听到心跳信息,那么就启动故障转移,取得主服务器上的相关资源的所有权,接替主服务器继续不间断的提供服务,从而达到资源以及服务高可用的目的。

heartbeat还支持主主模式,及两台服务器互为主备。一般故障切换时间在5~20s之间。

https://www.cnblogs.com/zhangsubai/p/5393447.html(Heartbeat高可用解决方案)


keepalived工作原理总结:
与Heartbeat基本一致,keepalived用了VRRP协议进行节点间的通信和选举,切换所有的事在致上一样,不过keepalived使用更简单方便一些

VRRP协议通信发送的信息(VRRP通告报文)用的MAC为虚拟的、IP为真实的主节点的IP(不是VIP),是用组播的形式进行发送的。



参考(keepalived工作原理):http://outofmemory.cn/wiki/keepalived-configuration
参考(LVS+Keepalived实现高可用集群):https://my.oschina.net/sansom/blog/121445
参考(Mysql双主+keepalived实现HA):http://blog.sina.com.cn/s/blog_4f9fc6e10102w6xy.html
https://blog.csdn.net/bigtree_3721/article/details/51082157(keepalive安装配置)
https://www.cnblogs.com/pangguoping/p/5721517.html(keepalived vip漂移基本原理及选举算法)
分享到:
评论

相关推荐

    keepalived

    #### 一、Keepalived简介 Keepalived是一款开源的高可用性解决方案,主要用于提升服务器集群的稳定性和健壮性。它通过实现VRRP(Virtual Router Redundancy Protocol)协议以及健康检查机制来确保服务的连续性和负载...

    keepalived-1.2.13.tar.gz

    1. Keepalived简介 Keepalived的设计目标是提供一种简单、高效且可靠的高可用性(HA)解决方案,用于确保网络服务的不间断运行。它结合了LVS(Linux Virtual Server)和VRRP协议,能够在主服务器出现故障时,自动将...

    Keepalived权威指南中文.pdf

    **2.1 Keepalived简介** - **概述**:Keepalived是一款开源软件,用于实现Linux环境下的高可用性和负载均衡。它主要通过VRRP协议、健康检查机制以及IPVS等组件来提供服务。 - **功能模块**: - **健康检查**:监测...

    keepalived安装包

    【Keepalived简介】 Keepalived是一款开源的网络和系统守护进程,主要设计用于实现Linux上的高可用性(High Availability, HA)。它主要用于保持服务的持续运行,即使在主服务器出现故障时,也能将服务无缝地切换到...

    fs使用keepalived做HA方案及设计逻辑图

    **Keepalived简介** Keepalived的核心功能包括负载均衡、健康检查和故障转移。在Freeswitch HA场景下,Keepalived可以监控主Freeswitch节点的状态,并在检测到故障时将流量切换到备用节点,从而确保通信服务的不间断...

    keepalived-1.1.19.tar.gz

    1. keepalived简介: Keepalived的初衷是为LVS(Linux Virtual Server)提供一种心跳监测机制,确保当主服务器发生故障时,可以自动将流量切换到备用服务器,从而实现零停机服务。随着发展,它已经超越了LVS,成为...

    keepalived安装手册

    #### 一、Keepalived简介 Keepalived是一款开源的高可用解决方案软件,主要用于实现Linux操作系统上的虚拟路由器冗余协议(VRRP)。通过Keepalived,可以构建出一个高可用的服务集群,提高系统的稳定性和可靠性。...

    Keepalived+Nginx+Tomcat 高可用集群搭建实战记录

    Keepalived 简介 Keepalived 是一种基于 Linux 的高可用性解决方案,可以提供可靠的负载均衡和故障转移功能。Keepalived 的主要功能包括: * Virtual IP 地址管理 * 服务器健康检查 * 负载均衡 * 故障转移 Nginx ...

    Keepalived以及LVS完全使用指南

    1.2 **KEEPALIVED简介**:Keepalived是为LVS设计的一个辅助工具,它负责监控和管理LVS的负载均衡器,确保当主服务器出现故障时,能自动切换到备份服务器,维持服务的不间断运行。 1.3 **KEEPALIVED功能**: - **...

    keepalived-1.2.20.tar.gz

    一、Keepalived简介 Keepalived的主要任务是监控和维护LVS(Linux Virtual Server)集群的健康状态,当主服务器出现故障时,它可以快速将流量切换到备用服务器,确保服务的连续性。Keepalived包含两个主要组件:...

    keepalived-1.2.18 Linux版本亲测可用 .zip

    一、keepalived简介 keepalived的主要功能是监控和管理LVS集群,通过健康检查确保服务器节点的正常运行。当主服务器出现故障时,它可以自动将流量切换到备份服务器,从而实现零停机切换。这个过程无需人工干预,...

    lvs+keepalived 详细教程 HA

    #### 七、Keepalived简介 **Keepalived**是一款开源的高可用性解决方案,常用于配合LVS构建高可用性的服务器集群。Keepalived的主要功能包括健康检查、故障恢复以及VRRP协议的支持等,能够有效地提升LVS集群的整体...

    linux基于keepalived的mysql双机热备实现方案(详细过程完整版)

    二、Keepalived简介 Keepalived是一款基于VRRP协议的高可用性工具,它能够实现IP地址的瞬间无缝切换。在MySQL双主配置中,两个数据库实时同步,任何一方的改动都会被快速复制到另一方,从而保持数据的一致性。 三、...

    nginx和keepalived 安装使用

    Keepalived简介** - Keepalived是一款用于监控网络服务的软件,可以实现对网络服务的健康检查,通常用于搭建高可用环境。 - 在Nginx高可用集群中,Keepalived通常作为主备切换的核心组件。 **2. Keepalived配置...

    Keepalived+Nginx实现高可用Web负载均衡

    #### Keepalived简介 Keepalived是一种基于VRRP协议的高性能服务器高可用性解决方案。它能够检测服务器故障并在出现故障时快速切换到备份服务器,从而确保服务的连续性和稳定性。Keepalived的核心组件包括: - **...

    Linux负载均衡--LVS+Keepalived(终极文档).pdf

    二、Keepalived 简介 Keepalived 是一种高可用负载均衡解决方案,可以实现 RealServer 的健康状态检查和 LoadBalance 主机和Backup 主机之间的 failover。Keepalived 可以与 LVS 结合使用,提供高性能高可用的...

    keepalived 集群高可用 源码包

    简介:keepalived里添加了新的 配置文件版本,添加了 installation文档,添加了 keepalived.service keepalived.service 是基于ubuntu中systemctl命令来编写的一个启动服务,详细内容你应该查看keepalived-server...

Global site tag (gtag.js) - Google Analytics