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

news2024/11/8 6:28:45

 

🏡作者主页:点击! 

🐧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-devel

yum install -y keepalived ipvsadm

编辑配置文件

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

vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@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  ! 设置虚拟路由器ID
    priority 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  ! 设置协议为TCP

    real_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 1
        TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_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 R2
 13 }
 14 
 15 vrrp_instance VI_1 {
 16     state BACKUP
 17     interface ens33
 18     virtual_router_id 2
 19     priority 95
 20     advert_int 1
 21     authentication {
 22         auth_type PASS
 23         auth_pass 1111
 24     }
 25     virtual_ipaddress {
 26         192.168.192.200
 27     }
 28 }
 
 30 virtual_server 192.168.192.200 80 {
 31     delay_loop 6
 32     lb_algo rr
 33     lb_kind DR
 34     nat_mask 255.255.255.0
 35 #   persistence_timeout 50
 36     protocol TCP
 37 
 38     real_server 192.168.192.112 80 {
 39         weight 1
 40         TCP_CHECK{
 41             connetc_port 80
 42             connect_timeout 3
 43             nb_get_retry 3
 44             delay_before_retry 3
 45          }
 46 
 47     real_server 192.168.192.114 80 {
 48         weight 1
 49         TCP_CHECK{
 50             connetc_port 80
 51             connect_timeout 3
 52             nb_get_retry 3
 53             delay_before_retry 3
 54          }
 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 1000
    link/ether 00:0c:29:af:b6:81 brd ff:ff:ff:ff:ff:ff
    inet 192.168.192.100/24 brd 192.168.192.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.192.200/32 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 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 1000
    link/ether 00:0c:29:b2:65:cb brd ff:ff:ff:ff:ff:ff
    inet 192.168.192.111/24 brd 192.168.192.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feb2:65cb/64 scope link 
       valid_lft forever preferred_lft forever

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

在查看

主服务器

备服务器

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

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

神秘泣男子

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1928002.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

影响代理运行速度的因素有哪些?

在当今数字化时代&#xff0c;代理服务器被广泛应用于网络接入、数据收集、隐私保护等各种场景。然而代理服务器的运行速度对用户体验和运行效率至关重要。在本文中&#xff0c;我们将讨论影响代理运行速度的主要因素&#xff0c;并介绍如何优化代理服务器以提高运行速度。 第一…

解决ESLint和Prettier冲突的问题

在配置了ESLint的项目中使用Prettier进行格式化可能会出现冲突&#xff0c;不如Prettier配置了使用双引号&#xff0c;ESLint配置了单引号&#xff0c;当然可以一个一个改成一样的配置&#xff0c;但是比较麻烦。我发现可以直接使用ESLint的规则进行格式化。在VSCode配置过程如…

【Orange Pi AIpro测评】基于OrangePi AIpro开发板从零搭建部署小雅影音库

文章目录 一、OrangePi AIpro介绍1.1 OrangePi AIpro 实物图1.2 OrangePi AIpro 示意图1.3 OrangePi AIpro详细信息介绍 二、为 OrangePi 安装 xfce4 桌面及 VNC 服务三、将 Ubuntu 镜像烧写到 TF 卡四、将 Ubuntu 镜像烧写到 NVMe SSD五、远程连接OrangePi AIpro的方式5.1 通过…

[C/C++入门][变量和运算]7、交换变量(空杯思想)

计算机中交换变量的值&#xff0c;可谓是非常常见&#xff0c;常见到几乎考试卷子里都有它。 如图&#xff0c;一杯牛奶&#xff0c;一杯咖啡&#xff0c;如何进行交换呢&#xff1f; 相信懂的都懂&#xff0c;不懂的看完这个图也就懂了。 生活中非常简单的例子&#xff0c;放…

新160个crackme - 003-Cruehead-CrackMe-3

运行分析 发现只有一个退出 PE分析 32位&#xff0c;未知程序&#xff0c;壳未知 静态分析 发现关键字符串 找到关键函数&#xff0c;分析函数&#xff0c;设置断点 动态调试 到断点到if语句&#xff0c;tab键切换至汇编代码 找到跳转语句 右键Assemble jnz改为jz然后回…

Matlab 判断直线上一点

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 判断一个点是否位于一直线上有很多方法,这里使用一种很有趣的坐标:Plucker线坐标,它的定义如下所示: 这个坐标有个很有趣的性质,我们可以使用Plucker坐标矢量构建一个Plucker矩阵: 则它与位于对应线上的齐次点…

LaTeX教程(015)-LaTeX文档结构(15)

LaTeX教程(015)- LaTeX \LaTeX LATE​X文档结构(15) 2.4 管理引用 LaTeX \LaTeX LATE​X有一些命令能够很容易的管理文档中的引用。它支持交叉引用(cross-references&#xff0c;文档内部对象的引用)&#xff0c;文献引用(bibliographic&#xff0c;对外部文档的引用)&#xf…

【UNI-APP】阿里NLS一句话听写typescript模块

阿里提供的demo代码都是javascript&#xff0c;自己捏个轮子。参考着自己写了一个阿里巴巴一句话听写Nls的typescript模块。VUE3的组合式API形式 startClient&#xff1a;开始听写&#xff0c;注意下一步要尽快开启识别和传数据&#xff0c;否则6秒后会关闭 startRecognition…

AndroidStudio 删除未使用的资源精简apk体积

历史项目开发下来&#xff0c;会有很多未使用的类、布局xml 、资源文件等。 未使用的图片资源&#xff0c;会增大apk体积。 为了精简应用&#xff0c;需要去掉。 查找未使用的资源 Code – Analyze Code – Run Inspection by Name 输入 Unused 会有提示 选择要查找的目录…

C#环境与数据类型

文章目录 C#环境.NET 框架集成开发环境 创建一个C#项目数据类型值类型引用类型对象类型object动态类型dynamic字符串类型string 指针类型 类型转换隐式转换显示转换&#xff08;强制转换&#xff09;C#提供的类型转换方法Convert类Parse方法TryParse方法 C#环境 .NET 框架 C#是…

ESP32CAM人工智能教学13

ESP32CAM人工智能教学13 openCV 安装 小智发现openCV是一款非常出色的机器视觉软件&#xff0c;可以配合ESP32Cam的摄像头&#xff0c;开发出许许多多的人工智能应用情境。 下载视频服务驱动库 OpenCV是开源的计算机视觉驱动库&#xff0c;可以应用于机器人的图形处理、机器学…

Mac清理软件cleanmymac x4.14.4破解版,2024年有免费cleanmymac x激活码

​ CleanMyMac X 4.14.4破解版可以快速识别并删除占用磁盘空间的无用文件&#xff0c;提升我们系统的存储空间。它还可以优化启动项、修复系统错误和保护隐私等。总之CleanMyMac X十分强大有需要的赶快下载吧&#xff0c; CleanMyMac X 许可证激活码:ak39840506641bjckr 需要…

RK3568笔记三十八:DS18B20驱动开发测试

若该文为原创文章&#xff0c;转载请注明原文出处。 DS18B20驱动参考的是讯为电子的单总线驱动第十四期 | 单总线_北京迅为的博客-CSDN博客 博客很详细&#xff0c;具体不描述。 只是记录测试下DS18B20读取温度。 一、介绍 流程基本和按键驱动差不多&#xff0c;主要功能是…

7.16做题总结

今日也是让我看到了繁神的ACM历程&#xff0c;确实&#xff0c;我觉得繁神的历程里面确实有一句很好 不想打算法竞赛了。这是因为有别的事情要做&#xff0c;不是因为我打不动。    不想打比赛凌晨两点才睡了。因为我会困。    不想在群里和高水平选手水群了&#xff0c;因…

BayesPrism(贝叶斯棱镜法)可提取单细胞数据去卷积后将信息映射至bulkRNA数据

贝叶斯棱镜法作为一种工具可以根据scRNA数据(作为先验模型)去推断bulkRNA数据中肿瘤微环境组成(不同免疫细胞组分/不同细胞群)和基因表达情况。 开发者展示的图片就很形象了&#xff0c;左边图展示了把标注了不同细胞类型的单细胞数据作为先验信息(prior info)的基因信息和bul…

【内网渗透】内网渗透学习之域渗透常规方法

域渗透常规方法和思路 1、域内信息收集1.1、获取当前用户信息1.1.1、获取当前用户与域 SID1.1.2、查询指定用户的详细信息 1.2、判断是否存在域1.2、查询域内所有计算机1.3、查询域内所有用户组列表1.4、查询所有域成员计算机列表1.5、获取域密码信息1.6、获取域信任信息1.7、查…

STM32智能环境监测系统教程

目录 引言环境准备智能环境监测系统基础代码实现&#xff1a;实现智能环境监测系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;环境监测与管理问题解决方案与优化收尾与总结 1. 引言 智能环境监测系统通…

Redis的配置优化、数据类型、消息队列

文章目录 一、Redis的配置优化redis主要配置项CONFIG 动态修改配置慢查询持久化RDB模式AOF模式 Redis多实例Redis命令相关 二、Redis数据类型字符串string列表list集合 set有序集合sorted set哈希hash 三、消息队列生产者消费者模式发布者订阅者模式 一、Redis的配置优化 redi…

OSI 七层模型与五层模型

OSI&#xff08;开放系统互连&#xff09;七层模型和五层模型是描述计算机网络协议的两种不同层次划分方法。两者用于帮助理解和设计网络协议&#xff0c;但它们在层次划分上有所不同。

手机数据恢复:适用于 Android 的 4 大数据恢复应用程序

没有人希望丢失设备上的重要数据。如果发生这种情况&#xff0c;请不要惊慌。以下是可帮助您恢复丢失或删除的数据的 Android 数据恢复应用程序列表。 有多种方法可以恢复已删除或丢失的 Android 数据&#xff0c;最简单、最快捷的方法是使用第三方恢复应用程序。这些应用程序会…