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

【keepalived双机热备与 lvs(DR)】

目录

一、概述

1.简介

2.原理

3.作用

二、安装

1.配置文件

2.配置项

三、功能模块

1.core

2.vrrp

3.check

四、配置双机热备

1.master

2.backup

五、验证

1.ping验证

2.服务验证

六、双机热备的脑裂现象

七、keepalived+lvs(DR)

1.作用

2.调度器配置

2.1 安装keepalived

2.2 安装ipvsadm

2.3 配置keepalived

2.3.1 主

2.3.1 从

2.4 查看lvs节点状态

3.web节点配置

3.1 调整ARP参数

3.2 配置虚拟IP地址

3.3 添加回环路由

3.4 安装nginx


一、概述

1.简介

Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。

2.原理

在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。

3.作用

解决单点故障问题

二、安装

yum install -y keepalived

1.配置文件

/etc/keepalived/keepalived.conf

2.配置项

router_id 1        定义节点id

state MASTER|BACKUP        定义节点主从状态

interface ens33        配置监听的网卡

virtual_router_id 51        同一个热备组要保持一致

priority 100        节点优先级

advert_int 1        多少秒进行一次心跳检测

authentication {
        auth_type PASS
        auth_pass 1111
    }         keepalived节点的认证方式,同一个keepalived双机热备组一定要保持一致

virtual_ipaddress         配置VIP,即漂移地址

vrrp        

        vrrp_script chk_nginx_server {
               script "/etc/keepalived/chk_nginx.sh "
               interval 1
               weight -2
        }
 

三、功能模块

1.core

主进程启动

2.vrrp

vrrp协议:热备份路由协议

3.check

健康状态检测

四、配置双机热备

1.master

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.42.100
        192.168.42.101
        192.168.42.102
    }
}

2.backup

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.42.100
        192.168.42.101
        192.168.42.102
    }
}

五、验证

1.curl验证

 

2.关闭主服务验证

 

 

六、双机热备的脑裂现象

  • Keepalived配置里同一 VRRP实例如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。
  • vrrp实例名字不一致、优先级一致
  • 防火墙打开,导致心跳无法正常通信
  • 网卡故障        网卡进行多路复用

 :VIP无法通信,注释:vrrp_strict

七、keepalived+lvs(DR)

1.作用

  • 使用keepalived解决lvs的单点故障
  • 高可用集群

2.调度器配置

2.1 安装keepalived

yum install -y keepalived

2.2 安装ipvsadm

yum install -y ipvsadm
modprobe ip_vs
lsmod |grep ip_vs

2.3 配置keepalived

2.3.1 主

vim /etc/keepalived/keepalived.conf

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_connect_timeout 30
   router_id LVS_DEVEL1
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface
ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    
192.168.42.200        
    }
}

virtual_server 192.168.42.200 80 {
    delay_loop 6
    lb_algo rr
    lb_kind
DR
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.42.5 80 {
        weight 1
       
HTTP_GET {
           
url {
              path /
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 1
92.168.42.6 80 {
        weight 1
       
HTTP_GET {
           
url {
              path /
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3

        }
    }
}

2.3.1 从

vim /etc/keepalived/keepalived.conf

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_connect_timeout 30
   router_id LVS_DEVEL2
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state
BACKUP
    interface ens33
    virtual_router_id 51
    priority
90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
    
192.168.42.200        
    }
}

virtual_server 192.168.42.200 80 {
    delay_loop 6
    lb_algo rr
    lb_kind
DR
    #persistence_timeout 50
    protocol TCP

    real_server 192.168.42.5 80 {
        weight 1
       
HTTP_GET {
           
url {
              path /
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 1
92.168.42.6 80 {
        weight 1
       
HTTP_GET {
           
url {
              path /
            }

            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3

        }
    }
}

2.4 查看lvs节点状态

systemctl start keepalived
ipvsadm -ln

ip a

3.web节点配置

3.1 调整ARP参数

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
sysctl -p

3.2 配置虚拟IP地址

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0

        DEVICE=lo:0
        IPADDR=192.168.115.200
        NETMASK=255.255.255.255
        ONBOOT=yes
        NAME=loopback:0

3.3 添加回环路由

route add -host 192.168.42.200/32 dev lo:0

3.4 测试

 

 断掉主,测试备

 

 

 

相关文章:

【keepalived双机热备与 lvs(DR)】

目录 一、概述 1.简介 2.原理 3.作用 二、安装 1.配置文件 2.配置项 三、功能模块 1.core 2.vrrp 3.check 四、配置双机热备 1.master 2.backup 五、验证 1.ping验证 2.服务验证 六、双机热备的脑裂现象 七、keepalivedlvs(DR) 1.作…...

C++笔记之静态成员函数可以在类外部访问私有构造函数吗?

C笔记之静态成员函数可以在类外部访问私有构造函数吗? code review! 静态成员函数可以在类外部访问私有构造函数。在C中,访问控制是在编译时执行的,而不是在运行时执行的。这意味着静态成员函数在编译时是与类本身相关联的,而不…...

最新SQLMap进阶技术

SQLMap进阶:参数讲解 (1)–level 5:探测等级。 参数“–level 5”指需要执行的测试等级,一共有5个等级(1~5级),可不加“level”,默认是1级。可以在xml/payloads.xml中看…...

【BurpSuite常用功能介绍】

BurpSuite的使用 1.运行BurpSuite 2.代理设置 打开软件后,我们第一件事就应该去调试软件和浏览器的代理,让BURP能够正常工作抓包 proxy--options,我端口默认使用8080 然后我们打开一个浏览器,进入代理设置 (注意一点&#xff0…...

Leetcode 108. 将有序数组转换为二叉搜索树

108. 将有序数组转换为二叉搜索树 分析 给定一个有序数组,要求转换为二叉搜索树。 数组是有序的,并且要求二叉树。 这里看到数组是有序的,马上想到二分,但是又不需要完全二分 实现。 再复习二叉搜索树的结构特点: 左…...

小匠物联联合亚马逊云助力企业数智化出海

如何让家电企业出海产品数智化之路走上康庄大道?8月25日,亚马逊云科技[创新成长企业专列]这趟上云快车将开往宁波站,助力宁波的制造、软件等企业扬帆起航!现场举办“亚马逊云科技助力企业出海数智沙龙”,小匠物联受邀出席。 会议现…...

(五)k8s实战-配置管理

一、ConfigMap 使用 kubectl create configmap -h 查看示例&#xff0c;构建 configmap 对象 1) 基于文件夹&#xff0c;加载文件夹下所有配置文件&#xff0c;创建 kubectl create configmap <configmapName> --from-file<dirPath>2) 指定配置文件&#xff0c;创…...

GPT---1234

GPT:《Improving Language Understanding by Generative Pre-Training》 下载地址:https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdfhttps://cdn.openai.com/research-covers/language-unsupervised/language_understa…...

计算机竞赛 基于大数据的时间序列股价预测分析与可视化 - lstm

文章目录 1 前言2 时间序列的由来2.1 四种模型的名称&#xff1a; 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &…...

python进行数据分析:数据预处理

六大数据类型 见python基本功 import numpy as np import pandas as pd数据预处理 缺失值处理 float_data pd.Series([1.2, -3.5, np.nan, 0]) float_data0 1.2 1 -3.5 2 NaN 3 0.0 dtype: float64查看缺失值 float_data.isna()0 False 1 …...

百度Apollo:引领自动驾驶技术的创新与突破

文章目录 前言一、技术创新二、开放合作三、生态建设四、安全可靠性总结 前言 随着科技的迅猛发展&#xff0c;自动驾驶技术正成为未来交通领域的重要发展方向。在这个领域中&#xff0c;百度Apollo作为中国领先的自动驾驶平台&#xff0c;以其卓越的创新能力和开放合作精神&a…...

Python爬虫 异步、缓存技巧

在进行大规模数据抓取时&#xff0c;Python爬虫的速度和效率是至关重要的。本文将介绍如何通过异步请求、缓存和代理池等技巧来优化Python爬虫的速度和性能。我们提供了实用的方案和代码示例&#xff0c;帮助你加速数据抓取过程&#xff0c;提高爬虫的效率。 使用异步请求、缓…...

YOLOv5屏蔽区域检测(选择区域检测)

YOLOv5屏蔽区域检测以及选择区域检测 前期准备labelme选择mask区域 代码改动 前期准备 思路就是通过一个mask掩膜&#xff0c;对我们想要屏蔽或者选择的区域进行遮挡处理&#xff0c;在推理的时候&#xff0c;将有mask掩膜的图像输入&#xff0c;将最后的结果显示在原始图像上…...

记录一次presto sql执行报错 Error executing query的解决办法

在执行presto sql 时报错截图如下&#xff1a; 查看后台执行报错日志&#xff1a; java.sql.SQLException: Error executing query at com.facebook.presto.jdbc.PrestoStatement.internalExecute(PrestoStatement.java:307) at com.facebook.presto.jdbc.PrestoStatement.exe…...

Android Studio开发之路 (五)导入OpenCV以及报错解决

一、步骤 官网下载opencv包&#xff08;我下的是4.7.0&#xff09;并解压&#xff0c;openvc官网 先创建一个空项目&#xff0c;简单跑一下能正常输出helloworld 点击file->new->Import Module选择解压之后的opencv-android-sdk文件夹中的SDk文件夹&#xff0c; modu…...

vue3.3中ref和reactive原理源代码分析

源码是ts编写的,这里部分简化成js便于阅读 function ref(value) {return createRef(value, false) }function createRef(rawValue, shallow) { //shallow是否是浅层定义数据,用于区别ref和shallowRefif (isRef(rawValue)) {//如果已经是ref直接返回源数据return rawValue}retu…...

10.Oracle中decode函数

【函数格式】&#xff1a; decode ( expression, condition_01, result_01, condition_02, result_02, ......, condition_n, result_n, result_default) 【函数说明】&#xff1a; 若表达式expression值与condition_01值匹配&#xff0c;则返回result_01&#xff0c;…...

Podman安装部署kafka和管理界面(快速跑起来)

#1.拉取镜像 podman pull bitnami/zookeeper podman pull bitnami/kafka#2.创建子网 podman network create knet#3.创建zookeeper podman run -itd --name zookeeper-server -p 2181:2181 \ --net knet \ -e ALLOW_ANONYMOUS_LOGINyes \ bitnami/zookeeper:latest#3.1查看z…...

Hbase文档--架构体系

阿丹&#xff1a; 基础概念了解之后了解目标知识的架构体系&#xff0c;就能事半功倍。 架构体系 关键组件介绍&#xff1a; HBase – Hadoop Database&#xff0c;是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;利用HBase技术可在廉价PC Server上搭建起…...

stm32基于HAL库驱动外部SPI flash制作虚拟U盘

stm32基于HAL库驱动外部SPI flash制作虚拟U盘 &#x1f4cc;参考文章&#xff1a;https://xiaozhuanlan.com/topic/6058234791&#x1f39e;实现效果演示&#xff1a; &#x1f516;上图中的读到的FLASH_ID所指的是针对不同容量&#xff0c;所对应的ID。 //W25X/Q不同容量对应…...

抖音批量下载终极指南:免费无水印,一键搞定视频、音乐、合集

抖音批量下载终极指南&#xff1a;免费无水印&#xff0c;一键搞定视频、音乐、合集 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and brows…...

7自由度开源机械臂:如何用6500美元构建AI研究新范式?

7自由度开源机械臂&#xff1a;如何用6500美元构建AI研究新范式&#xff1f; 【免费下载链接】openarm A fully open-source humanoid arm for physical AI research and deployment in contact-rich environments. 项目地址: https://gitcode.com/GitHub_Trending/op/openar…...

102. 在控制平面主机名更改后恢复 Rancher 配置的 RKE2 集群

Environment 环境 Rancher provisioned RKE2 downstream cluster control plane node hostname changed, without removing the node from the cluster. Rancher 配置了 RKE2 下游集群控制平面节点的主机名更改&#xff0c;但未将该节点从集群中移除。 Procedure 程序It is …...

用快马AI一键生成数据库管理原型,告别navicat手工建表写接口

用快马AI一键生成数据库管理原型&#xff0c;告别navicat手工建表写接口 最近在开发一个员工信息管理系统时&#xff0c;我深刻体会到传统数据库管理工具的局限性。虽然navicat这类工具能帮我们可视化操作数据库&#xff0c;但每次新建项目都要手动建表、写接口&#xff0c;重…...

SEO和SEM对于中小企业的意义是什么_SEO 和 SEM 的报告指标有哪些

SEO和SEM对于中小企业的意义是什么 在当今的数字化时代&#xff0c;中小企业如何在竞争激烈的市场中脱颖而出&#xff0c;已成为每一个企业家关注的焦点。搜索引擎优化&#xff08;SEO&#xff09;和搜索引擎营销&#xff08;SEM&#xff09;作为两种重要的数字营销手段&#…...

dig (Domain Information Groper):从命令行到自动化运维的DNS探秘

1. 从命令行工具到运维利器的dig进化史 第一次接触dig命令时&#xff0c;我正被一个诡异的域名解析问题困扰。当时作为新手运维&#xff0c;只会用ping和nslookup反复测试&#xff0c;直到同事甩给我一行dig trace example.com——瞬间看到了完整的DNS解析链条&#xff0c;那种…...

Qwen Pixel Art企业级应用:游戏公司美术外包降本提效实战路径

Qwen Pixel Art企业级应用&#xff1a;游戏公司美术外包降本提效实战路径 1. 游戏美术外包的痛点与机遇 游戏开发中&#xff0c;美术资源制作往往占据大量成本和时间。传统像素美术外包存在三个核心痛点&#xff1a; 成本高&#xff1a;资深像素画师日薪通常在800-1500元&am…...

DeepSeek-Coder-V2-Lite-Instruct评估指标详解:代码准确率、效率与创新性

DeepSeek-Coder-V2-Lite-Instruct评估指标详解&#xff1a;代码准确率、效率与创新性 【免费下载链接】DeepSeek-Coder-V2-Lite-Instruct 开源代码智能利器——DeepSeek-Coder-V2&#xff0c;性能比肩GPT4-Turbo&#xff0c;全面支持338种编程语言&#xff0c;128K超长上下文&a…...

告别手动调参:Neural MHE如何让无人机在风扰中‘稳如老狗’

Neural MHE&#xff1a;无人机抗风扰控制的智能调参革命 四旋翼无人机在物流配送、农业喷洒、电力巡检等场景的应用日益广泛&#xff0c;但突发的风场扰动始终是飞控系统面临的严峻挑战。传统移动视界估计(MHE)虽能有效处理状态估计问题&#xff0c;却困在手动调参的泥潭中——…...

告别恼人红叉!保姆级教程:用acme.sh给宝塔面板IP地址换上Let‘s Encrypt免费证书

从红叉到绿锁&#xff1a;零成本为宝塔面板IP地址部署可信SSL证书全指南 每次打开宝塔面板&#xff0c;那个刺眼的红色安全警告是否让你如鲠在喉&#xff1f;作为服务器管理员&#xff0c;我们比谁都清楚自签名证书的实际安全性&#xff0c;但浏览器固执的警告提示却让新手用户…...