当前位置: 首页 > article >正文

LVS-DR高可用-Keepalived

目录

Keepalved双机热备

核心概念

关键组件

工作流程

实例环境

配置keepalived

Web服务器配置


Keepalved双机热备

Keepalived双机热备是一种基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)实现的高可用性解决方案,广泛应用于Linux服务器集群中,确保关键服务的持续运行

核心概念

  • VRRP协议
    通过虚拟路由器(Virtual Router)实现冗余,同一组内的物理服务器共享一个虚拟IP(VIP)。主服务器(MASTER)负责处理流量,备份服务器(BACKUP)实时监控主服务器状态,若主服务器故障,备份服务器自动接管VIP,确保服务不中断。

  • 角色分工

    • MASTER:当前提供服务的服务器,拥有最高优先级。
    • BACKUP:备用服务器,监控MASTER状态,随时准备接管

关键组件

  • 虚拟IP(VIP)
    客户端通过VIP访问服务,实际请求由MASTER处理。MASTER故障时,VIP自动漂移至BACKUP,实现无缝切换。
  • 优先级(Priority)
    MASTER的优先级高于BACKUP(如100 vs 90),确保故障时优先级最高的BACKUP接管。
  • 健康检查(Health Check)
    Keepalived定期检测服务(如Nginx、MySQL)是否存活。若服务异常,自动降低服务器优先级,触发VIP切换。

工作流程

  1. 启动阶段
    • 所有服务器启动Keepalived服务,MASTER绑定VIP并开始处理流量。
    • BACKUP进入监听状态,不处理流量。
  2. 正常运行
    • MASTER定期发送VRRP广播包,BACKUP接收并确认MASTER存活。
  3. 故障切换
    • 若MASTER宕机或服务异常,BACKUP检测到心跳超时,自动提升为MASTER并绑定VIP。
    • 客户端无感知,服务持续可用。
  4. 故障恢复
    • 原MASTER恢复后,若优先级仍最高,可重新抢占VIP(需配置抢占模式)

实例环境

两台keepalived、两台web服务器、一台客户机

配置keepalived

01、02关闭防火墙

[root@localhost ~]# systemctl stop firewalld        #关闭防火墙
[root@localhost ~]# setenforce 0                #关闭系统内核

01、02下载 keepalived

[root@localhost ~]# dnf -y install keepalived        #下载keepalved

 01、02修改配置文件

[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# cp keepalived.conf.sample keepalived.conf

01配置文件

[root@localhost ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}7
notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_01             #idvrrp_skip_check_adv_addr#vrrp_strict                	#严格模式vrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTER                #先前定义的主interface ens33             #ens33virtual_router_id 51        #热备组 priority 100                #优先级advert_int 1authentication {	    	#认证类型auth_type PASS		    #类型auth_pass 1111		    #密码}virtual_ipaddress {192.168.10.100      #VIP漂移地址}
}virtual_server 192.168.10.100 80 {	#虚拟服务器(虚拟VIP)delay_loop 6lb_algo rr		                #负载均衡调度算法lb_kind DR		                #工作模式#persistence_timeout 50	        #网页超时时间protocol TCP		            #传输层协议real_server 192.168.10.103 80 {	#真实服务器weight 1		            #权重TCP_CHECK {		            #TCP健康检查connect_port 80        	#检查端口connect_timeout 3	    #连接超时时间 retry 3		            #重试次数delay_before_retry 3	#重试间隔}}real_server 192.168.10.104 80 {	#真实服务器weight 1		            #权重TCP_CHECK {		            #TCP健康检查connect_port 80        	#检查端口connect_timeout 3	    #连接超时时间retry 3		            #重试次数delay_before_retry 3	#重试间隔}}
}

02配置文件

[root@localhost ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_02            #idvrrp_skip_check_adv_addr#vrrp_strict                #注释严格模式vrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state BACKUP                #先前定义的主interface ens33             #网卡信息ens33virtual_router_id 51        #热备组priority 90                 #优先级advert_int 1authentication {            #认证类型auth_type PASS          #类型auth_pass 1111          #密码}virtual_ipaddress {192.168.10.100          #VIP漂移地址}
}virtual_server 192.168.10.100 80 {         #虚拟服务器(虚拟VIP)delay_loop 6lb_algo rr                             #负载均衡调度算法lb_kind NAT                            #工作模式#persistence_timeout 50                #网页超时时间protocol TCP                           #传输层协议real_server 192.168.10.103 80 {        #真实服务器weight 1                           #权重TCP_CHECK{                         #TCP健康检查connect_port 80                #检查端口connect_timeout 3              #连接超时时间retry 3                        #重试次数delay_before_retry 3           #重试间隔}}real_server 192.168.10.104 80 {        #真实服务器weight 1                           #权重TCP_CHECK{                         #TCP健康检查connect_port 80                #检查端口connect_timeout 3              #连接超时时间retry 3                        #重试次数delay_before_retry 3           #重试间隔}}
}

启动Keepalived

[root@localhost ~]# systemctl restart keepalived

Web服务器配置

 03、04关闭防火墙

[root@localhost ~]# systemctl stop firewalld			#关闭防火墙
[root@localhost ~]# setenforce 0				#关闭内核

下载httpd

[root@localhost ~]# dnf -y install httpd

配置网站内容

[root@localhost ~]# echo "33333333">/var/www/html/index.html	#03网站内容
[root@localhost ~]# echo "444444444">/var/www/html/index.html	#04网站内容

 启动httpd

[root@localhost ~]# systemctl satart httpd

 配置动态路由

[root@localhost ~]# ip addr add 192.168.10.100/32 dev lo label lo:0	#动态路由添加
(如果没有生效 nmcli c reload;nmcli c up lo 重载)

静态路由

[root@localhost ~]# route add -host 192.168.10.100 dev lo		#静态

如果想要开机自启动 修改配置文件 /etc/rc.local

[root@localhost ~]# vim /etc/rc.local
route add -host 192.168.10.100 dev lo

修改sysctl.conf

[root@localhost ~]# vim /etc/sysctl.conf
#末尾添加
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

验证:

 

[root@localhost ~]# curl 192.168.10.100
44444444
[root@localhost ~]# curl 192.168.10.100
33333333
[root@localhost ~]# curl 192.168.10.100
44444444
[root@localhost ~]# curl 192.168.10.100
33333333
[root@localhost ~]# curl 192.168.10.100
44444444
[root@localhost ~]# curl 192.168.10.100
33333333

后续可以尝试将其中一个web关掉或者将调度器关掉

up主只测试了关掉其中一个web 至于调度器 关掉了一个 就访问不进去了 备用的调度器没有抢占又或者不是Master 导致一直访问不上 也有可能是 两台keepalived还没有检测出来对方是否已经挂了 时间太长 所以就没有再尝试了 感兴趣的小伙伴可以尝试一下 我的配置应该是没问题的 有问题及时评论 及时解决 互相学习 还有噢 此外 还可以多添加一台NFS服务器 之前的文章有关于这方面的操作 应该是LVS—DR中 只不过觉得没必要 所以就没在做了 ok就这样 

 

 

 

 

 

 

 

 

 

http://www.lryc.cn/news/2394355.html

相关文章:

  • 阿里云服务器邮件发送失败(dail tcp xxxx:25: i/o timeout)因为阿里云默认禁用 25 端口
  • 力扣HOT100之动态规划:322. 零钱兑换
  • 电商售后服务系统与其他系统集成:实现售后流程自动化
  • kafka学习笔记(三、消费者Consumer使用教程——消费性能多线程提升思考)
  • mongodb删除字段
  • [JVM] JVM内存调优
  • Liunx部署ES单机集群
  • 秒出PPT正式改名秒出AI,开启AI赋能新体验!
  • Unity中的AudioManager
  • VM改MAC电脑密码(截图)
  • SpringBoot+Vue+微信小程序校园自助打印系统
  • 【论文精读】2024 CVPR--Upscale-A-Video现实世界视频超分辨率(RealWorld VSR)
  • 学术合作交流
  • 【线上故障排查】Redis缓存与数据库中数据不一致问题的排查与同步策略优化
  • 【Git命令】
  • 【LUT技术专题】图像自适应3DLUT
  • 德拜温度热容推导
  • 扫一扫的时候会经历哪些事
  • Typescript学习教程,从入门到精通,TypeScript 泛型与类型操作详解(二)(17)
  • 【iOS】源码阅读(五)——类类的结构分析
  • 基于CangjieMagic的RAG技术赋能智能问答系统
  • 算力租赁革命:弹性模式如何重构数字时代的创新门槛​
  • 图论回溯
  • 使用arthas热替换在线运行的java class文件
  • RFID测温芯片助力新能源产业安全与能效提升
  • S32K3 工具篇9:如何在无源码情况下灵活调试elf文件
  • Nacos 配置文件总结
  • ASP.NET Web Forms框架识别
  • LG P4119 [Ynoi2018] 未来日记 Solution
  • 流程引擎选型指南