当前位置:网站首页>简述keepalived工作原理
简述keepalived工作原理
2022-07-07 12:59:00 【wwzroom】
keepalived的原理是vrrp原理和lvs原理的组合
vrrp 协议的软件实现,原生设计目的为了高可用 ipvs服务
官网:http://keepalived.org/
功能:
- 基于vrrp协议完成地址流动
- 为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
- 为ipvs集群的各RS做健康状态检测(通过访问指定页面返回结果进行健康性检查)
- 基于脚本调用接口完成脚本中定义的功能,进而影响集群事务。
- 支持nginx、haproxy等服务
1.VRRP 网络层硬件实现

企业内访问外网通过路由器实现,为了防止路由器出问题,因此要两台路由器,但是两台路由器的ip和网关都不一样,将两台路器虚拟出同一个ip(vip)和网关,让客户端的网关都指向新的网关,同一时间只运行在一台路由器上,不同时间进行浮动,避免冲突。当一台出问题,vip就会立即浮动到另一台机器,保证能持续上网。
vrrp工作主机为了第一时间知道对方主机的情况,通过建立心跳线沟通,采用发免费arp的方法告知对方自己的工作状态,工作的主机发免费的arp,(可以广播,也可以单播),目的就是告知自己拥有vip,并告知自己的优先级,备用节点接收到消息与自己的优先级进行对比,自己的优先级低于工作的节点,自己就不工作,当接收不到免费的arp,或者工作的节点的优先级低于自己,从节点就会开始工作,此时从节点获取vip进行工作。
可以采用防火墙策略破坏彼此的心跳线,则因为接收不到免费的arp,此时两台主机主机都会获得vip,就会产生脑裂现象,如果发生了脑裂现象,首先是要关掉一台主机的keepalived服务,保证服务能够正常工作,然后再查明原因进行维护。
2.Keepalived的结构和使用lvs规则进行工作
官方文档: https://keepalived.org/doc/
http://keepalived.org/documentation.html

用户空间核心组件:
vrrp stack:VIP消息通告
checkers:监测real server
system call:实现 vrrp 协议状态转换时调用脚本的功能
SMTP:邮件组件
IPVS wrapper:生成IPVS规则Netlink Reflector:网络接口WatchDog:监控进程控制组件:提供keepalived.conf 的解析器,完成Keepalived配置
IO复用器:针对网络目的而优化的自己的线程抽象
内存管理组件:为某些通用的内存管理功能(例如分配,重新分配,发布等)提供访问权限
keepalived分为内核空间和用户空间,ipvs是lvs的核心组件,通过IPVS wrapper组件把lvs规则通过keepalived写入lvs内核空间,控制lvs的调度策略,lvs生产中就是配合keepalived使用的,netlink reflector组件实现vip的策略,VRRP Stack 实现vip浮动。Checkers实现健康性检查,丰富了lvs的缺失功能,Keepalived的出现就是弥补lvs的不足,实现生产中的高可用。SMTP是邮件报警服务。Keepalive的还可以和nginx进行配合,因为nginx代理的主备关系之间不能健康性检查和公用,通过Keepalived实现。代理高可用就靠keepalived实现。
边栏推荐
- A laravel background management expansion package you can't miss - Voyager
- AWS learning notes (III)
- Ascend 910 realizes tensorflow1.15 to realize the Minist handwritten digit recognition of lenet network
- Discussion on CPU and chiplet Technology
- Xiaomi's path of chip self-development
- Niuke real problem programming - Day11
- Today's sleep quality record 78 points
- JSON parsing instance (QT including source code)
- 【OBS】RTMPSockBuf_Fill, remote host closed connection.
- 比尔·盖茨晒48年前简历:“没你们的好看”
猜你喜欢
随机推荐
What is the process of ⼀ objects from loading into JVM to being cleared by GC?
Classification of regression tests
Wechat applet - Advanced chapter component packaging - Implementation of icon component (I)
Niuke real problem programming - Day12
众昂矿业:萤石继续引领新能源市场增长
数学建模——什么是数学建模
Ascend 910 realizes tensorflow1.15 to realize the Minist handwritten digit recognition of lenet network
Bits and Information & integer notes
15、文本编辑工具VIM使用
Yyds dry goods inventory # solve the real problem of famous enterprises: cross line
Huawei cloud database DDS products are deeply enabled
Several ways of JS jump link
防火墙基础之服务器区的防护策略
Win10 or win11 taskbar, automatically hidden and transparent
Pinduoduo lost the lawsuit, and the case of bargain price difference of 0.9% was sentenced; Wechat internal test, the same mobile phone number can register two account functions; 2022 fields Awards an
“百度杯”CTF比赛 2017 二月场,Web:include
Computer win7 system desktop icon is too large, how to turn it down
Lidar knowledge drops
Navigation - are you sure you want to take a look at such an easy-to-use navigation framework?
Concurrency Control & NoSQL and new database








