LVS面试题
LVS 原理
- LVS通过工作于内核的ipvs模块来实现功能,其主要工作于netfilter 的INPUT链上。
而用户需要对ipvs进行操作配置则需要使用ipvsadm这个工具。
ipvsadm主要用于设置lvs模型、调度方式以及指定后端主机。
简述 LVS 三种工作模式,他们的区别
- 基于 NAT 的 LVS 模式负载均衡
- 所谓 NAT 模式,即网络地址转换模式,分发器有着一个公网 IP 地址,该公网 IP 地址对外提供服务,当客户端的请求数据发送到分发器后,由分发器将公网地址转换成私网地址,根据一定的算法,分发给后台的服务器进行处理.后台的服务器组处理完成后,将响应数据包发送给分发器,由 分发器私网 IP 地址转化成公网 IP 后再反馈给客户端.
- 在 NAT 工作模式下, 由于分发器要同时处理数据包的处理和相应,因此分发器的性能称为整个架构的瓶颈.如果后台真实服务器数量过多,则分发器的工作量越大,并且分发器还要维护 NAT 表,消耗大量的内存资源,因此这个模式尽管很适合公司网络,但是其后台能够支持的真实服务器数量不多.
- 基于 TUN 的 LVS 负载均衡
- Tunnel 模式即隧道模式 所谓的 Tunmel 模式 ,即分发器只负责接收客户端发送过来的数据包,然后将该数据包封装后按照算法发送给真实服务器,真实服务器在处理完该数据包,不需要将该数据包发送给分发器,而是直接将该数据包发送给客户端.
- 在 Tunnel 模式下,每个真实服务器都会又自己的公网 IP 地址,该公网 IP 地址一方面用于接收从分发器发送的客户端请求求,一方面给客户端发送其响应报文.也正因为每个真实都有自己的公网 IP 地址,因此真实服务器不用拘泥于网络架构,可以分散存储,起到容灾备份的作用.
- 基于 DR 的 LVS 负载均衡
- DR 模式, 即 Direct Routing,直接路由模式.在此模式下,分发器有接收客户端请求的公网 IP 地址,各个真实服务器也有自己的环回地址,该地址于分发器公网 IP 地址完全相同,并且该地址还需要能够正常访问公网,这样,当客户端的请求发送到分发器后,分发器只需要将请求数据包修改 MAC 地址后发送给后端真实服务器即可,由于目的 MAC 地址和 IP 地址都是自己,因此后端真实服务器会对该数据包进行正常响应.在响应完成后,真实服务器会将该数据包直接从环回地址发送出去,也不需要经过分发器
- 在 DR 模式下,网络层需要解决两个问题,一个是解决 IP 地址冲突的问题,由于在一个局域网中存在多个相同的公网地址,因此必须设置后端真实服务器不对 ARP 请求报文进行响应;另一个是后端真实服务器的转发问题,必须设置真实服务器使用自己的真实网卡转发环回网卡的数据包
模式之间的区别
NAT 模式 | TUN 模式 | DR 模式 | |
---|---|---|---|
对服务器的要求 | 服务器节点可以是任何操作系统 | 必须支持隧道模式.目前只要 linux | 服务器节点支持寻网卡设备,能够禁用设备的 arp 响应 |
网络要求 | 拥有私有 IP 地址的局域网 | 拥有合法 IP 地址的局域网或者广域网 | 拥有合法的 ip 地址的局域网,服务器节点与负载均衡器必须在同一网段 |
通常支持节点数 | 10-20 个,有均衡器处理能力决定 | 较高,可以支持到 100 个服务节点 | 较高,可以支持到 100 个服务节点 |
服务节点安全性 | 较好,采用内部 IP,服务节点隐蔽 | 较差,采用公网 ip 地址节点完全暴露 | 较差,采用公用 ip 地址,节点完全暴露 |
LVS 调度 算法
- 轮询调度
- 加权轮询调度
- 最小连接调度
- 加权最小连接调度
- 基于局部的最少连接
- 带复制的基于局部性的最少连接
- 目标地址散列调度
- 源地址散列调度 U
- 最短的期望的延迟
- 最少列调度
常见的 LVS 调度器算法(均衡策略)
- 轮询调度
- 轮询调度(简称:RR) 算法就是按依次循环的方式将请求调度到不同的服务器上,该算法最大的特点就是实现简单.轮询算法假设所有的服务器处理请求的能力都一样的,调度器会将所有的请求平均分配给每个真实服务器.
- 加权轮询调度
- 加权轮询(简称:WRR) 算法主要是对轮询算法的一种优化和补充,LVS 会考虑每台服务器的性能 并给每台服务器添加一个权值,如果服务器 A 的权值为 1,服务器 B 的权值 2,则调度到服务器 B 的请求会是服务器 A 的请求的 2 两倍.权值越高的服务器处理的请求越多.
- 最小连接调度
- 简称(LC)算法会把新的请求分配到当前连接数最小的服务器.最小连接调度是一种动态的调度算法,他通过服务器当前活跃的连接数来估计服务器的情况.调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接加 1 当连接中断或者超时 其连接数减 1
- 加权最小连接调度
- 简称 WLC 算法是最小连接调度的超集,各个服务器相应得权值表示其处理性能.服务器得缺省值为 1,系统管理员可以动态地设置服务器地权值,加权最小连接调度在调度新连接时尽可能使服务器已建立连接数和其权值成比列.调度器可以自动问询真实服务器地负载情况,并动态地调整其权值.
- 基于局部的最少连接
- 简称 LBLC 算法是针对请求报文地目标 IP 地址地负载均衡调度,目前主要用于 Cache 集群系统,因为在 Cache 集群客户请求报文地目标 IP 地址是变化地,这里假设任何后端服务器都可以处理任一请求,算法地设计目标是在服务器地负载基本平衡地情况下,将相同目标 IP 地址地请求调度到同一台服务器,来提高各台服务器地访问局限性和 cache 命中率,从而提升整个集群系统地处理能力,LBLC 调度算法先根据请求地目标 IP 地址找出该目标 IP 地址最近使用地服务器,若该服务器是可用地且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则使用最少连接的原则选出一个可用的服务器,将请求发送到服务器
LVS 的工作模式及其工作过程和优缺点
- 基于 NAT 的 LVS 模式负载均衡
- 优点:运行成本底、安全性高适用于中小型网络公司
- 缺点:在NAT工作模式下,由于分发器要同时处理数据包的处理和响应,因此分发器的性能称为整个架构的瓶颈。如果后台真实服务器数量过多,则分发器的工作量就会越大,并且分发器还要维护NAT表,消耗大量的内存资源,因此这个模式尽管很适合公司网络,但是其后台能够支持的真实服务器数量不多。
- 基于 TUN 的 LVS 负载均衡
- 优点:负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户。所以,负载均衡器能处理很巨大的请求量,这种方式,一台负载均衡能为超过100台的物理服务器服务,负载均衡器不再是系统的瓶颈。也正因为每个真实都有自己的公网IP地址,因此真实服务器不用拘泥于网络架构,可以分散存储,起到容灾备份的作用。
- 缺点:但是,这种方式需要所有的服务器支持"IP Tunneling"(IP Encapsulation)协议。需要大量的公网ip。成本较高。安全性较差,采用共用ip地址,节点完全暴露
- 基于 DR 的 LVS 模式负载均衡
- 优点:和VS-TUN一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。支持节点数较高。
- 缺点:要求负载均衡器的网卡必须与物理网卡在一个网段段上。节点安全性较差采用公用ip地址,节点完全暴露
相关文章:
LVS面试题
LVS 原理 LVS通过工作于内核的ipvs模块来实现功能,其主要工作于netfilter 的INPUT链上。 而用户需要对ipvs进行操作配置则需要使用ipvsadm这个工具。 ipvsadm主要用于设置lvs模型、调度方式以及指定后端主机。 简述 LVS 三种工作模式,他们的区别 基于 NAT 的 LVS…...

uniapp发行web页面在老版本浏览器打开一片空白
uniapp发行的web页面(菜单->发行->网站-PC Web或手机H5),对于一些老的浏览器(或内核),打开一片空白; 而在新版本的浏览器中打开却正常。这是因为那些版本较低的浏览器不支持ES6的语法和新…...

数据结构—二叉树的模拟实现(c语言)
目录 一.前言 二.模拟实现链式结构的二叉树 2.1二叉树的底层结构 2.2通过前序遍历的数组"ABD##E#H##CF##G##"构建二叉树 2.3二叉树的销毁 2.4二叉树查找值为x的节点 2.5二叉树节点个数 2.6二叉树叶子节点个数 2.7二叉树第k层节点个数 三.二叉树的遍历 3.1…...
COCO数据集下载
文章目录 COCO官网貌似全部失效百度网盘提取码一直是1152 COCO官网 官网下载 train2017.zip annotations_trainval2017.zip val2017.zip stuff_annotations_trainval2017.zip test2017.zip image_info_test2017.zip 貌似全部失效 百度网盘提取码一直是1152 stuff_annotatio…...

基于安卓android微信小程序的校园互助平台
项目介绍 随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数据库来完成对系统的设计。整…...
Spring整合Junit(4、5)
在之前的测试方法中,几乎都能看到以下的两行代码: ApplicationContext context new classPathXmlApplicationContext("xxx.xm"); XXXX XXX context.getBean(Xxxx.cTass); 这两行代码的作用是创建Spring容器,最终获取到对象,但是每…...

Linux 程序开发流程 / 基本开发工具 / Vim / GCC工具链 / Make 工具 / Makefile 模板
编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料(如 百问网的《嵌入式Linux应用开发完全手册》,在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO:开发板资料》或《2.2 全系列Linux教程…...

2023.11.13【读书笔记】丨生物信息学与功能基因组学(第六章 多重序列比对 下)
目录 6.4 多重序列比对数据库6.5 基因组区域的多重序列比对6.6 展望6.7 常见问题总结 6.4 多重序列比对数据库 Pfam:基于谱隐马尔可夫模型构建的蛋白质家族数据库 SMART:简易分子构型研究工具,与细胞信号传导、细胞外结构域以及染色质功能…...

【vue】虚拟dom的原理是什么?手写实现虚拟dom !
1.虚拟dom的原理 虚拟 DOM 是对 DOM 的抽象,本质上就是用 JavaScript 对象来描述 DOM 结构。Vue.js 中关于虚拟 DOM 的实现主要进行了以下几个步骤: 1.生成虚拟 DOM: Vue.js 使用 render 函数来依据模板代码生成虚拟 DOM。在这个过程中&a…...

CentOS 7 双网卡绑定热备 —— 筑梦之路
为什么需要? 1. 增强网络的可靠性 2. 保障服务的可持续性 3. 降低网卡故障带来的不良影响 有哪些模式? 模式0:轮询策略(round robin),mode0,优点:流量提高一倍缺点:需要接…...
Qt绘制简单图表
Qt图表类似于model/view,chart就是model。 创建图表的各个部件: QChart *chart new QChart();chart->setTitle(tr("简单函数曲线")); // chart->setAcceptHoverEvents(true);ui->chartView->setChart(chart);ui->chartVi…...

CCLink转Modbus TCP网关_MODBUS网口设置
兴达易控CCLink转Modbus TCP网关是一种用于连接CCLink网络和Modbus TCP网络的设备。它提供了简单易用的MODBUS网口设置,可以帮助用户轻松地配置和管理网络连接 1 、网关做为MODBUS主站 (1)将电脑用网线连接至网关的P3网口上。 (…...

Vux购物车案例
一、综合案例 - 创建项目 本案例主要针对Vuex共享数据的练习以及父子组件数据的共享。 脚手架新建项目 (注意:勾选vuex) 版本说明: vue2 vue-router3 vuex3 vue3 vue-router4 vuex4/pinia vue create vue-cart-demo将原本src内容清空,替换…...

浅析网络协议-HTTP协议
1.HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图…...

启动Docker服务后显示Docker Engine stopped
1、重新启动Docker服务:打开Windows服务管理器(可以在开始菜单中搜索),找到"Docker Desktop Service"或类似命名的服务,右键单击并选择"重启"。稍等片刻,看看是否重新启动成功 2、尝试…...

Centos7 升级到 Centos8 教程以及关于dnf包管理工具的若干问题解决方案
目录 为什么升级一、参考文档二、升级步骤三、安装git编码错误缓存问题安装git依赖冲突问题解决办法 为什么升级 jenkins 2.4版本需要CentOS8 一、参考文档 点我 二、升级步骤 1.安装epel源 yum -y install epel-release2.安装rpmconf和yum-utils yum -y install rpmco…...

计算机网络技术(一)
深入浅出计算机网络 微课视频_哔哩哔哩_bilibili 第一章概述 1.1 信息时代的计算机网络 1. 计算机网络各类应用 2. 计算机网络带来的负面问题 3. 我国互联网发展情况 1.2 因特网概述 1. 网络、互连网(互联网)与因特网的区别与关系 如图所示࿰…...
redis监听key失效
前言 使用redis进行大数据量信息存储时,如存储百万级别设备/通道信息,如果我们想获取设备/通道是否失效,常规的方法是定时获取,但是这样对于应用来说太消耗性能。 redis提供了一种key事件监听的机制,应用可以监…...

echart宽度100px原因(解决el-tabs里的echarts图表宽度不自适应,只有100px问题)
目录 问题描述产生原因处理方法1.使用echart 的API —— resize()2.使用 v-if 总结 问题描述 项目中在el-tabs下面使用了图表,发现图表的宽度始终只有100px 产生原因 首先echart初始化的组件宽度设置了width: 100%,那么本来这个时候,echar…...

【使用教程】在Ubuntu下PMM60系列一体化伺服电机通过PDO跑循环同步位置模式详解
本教程将指导您在Ubuntu操作系统下使用PDO来配置和控制PMM60系列一体化伺服电机以实现循环同步位置模式。我们将介绍必要的步骤和命令,以确保您能够成功地配置和控制PMM系列一体化伺服电机。 一、准备工作 在正式介绍之前还需要一些准备工作:1.装有lin…...

第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...

路由基础-路由表
本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。 路由是数据通信网络中最基…...