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

Keepalived 双机热备

1. Keepalived  双机热备

keepalived主要用来提供故障切换(failover)和健康检查(Health  Checking)。

1.2 Keepalived 热备方式

Keepalived  采用VRRP (Virtual  Router Redundancy Protocol,虚拟路由冗余协议)热备份协议。VRRP针对路由器的一种备份解决方案——多台路由器组成一个热备组。公用虚拟IP对外提供服务;每个热备组同一时刻只有一台路由器提供服务,其他路由处于冗余状态。当前路由器失效,其他路由器自动接替(根据优先级)虚拟IP。

热备组每台路由器都有可能称为主路由器,虚拟路由器IP可以在热备组内路由器之间进行转移,称为漂移IP。

2. 案例分析

 2.1 配置主调度器

1:主服务器keepalived的安装

[root@localhost ~]# systemctl stop NetworkManager

[root@localhost ~]# setenforce 0

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# yum -y install keepalived ipvsadm

[root@localhost ~]# systemctl enable keepalived

2:主服务器keepalived的配置

[root@localhost ~]# cd /etc/keepalived/

[root@localhost keepalived]# cp keepalived.conf keepalived.conf.bak

[root@localhost keepalived]# vi keepalived.conf

global_defs {

   notification_email {

     acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

   }

(高可用,故障转移)

   notification_email_from Alexandre.Cassen@firewall.loc

   #vrrp_strict       

   smtp_server 192.168.200.1 

   smtp_connect_timeout 30

   router_id LVS_01            (路由器名称)

}

vrrp_instance VI_1 {                           (VRRP热备事例)    

    state MASTER              (热备状态,master表示主调度器状态,BACKUP表示从调度器)

    interface ens33                  (VIP物理接口)  

    virtual_router_id 51               (虚拟路由ID:在一个群集里面id号必须一致) 

    priority 100                        (优先级0-254,数字越大越优先)

    advert_int 1                   (优先级0-254,数字越大越优先)

    authentication {                         (身份验证,每个热备组保持一致)

        auth_type PASS         (认证类型:密码认证)

        auth_pass 1111

    }

    virtual_ipaddress {                    (漂移地址vip,可以有多个)

        192.168.10.172

    }

}

备注:

vrrp_strict #严格执行VRRP协议规范,此模式不支持节点单播,如果配置了此参数,vip可以漂移到这台服务器,但是ping vip不通,因此需要将此参数去掉

负载均衡

virtual_server 192.168.10.172 80 {           (虚拟服务器IP地址,端口)

    delay_loop 6                            (健康检查间隔时间)

    lb_algo rr                                (轮询rr 调度算法)

    lb_kind DR                                 (直接路由DR群集工作模式)

    nat_mask 255.255.255.0

 #  persistence_timeout 50                   (连接保持时间,)

    protocol TCP                             (采用tcp协议)

    real_server 192.168.10.103 80 {                (第一个web节点地址,端口)

        weight 1                                    (节点权重)

        TCP_CHECK {                               (健康检查方式)

            connect_port 80                          (检查目标端口)

            connect_timeout 3                      (连接超时时间)

            nb_get_retry 3                            (重试次数)

            delay_before_retry 3                        (重试间隔)

        }

    }

    real_server 192.168.10.104 80 {               (第二个web节点ip地址,端口)

        weight 1

        TCP_CHECK {

            connect_port 80

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

        }

    }

}

备注:

persistence_timeout 50 这个参数的意义是保持客户端的请求在这个时间段内全部发到同一个真实服务器

3:主服务器内核参数的配置

[root@localhost ~]# vi /etc/sysctl.conf

在末尾添加:

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.conf.ens33.send_redirects = 0

[root@localhost ~]# sysctl -p

4:开启主服务器的keepalived服务

[root@localhost keepalived]# systemctl start keepalived

2.2.  服务器配置

web1服务器配置

(1)web1网络的配置

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# cd /etc/sysconfig/network-scripts/

[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0

[root@localhost network-scripts]# vi ifcfg-lo:0

DEVICE=lo:0

IPADDR=192.168.10.172

NETMASK=255.255.255.255

ONBOOT=yes

[root@localhost network-scripts]# systemctl restrt network

[root@localhost network-scripts]# vi /etc/rc.local

/sbin/route add -host 192.168.10.172 dev lo:0

[root@localhost network-scripts]# route add -host 192.168.10.172 dev lo:0

(2)httpd服务的安装

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

[root@localhost ~]# vi /var/www/html/index.html

test web01
 

(3)内核参数的设置

[root@localhost ~]# vi /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

(4)开启httpd服务

[root@localhost ~]# systemctl start httpd

备注:

web1和web2配置一样,仅网站内容不一,便于观察。

2.3  测试LVS-keeplived 高可用性

在客户端使用脚本测试

[root@localhost ~]#  curl  192.168.10.172

[root@localhost ~]# for i in $(seq 10); do curl http://192.168.10.172  ;done

注意事项

(1)生产环境中可以使用NFS服务器保证网站代码的一致性,在测试环境中为了观察效果,web服务器池中的网站代码可以不一样,更加便于观察实验效果。

(2)测试计算机不要使用master调度器,在master调度器上访问VIP时,调度器不会将访问的请求调度到web服务器,而是自己尝试解析;在web服务器上测试时只能访问到自己的网页,无法实现调度。所以客户端一定要使用独立的测试计算机,或者使用处于BACKUP状态的调度器。

相关文章:

Keepalived 双机热备

1. Keepalived 双机热备 keepalived主要用来提供故障切换(failover)和健康检查(Health Checking)。 1.2 Keepalived 热备方式 Keepalived 采用VRRP (Virtual Router Redundancy Protocol,虚拟路由冗…...

基于React和TypeScript的开源白板项目(Github项目分享)

在学习前端开发的过程中,有时候我们需要一些有趣的项目来提升我们的技能。今天我要给大家介绍的是一个非常酷的项目——NinjaSketch,这是一个用React和TypeScript构建的简易白板工具。这个项目使用了Rough.js来实现手绘风格的效果。尽管这个应用不是响应…...

1019记录

人瑞 - SDK - 外派米哈游 1,接口测试的工具 回答的是postman, 改进:JMeter 2,接口502,什么问题导致的?如何定位? 参考答案:502错误定义:是网关错误, 通俗…...

详细设计与概要设计区别-慧哥充电桩开源系统

概要设计更侧重于系统的整体构架和模块划分,而详细设计则关注具体模块的实现细节。在软件开发过程中,这两个阶段虽然紧密相关,但它们各自有着不同的目标和方法。以下是具体分析: 目标 概要设计:概要设计关注系统整体架…...

vue3 引入百度地图的三种方式

本次也是正好写了一个基于VUE3和百度地图的设计,但奈何第一次使用百度地图,在学习的途中遇到了很多问题,也发现网上的材料相对较少,因此做出了一些小总结,后续还会更新。 一、直接引入 直接在public中的index.html中进…...

鸿蒙开发设备管理:【@ohos.usb (USB管理)】

USB管理 本模块主要提供管理USB设备的相关功能,包括查询USB设备列表、批量数据传输、控制命令传输、权限控制等。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import …...

Golang | Leetcode Golang题解之第204题计数质数

题目&#xff1a; 题解&#xff1a; func countPrimes(n int) int {primes : []int{}isPrime : make([]bool, n)for i : range isPrime {isPrime[i] true}for i : 2; i < n; i {if isPrime[i] {primes append(primes, i)}for _, p : range primes {if i*p > n {break}…...

ELK日志系统和Filebeat采集器的学习总结

ELK是ElasticSerach、Logstash、Kina Logstash负责采集数据&#xff0c;Logstash有三个插件&#xff0c;input、filter、output&#xff0c;filter插件作用是对采集的数据进行处理&#xff0c;过滤的&#xff0c;因此filter插件可以选&#xff0c;可以不用配置。 ElasticSear…...

QML-Grid和OpacityMask

一个格子条&#xff0c;点击缩短 import QtQuick 2.0 import QtQuick.Window 2.12 import QtQuick.Controls 2.5 //导入 import QtGraphicalEffects 1.12Window {id:windowwidth: 600height: 500color: "white"visible: trueGrid {visible: falseid:gridwidth:405he…...

MySQL的并发控制、事务、日志

目录 一.并发控制 1.锁机制 2.加锁与释放锁 二.事务&#xff08;transactions&#xff09; 1.事物的概念 2.ACID特性 3.事务隔离级别 三.日志 1.事务日志 2.错误日志 3.通用日志 4.慢查询日志 5.二进制日志 备份 一.并发控制 在 MySQL 中&#xff0c;并发控制是确…...

CNN文献综述

卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;简称CNN&#xff09;是深度学习领域中的一种重要模型&#xff0c;主要用于图像识别和计算机视觉任务。其设计灵感来自于生物学中视觉皮层的工作原理&#xff0c;能够高效地处理图像和语音等数据。 基本原理…...

python语句前面有一个$是什么意思

“$”是汇编语言中的一个预定义符号&#xff0c;等价于当前正汇编到的段的当前偏移值。例如&#xff1a;指令“jmp $3”中的“$”表示当前这条指令在代码段中的偏移量。 代表当前指令的地址&#xff0c;如&#xff1a; data segment str1 db a,b,c,d leng equ $-str 就是当前地…...

wsl安装Linux系统到指定位置

默认情况下,wsl安装的系统,会安装到系统C盘,长期下去,很容易把C盘的空间消耗完,从而影响系统的正常运行,所以我建议是将wsl所有的系统都安装到其它磁盘中,便于维护。 1、导出镜像 通过wsl -l -v 查看当前已安装的系统版本。 导出到当前目录位置,也可以指定目录位置。 w…...

[笔记] 高等数学在各工程门类的典型应用场景

1.应用场景 1.微积分似乎是在解算椭圆方程中引入的&#xff1f;但是这个数学工具第一次应用于现实的工程问题是什么时候&#xff1f;什么场景&#xff1f;什么问题&#xff1f; 微积分的发展确实与椭圆方程有关&#xff0c;但它最初的应用场景远不止于此。 微积分首次被应用…...

刀片服务器和机架式服务器有何区别

刀片服务器和机架式服务器有何区别 一、物理设计&#xff1a; 刀片服务器&#xff1a;刀片服务器是一种相对较轻薄的服务器设计&#xff0c;其物理形状类似于刀片&#xff0c;通常插入到专用的刀片机箱中。每个刀片通常包含一个或多个服务器节点&#xff0c;共享一些基本的资源…...

SQLyog脚本无限试用重置脚本

文章目录 引言脚本(win)必要操作、说明 引言 SQLyog 需要po jie&#xff0c;但是网上的没看到很好使的&#xff0c;直接下的官方。能处理14天试用也是很ok的。 脚本(win) echo offREM SQLyog注册表key&#xff0c;可能跟你的不一样&#xff0c;如果不一样&#xff0c;请替换…...

代码随想录训练营第二十九天 134加油站 135分发糖果 860柠檬水找零 406根据身高重建队列

第一题&#xff1a; 原题链接&#xff1a;134. 加油站 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 需要三个变量&#xff0c;一个变量start记录结果也就是出发的第一个加油站&#xff0c;一个变量curSum来记录此时加油耗油后剩余的油量&#xff0c;如果发现c…...

智能生产管理系统设计

智能生产管理系统的设计旨在提升制造业的效率、灵活性和响应速度&#xff0c;通过集成先进的信息技术&#xff08;如物联网IoT、大数据分析、人工智能AI、云计算等&#xff09;实现生产过程的智能化。以下是一些关键设计要素和步骤&#xff0c;用于构建一个高效的智能生产管理系…...

满足GMSL静电防护要求的方案

什么是GMSL&#xff1f;它是做什么用的&#xff1f;它有什么优点&#xff1f;设计GMSL防静电有啥难度&#xff1f; 带着这些疑问我们先了解下什么是GMSL。 一&#xff0e;简述 GMSL GMSL&#xff08;Gigabit Multimedia Serial Link&#xff09;即千兆多媒体串行链路&#xf…...

【Odoo开源ERP】别把ERP与进销存软件混为一谈

导读&#xff1a;企业使用ERP软件能够实现管理升级&#xff0c;多方信息集成&#xff0c;按照既定策略逻辑运算&#xff0c;生成计划建议&#xff0c;减少人力成本&#xff0c;提高准确率的同时提高经营能力。 ERP&#xff0c;是MRP II的下一代软件&#xff0c;除了MRP II已有的…...

Ventoy终极指南:一个U盘启动所有系统,告别重复格式化烦恼 [特殊字符]

Ventoy终极指南&#xff1a;一个U盘启动所有系统&#xff0c;告别重复格式化烦恼 &#x1f60e; 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 还在为每次安装系统都要重新制作启动盘而烦恼吗&#x…...

硬件答辩问题总结

一、电源纹波是什么&#xff0c;为什么LDO的小&#xff0c;DCDC的大1.电源纹波电源纹波 是指直流电源输出电压上叠加的 交流波动成分&#xff0c;表现为电压在理想直流值附近上下波动。2.LDO 纹波小原理LDO 内部是一个 调整管&#xff08;可变电阻&#xff09; 串联在输入和输出…...

高性能Windows流媒体服务器部署:5大核心技术与3种实战架构深度解析

高性能Windows流媒体服务器部署&#xff1a;5大核心技术与3种实战架构深度解析 【免费下载链接】srs-windows 项目地址: https://gitcode.com/gh_mirrors/sr/srs-windows 在Windows平台上构建专业级流媒体服务系统&#xff0c;需要综合考虑协议兼容性、性能优化和部署架…...

Lindy自动化效率翻倍的秘密:从零搭建高可靠多步骤任务流的7步黄金流程

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Lindy自动化效率翻倍的秘密&#xff1a;从零搭建高可靠多步骤任务流的7步黄金流程 Lindy自动化平台以“越久越可靠”为设计哲学&#xff0c;将经典软件工程原则与现代可观测性实践深度融合。其核心优势…...

人类防伪指南:为什么你越写错字,HR越信你是真人?

前言各位码农、算法侠、CtrlC/V十级学者请注意&#xff1a;你有没有过这样的经历&#xff1f;辛辛苦苦肝了一晚上文档&#xff0c;逻辑严密、语法丝滑、连Markdown都对齐得像军训方阵&#xff0c;结果老板幽幽来一句&#xff1a;“这真是你自己写的&#xff1f;”那一刻&#x…...

电信运营商每月处理海量工单,如何不再出错?基于AI Agent的端到端自动化解决方案

在2026年的电信行业&#xff0c;海量工单处理已不再仅仅是效率问题&#xff0c;而是合规与生存的底线。随着2026年5月20日《电信和互联网服务 基础电信企业网上营业厅服务规范》国家标准的正式实施&#xff0c;监管层对“信息透明、流程闭环、计费精准”的要求达到了前所未有的…...

基于MAX78000的离线鸟类声音识别:边缘AI从数据到部署全流程解析

1. 项目概述&#xff1a;当边缘AI“听懂”鸟鸣在野外生态监测或自家后院观鸟时&#xff0c;你是否有过这样的经历&#xff1a;听到一阵清脆或婉转的鸟鸣&#xff0c;却完全不知道是哪位“歌唱家”在表演&#xff1f;传统的鸟类识别依赖专家经验和图鉴比对&#xff0c;不仅门槛高…...

Unity iOS构建报错SDK version is 0的根因与精准修复

1. 这个报错不是Unity在“发脾气”&#xff0c;而是工程配置在“装死”刚接手一个老项目&#xff0c;打开Unity编辑器&#xff0c;点Build Settings准备打包iOS&#xff0c;结果弹出一行红字&#xff1a;“SDK version is 0, cannot build”。我第一反应是——这什么鬼&#xf…...

2026 文章代码高亮方案选型

将基于 Prism.js 或 Highlight.js 的传统高亮方案与基于 Shiki 的现代化高亮方案进行对比&#xff0c;其核心区别在于底层解析原理的不同&#xff08;正则表达式 vs. TextMate 语法树&#xff09;。 以下是两种方案的底层原理、各自优缺点、核心对比矩阵以及适用场景的详细分析…...

通过TaotokenCLI工具一键配置开发环境接入参数

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Taotoken CLI工具一键配置开发环境接入参数 对于需要接入多个大模型服务的开发者而言&#xff0c;手动配置每个项目的API密钥、…...