当前位置:网站首页>简述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实现。
边栏推荐
- leetcode 241. Different Ways to Add Parentheses 为运算表达式设计优先级(中等)
- Deformable convolutional dense network for enhancing compressed video quality
- Win10 or win11 taskbar, automatically hidden and transparent
- Read PG in data warehouse in one article_ stat
- Data Lake (IX): Iceberg features and data types
- 在软件工程领域,搞科研的这十年!
- Ctfshow, information collection: web6
- 什么是云原生?这回终于能搞明白了!
- Find your own value
- 用于增强压缩视频质量的可变形卷积密集网络
猜你喜欢
在软件工程领域,搞科研的这十年!
Navigation — 这么好用的导航框架你确定不来看看?
CTFshow,信息搜集:web6
How to enable radius two factor / two factor (2fa) identity authentication for Anheng fortress machine
Niuke real problem programming - day18
⼀个对象从加载到JVM,再到被GC清除,都经历了什么过程?
MySQL installation configuration 2021 in Windows Environment
用于增强压缩视频质量的可变形卷积密集网络
CTFshow,信息搜集:web3
什么是云原生?这回终于能搞明白了!
随机推荐
What is cloud primordial? This time, I can finally understand!
Zhiting doesn't use home assistant to connect Xiaomi smart home to homekit
《微信小程序-进阶篇》组件封装-Icon组件的实现(一)
众昂矿业:萤石继续引领新能源市场增长
@Introduction and three usages of controlleradvice
Several ways of JS jump link
CTFshow,信息搜集:web6
Guangzhou Development Zone enables geographical indication products to help rural revitalization
时空可变形卷积用于压缩视频质量增强(STDF)
一个需求温习到的所有知识,h5的表单被键盘遮挡,事件代理,事件委托
buffer overflow protection
激光雷达lidar知识点滴
Lidar knowledge drops
Delete a whole page in word
[today in history] July 7: release of C; Chrome OS came out; "Legend of swordsman" issued
The method of parsing PHP to jump out of the loop and the difference between continue, break and exit
上半年晋升 P8 成功,还买了别墅!
Xiaomi's path of chip self-development
Protection strategy of server area based on Firewall
Five pain points for big companies to open source