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

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就这样 

 

 

 

 

 

 

 

 

 

相关文章:

  • 中国头盔护具展在杭州举办合适
  • 虚拟机数据挂载映射
  • Chuanpai、Nihongo wa Muzukashii Desu、K-skip Permutation
  • 苍穹外卖 10 用户统计订单统计 销量排名统计
  • leetcode450.删除二叉搜索树中的节点:递归法利用有序性处理四种删除场景
  • 1 µs = 10⁻⁶ s
  • github.com/lib/pq 数据库链接完整示例方式
  • GitHub Copilot 使用手册与原理解析
  • Spring Tool Suite(STS)4国内下载与安装教程
  • 1、Pytorch介绍与安装
  • 数据中心双活架构解决方案
  • SOC-ESP32S3部分:18-串口
  • MySQL的基本架构
  • 13 接口自动化-框架封装之 csv 数据驱动封装和日志
  • 哈工大编译原理 | 7.运行时存储分配
  • 上传图片转成3D VR效果 / 用photo-sphere-viewer实现图片VR效果 / VR效果在项目中落地实践
  • JMeter 是什么
  • 基于照片环境信息的AI定位技术:从原理到实战的深度解析
  • 2025年公共管理与信息技术国际会议:智能治理与数据驱动的创新之路
  • Tailwind CSS 实战,基于 Kooboo 构建 AI 对话框页面(四):语音识别输入功能
  • 免费用手机做网站/广州seo网络培训课程
  • 网站排名套餐/谷歌官网下载app
  • 电子商务网站建设与管理期末/武汉seo排名公司
  • aspcms手机网站怎么做/室内设计培训班学费一般多少
  • 徐州的网站设计/企业网络推广网站
  • 网站没有后台怎么更新文章/百度开放平台登录