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

部署LVS+Keepalived高可用群集(抢占模式,非抢占模式,延迟模式)

目录

一、LVS+Keepalived高可用群集

1、实验环境

2、 主和备keepalived的配置

2.1 yum安装ipvsadm和keepalived工具

2.2 添加ip_vs模块并开启ipvsadm

2.3 修改keepalived的配置文件 

2.4 调整proc响应参数,关闭linux内核的重定向参数响应

2.5 将主服务器的keepalived的配置文件远程传输到备服务器上,并进行必要的修改

3、 真实web服务器的配置(web1,web2配置一样)

3.1 下载httpd服务

3.2 配置VIP地址

3.3 修改配置,使得系统只响应目的ip为本地ip的请求

3.4 配置访问默认页面内容 

4、测试

4.1 将主服务器关闭

二、非抢占模式

三、延迟抢占 


一、LVS+Keepalived高可用群集

1、实验环境

主keepalived:192.168.80.100     lvs
备keepalived:192.168.80.101     lvs
web1:192.168.80.102
web2:192.168.80.103    
vip:192.168.80.188
客户机访问

2、 主和备keepalived的配置

2.1 yum安装ipvsadm和keepalived工具

#关闭防火墙和selinux服务
[root@localhost ~]#systemctl stop firewalld.service 
[root@localhost ~]#setenforce 0#yum安装keepalived和ipvsadm工具
[root@localhost ~]#yum install ipvsadm keepalived -y

2.2 添加ip_vs模块并开启ipvsadm

#添加ip_vs模块
[root@localhost ~]#modprobe ip_vs
[root@localhost ~]#cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
#保存原来的配置并开启ipvsadm
[root@localhost keepalived]#ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost keepalived]#systemctl start ipvsadm.service

2.3 修改keepalived的配置文件 

[root@localhost keepalived]#cd /etc/keepalived/
[root@localhost keepalived]#cp keepalived.conf keepalived.conf.bak
#复制一份,备份使用#修改keepalived的配置文件
[root@localhost keepalived]#vim keepalived.conf
global_defs {router_id HA_TEST_R2                  ####本路由器的服务器名称 HA_TEST_R2
}
vrrp_instance VI_1 {                     ####定义VRRP热备实列state BACKUP                          ####热备状态,backup表示辅服务器interface ens33                       ####表示承载VIP地址的物理接口virtual_router_id 1                   ####虚拟路由器的ID号,每个热备组保持一致priority 99                           ####优先级,优先级越大优先级越高advert_int 1                          ####通告间隔秒数(心跳频率)authentication {                      ####认证信息,每个热备组保持一致auth_type PASS                     ####认证类型auth_pass 123456                   ####认证密码}virtual_ipaddress {                   ####漂移地址(VIP),可以是多个192.168.100.10}
}#需要修改项
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1#修改邮箱指向自己(10行)smtp_connect_timeout 30router_id LVS_01#指定服务器名称主备需要不一样(12行)vrrp_skip_check_adv_addr#vrrp_strict#14行需要注释否则服务启动有问题vrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTER#指定服务器类型MASTER为主 BACKUP为备(20行)interface ens33#修改网卡名称为ens33(21)virtual_router_id 10#指定虚拟路由器的ID号主备需要一致#nopreempt #非抢占模式两个节点都需要配置去掉注释priority 100#设定优先级数字越大优先级越高,准备需要不一样advert_int 1#通告间隔(查看是否存活)authentication {auth_type PASS#认证类型auth_pass 123456#修改验证密码,主备需要一样(27行)}virtual_ipaddress {192.168.80.188#指定群集vip地址}
}
virtual_server 192.168.80.188 80 {delay_loop 6#健康间隔时间6秒lb_algo rr#调度算法轮询lb_kind DR#lvs模式为DR persistence_timeout 0#连接保持时间改为0 否则 无法体现效果protocol TCP#采用协议real_server 192.168.91.102 80 {#43行修改地址为真实主机地址weight 1#45行删除#节点权重TCP_CHECK{connect_port 80#检查目标端口connect_timeout 3#连接超时 nb_get_retry 3#重试次数delay_before_retry 3#重试间隔时间}}real_server 192.168.80.103 80 {#第二个weight 1TCP_CHECK{connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}

2.4 调整proc响应参数,关闭linux内核的重定向参数响应

#启动服务、查看虚拟网卡vip
systemctl start keepalived
ip addr show dev ens33	#调整proc响应参数,关闭Linux内核的重定向参数响应
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0#刷新一下
sysctl -p

2.5 将主服务器的keepalived的配置文件远程传输到备服务器上,并进行必要的修改

[root@localhost keepalived]#scp keepalived.conf root@192.168.80.101:/etc/keepalived/[root@localhost keepalived]#vim keepalived.conf
#备份keepalive
12    router_id LVS_02
20     state BACKUP
23     priority 99
[root@localhost keepalived]#systemctl start keepalived.service 
[root@localhost keepalived]#ipvsadm
[root@localhost keepalived]#ipvsadm -ln
[root@localhost keepalived]#vim /etc/sysctl.conf 
[root@localhost keepalived]#sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

 

3、 真实web服务器的配置(web1,web2配置一样)

3.1 下载httpd服务

[root@localhost ~]# systemctl stop firewalld.service 
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install -y httpd

3.2 配置VIP地址

[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vim ifcfg-lo:0[root@localhost network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.80.188
NETMASK=255.255.255.255
NETWORK=127.0.0.0[root@localhost network-scripts]# ifup lo:0
[root@localhost network-scripts]# systemctl restart network

 

3.3 修改配置,使得系统只响应目的ip为本地ip的请求

[root@localhost network-scripts]# vim /etc/sysctl.conf
[root@localhost network-scripts]# sysctl -p
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 network-scripts]# route add -host 192.168.80.188 lo:0

3.4 配置访问默认页面内容 

 

4、测试

4.1 将主服务器关闭

此时虚拟VIP在备用服务器,且依旧可以访问网站

关闭主服务器,我们也可以抓包来看变化

--关闭主服务器时,是192.168.80.101

 --开启主服务器后,主服务器会抢占,因为主服务器优先级高,又会变成主服务器,192.168.80.100

二、非抢占模式

默认模式使用的 抢占式,上面的实验使用的就是抢占模式
主节点会抢占回来,会造成两次网络动荡。
#注意:要关闭 VIP抢占,必须将各 keepalived 服务器state配置为BACKUP

#1主机配置
vrrp_instance VI_1 {state BACKUP     #都为BACKUPinterface ens33virtual_router_id 66priority 100   #优先级高advert_int 1nopreempt         #添加此行,都为nopreempt
#2主机配置
vrrp_instance VI_1 {state BACKUP         #都为BACKUPinterface ens33virtual_router_id 66priority 80       #优先级低advert_int 1nopreempt   #添加此行,都为nopreempt

 

三、延迟抢占 

#延迟抢占
preempt_delay #     #指定抢占延迟时间为#s,默认延迟300s
#注意:需要各keepalived服务器state为BACKUP,并且不要启用 vrrp_strict
#1主机配置
vrrp_instance VI_1 {state BACKUP     #都为BACKUPinterface eth0virtual_router_id 66priority 100     #优先级高advert_int 1 preempt_delay 30  #抢占延迟模式,默认延迟300s#2主机配置
vrrp_instance VI_1 {state BACKUP       #都为BACKUPinterface eth0virtual_router_id 66priority 80     #优先级低advert_int 1 priority 80   #优先级高advert_int 1 preempt_delay 60    #抢占延迟模式,默认延迟300s

 

 

相关文章:

部署LVS+Keepalived高可用群集(抢占模式,非抢占模式,延迟模式)

目录 一、LVSKeepalived高可用群集 1、实验环境 2、 主和备keepalived的配置 2.1 yum安装ipvsadm和keepalived工具 2.2 添加ip_vs模块并开启ipvsadm 2.3 修改keepalived的配置文件 2.4 调整proc响应参数,关闭linux内核的重定向参数响应 2.5 将主服务器的kee…...

性别和年龄的视频实时监测项目

注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 性别和年龄检测 Python 项目 首先介绍性别和年龄检测的高级Python项目中使用的专业术语 什么是计算机视觉? 计算机视觉是使计算机能…...

【Spring面试题】

目录 前言 1.Spring框架中的单例bean是线程安全的吗? 2.什么是AOP? 3.你们项目中有没有使用到AOP? 4.Spring中的事务是如何实现的? 5.Spring中事务失效的场景有哪些? 6.Spring的bean的生命周期。 7.Spring中的循环引用 8.构造方法…...

打车代驾小程序开发 醉酒不用怕一键找代驾

近年来,随着我国私家车市场的不断扩大,驾驶员的安全驾驶意识不断提高,以及交通法规对酒后驾驶的严格把握,代驾市场的潜力也在迸发。代驾小程序开发平台成为了代驾人不可或缺的线上接单平台。那么代驾小程序开发需要实现哪些功能呢…...

蓝桥集训之统计子矩阵

统计子矩阵 核心思想&#xff1a;矩阵前缀和 双指针 用i和j双指针 遍历所有子矩阵的列用s和t双指针 遍历所有子矩阵的行求其子矩阵的和 若>k 将s向下移动 矩阵和必定减小(元素个数减少)直到满足<k 因为列一定 行数即为方案数(从t行往上数到s行 共t-s1个区间[t,t][t-1,t]…...

架构师十项全能 你会几个?

架构设计导论 架构师核心能力 架构设计原则 架构设计模式 架构设计核心维度 架构图绘制 企业架构设计 分布式架构理论 微服务架构设计 响应式架构设计 架构设计评估 单元化架构设计 服务网络架构设计 DDD领域驱动设计 技术选型 服务治理设计 安全架构设计 云架构设计 数据库架构…...

数据库(mysql)-新手笔记(主外键,视图)

主外键 主键(唯一性,非空性) 主键是数据库表中的一个或多个字段&#xff0c;其值唯一标识表中的每一行/记录。 唯一性: 主键字段中的每个值都必须是唯一的&#xff0c;不能有两个或更多的记录具有相同的主键值 非空性&#xff1a;主键字段不能包含NULL值。 外键(引用完整 …...

西门子PLC的交互界面怎样设计?

西门子PLC的交互界面设计集中于提供一个直观、多功能且用户友好的环境&#xff0c;旨在使工程师和技术人员能够有效地进行编程、监控和维护。下面是一些设计西门子PLC交互界面时的关键考虑因素&#xff1a; 1. **图形化编程环境**&#xff1a;设计时&#xff0c;重点在于提供直…...

备份 ChatGPT 的聊天纪录

备份 ChatGPT 的聊天纪录 ChatGPT 在前阵子发生了不少次对话纪录消失的情况&#xff0c;让许多用户觉得困扰不已&#xff0c;也担心自己想留存的聊天记录消失不见。 好消息是&#xff0c;OpenAI 在 2023 年 4 月 11 日推出了 ChatGPT 聊天记录备份功能&#xff0c;无论是免费…...

支持向量机 SVM | 线性可分:软间隔模型

目录 一. 软间隔模型1. 松弛因子的解释小节 2. SVM软间隔模型总结 线性可分SVM中&#xff0c;若想找到分类的超平面&#xff0c;数据必须是线性可分的&#xff1b;但在实际情况中&#xff0c;线性数据集存在少量的异常点&#xff0c;导致SVM无法对数据集线性划分 也就是说&…...

基于Java的生活废品回收系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案&#xff0c;旨在鼓…...

Linux:好用的Linux指令

进程的Linux指令 1.查看进程信息 ​​​​ps ajx | head -1 && ps ajx | grep 进程名创建一个进程后输入上述代码&#xff0c;会打印进程信息&#xff0c;当我们在code.exe中写入打印pid&#xff0c;ppid&#xff0c;这里也和进程信息一致。 while :; do ps ajx | he…...

Python Tkinter GUI 基本概念

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd;如果停止&#xff0c;就是低谷&#xf…...

Python实习生(自动化测试脚本开发) - 面经 - TCL新技术有限公司

JD&#xff1a; 招聘流程&#xff1a; 2024.1.3 Boss直聘 沟通 2024.1.4 约面 2024.1.6 上午面试 面试流程&#xff1a; 上来第一步&#xff0c;直接问Python基础语法&#xff0c;讲一下基础的数据类型 就记得元组和字典 分别具体说一下元组和字典 流程控制语句有哪些&…...

遥遥领先!基于transformer变体的时间序列预测新SOTA!

目前&#xff0c;以CNN、RNN和 Transformer 模型为代表的深度学习算法已经超越了传统机器学习算法&#xff0c;成为了时间序列预测领域一个新的研究趋向。这其中&#xff0c;基于Transformer架构的模型在时间序列预测中取得了丰硕的成果。 Transformer模型因其强大的序列建模能…...

Java实现从本地读取CSV文件数据

一、前言 最近项目中需要实现这样一个功能&#xff0c;就是从本地读取CSV文件&#xff0c;并以指定行作为标题行&#xff0c;指定行开始作为数据读取行&#xff0c;读取数据并返回给前端&#xff0c;下面具体说下是如何通过java实现。 二、如何实现&#xff1f; 1.引入相关mav…...

数据结构(一)——概述

一、绪论 1.1数据结构的基本概念 数据&#xff1a;用来描述客观事物的数、计算机中是字符及所有能输入并被程序识别和处理的符号的集合。 数据元素&#xff1a;数据的基本单位&#xff0c;一个数据元素可由若干数据项组成。 数据结构&#xff1a;指相互之间存在一种或多种特…...

昇腾芯片解析:华为自主研发的人工智能处理器全面分析

在当今科技发展的浪潮中&#xff0c;昇腾芯片作为一种新兴的处理器&#xff0c;正引起广泛的关注和讨论。升腾芯片究竟是由哪家公司生产的&#xff1f;这个问题一直困扰着许多人。下面小编将全面介绍、分析升腾芯片的生产商及各类参数、应用&#xff0c;以便读者对其有更全面的…...

新手做抖音小店怎么快速出体验分?教给大家一个方法!

大家好&#xff0c;我是电商糖果 新店怎么出体验分&#xff1f; 这是不是很多新店商家最苦恼事情&#xff1f; 因为没有体验分的店铺&#xff0c;平台不会给推流&#xff0c;开了精选联盟也没有办法带货。 总之就是运营的时候&#xff0c;比较受限。 那么抖音小店怎么快速出…...

Apollo决策规划 - EM planner

旨在对b站老王所讲的百度Apollo - EM planner算法做浓缩版总结 0 决策规划背景 基于图搜索 优点&#xff1a; 可以得到全局层面最优解&#xff0c;适用于比较低维数的规划问题 缺点&#xff1a; 规划问题维数较高时&#xff0c;面临指数爆炸问题 基于采样 优点&#xff1a;…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

Python Ovito统计金刚石结构数量

大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...