论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
主机系统
›
linux
›
Keepalived根本原理
Keepalived根本原理
徐锦洪
金牌会员
|
2024-8-2 16:15:24
|
显示全部楼层
|
阅读模式
楼主
主题
973
|
帖子
973
|
积分
2919
本文分享自天翼云开发者社区《
Keepalived根本原理
》,作者:Ujnrfc
Keepalived简介
Keepalived是Linux下一个轻量级别的高可用办理方案。高可用:广义来讲,是指整个系统的高可用行;狭义的来讲就是主机的冗余和接受。
它与HeartBeat实现类似的功能,都可以实现服务大概网络的高可用,但是又有差别,HeartBeat是一个专业的、功能完善的高可用软件,它提供HA软件所需的根本功能,比如:心跳检测、资源接受,检测集群中的服务,在集群节点转移共享IP地址的所有者等等。HeartBeat功能强大,但是部署和利用相对比力麻烦,与HeartBeat相比,Keepalived主要是通过假造路由冗余来实现高可用功能,虽然它没有HeartBeat功能强大,但是Keepalived部署和利用非常的简单,所有配置只需要一个配置文件即可以完成。
Keepalived早先是为LVS计划的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模子的第三、第四层、第五层交换机制检测每个服务节点的状态,如果某个服务器节点出现异常,大概工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除,这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。
Keepalived又加入了VRRP的功能,VRRP(VritrualRouterRedundancyProtocol,假造路由冗余协议)出现的目的是办理静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,因此Keepalvied一方面具有服务器状态检测和故障隔离功能,另外一方面也有HAcluster功能。
现在健康检查和失败切换是keepalived的两大焦点功能。所谓的健康检查,就是采用tcp三次握手,icmp请求,http请求,udp echo请求等方式对负载均衡器后面的现实的服务器(通常是承载真实业务的服务器)举行保活;而失败切换主要是应用于配置了主备模式的负载均衡器,利用VRRP维持主备负载均衡器的心跳,当主负载均衡器出现问题时,由备负载均衡器承载对应的业务,从而在最大限度上淘汰流量损失,并提供服务的稳定性。
VRRP协议与工作原理
在现实的网络环境中。主机之间的通信都是通过配置静态路由大概(默认网关)来完成的,而主机之间的路由器一旦发生故障,通信就会失效,因此这种通信模式当中,路由器就成了一个单点瓶颈,为了办理这个问题,就引入了VRRP协议。
VRRP协议是一种容错的主备模式的协议,保证当主机的下一跳路由出现故障时,由另一台路由器来代替出现故障的路由器举行工作,通过VRRP可以在网络发生故障时透明的举行设备切换而不影响主机之间的数据通信。
假造路由器:假造路由器是VRRP备份组中所有路由器的聚集,它是一个逻辑概念,并不是正真存在的。从备份组外貌看备份组中的路由器,感觉组中的所有路由器就像一个 一样,可以理解为在一个组中:主路由器+所有备份路由器=假造路由器。假造路由器有一个假造的IP地址和MAC地址。主机将假造路由器当作默认网关。假造MAC地址的格式为00-00-5E-00-01-{VRID}。通常环境下,假造路由器回应ARP请求利用的是假造MAC地址,只有假造路由器做特殊配置的时候,才回应接口的真实MAC地址。
主路由器(MASTER):假造路由器通过假造IP对外提供服务,而在假造路由器内部同一时间只有一台物理路由器对外提供服务,这台提供服务的物理路由器被称为主路由器。一般环境下Master是由推举算法产生,它拥有对外服务的假造IP,提供各种网络功能,如:ARP请求,ICMP数据转发等。
备份路由器(BACKUP):假造路由器中的其他物理路由器不拥有对外的假造IP,也不对外提供网络功能,仅担当MASTER的VRRP状态告示信息,这些路由器被称为备份路由器。当主路由器失败时,处于BACKUP脚色的备份路由器将重新举行推举,产生一个新的主路由器进入MASTER脚色,继续提供对外服务,整个切换对用户来说是完全透明的。
VRRP推举机制
VRRP路由器在运行过程中有三种状态:Initialize、Master、Backup。一般主路由器处于Master状态,备份路由器处于Backup状态。
VRRP利用推举机制来确定路由器的状态,优先级如下:
1.VRRP组中IP拥有者。如果假造IP地址与VRRP组中的某台VRRP路由器IP地址相同,则此路由器为IP地址拥有者,这台路由器将被定位主路由器。
2.比力优先级。如果没有IP地址拥有者,则比力路由器的优先级,优先级的范围是0~255,优先级大的作为主路由器
3.比力IP地址。在没有Ip地址拥有者和优先级相同的环境下,IP地址大的作为主路由器。
如下图所示,假造IP为10.1.1.254,在VRRP组中没有IP地址拥有者,则比力优先级,很明显router_a和router_b的优先级要大于router_c,则比力router_a和router_b的IP地址,router_a的IP地址大。以是router_a为组中的主路由器。
VRRP工作过程
路由器利用VRRP 功能后,会根据优先级确定自己在备份组中的脚色。优先级高的路由器成为Master 路由器,优先级低的成为Backup 路由器。Master 拥有对外服务的假造IP,提供各种网络功能,并定期发送VRRP 报文,通知备份组内的其他设备自己工作正常;Backup 路由器只吸收Master 发来的报文信息,用来监控Master 的运行状态。当Master 失效时,Backup 路由器举行推举,优先级高的Backup 将成为新的Master 。
主备切换逻辑如下:在抢占方式下,当Backup 路由器收到VRRP 报文后,会将自己的优先级与报文中的优先级举行比力。如果大于告示报文中的优先级,则成为Master 路由器;否则将保持Backup状态;在非抢占方式下,只要Master 路由器没有出现故障,备份组中的路由器始终保持Master 或Backup 状态,Backup 路由器即使随后被配置了更高的优先级也不会成为Master 路由器;如果Backup 路由器的定时器超时后仍未收到Master 路由器发送来的VRRP报文,则认为Master 路由器已经无法正常工作,此时Backup 路由器会认为自己是Master 路由器,并对外发送VRRP报文。备份组内的路由器根据优先级推举出Master 路由器,承担报文的转发功能。
Keepalvied的工作原理
Keepalived 包含以下组件:
core:是keepalived的焦点,复杂主历程的启动和维护,全局配置文件的加载解析等
check:负责healthchecker(健康检查),包括了各种健康检查方式,以及对应的配置的解析包括LVS的配置解析
vrrp:vrrpd子历程,VRRPD子历程就是来实现VRRP协议的
libipfwc:iptables(ipchains)库,配置LVS
libipvs:配置LVS
Keepalived 启动后会 通过healthchecker组件负责检查各自服务器的健康状态,如果MASTER节点上服务不可用就会通过vrrpd组件切换到BACKUP状态。
Keepalived工作在TCP/IP参考模子的三层、四层、五层(物理层,链路层):
网络层(3):Keepalived通过ICMP协议向服务器集群中的每一个节点发送一个ICMP数据包(有点类似与Ping的功能),如果某个节点没有返回响应数据包,那么认为该节点发生了故障,Keepalived将报告这个节点失效,并从服务器集群中剔除故障节点。
传输层(4):Keepalived在传输层里利用了TCP协议的端口毗连和扫描技术来判定集群节点的端口是否正常,比如对于常见的WEB服务器80端口。大概SSH服务22端口,Keepalived一旦在传输层探测到这些端标语没有数据响应和数据返回,就认为这些端口发生异常,然后欺压将这些端口所对应的节点从服务器集群中剔撤消。
应用层(5):Keepalived的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived工作方式,例如:可以通过编写步调大概脚本来运行Keepalived,而Keepalived将根据用户的设定参数检测各种步调大概服务是否允许正常,如果Keepalived的检测结果和用户设定的不一致时,Keepalived将把对应的服务器从服务器集群中剔除。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
徐锦洪
金牌会员
这个人很懒什么都没写!
楼主热帖
彻底卸载SQL Server
马丽明:选择超融合架构的三个要素 ...
【计算机网络】TCP为什么需要3次握手 ...
java数据库开发与实战应用,2022最值得 ...
漏洞扫描工具nessus、rapid7 insightvm ...
Oracle夺命连环25问,你能坚持第几问? ...
iOS16新特性 | 灵动岛适配开发与到家业 ...
c# 实现定义一套中间SQL可以跨库执行的 ...
WPF工控组态软件之冷却塔和空气压缩机 ...
几种数据库jar包获取方式
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
物联网
网络安全
容器及微服务
.Net
数据安全
DevOps与敏捷开发
Mysql
开源技术
快速回复
返回顶部
返回列表