keepalived 简介

[b]keepalived 简介[/b]

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


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


[b]工作原理(以Mysql双主作为例子说明)[/b]
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多播地址隐射
[url]https://blog.csdn.net/fuming0210sc/article/details/53669657[/url]


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


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

每个节点都会有一个初始优先级(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之间。

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


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

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


参考(keepalived工作原理):[url]http://outofmemory.cn/wiki/keepalived-configuration[/url]
参考(LVS+Keepalived实现高可用集群):[url]https://my.oschina.net/sansom/blog/121445[/url]
参考(Mysql双主+keepalived实现HA):[url]http://blog.sina.com.cn/s/blog_4f9fc6e10102w6xy.html[/url]
[url]https://blog.csdn.net/bigtree_3721/article/details/51082157[/url](keepalive安装配置)
[url]https://www.cnblogs.com/pangguoping/p/5721517.html[/url](keepalived vip漂移基本原理及选举算法)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jie310600

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值