LVS概念

LVS:Linux Virtual Server,负载调度器,是一种基于Linux操作系统内核的高性能、高可用网络服务负载均衡解决方案。

LVS工作原理基于网络层(四层,传输层)的负载均衡技术,它通过内核级别的IP虚拟服务器(IPVS)模块实现透明的流量分发。

LVS软件作用:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。

LVS 相关术语:

VS: Virtual Server,负责调度
RS:RealServer,负责真正提供服务
CIP:Client IP
VIP: Virtual serve IP VS外网的IP
DIP: Director IP VS内网的IP
RIP: Real server IP

lvs集群体系结构

VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS

lvs部署命令介绍

1.lvs软件相关信息

程序包ipvsadm
Unit Fileipvsadm.servic
主程序/usr/sbin/ipvsadm
规则保存工具/usr/sbin/ipvsadm-save
规则重载工具/usr/sbin/ipvsadm-restore
配置文件/etc/sysconfig/ipvsadm-config
ipvs调度规则文件/etc/sysconfig/ipvsadm

2.ipvsadm命令

1.基本命令

-A, --add-service: 添加一个新的虚拟服务器或者一个新的服务组。


-E, --edit-service: 编辑一个现有的虚拟服务器或者服务组。

-D, --delete-service: 删除一个虚拟服务器或者服务组。


-L, --list: 列出所有的虚拟服务器和服务组。(-Ln)


-C, --clear: 清除所有 IPVS 配置。

2.虚拟服务器相关

-t, --virtual-server: 指定虚拟服务器的 IP 地址和端口。
-s, --scheduler: 指定调度算法(Scheduler),如 rr(Round Robin)、wrr(Weighted Round Robin)、lc(Least Connection)等。
-t ,tcp服务 -u ,udp服务     

-p #设置持久连接超时,持久连接可以理解为在同一个时间段同一个来源的请求调度到同一Realserver

 LVS的四种工作模式

LVS/NAT:网络地址转换模式,进站/出站的数据流量经过分发器(IP负载均衡,他修改的是IP地址)  --利用三层功能
LVS/DR  :直接路由模式,只有进站的数据流量经过分发器(数据链路层负载均衡,因为他修改的是目的mac地址)--利用二层功能mac地址
LVS/TUN: 隧道模式,只有进站的数据流量经过分发器
LVS/full-nat:双向转换:通过请求报文的源地址为DIP,目标为RIP来实现转发:对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发

lvs-nat与lvs-fullnat:请求和响应报文都经由

Director lvs-nat:RIP的网关要指向DIP

lvs-fullnat:RIP和DIP未必在同一IP网络,但要能通信

lvs-dr与lvs-tun:请求报文要经由Director,但响应报文由RS直接发往

Client lvs-dr:通过封装新的MAC首部实现,通过MAC网络转发

lvs-tun:通过在原IP报文外封装新IP头实现转发,支持远距离通信

lvs的调度算法

1.lvs静态调度算法

仅根据算法本身进行调度,不考虑RS的负载情况

1、RR:roundrobin 轮询 RS分别被调度,当RS配置有差别时不推荐

2、WRR:Weighted RR,加权轮询根据RS的配置进行加权调度,性能差的RS被调度的次数少

3、SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往 第一次挑中的RS,从而实现会话绑定

4、DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请 求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商

2.lvs动态调度算法

主要根据每RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度

1、LC:least connections(最少链接发) 适用于长连接应用Overhead(负载值)=activeconns(活动链接数) x 256+inactiveconns(非活 动链接数)

2、WLC:Weighted LC(权重最少链接) 默认调度方法Overhead=(activeconns x 256+inactiveconns)/weight

3、SED:Shortest Expection Delay, 初始连接高权重优先Overhead=(activeconns+1+inactiveconns) x 256/weight 但是,当node1的权重为1,node2的权重为10,经过运算前几次的调度都会被node2承接

4、NQ:Never Queue,第一轮均匀分配,后续SED

5、LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理

6、LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制 到负载轻的RS

3.FO(Weighted Fai Over)调度算法:常用作灰度发布

在此FO算法中,遍历虚拟服务所关联的真实服务器链表,找到还未过载(未设置IP_VS_DEST_F OVERLOAD标志)的且权重最高的真实服务器,进行调度

当服务器承接大量链接,我们可以对此服务器进行过载标记(IP_VS_DEST_F OVERLOAD),那么vs调度 器就不会把链接调度到有过载标记的主机中。

4.OVF(Overflow-connection)调度算法

基于真实服务器的活动连接数量和权重值实现。将新连接调度到权重值最高的真实服务器,直到其活动 连接数量超过权重值,之后调度到下一个权重值最高的真实服务器,在此OVF算法中,遍历虚拟服务相关 联的真实服务器链表,找到权重值最高的可用真实服务器。一个可用的真实服务器需要同时满足以下条 件:

未过载(未设置IP_VS_DEST_F OVERLOAD标志)

真实服务器当前的活动连接数量小于其权重值

其权重值不为零

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

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

相关文章

AR巡检和传统巡检的区别

随着工业4.0时代的到来,数字化转型逐渐成为各行各业提升效率、保障安全和降低成本的关键。而在这一转型过程中,巡检工作作为确保设备稳定运行的重要环节,逐步从传统方式走向智能化、数字化。尤其是增强现实(AR)技术的引…

Axure设计设备外壳 - AxureMost 落葵网

在UI设计中,设备外壳(硬件外壳与界面中的“虚拟外壳”)和背景是构成视觉体验的核心元素,它们不仅影响美观,更直接关联用户对功能的理解和操作效率。以下从设计角度详细解析其作用与使用逻辑: 一、设备外壳&…

基于深度学习的电信号分类识别与混淆矩阵分析

基于深度学习的电信号分类识别与混淆矩阵分析 1. 引言 1.1 研究背景与意义 电信号分类识别是信号处理领域的重要研究方向,在医疗诊断、工业检测、通信系统等多个领域有着广泛的应用。传统的电信号分类方法主要依赖于手工提取特征和浅层机器学习模型,但这些方法往往难以捕捉…

Git 和Gitee远程连接 上传和克隆

第一步创建远程库第二步初始化本地库创建链接删掉.idea 和target(这两个没用运行就自动生成了)右键空白处选择Git Bash Here 初始化本地库git init建立远程连接建立连接这里是我的地址,后面拼接你的地址git remote add origin https://gitee.com/liu-qing_liang/git…

零基础100天CNN实战计划:用Python从入门到图像识别高手

一、为什么你需要这份100天CNN学习计划? 在人工智能领域,卷积神经网络(CNN) 是计算机视觉的基石技术。无论是人脸识别、医学影像分析还是自动驾驶,CNN都扮演着核心角色。但对于初学者来说,面对复杂的数学公…

Python Matplotlib中的fontdict参数说明

文章目录 1 fontdict 参数的常用属性 1.1 使用示例 1.2 其他注意事项 1.3 结合其他参数 各位老板好, 在 Python 的 Matplotlib 库中,fontdict 参数用于定义文本属性的字典。这些属性包括字体大小、颜色、样式等,主要用于控制标题、标签和其他文本元素的显示效果。通过将 font…

25数据库三级备考自整理笔记

备考策略:博主是边做题边学习知识点的,从每个章节->每套真题的流程,知识点清晰详细,喜欢的请点个关注和收藏,祝大家考试顺利,必过必过必过!一、数据库应用系统开发方法1.数据库的三级模式&am…

文娱投资的逆势突破:博派资本的文化旅游综合体战略

在多数资本因“变现难、政策风险、退出缓慢”等问题纷纷撤离文娱赛道时,博派资本创始人郑兰却选择逆势而上,聚焦线下文化消费,并推出了全新的文化旅游综合体战略。郑兰深刻认为,2025年将成为区域经济和文化产业复苏的关键节点。她…

「日拱一码」033 机器学习——严格划分

目录 简单随机划分(train_test_split) 分组划分(Group Splitting) 简单分组划分 (Group Splitting) 分层分组划分 (Stratified Group Splitting) 交叉验证法(Cross-Validation) 分组K 折交叉验证&…

ASP.NET Core Web API 中集成 DeveloperSharp.RabbitMQ

文章目录前言一、核心特性与设计理念极简API设计二、使用步骤1.配置 RabbitMQ 连接(配置文件设置)2.发送消息(在 Controller 中)3.消费消息(后台服务)4.注册托管服务三、消息生命周期控制四、高级用法延时队…

解决Flutter运行android提示Deprecated imperative apply of Flutter‘s Gradle plugins

文章目录 出现场景 解决方案 编辑android/settings.gradle 编辑android/build.gradle 重新定义库变量 编辑android/app/build.gradle 删除fluttetRoot和plugin字段 添加plugins块 修改dependencies 出现场景 ado@adodeMacBook-Air app_demo % flutter run --profile Launching…

音视频重回顾及nat内网穿透相关再整理笔记

以前系统得粗略对音视频有过技术栈基类,现在重新回顾。 除此之外,最近刚好实现一个双网卡加入内网的测试方案,涉及内网穿透的知识,刚好对内网穿透逻辑进行整理。 1:明确相关基础知识,解惑体系架构。2&#…

深入理解 SemaphoreSlim 在.NET Core API 开发中的应用

目录 什么是 SemaphoreSlim SemaphoreSlim 的核心方法 构造函数 等待方法 释放方法 基本使用模式 同步使用模式 异步使用模式(推荐在 API 中使用) 在 Web 开发中的常见用途 1. 限制 API 接口的并发请求数 2. 保护共享资源的并发访问 3. 控制…

板凳-------Mysql cookbook学习 (十二--------4)

11.0 概述 386 11.1 使用LOAD DATA和mysqlimport导入数据 390 首先创建 mytbl_3 表(结构与 mytbl 相同):sql CREATE TABLE mytbl_3 LIKE mytbl;用文本编辑器(如 Notepad)打开 mytbl.txt,确保格式转换成wind…

【Git#6】多人协作 企业级开发模型

一、多人协作 1. 同一分支下的协作 目前,我们所完成的工作如下: 基本完成 Git 的所有本地库的相关操作,git基本操作,分支理解,版本回退,冲突解决等等申请码云账号,将远端信息clone到本地&…

C# 中的强大运算符

C# 中鲜为人知的强大运算符 C# 还提供了一些"冷门"但功能强大的运算符,这些运算符在特定场景下能极大简化代码并提高效率。 1. 空合并赋值运算符 ?? // 传统写法 if (variable null) {variable defaultValue; }// 使用 ?? variable ?? defaultVal…

用window字体替换zabbix 默认的字体

我们先需要在windows系统下的C:\Windows\Fonts目录,找到一个喜欢的字体,我选择的是微软雅黑。复制到其它路径下,选取一个msyh.ttc。到服务器上。要把msyh.ttc改为msyh.ttf才可以。不然最后中英文都不显示[roothadoop105.yinzhengjie.com ~]# …

MySQL 17 如何正确地显示随机消息?

假设有一个场景,一个英语学习APP首页有一个随机显示单词的功能,用户每次访问首页的时候,都会随机滚动显示三个单词。 已知表里有10000条记录,来看看随机选择3个单词有什么方法,又存在什么问题。 建表语句&#xff1a…

7-Zip 曝出两个可导致拒绝服务的中危漏洞

研究人员在全球使用最广泛的开源文件压缩软件7-Zip中新发现两个漏洞(CVE-2025-53816和CVE-2025-53817)。这两个漏洞影响7-Zip 25.0.0之前的所有版本,虽然不能实现远程代码执行,但可能引发内存损坏和拒绝服务(Denial of…

史上最简单Conda+Ollama+Open-Webui安装方法!

史上最简单CondaOllamaOpen-Webui安装方法 一、安装Anaconda 1、到Anaconda官网下载conda_24.10.1 链接:https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Windows-x86_64.exe 2.双击安装包,开始安装 选择All Users 切记安装路径不要选C盘&am…