您的位置:首页 > 房产 > 建筑 > 使用Keepalived实现双机热备(虚拟漂移IP地址)详细介绍

使用Keepalived实现双机热备(虚拟漂移IP地址)详细介绍

2024/10/7 6:42:37 来源:https://blog.csdn.net/jxjdhdnd/article/details/140438408  浏览:    关键词:使用Keepalived实现双机热备(虚拟漂移IP地址)详细介绍

 

🏡作者主页:点击! 

🐧Linux基础知识(初学):点击!

🐧Linux高级管理防护和群集专栏:点击!

🔐Linux中firewalld防火墙:点击!

⏰️创作时间:2024年7月15日14点40分

🀄️文章质量:95分


目录

——前言——

Keepalived 简介

工作原理

主服务器

备服务器

虚拟(漂移)地址测试


——前言——

以下内容全是重点 请仔细阅读

以下内容全是重点 请仔细阅读

Keepalived 是一个用于实现高可用性。它主要用于确保服务的连续性,防止单点故障,通常应用于负载均衡和故障转移场景。

Keepalived 简介

  1. Keepalived 是一个基于 VRRP(虚拟路由冗余协议)协议的软件实现。

  2. 它可以管理 LVS(Linux Virtual Server)集群系统,也可以单独用于实现服务的高可用。

  3. Keepalived 通过配置虚拟 IP 地址(VIP)来实现服务的故障转移。

  4. 它能够监控服务器和服务的状态,在发生故障时自动进行切换。

特别适合需要快速故障转移和负载均衡的网络环境

工作原理

  1. VRRP协议

    Keepalived使用VRRP(虚拟路由冗余协议)来实现高可用性。

    多台服务器组成一个VRRP组,共享一个虚拟IP地址。

    一台服务器作为主服务器,其他为备用服务器。

    主服务器定期发送VRRP通告包,如果备用服务器在一定时间内没有收到通告,就会接管虚拟IP。

2.健康检查

Keepalived定期检查本地和远程服务的健康状态。

支持多种检查方式,如TCP、HTTP、SSL等。

如果检测到服务不可用,会触发故障转移。

3.负载均衡

当与LVS(Linux Virtual Server)结合使用时,Keepalived可以管理LVS的配置。

支持多种负载均衡算法,如轮询、加权轮询、最少连接等。

4.配置管理

通过配置文件定义VRRP实例、虚拟IP、健康检查等参数。

支持动态配置更新,无需重启服务。

5.故障转移

当主服务器失效时,备用服务器会自动接管虚拟IP。

转移过程快速,通常在几秒内完成,对用户几乎无感知。

过这些机制,Keepalived能够有效地提供高可用性和负载均衡服务,确保系统的稳定性和可靠性。

实验环境

主 192.168.192.100    虚拟漂移地址 192.168.192.200

备 192.168.192.111     虚拟漂移地址 192.168.192.200

主服务器


安装所需组件
yum -y install gcc openssl-devel libnfnetlink-devel libnl libnl3-develyum install -y keepalived ipvsadm

编辑配置文件

以下配置都是重点 大家可以一一比对

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.loc  ! 设置通知邮件的发送地址smtp_server 192.168.200.1  ! 设置SMTP服务器地址smtp_connect_timeout 30  ! 设置SMTP连接超时时间(秒)router_id R1  ! 设置路由器标识}vrrp_instance VI_1 {state MASTER  ! 设置初始状态为主节点interface ens33  ! 设置VRRP实例绑定的网络接口virtual_router_id 2  ! 设置虚拟路由器IDpriority 100  ! 设置优先级advert_int 1  ! 设置VRRP广播间隔(秒)authentication {auth_type PASS  ! 设置认证类型为密码auth_pass 1111  ! 设置认证密码}virtual_ipaddress {192.168.192.200  ! 设置虚拟IP地址}
}virtual_server 192.168.192.200 80 {delay_loop 6  ! 设置健康检查间隔(秒)lb_algo rr  ! 设置负载均衡算法为轮询lb_kind DR  ! 设置LVS模式为直接路由nat_mask 255.255.255.0  ! 设置NAT掩码
!   persistence_timeout 50  ! 会话保持时间(秒),当前被注释protocol TCP  ! 设置协议为TCPreal_server 192.168.192.112 80 {weight 1  ! 设置服务器权重TCP_CHECK {connect_port 80  ! 设置健康检查连接的端口connect_timeout 3  ! 设置连接超时时间(秒)nb_get_retry 3  ! 设置重试次数delay_before_retry 3  ! 设置重试间隔(秒)}}real_server 192.168.192.114 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}

keepalived会定期对real server进行健康检查,如果检查失败,它会尝试重新连接。如果在指定的重试次数内都无法成功连接,keepalived会将该服务器标记为不可用,并将流量转发到其他可用的服务器。


 

systemctl start keepalived    #启动服务
systemctl enable keepalived    #开机自启systemctl status keepalived

备服务器

安装所需组件
yum -y install gcc openssl-devel libnfnetlink-devel libnl libnl3-devel
yum install -y keepalived ipvsadm

编辑配置文件

根据行号来修改所需的信息 我都列出来 大家自行寻找出来修改

vim /etc/keepalived/keepalived.conf

 12    router_id R213 }14 15 vrrp_instance VI_1 {16     state BACKUP17     interface ens3318     virtual_router_id 219     priority 9520     advert_int 121     authentication {22         auth_type PASS23         auth_pass 111124     }25     virtual_ipaddress {26         192.168.192.20027     }28 }30 virtual_server 192.168.192.200 80 {31     delay_loop 632     lb_algo rr33     lb_kind DR34     nat_mask 255.255.255.035 #   persistence_timeout 5036     protocol TCP37 38     real_server 192.168.192.112 80 {39         weight 140         TCP_CHECK{41             connetc_port 8042             connect_timeout 343             nb_get_retry 344             delay_before_retry 345          }46 47     real_server 192.168.192.114 80 {48         weight 149         TCP_CHECK{50             connetc_port 8051             connect_timeout 352             nb_get_retry 353             delay_before_retry 354          }55         }56         }57     }

systemctl start keepalived  #启动服务
systemctl enable keepalived #开机自启
 

查看是否出错

systemctl status keepalived

虚拟(漂移)地址测试

在主服务器上查看

[root@localhost ~]# ip a sh dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:af:b6:81 brd ff:ff:ff:ff:ff:ffinet 192.168.192.100/24 brd 192.168.192.255 scope global ens33valid_lft forever preferred_lft foreverinet 192.168.192.200/32 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feaf:b681/64 scope link valid_lft forever preferred_lft forever

备服务器查看

[root@localhost ~]# ip a sh dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:b2:65:cb brd ff:ff:ff:ff:ff:ffinet 192.168.192.111/24 brd 192.168.192.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:feb2:65cb/64 scope link valid_lft forever preferred_lft forever

此刻我们关闭终止主服务器keepalived

在查看

主服务器

备服务器

"成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

神秘泣男子

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com