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

LVS简介及LVS-DR搭建

目录

一. LVS简介:

1.简介

2. LVS工作模式:

3. LVS调度算法:

4. LVS-DR集群介绍:

二.LVS-DR搭建

 1.RS配置

1)两台RS,需要下载好httpd软件并准备好配置文件

 2)添加虚拟IP(vip)、添加访问本地vip的静态路由并抑制ARP

 2.DS

1)安装ipvsadm

2) 添加虚拟IP(vip):

3)添加服务


一. LVS简介:

1.简介

     LVS(Linux Virtual Server)是一个开源的负载均衡软件,可以在Linux操作系统上实现高可用性和可扩展性。它使用IP负载均衡技术来分发网络流量到多个后端服务器,从而提高系统的性能和可靠性。LVS通过在负载均衡器与后端服务器之间建立虚拟IP地址和端口的映射关系,来实现负载均衡。

2. LVS工作模式:

LVS相关术语
名称缩写说明
虚拟IP地址(Virtual IP Address)   VIP Director用于向客户端计算机提供服务的IP地址
真实IP地址(Real Server IP Address RIP 在集群下面节点上使用的IP地址
Director的IP地址(Director IP Address) DIPDirector用于连接内外网网络的IP地址
客户端主机IP地址(Client IP Address)CIP客户端用户计算机请求集群服务器的IP地址,该地址用作 发送给集群的请求的源IP地址

LVS有三种主要的工作模式:

  • LVS-DR模式:在LVS-DR模式下,LVS负载均衡器使用一个虚拟IP地址(VIP)作为前端地址,通过集群技术将VIP绑定到负载均衡器上。当客户端发送请求时,请求会到达负载均衡器。负载均衡器通过修改目标MAC地址将请求直接转发给后端服务器,同时保持源IP地址不变。服务器处理请求后,将响应直接返回给客户端,绕过负载均衡器。
  • LVS-NAT模式:LVS-NAT(Network Address Translation)模式中,负载均衡器将客户端请求的目标IP地址和端口修改为后端服务器的IP地址和端口,并将修改后的请求转发给相应的服务器。后端服务器处理请求后,将响应返回给负载均衡器,再由负载均衡器将响应返回给客户端。
  • LVS-TUN模式:LVS-TUN(IP Tunneling)模式中,负载均衡器将客户端请求封装在一个新的IP包中,并通过IP隧道(IP Tunnel)转发到后端服务器。服务器收到请求后,处理并将响应返回给负载均衡器,再由负载均衡器将响应返回给客户端。

图解如下:

        特别提示:(VS/DR)模式是互联网使用的最多多的一种模式,在LVS-DR配置中,Director将所有入站请求转发给集群内部节点,但集群内部的节点直接将他们的回复发送给客户端计算机(没有通过Director回来)。

3. LVS调度算法:

  • LVS负载均衡器使用调度算法来决定将请求转发到哪个后端服务器。
  • 调度方法决定了如何在这些集群节点之间分布工作负荷。

        当Director收到来自客户端计算机访问她的VIP上的集群服务的入站请求时,Director必须决定那个集群节点应该获得请求。Director可用于做出该决定的调度方法分成两个基本类别:

固定调度算法:rr,wrr,dh,sh

动态调度算法:wlc,lblc,lblcr,SED,NQ(后两种官方站点没提到)

最常用的四种调度算法:

  • 轮询(Round Robin):“轮询”调度也叫1:1调度,调度器通过“轮询”调度算法将外部用户请求按顺序1:1的分配到集群中的每个 Real Server上,这种算法平等地对待每一台Real Server,而不管服务器上实际的负载状况和连接状态。即:按照服务器列表的顺序依次分配请求。
  • 加权轮询(Weighted Round Robin):“加权轮询”调度算法是根据Real Server的不同处理能力来调度访问请求。可以对每台Real Server设置 不同的调度权值,对于性能相对较好的Real Server可以设置较高的权值,而对于处理能力较弱的Real Server,可以设置较低的权值,这样保证了处理能力强的服务器处理更多的访问流量。充分合理的利用 了服务器资源。同时,调度器还可以自动查询Real Server的负载情况,并动态地调整其权值。即:根据服务器的权重给予不同的请求分配比例。
  • 最少连接数(Least Connections):“最少连接”调度算法动态地将网络请求调度到已建立的链接数 最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好 地均衡负载。根据客户端的IP地址进行哈希计算,并将请求发送给与哈希结果匹配的服务器。即:将请求发送给当前连接数最少的服务器。
  • 加权最少链接调度(Weighted Least Connections) “加权最少链接调度”是“最少连接调度”的超集, 每个服务节点可以用相应的权值表示其处理能力,而系统管理员可以动态的设置相应的权值,缺省权值 为1,加权最小连接调度在分配新连接请求时尽可能使服务节点的已建立连接数和其权值成正比。即:通过权值和已建立连接数来确定负载均衡器分配连接请求的优先级。

4. LVS-DR集群介绍:

LVS-DR(Direct Routing)模式是LVS中最常用的一种模式。在LVS-DR模式下,负载均衡器通过ARP协议将客户端请求的目标MAC地址修改为后端服务器的MAC地址,并直接将请求转发给目标服务器。后端服务器处理请求后,将响应发送回客户端,绕过负载均衡器。

工作原理:

  1. 外部客户端发送请求到LVS集群的虚拟IP地址(VIP)。

  2. 请求到达LVS负载均衡器,并根据选定的调度算法选择一个后端服务器。

  3. 负载均衡器通过ARP协议将请求的目标MAC地址修改为目标服务器的MAC地址。

  4. 负载均衡器将修改后的请求直接转发给目标服务器。

  5. 目标服务器处理请求并生成响应。

  6. 服务器将响应直接发送给客户端,绕过负载均衡器。

二.LVS-DR搭建

 1.RS配置

1)两台RS,需要下载好httpd软件并准备好配置文件

#RS1
#下载httpd
yum install -y httpd
#定义配置文件
echo this is RS2 > /var/www/html/index.html
#查看配置文件
cat /var/www/html/index.html 
#结果显示
this is RS2
#重启服务
systemctl start httpd
#查看是否成功
curl 192.168.136.135
#结果显示
this is RS1#RS2
#下载httpd
yum install -y httpd
#定义配置文件
echo this is RS2 > /var/www/html/index.html
#查看配置文件
cat /var/www/html/index.html 
#结果显示
this is RS2
#重启服务
systemctl start httpd
#查看是否成功
curl 192.168.136.136
#结果显示
this is RS2

 2)添加虚拟IP(vip)、添加访问本地vip的静态路由并抑制ARP

#RS1
#在本地环回接口创建子接口并添加虚拟IP。ifconfig开机失效
ifconfig lo:11 192.168.136.11 netmask 255.255.255.255 up
#添加静态路由。route同样开机失效
route add -host 192.168.136.11 dev lo
#抑制ARP
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce#RS2
#在本地环回接口创建子接口并添加虚拟IP。ifconfig开机失效
ifconfig lo:22 192.168.136.22 netmask 255.255.255.255 up
#添加静态路由。route同样开机失效
route add -host 192.168.136.22 dev lo
#抑制ARP
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

 2.DS

1)安装ipvsadm

#下载ipvsadm
yum install ipvsadm -y
#开启ipvsadm服务
systemctl start ipvsadm

2) 添加虚拟IP(vip):

ifconfig ens33:11 192.168.136.11 netmask 255.255.255.0 up

3)添加服务

ipvsadm -C  
##清空ipvsadm配置ipvsadm -At 192.168.136.11:80 -s rr  
##配置LVS虚拟IP(VIP)ipvsadm -at 192.168.136.11:80 -r 192.168.136.135:80 -g 
##配置后端真实服务器ipvsadm -at 192.168.136.11:80 -r 192.168.136.136:80 -g
##配置后端真实服务器ipvsadm -Ln  
##查看ipvsadm配置

 删除命令如下:

ipvsadm -D -t 192.168.136.11:80 -s wrr  

##删除LVS虚拟IP配置
 
ipvsadm -d -t 192.168.136.11:80 -r 192.168.136.135:80
ipvsadm -d -t 192.168.136.11:80 -r 192.168.136.136:80
##删除后端真实服务器配置

相关文章:

LVS简介及LVS-DR搭建

目录 一. LVS简介: 1.简介 2. LVS工作模式: 3. LVS调度算法: 4. LVS-DR集群介绍: 二.LVS-DR搭建 1.RS配置 1)两台RS,需要下载好httpd软件并准备好配置文件 2)添加虚拟IP(vip&…...

Java基础篇--日期时间类

目录 前言 Instant(时间戳)类 LocalData(日期)类 LocalTime(时间)类 LocalDataTime(日期时间)类 Duration(时间间隔)类 Period(日期间隔)类 Clock(获取时区)类 前言 在开发中经常需要处理日期和时间,Java提供…...

Vue生命周期函数 详解

以下是Vue生命周期函数的流程图和每个周期的代码详解: 流程图: beforeCreate -> created -> beforeMount -> mounted -> beforeUpdate -> updated -> beforeDestroy -> destroyed详解: beforeCreate: 触发时…...

判断链表有环的证明

目录 1.问题 2.证明 3.代码实现 1.问题 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用…...

百度屏蔽词有哪些?其中就有移民关键词指数被屏蔽?

我是百收网SEO,点点上面的头像,欢迎关注我哦! 今日tombkeeper消息爆料:百度指数已经屏蔽“移民”等关键词指数。 大家好,我是百收网SEO商学院的狂潮微课老师,今天我们来讲解第 12 节课关键词优化难度分析…...

代码随想录day02

977.有序数组的平方 ● 力扣题目链接 ● 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 思路 ● 暴力排序,时间复杂度O(n nlogn) ● 使用双指针,时间复杂度O(n) …...

VR时代真的到来了?

业界对苹果的期待是,打造一台真正颠覆性的,给头显设备奠定发展逻辑底座的产品,而实际上,苹果只是发布了一台更强大的头显。 大众希望苹果回答的问题是“我为什么需要一台AR或者VR产品?”,但苹果回答的是“…...

docker run 命令转化为 docker-compose 工具

工作当中需要将 docker run 转换为更方便的 docker-compose 格式,可以使用下面的工具来完成。 转换工具:https://www.composerize.com/?utm_sourceappinn.com 使用介绍:https://www.appinn.com/composerize-for-docker-compose/...

php如何对接伪原创api

在了解伪原创api的各种应用形态之后,我们继续探讨智能写作背后的核心技术。需要说明的是,智能写作和自然语言生成、自然语言理解、知识图谱、多模算法等各类人工智能算法都有紧密的关联,在百度的智能写作实践中,常根据实际需求将多…...

设计模式行为型——模板模式

目录 模板模式的定义 模板模式的实现 模板模式角色 模板模式类图 模板模式举例 模板模式代码实现 模板模式的特点 优点 缺点 使用场景 注意事项 实际应用 模板模式的定义 模板模式(Template Pattern)属于行为型设计模式,又叫模版…...

12.Eclipse导入Javaweb项目

同事复制一份他的项目给我ekp.rar (懒得从SVN上拉取代码了)放在workspace1目录下 新建一个文件夹 workspace2,Eclipse切换到workspace2工作空间 选择Import导入 选择导入的项目(这里是放到workspace1里面) 拷贝一份到workspace2里面 例子 所有不是在自己电脑上开发…...

探索自动化网页交互的魔力:学习 Selenium 之旅【超详细】

"在当今数字化的世界中,网页自动化已经成为了不可或缺的技能。想象一下,您可以通过编写代码,让浏览器自动执行各种操作,从点击按钮到填写表单,从网页抓取数据到进行自动化测试。学习 Selenium,这一功能…...

css常用样式和不常用样式

文章目录 1、hover鼠标变小手2、ul去除点3、文字溢出显示省略号(1)一行文字溢出显示省略号(2)多行文字溢出显示省略号 4、文字单词超出(1)文字单词超出换行(word-wrap)(2…...

【小练习】交互式网格自定义增删改错误记录及解决(进行中)

经过之前的学习,已经能创建简单的交互式网格并设置自定义增删改按钮,但是实现上还是存在一些问题,来完善优化一下。 首先是修改,正常修改都会弹出修改框,里面是之前存储的信息,根据实际需要对其进行修改&a…...

云渲染效果不对?云渲染前的四个细节表明你的问题出在这里!

云渲染针对3D渲染行业,帮助本地电脑解决渲染慢的问题,大幅提高设计师的工作效率。但小编发现,有不少小伙伴在使用云渲染时,出现了渲染效果不对或丢失的问题,根据小伙伴们的问题和我们创意云云渲染平台给出的解决方案&a…...

翻转二叉树

声明 该系列文章仅仅展示个人的解题思路和分析过程,并非一定是优质题解,重要的是通过分析和解决问题能让我们逐渐熟练和成长,从新手到大佬离不开一个磨练的过程,加油! 原题链接 翻转二叉树备战技术面试?…...

检测新突破 | AlignDet:支持各类检测器自监督新框架(ICCV2023)

引言 论文链接:https://arxiv.org/abs/2307.11077 项目地址:https://github.com/liming-ai/AlignDet 这篇论文主要研究目标检测领域的自监督预训练方法。作者首先指出,当前主流的预训练-微调框架在预训练和微调阶段存在数据、模型和任务上的…...

03.Show and Tell

目录 前言泛读摘要IntroductionRelated Work小结 精读模型基于LSTM的句子生成器TrainingInference 实验评价标准数据集训练细节分数结果生成结果多样性讨论排名结果人工评价结果表征分析 结论 代码 前言 本课程来自深度之眼《多模态》训练营,部分截图来自课程视频。…...

QStackedWidget 的使用

QStackedWidget QStackedWidget 提供一些层叠的 Widget,同一时间只有一个Widget处于可视状态,就像书本一样。 什么时候使用 QStackedWidget 强烈建议 如果需要点击一个按钮显示一些界面再点击按钮隐藏当前界面而去显示另外的界面时。都使用 QStackedW…...

大数据--难点--地图的制作

地图一直是亮点也是难点,刚刚进公司的时候也很难懂~~做出来的也很难看 纯CSS3使用vw和vh视口单位实现h5页面自适应,gulp自动监听sass改动并保存到css中 当修改了sass里面的代码后,gulp会自动监听修改内容并同名保存到css文件夹中&#xff0…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

OpenLayers 分屏对比(地图联动)

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...

实战三:开发网页端界面完成黑白视频转为彩色视频

​一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 ​二、实现思路 总体思路: 用户通过Gradio界面上…...

学习一下用鸿蒙​​DevEco Studio HarmonyOS5实现百度地图

在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 ​​1. 鸿蒙环境准备​​ ​​开发工具​​:下载安装 ​​De…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件,可以展示文件夹,支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项,适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...

C++--string的模拟实现

一,引言 string的模拟实现是只对string对象中给的主要功能经行模拟实现,其目的是加强对string的底层了解,以便于在以后的学习或者工作中更加熟练的使用string。本文中的代码仅供参考并不唯一。 二,默认成员函数 string主要有三个成员变量,…...