部署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

 

 

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

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

相关文章

23 经典卷积神经网络 LeNet【李沐动手学深度学习v2课程笔记】 (备注:提到如何把代码从CPU改到在GPU上使用)

目录 1. LeNet 2. 实现代码 3. 模型训练 4. 小结 本节将介绍LeNet,它是最早发布的卷积神经网络之一,因其在计算机视觉任务中的高效性能而受到广泛关注。 这个模型是由AT&T贝尔实验室的研究员Yann LeCun在1989年提出的(并以其命名&…

【AIGC调研系列】GitHub Copilot提高接口自动化效率的使用技巧

GitHub Copilot 提高接口自动化效率的使用技巧主要包括以下几点: 让Copilot学习你的代码:通过清晰的层次结构、细致的拆分、规范的目录和文件命名以及合理的代码抽取,可以帮助Copilot更好地理解你的编码风格和需求[2]。设置Prompt和使用Prompt Engineering:通过设置合适的P…

【2024年5月备考新增】《软考真题分章练习(答案解析) - 1 项目管理一般知识(高项)》

点击跳转本章无答案版 1、关于项目管理的描述,不正确的是:()。 A.项目管理的主要目的是实现企业管理目标 B.在项目管理中,时间是一种特殊的资源 C.项目管理的职能是对资源进行计划、组织、指挥、协调、控制 D.项目管理把各种知识、技能、手段和技术应用于项目活动项目管理…

HTML三识

表单标签 表单&#xff1a;在网页中主要负责数据采集功能&#xff0c;使用<form>标签定义表单表单项(元素)&#xff1a;不同类型的input元素&#xff0c;下拉列表&#xff0c;文本域等 标签描述<form>定义表单<input>定义表单项&#xff0c;通过type属性控…

VMware下载与安装

准备一个Linux的系统&#xff0c;成本最低的方式就是在本地安装一台虚拟机&#xff0c;VMware是业界最好用的虚拟机软件之一 官网&#xff1a;https://www.vmware.com/ 下载页面&#xff1a;https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html …

C++之线程的简单操作

在我们启动程序的时候&#xff0c;如果我们没有开启多线程的情况下&#xff0c;默认我们的程序就是单线程&#xff0c;是串行执行的。 如果开启了多线程那么我们有的程序语句就可以并行执行了。单核情况下还是并发&#xff0c;多核情况下可以并行。 就记住一点&#xff0c;单线…

代码随想录算法训练营Day55 | 583.两个字符串的删除操作、72.编辑距离

583.两个字符串的删除操作 最开始想到的是基于最长公共子序列的写法&#xff1a;删除公共子序列以外的字符&#xff0c;两个字符串就相同了 int minDistance0(string word1, string word2) {int n word1.size();int m word2.size();vector<vector<int>> dp(n …

小文件问题及GlusterFS的瓶颈

01海量小文件存储的挑战 为了解决海量小文件的存储问题&#xff0c;必须采用分布式存储&#xff0c;目前分布式存储主要采用两种架构&#xff1a;集中式元数据管理架构和去中心化架构。 (1)集中式元数据架构&#xff1a; 典型的集中式元数据架构的分布式存储有GFS&#xff0…

【深度学习笔记】7_1 优化与深度学习

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 7.1 优化与深度学习 本节将讨论优化与深度学习的关系&#xff0c;以及优化在深度学习中的挑战。在一个深度学习问题中&#xff0c;我们…

2023年第三届中国高校大数据挑战赛(第一场)A题思路

竞赛时间 &#xff08;1&#xff09;报名时间&#xff1a;即日起至2024年3月8日 &#xff08;2&#xff09;比赛时间&#xff1a;2024年3月9日8:00至2024年3月12日20:00 &#xff08;3&#xff09;成绩公布&#xff1a;2024年4月30日前 赛题方向&#xff1a;大数据统计分析 …

202109CSPT4收集卡牌

题意&#xff1a;有 n n n种不同的卡牌,每一次抽卡获得第 i i i种卡牌的概率为 p i pi pi。如果这张卡牌已经获得&#xff0c;就会转化为一枚硬币。可以用 k k k枚硬币交换一张没有获得过的卡。求获得所有种类的牌的概率。 #include<bits/stdc.h> using namespace std; …

SQL 注入攻击 - delete注入

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、注入原理: 对于后台来说,delete操作通常是将对应的id传递到后台,然后后台会删除该id对应的数据。 如果后台没有对接收到的 id 参数进行充分的验证和过滤,恶意用户可能会…

数据治理实践——YY 直播业务指标治理实践

目录 一、问题背景 1.1 问题场景 1.2 问题小结 二、治理方案 2.1 治理目标 2.2 团队协同&#xff0c;共建规范 2.3 指标管理的定位 2.4 指标管理的目标及思路 2.5 指标管理&#xff0c;规范内容落地 2.6 数仓设计-关联指标维度 2.7 数据报表开发-配置口径说明 2.8 …

StableDiffusion3 官方blog论文研究

博客源地址&#xff1a;Stable Diffusion 3: Research Paper — Stability AI 论文源地址&#xff1a;https://arxiv.org/pdf/2403.03206.pdf Stability.AI 官方发布了Stable diffusion 3.0的论文研究&#xff0c;不过目前大家都沉浸在SORA带来的震撼中&#xff0c;所以这个水…

将props展平传到DOM上

当我们将展平&#xff08;传播&#xff09;的属性设置子组件时&#xff0c;我们会引入风险&#xff0c;因为我们可能会往 HTML 标签上添加它不支持的属性。 坏实践 下面这个例子会在 DOM 元素上增加一个该元素本身不支持的属性flag。 const Sample () > (<Spread flag…

chrome插件chrome.storage数据写入失败QUOTA_BYTES_PER_ITEM quota exceeded

Unchecked runtime.lastError while running storage.set: QUOTA_BYTES_PER_ITEM quota exceeded at Object.callback 在开发浏览器插件的时候&#xff0c;报错提示&#xff1a;超出存储限制&#xff0c;浏览器插件存储官方文档&#xff1a;https://developer.chrome.com/docs…

Linux篇面试题 2024

目录 Java全技术栈面试题合集地址Linux篇1.绝对路径用什么符号表示&#xff1f;当前目录、上层目录用什么表示&#xff1f;主目录用什么表示? 切换目录用什么命令&#xff1f;2.怎么查看当前进程&#xff1f;怎么执行退出&#xff1f;怎么查看当前路径&#xff1f;3.怎么清屏&…

Keras用tf的Strategy()分布式训练时候报XLA错误

We failed to lift variable creations out of this tf.function, so this tf.function cannot be run on XLA. A possible workaround is to move variable creation outside of the XLA compiled function. 最早用的pip -U 安装的keras没注意版本&#xff0c;直接可用。 之…

国外网站,similarweb统计网站流量的原理是什么? 这个统计数据是准确的吗? 有没有 没统计不到的?

标签&#xff1a; SimilarWeb&#xff1b; 国外网站 SimilarWeb 提供网站流量和其他互联网指标的估计&#xff0c;主要用于网站分析、竞争对手分析和市场研究。它如何工作&#xff0c;以及其数据的准确性&#xff0c;是很多人关心的问题。下面是对SimilarWeb统计网站流量原理的…

Golang-channel合集——源码阅读、工作流程、实现原理、已关闭channel收发操作、优雅的关闭等面试常见问题。

前言 面试被问到好几次“channel是如何实现的”&#xff0c;我只会说“啊&#xff0c;就一块内存空间传递数据呗”…所以这篇文章来深入学习一下Channel相关。从源码开始学习其组成、工作流程及一些常见考点。 NO&#xff01;共享内存 Golang的并发哲学是“要通过共享内存的…